public bool ProcessMacroRunTask() { var macroId = 0; try { var macro = Queries.MacroRegister(); var dt = DataAccess.i.GetData(macro); if (dt.Rows.Count == 0) { Log4Net.Log.Info($"No new pending Macro"); return(true); } else { Log4Net.Log.Info($"Found Macro to RUN"); } var affId = (long)dt.Rows[0]["AffiliateId"]; macroId = (int)dt.Rows[0]["Id"]; //var qry = Queries.UpdateIntTableServiceId("CalibrationRunMacroAnalysis", this.serviceId, macroId); //DataAccess.i.ExecuteQuery(qry); var qry = Queries.MacroRegisterUpdate(macroId, 4, "Processing"); DataAccess.i.ExecuteQuery(qry); try { var macroP = new Macro_Processor(); macroP.ProcessMacro(macroId, affId); qry = Queries.MacroRegisterUpdate(macroId, 5, "Completed"); DataAccess.i.ExecuteQuery(qry); } catch (Exception ex) { Log4Net.Log.Info("At Macro"); Log4Net.Log.Error(ex); Log4Net.Log.Error(ex.ToString()); Log4Net.Log.Error(ex.StackTrace); qry = Queries.MacroRegisterUpdate(macroId, 10, ex.ToString()); DataAccess.i.ExecuteQuery(qry); } } catch (Exception ex) { Log4Net.Log.Info("At Macro"); Log4Net.Log.Error(ex); var qry = Queries.MacroRegisterUpdate(macroId, 10, ex.ToString()); DataAccess.i.ExecuteQuery(qry); } return(true); }
public List <IndexForecast> ComputeIndexForecast() { List <IndexForecast> indexForecast = new List <IndexForecast>(); var statisticalInputs = GetStatisticalInputData(); var principalData = ComputeScenarioPrincipalComponents(statisticalInputs); double indexStandardDeviation = ComputeHistoricIndexStandardDeviation(); double indexMean = ComputeHistoricIndexMean(); var cp = new Macro_Processor().GetMacroResult_Statistics(this._eclId, this._eclType); var engenValues = statisticalInputs.Where(o => o.Mode == StatisticalInputsRowKeys.Eigenvalues).Select(p => p.MacroEconomicValue).ToList(); for (int i = 0; i < engenValues.Count; i++) { if (i == 0) { cp.IndexWeight1 = engenValues[i] / engenValues.Take(2).Sum(); } if (i == 1) { cp.IndexWeight2 = engenValues[i] / engenValues.Take(2).Sum(); } if (i == 2) { cp.IndexWeight3 = 0;// engenValues[i] / engenValues.Take(3).Sum(); } if (i == 3) { cp.IndexWeight4 = 0;// engenValues[i] / engenValues.Take(4).Sum(); } } foreach (var itm in principalData) { double actual = (itm.Principal1 * cp.IndexWeight1.Value) + (itm.Principal2 * cp.IndexWeight2.Value) + (itm.Principal3 * cp.IndexWeight3.Value) + (itm.Principal4 * cp.IndexWeight4.Value); var dr = new IndexForecast(); dr.Date = itm.Date; dr.Actual = actual; dr.Standardised = indexStandardDeviation == 0 ? 0 : (actual - indexMean) / indexStandardDeviation; indexForecast.Add(dr); } return(indexForecast); }
protected List <PDI_StatisticalInputs> GetStatisticalInputData() { var actualMacEcoVar = new Macro_Processor().Get_MacroResult_SelectedMacroEconomicVariables(this._eclId, this._eclType.ToString()); var prinCSummary = new Macro_Processor().GetMacroResult_PCSummary(this._eclId, this._eclType); var itms = new List <PDI_StatisticalInputs>(); for (int i = 0; i < actualMacEcoVar.Count; i++) { var sub = prinCSummary.Where(o => o.PrincipalComponentIdB == i + 4).OrderBy(p => p.PricipalComponentLabelA).ToList(); foreach (var _v in sub) { itms.Add(new PDI_StatisticalInputs { EclId = this._eclId, Mode = _v.PricipalComponentLabelA, MacroEconomicValue = _v.Value ?? 0, MacroEconomicVariableId = actualMacEcoVar[i].MacroeconomicVariableId }); } } return(itms); //foreach (var itm in prinCSummary) //{ // var o = new PDI_StatisticalInputs(); // if (itm.PrincipalComponentIdA == 1) // { // if(actualMacEcoVar.Count> itm.PrincipalComponentIdB - varBle) // { // o.MacroEconomicVariableId = actualMacEcoVar[itm.PrincipalComponentIdB - varBle].MacroeconomicVariableId; // o.MacroEconomicValue = itm.Value.Value; // o.Mode = itm.PricipalComponentLabelA; // } // } // if (itm.PrincipalComponentIdA == 2) // { // if (actualMacEcoVar.Count > itm.PrincipalComponentIdB - varBle) // { // o.MacroEconomicVariableId = actualMacEcoVar[itm.PrincipalComponentIdB - varBle].MacroeconomicVariableId; // o.MacroEconomicValue = itm.Value.Value; // o.Mode = itm.PricipalComponentLabelA; // } // } // if (itm.PrincipalComponentIdA == 3) // { // if (actualMacEcoVar.Count > itm.PrincipalComponentIdB - varBle) // { // o.MacroEconomicVariableId = actualMacEcoVar[itm.PrincipalComponentIdB - varBle].MacroeconomicVariableId; // o.MacroEconomicValue = itm.Value.Value; // o.Mode = itm.PricipalComponentLabelA; // } // } // if (itm.PrincipalComponentIdA == 4) // { // if (actualMacEcoVar.Count > itm.PrincipalComponentIdB - varBle) // { // o.MacroEconomicVariableId = actualMacEcoVar[itm.PrincipalComponentIdB - varBle].MacroeconomicVariableId; // o.MacroEconomicValue = itm.Value.Value; // o.Mode = itm.PricipalComponentLabelA; // } // } // if (itm.PrincipalComponentIdA == 5) // { // if (actualMacEcoVar.Count > itm.PrincipalComponentIdB - varBle) // { // o.MacroEconomicVariableId = actualMacEcoVar[itm.PrincipalComponentIdB - varBle].MacroeconomicVariableId; // o.MacroEconomicValue = itm.Value.Value; // o.Mode = itm.PricipalComponentLabelA; // } // } // if (itm.PrincipalComponentIdA == 6) // { // if (actualMacEcoVar.Count > itm.PrincipalComponentIdB - varBle) // { // o.MacroEconomicVariableId = actualMacEcoVar[itm.PrincipalComponentIdB - varBle].MacroeconomicVariableId; // o.MacroEconomicValue = itm.Value.Value; // o.Mode = itm.PricipalComponentLabelA; // } // } // if (itm.PrincipalComponentIdA == 7) // { // if (actualMacEcoVar.Count > itm.PrincipalComponentIdB - varBle) // { // o.MacroEconomicVariableId = actualMacEcoVar[itm.PrincipalComponentIdB - varBle].MacroeconomicVariableId; // o.MacroEconomicValue = itm.Value.Value; // o.Mode = itm.PricipalComponentLabelA; // } // } // itms.Add(o); //} //var obj = new ProcessECL_PD(this._eclId, this._eclType).Get_PDI_StatisticalInputs(); //return obj; }