private List <GroupMacroData> GenerateGroupMacroData(List <List <string> > actual_filtered_lineData) { var data = new List <GroupMacroData>(); for (int i = 0; i < actual_filtered_lineData.Count; i++) { var afl = actual_filtered_lineData[i]; var itm = new GroupMacroData(); itm.period = afl[0]; try { itm.MacroValue1 = double.Parse(afl[1].Trim()); } catch { itm.MacroValue1 = 0; } if (afl.Count >= 4) { try { itm.MacroValue2 = double.Parse(afl[2].Trim()); } catch { itm.MacroValue2 = 0; } } if (afl.Count >= 5) { try { itm.MacroValue3 = double.Parse(afl[3].Trim()); } catch { itm.MacroValue3 = 0; } } if (afl.Count >= 6) { try { itm.MacroValue4 = double.Parse(afl[4].Trim()); } catch { itm.MacroValue4 = 0; } } try { itm.NPL = double.Parse(afl.Last().Trim()); } catch { itm.NPL = 0; } data.Add(itm); } return(data); }
public List <string> GeneratesaveMacroData(long affiliateId, int macroId) { var affBasePath = Path.Combine(AppSettings.MacroModelPath, affiliateId.ToString()); if (!Directory.Exists(affBasePath)) { Directory.CreateDirectory(affBasePath); } //Get MacroData #region Get MacroData var qry = Queries.Macro_Analysis(macroId); var dt = DataAccess.i.GetData(qry); var itms = new List <MacroData>(); for (int i = 0; i < dt.Rows.Count; i++)// DataRow dr in dt.Rows) { //Log4Net.Log.Info(i); DataRow dr = dt.Rows[i]; var itm = DataAccess.i.ParseDataToObject(new MacroData(), dr); itms.Add(itm); } var periods = itms.Select(o => o.Period).Distinct().OrderBy(p => p).ToList(); var lstMacroData = new List <string>(); var header = new List <string>(); var macroIds = itms.Select(o => o.MacroeconomicId).ToList(); //foreach (var itm in macroIds) //{ // if (itms.Where(p => p.MacroeconomicId == itm).Any(o => o.Value > 0)) // { // // do nothing // } // else // { // var toRemoveItms = itms.Where(p => p.MacroeconomicId == itm).ToList(); // foreach (var _itm in toRemoveItms) // { // itms.Remove(_itm); // } // var rmvAff = affM.FirstOrDefault(o => o.MacroeconomicVariableId == itm); // affM.Remove(rmvAff); // } //} header.Add("Units"); for (int i = 0; i < affM.Count; i++) { header.Add($"Var{i + 1}"); } header.Add("Percentage"); lstMacroData.Add(string.Join(",", header)); for (int i = 0; i < periods.Count; i++) { var pickPeriod = periods[i]; var grpdata = new GroupMacroData(); var period = GetPeriod(pickPeriod); var body = new List <string>(); body.Add(period); var _itms = itms.Where(o => o.Period == pickPeriod && o.MacroeconomicId != -1).ToList(); //foreach(var itm in _itms) //{ // try { body.Add(itm.Value.ToString()); } catch { body.Add("0"); } //} for (int j = 0; j < affM.Count; j++) { try { body.Add(itms.FirstOrDefault(o => o.Period == pickPeriod && o.MacroeconomicId == affM[j].MacroeconomicVariableId).Value.ToString()); } catch { body.Add("0"); }; } try { body.Add(itms.FirstOrDefault(o => o.Period == pickPeriod && o.MacroeconomicId == -1).Value.ToString()); } catch { body.Add(""); }; lstMacroData.Add(string.Join(",", body)); } var add_macro_data = Path.Combine(affBasePath, "MacroData.csv"); File.WriteAllLines(add_macro_data, lstMacroData.ToArray()); #endregion return(lstMacroData); }