private void Save_Aggregate_To_WareHouse(List <Aggregate_Raw_Data> _list_aggregation, AggerationType _aggerationType, long Element_ID) { if (_list_aggregation != null) { if (_list_aggregation.Any()) { try { _db_datawarehouse_context = new InnonAnalyticsWarehouseEntities(); switch (_aggerationType) { case AggerationType.Hour: _db_datawarehouse_context.Point_Agg_Hour.AddRange(Point_Agg_Hour_Convert.Convert_List_Aggregate_Raw_Data_To_Point_Agg_Hour_List(_list_aggregation)); break; case AggerationType.Day: _db_datawarehouse_context.Point_Agg_Day.AddRange(Point_Agg_Day_Convert.Convert_List_Aggregate_Raw_Data_To_Point_Agg_Day_List(_list_aggregation)); break; case AggerationType.Week: //_db_datawarehouse_context.Point_Agg_Week.AddRange(Point_Agg_Week_Convert.Convert_List_Aggregate_Raw_Data_To_Point_Agg_Week_List(_list_aggregation)); break; case AggerationType.Month: _db_datawarehouse_context.Point_Agg_Month.AddRange(Point_Agg_Month_Convert.Convert_List_Aggregate_Raw_Data_To_Point_Agg_Month_List(_list_aggregation)); break; case AggerationType.Year: _db_datawarehouse_context.Point_Agg_Year.AddRange(Point_Agg_Year_Convert.Convert_List_Aggregate_Raw_Data_To_Point_Agg_Year_List(_list_aggregation)); break; default: File_Log.SaveLog_ToFile(new Exception("Invalid AggregationType"), LoggingActions.Error, "Point_ID " + Element_ID); break; } _db_datawarehouse_context.SaveChanges(); } catch (Exception ex) { File_Log.SaveLog_ToFile(ex, LoggingActions.Error, "Aggragation Type " + _aggerationType + " Point_ID " + Element_ID); } } } }
protected void Update_Month_Aggregation(long Element_ID) { try { InnonAnalyticsWarehouseEntities db_datawarehouse_context = new InnonAnalyticsWarehouseEntities(); //Get last inserted record in the table Point_Agg_Hour int months = int.Parse(ConfigurationManagerHelper.AppSettings["aggregate_months"].ToString()); DateTime datetime = DateTime.Now.AddMonths(-months); long MonthID = Helper.Get_Month_ID(datetime.Year, datetime.Month); IList <Point_Agg_Month> tbl_point_Agg_Months = db_datawarehouse_context.Point_Agg_Month.Where(point_Months => point_Months.Point_ID == Element_ID && point_Months.Month_ID >= MonthID).ToList(); if (tbl_point_Agg_Months.Count() > 0) { List <Aggregate_Raw_Data> _list_aggregation = new List <Aggregate_Raw_Data>(); _list_aggregation = Get_Aggregate_Raw_Data(Element_ID, Helper.Get_Last_Day_Of_Month(MonthID), AggerationType.Month); //Compare the raw data and aggregate data _list_aggregation = _list_aggregation.Where(aggregate => tbl_point_Agg_Months.Any(aggr_Months => Helper.Get_Month_ID(aggregate.Month_Year_ID, aggregate.Month_ID) == aggr_Months.Month_ID && (aggregate.TotalCount != aggr_Months.Month_Count || aggregate.SumValue != aggr_Months.Sum_Value))).ToList(); if (_list_aggregation.Count() > 0) { tbl_point_Agg_Months = Point_Agg_Month_Convert.Convert_List_Aggregate_Raw_Data_To_Point_Agg_Month_List(_list_aggregation); db_datawarehouse_context = new InnonAnalyticsWarehouseEntities(); foreach (Point_Agg_Month tbl_point_Agg_Month in tbl_point_Agg_Months) { db_datawarehouse_context.Point_Agg_Month.Attach(tbl_point_Agg_Month); db_datawarehouse_context.Entry(tbl_point_Agg_Month).State = System.Data.Entity.EntityState.Modified; } db_datawarehouse_context.SaveChanges(); } } } catch (Exception ex) { File_Log.SaveLog_ToFile(ex, Common.Enums.LoggingActions.Error, "Update_Month_Aggregation passing parameter element_id:- " + Element_ID); } }