public override async Task<RopDocument[]> FillDate() { var dd = new DownloadData(); var dataBytes = await dd.Data(rdBase.PathDocument); var str = Encoding.UTF8.GetString(dataBytes); var list = new List<RopData>(); var lines = str.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { var arr = line.Split(new[] {";"}, StringSplitOptions.None); if(string.IsNullOrWhiteSpace(arr[0])) continue; if (arr[0].Contains("Jude")) continue; var rd = new RopData(); rd.Judet = judetFinder.Find(arr[0]); rd.Valoare = int.Parse(arr[3]); list.Add(rd); } list = list.GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToList(); rdBase.Data = list.ToArray(); return new[] {rdBase}; }
public async Task<Judet[]> InitJudete() { var dd = new DownloadData(); var dataBytes =await dd.Data(new Uri("http://data.gov.ro/storage/f/2013-11-01T11%3A53%3A13.359Z/siruta-judete.csv")); string data = Encoding.UTF8.GetString(dataBytes); var list = new List<Judet>(); var lines = data.Split(new string[] {Environment.NewLine},StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { if (string.IsNullOrWhiteSpace(line)) continue; var arr=line.Split(new string[] { ";"}, StringSplitOptions.RemoveEmptyEntries); if(arr[0]=="JUD")//header continue; var j = new Judet(); j.Cod = arr[3]; j.Nume = arr[1]; j.ID = arr[2];//FSJ list.Add(j); } return list.ToArray(); }
private async Task<RopData> CreateFarmacie(Uri uri) { var rd = new RopData(); var numeFarmacie = uri.Segments.Last().Replace(".xls",""); switch (numeFarmacie) { case "bucuresti---sector-1": case "bucuresti---sector-2": case "bucuresti---sector-3": case "bucuresti---sector-4": case "bucuresti---sector-5": case "bucuresti---sector-6": rd.Judet = judetFinder.Find("Bucuresti"); break; case "farmacii-circuit-inchis324112670-1": //TODO: take this into consideration return null; default: rd.Judet = judetFinder.Find(numeFarmacie); break; } var dd = new DownloadData(); var dataBytes = await dd.Data(uri); var path = Path.Combine(Path.GetTempPath(), Path.GetTempFileName() + ".xls"); File.WriteAllBytes(path, dataBytes); var nr =await ExcelHelpers.NrRows(path); rd.Valoare = nr; return rd; }
public override async Task<RopDocument[]> FillDate() { var data= new List<RopData>(); var dd = new DownloadData(); var dataBytes = await dd.Data(rdBase.PathDocument); var path = Path.Combine(Path.GetTempPath(), Path.GetTempFileName() + ".csv"); var csv = Encoding.UTF8.GetString(dataBytes); //var path = "D:\\a.xls"; var lines = csv.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { if (string.IsNullOrWhiteSpace(line)) continue; var arr = line.Split(new string[] {","}, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < arr.Length; i++) { arr[i] = arr[i].Replace("\"", ""); } if (arr[0].Trim().ToUpper() == "JUDET") //header continue; var numeJudet = arr[0].Trim().ToLower(); var judet = judetFinder.Find(numeJudet); int valoare; try { valoare = int.Parse(arr[arr.Length-1]); } catch (Exception ex) { throw new ArgumentException("judet:" + numeJudet + "=> valoare"+ arr[arr.Length - 1],ex); } var rd = new RopData(); rd.Judet = judet; rd.Valoare = valoare; rd.Oras = null; data.Add(rd); } rdBase.Data = data .GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToArray(); return new[] { rdBase }; }
public override async Task<RopDocument[]> FillDate() { List<RopData> data=new List<RopData>(); var dd = new DownloadData(); var dataBytes = await dd.Data(rdBase.PathDocument); var path = Path.Combine(Path.GetTempPath(), Path.GetTempFileName() + ".xls"); File.WriteAllBytes(path,dataBytes); //var path = "D:\\a.xls"; var dt = new DataTable(); using (var m = new OleDbConnection()) { m.ConnectionString = ExcelHelpers.BuildExcelConnectionString(path, true); m.Open(); var query = @"Select * From [Sheet1$]"; using (var cmd = new OleDbCommand(query, m)) { using (var dr = cmd.ExecuteReaderAsync().Result) { dt.Load(dr); } } } foreach (DataRow row in dt.Rows) { int nr; var arr = row.ItemArray; //if (arr[0] == null || string.IsNullOrWhiteSpace(arr[0].ToString())) if (string.IsNullOrWhiteSpace(arr[0]?.ToString())) continue; if(!int.TryParse(arr[0].ToString(),out nr)) continue; var numeJudet = arr[1].ToString().Trim().ToLower(); var judet = judetFinder.Find(numeJudet); var rd=new RopData(); rd.Judet = judet; rd.Valoare = int.Parse(arr[2].ToString()); rd.Oras = null; data.Add(rd); } rdBase.Data = data.ToArray(); return new [] { rdBase }; }
public override async Task<RopDocument[]> FillDate() { var dd = new DownloadData(); var dataBytes = await dd.Data(rdBase.PathDocument); string data = Encoding.UTF8.GetString(dataBytes); var list = new List<RopData>(); var lines = data.Split((char) (10)); var restFromPreviousLine = ""; for (int lineIter = 0; lineIter < lines.Length; lineIter++) { var line = lines[lineIter]; if (string.IsNullOrWhiteSpace(line)) continue; var arr = (restFromPreviousLine + line).Split(new[] {";"}, StringSplitOptions.None); if (arr.Length < 10) { restFromPreviousLine += line; continue; } restFromPreviousLine = ""; if(arr[0].StartsWith("Jude")) continue; if (string.IsNullOrWhiteSpace(arr[0])) continue; var numeJudet = arr[0].Trim().ToLower(); if(numeJudet.ToLower()== "dgeip") continue; var judet = judetFinder.Find(numeJudet); var val = int.Parse(arr[6].Replace(".", "")); var rd = new RopData(); rd.Judet = judet; rd.Valoare = val; list.Add(rd); } list = list.GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToList(); rdBase.Data = list.ToArray(); return new[] { rdBase }; }
public override async Task<RopDocument[]> FillDate() { var dd = new DownloadData(); var uri = new Uri("http://data.gov.ro/dataset/situatia-farmaciilor-din-romania"); var dataBytes = await dd.Data(uri); var str = Encoding.ASCII.GetString(dataBytes); var hd = new HtmlDocument(); hd.LoadHtml(str); var nodes= hd.DocumentNode.SelectNodes("//a[@class='resource-url-analytics']"); var taskList = new List<Task<RopData>>(); foreach (var node in nodes) { var link=node.Attributes["href"].Value; var task = CreateFarmacie(new Uri(link)); taskList.Add(task); } await Task.WhenAll(taskList.ToArray()); var rd = new RopDocument(); rd.Name = "farmacii"; rd.PathDocument = uri; rd.ID = "45A83E85-D049-4258-8575-9CE43C49273C"; rd.Description = "Situatia farmaciilor din Romania"; var list = taskList. Select(it => (it.Exception == null) ? it.Result : null) .Where(it => it != null); //Bucuresti is duplicate - judet list=list.GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToArray(); rd.Data = list.ToArray(); return new[] { rd }; }
public async Task<UAT[]> InitUat(Judet[] judete) { var dd = new DownloadData(); var dataBytes = await dd.Data(new Uri("http://data.gov.ro/storage/f/2013-11-01T11%3A49%3A59.808Z/siruta.csv")); string data = Encoding.UTF8.GetString(dataBytes); var list = new List<UAT>(); var lines = data.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); Judet lastJudet = null; foreach (var line in lines) { if (string.IsNullOrWhiteSpace(line)) continue; var arr = line.Split(new string[] { ";" }, StringSplitOptions.None); if (arr[0] == "\"SIRUTA\"")//header continue; if (arr[12].Contains("00000000000"))//rang => judet { var idJudet = int.Parse(arr[12].Replace("00000000000", "").Replace("\"","")); lastJudet = judete.First(it => it.ID == idJudet.ToString()); continue; } if (lastJudet == null) { throw new ArgumentException("not found judet for " + line); } var uat = new UAT(); uat.UatTip= (arr[5]); uat.Nume = arr[1].Replace("\"", ""); uat.ID = arr[9]; uat.Judet = lastJudet; list.Add(uat); } return list.ToArray(); }
public override async Task<RopDocument[]> FillDate() { var dataAlegatori = new List<RopData>(); var dataAlegatoriPrezenti = new List<RopData>(); var dd = new DownloadData(); var dataBytes = await dd.Data(rdBase.PathDocument); var path = Path.Combine(Path.GetTempPath(), Path.GetTempFileName() + ".xls"); File.WriteAllBytes(path, dataBytes); //var path = "D:\\a.xls"; var dt = new DataTable(); using (var m = new OleDbConnection()) { m.ConnectionString = ExcelHelpers.BuildExcelConnectionString(path, true); m.Open(); var query = @"Select * From [SIAEP2014_STAT_Statistica pe lo$]"; using (var cmd = new OleDbCommand(query, m)) { using (var dr = cmd.ExecuteReaderAsync().Result) { dt.Load(dr); } } } foreach (DataRow row in dt.Rows) { var arr = row.ItemArray; //if (arr[0] == null || string.IsNullOrWhiteSpace(arr[0].ToString())) if (string.IsNullOrWhiteSpace(arr[0]?.ToString())) continue; var numeJudet = arr[1].ToString().Trim().ToLower(); if(numeJudet == "străinătate") continue; var judet = judetFinder.Find(numeJudet); var valoare = int.Parse(arr[3].ToString()); var rd = new RopData(); rd.Judet = judet; rd.Valoare = valoare; rd.Oras = null; dataAlegatori.Add(rd); rd = new RopData(); rd.Judet = judet; rd.Valoare = int.Parse(arr[6].ToString()); rd.Oras = null; dataAlegatoriPrezenti.Add(rd); } var newRD = new RopDocument(rdBase); newRD.Name += "Nr Alegatori Liste"; newRD.ID = "BA671A2B-27E8-408D-BABD-59B52661789D"; newRD.Data = dataAlegatori .GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToArray(); var newRDUrne = new RopDocument(rdBase); newRDUrne.Name += "Nr Alegatori Prezentati La Urne"; newRDUrne.ID = "BBB0ECA2-34BE-4177-B3A2-82BC6B41311E"; newRDUrne.Data = dataAlegatoriPrezenti .GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToArray(); return new[] { newRD,newRDUrne }; }
public override async Task<RopDocument[]> FillDate() { var dd = new DownloadData(); var dataBytes = await dd.Data(rdBase.PathDocument); string data = Encoding.UTF8.GetString(dataBytes); var list = new List<RopData>(); var lines = data.Split((char)(10)); var restFromPreviousLine = ""; for(int lineIter=0;lineIter<lines.Length; lineIter++) { if(lineIter==0)//header continue; var line = lines[lineIter]; if (string.IsNullOrWhiteSpace(line)) continue; var arr = (restFromPreviousLine+line).Split(new [] { "," }, StringSplitOptions.None); if (arr.Length < 16) { restFromPreviousLine += line; continue; } restFromPreviousLine = ""; for (int i = 0; i < arr.Length; i++) { arr[i] = arr[i].Replace("\"", ""); } Judet judet = null; for (int i = 16; i < arr.Length; i++) { var numeJudet = arr[i].ToString().Trim().ToLower(); try { judet = judetFinder.Find(numeJudet); } catch (ArgumentException) { //do not log } if (judet != null) break; } if(judet == null) { throw new ArgumentException("not found judet:" + string.Join(",", arr)); } var rd = new RopData(); rd.Judet = judet; rd.Valoare = 1; list.Add(rd); } list = list.GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToList(); rdBase.Data = list.ToArray(); return new[] { rdBase }; }
public override async Task<RopDocument[]> FillDate() { var dataCasatoriti = new List<RopData>(); var dd = new DownloadData(); var dataBytes = await dd.Data(rdBase.PathDocument); var path = Path.Combine(Path.GetTempPath(), Path.GetTempFileName() + ".xls"); File.WriteAllBytes(path, dataBytes); //var path = "D:\\a.xls"; var dt = new DataTable(); using (var m = new OleDbConnection()) { m.ConnectionString = ExcelHelpers.BuildExcel2007ConnectionString(path, true); m.Open(); var query = @"Select * From [Anul2015$]"; using (var cmd = new OleDbCommand(query, m)) { using (var dr = cmd.ExecuteReaderAsync().Result) { dt.Load(dr); } } } foreach (DataRow row in dt.Rows) { var arr = row.ItemArray; //if (arr[0] == null || string.IsNullOrWhiteSpace(arr[0].ToString())) if (string.IsNullOrWhiteSpace(arr[0]?.ToString())) continue; var numeJudet = arr[1].ToString().Trim().ToLower(); var judet = judetFinder.Find(numeJudet); Func<object, int> retVal = (obj) => { int i; if (obj == null) return 0; if (int.TryParse(obj.ToString(), out i)) return i; return 0; }; int valoare = retVal(arr[15]); var rd = new RopData(); rd.Judet = judet; rd.Valoare = valoare; rd.Oras = null; dataCasatoriti.Add(rd); } rdBase.Data = dataCasatoriti .GroupBy(it => it.Judet).Select(group => new RopData() { Judet = group.Key, Valoare = group.Sum(it => it.Valoare) } ).ToArray(); return new[] {rdBase}; }