{"id":929,"date":"2016-03-10T22:17:08","date_gmt":"2016-03-10T21:17:08","guid":{"rendered":"http:\/\/piatkosia.k4be.pl\/wordpress\/?p=929"},"modified":"2016-03-08T22:18:12","modified_gmt":"2016-03-08T21:18:12","slug":"as-simple-as-that-no-to-zaryzykujmy","status":"publish","type":"post","link":"https:\/\/piatkosia.k4be.pl\/wordpress\/2016\/03\/10\/as-simple-as-that-no-to-zaryzykujmy\/","title":{"rendered":"As simple as that &#8211; no to zaryzykujmy"},"content":{"rendered":"<p>Ok, trzeba da\u0107 kr\u00f3tki wpis, bo mnie wywal\u0105.<\/p>\n<p>A wi\u0119c zaczn\u0119 od&#8230; opisania do\u015b\u0107 wa\u017cnej klasy w module do oceny ryzyka, przedstawiaj\u0105ca pojedyncz\u0105 grup\u0119 ryzyka (bank ryzyk).<br \/>\n<!--more--><\/p>\n<p>Ot, proste<\/p>\n<pre class=\"brush: csharp; collapse: true\"> public class RiskBank\r\n    {\r\n        public string Title;\r\n        public List risks = new List();\r\n    }\r\n<\/pre>\n<p style=\"text-align: justify;\">Tytu\u0142 takiej grupy mo\u017ce w przysz\u0142o\u015bci u\u0142atwi\u0107 zarz\u0105dzanie. Same ryzyka b\u0119d\u0105 ci\u0105gami znak\u00f3w, kt\u00f3re b\u0119d\u0105 mog\u0142y by\u0107 wpisane z palca, pobrane z bazy, zarz\u0105dzane, co tam sobie nie wymy\u015bl\u0119 w przysz\u0142o\u015bci. Zaczn\u0119 wi\u0119c od \u0142adowania.<\/p>\n<p style=\"text-align: justify;\">Na razie sobie wymy\u015bli\u0142am, \u017ce musimy mie\u0107 mo\u017cliwo\u015b\u0107 \u0142adowania danych. Na razie to ogarn\u0119\u0142am jako prosty interfejs z jedn\u0105 metod\u0105.<\/p>\n<pre class=\"brush: csharp; collapse: true\"> public interface LoadingProvider\r\n    {\r\n         RiskBank loadRisks(object source);\r\n    }\r\n<\/pre>\n<p>i zrobi\u0142am przyk\u0142adowy loader, kt\u00f3ry zak\u0142ada \u017ce je\u015bli plik jest tekstowy to sobie dodaje linijka po linijce, a je\u017celi nie to si\u0119 wywala ^^. No co, musz\u0119 mie\u0107 p\u00f3\u017aniej co robi\u0107. \u015amie\u0107implementacja interfejsu wygl\u0105da tak:<\/p>\n<pre class=\"brush: csharp; collapse: true\"> class TextfileLoader: LoadingProvider\r\n    {\r\n        public RiskBank loadRisks(object source)\r\n        {\r\n            if (source is string)\r\n            {\r\n                Encoding code;\r\n                RiskBank bank = new RiskBank();\r\n                bank.Title = Path.GetFileNameWithoutExtension((string) source);\r\n                string line;\r\n                System.IO.StreamReader file =\r\n                   new System.IO.StreamReader((string)source);\r\n                while ((line = file.ReadLine()) != null)\r\n                {\r\n                    bank.risks.Add(line);\r\n                }\r\n                return bank;\r\n            }\r\n            else return null;\r\n        }\r\n\r\n    }\r\n<\/pre>\n<p style=\"text-align: justify;\">W przysz\u0142o\u015bci loading providery b\u0119d\u0105 musia\u0142y mie\u0107 wi\u0119cej funkcji ni\u017c jedna (dodawanie do podanej listy z duplikatami, dodawanie bez duplikat\u00f3w, \u0142adowanie element\u00f3w spe\u0142niaj\u0105cych jakie\u015b tam kryteria&#8230;, si\u0119 zobaczy). Wi\u0119c nie, nie pisa\u0142am interfejsu tylko po to, by gdzie\u015b jedn\u0105 funkcj\u0119 wywo\u0142a\u0107;).<\/p>\n<p style=\"text-align: justify;\">No i skoro ju\u017c mamy to co mamy, to wrzuci\u0142am na MainWindow sam podgl\u0105d.<br \/>\nW klasie MainWindow jest<\/p>\n<pre class=\"brush: csharp; collapse: true\">public RiskBank list = new RiskBank();\r\nprivate LoadingProvider loader;\r\n<\/pre>\n<p>i dalej jaki\u015b onclick do buttona jako<\/p>\n<pre class=\"brush: csharp; collapse: true\">  private void Button_Click(object sender, RoutedEventArgs e)\r\n        {\r\n            loader = new TextfileLoader();\r\n            OpenFileDialog openFileDialog = new OpenFileDialog();\r\n            openFileDialog.Multiselect = false;\r\n            if (openFileDialog.ShowDialog() == true) list = loader.loadRisks(openFileDialog.FileName);\r\n            SomeList.ItemsSource = list.risks; \/\/ \r\n        }\r\n<\/pre>\n<p>Ok, wracam do pozosta\u0142ych obowi\u0105zk\u00f3w;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ok, trzeba da\u0107 kr\u00f3tki wpis, bo mnie wywal\u0105. A wi\u0119c zaczn\u0119 od&#8230; opisania do\u015b\u0107 wa\u017cnej klasy w module do oceny ryzyka, przedstawiaj\u0105ca pojedyncz\u0105 grup\u0119 ryzyka<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/piatkosia.k4be.pl\/wordpress\/2016\/03\/10\/as-simple-as-that-no-to-zaryzykujmy\/\">Lecim dalej<span class=\"screen-reader-text\">As simple as that &#8211; no to zaryzykujmy<\/span> <i class=\"fas fa-angle-right\"><\/i><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-929","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii","entry"],"_links":{"self":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/comments?post=929"}],"version-history":[{"count":1,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/929\/revisions"}],"predecessor-version":[{"id":930,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/929\/revisions\/930"}],"wp:attachment":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/media?parent=929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/categories?post=929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/tags?post=929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}