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 }); }