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_Year_Aggregation(long Element_ID) { try { InnonAnalyticsWarehouseEntities db_datawarehouse_context = new InnonAnalyticsWarehouseEntities(); //Get last inserted record in the table Point_Agg_Hour int Years = int.Parse(ConfigurationManagerHelper.AppSettings["aggregate_Years"].ToString()); DateTime datetime = DateTime.Now.AddYears(-Years); IList <Point_Agg_Year> tbl_point_Agg_Years = db_datawarehouse_context.Point_Agg_Year.Where(point_Years => point_Years.Point_ID == Element_ID && point_Years.Year_ID >= datetime.Year).ToList(); if (tbl_point_Agg_Years.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_Year(datetime.Year), AggerationType.Year); //Compare the raw data and aggregate data _list_aggregation = _list_aggregation.Where(aggregate => tbl_point_Agg_Years.Any(aggr_Years => aggregate.Year_ID == aggr_Years.Year_ID && (aggregate.TotalCount != aggr_Years.Year_Count || aggregate.SumValue != aggr_Years.Sum_Value))).ToList(); if (_list_aggregation.Count() > 0) { tbl_point_Agg_Years = Point_Agg_Year_Convert.Convert_List_Aggregate_Raw_Data_To_Point_Agg_Year_List(_list_aggregation); db_datawarehouse_context = new InnonAnalyticsWarehouseEntities(); foreach (Point_Agg_Year tbl_point_Agg_Year in tbl_point_Agg_Years) { db_datawarehouse_context.Point_Agg_Year.Attach(tbl_point_Agg_Year); db_datawarehouse_context.Entry(tbl_point_Agg_Year).State = System.Data.Entity.EntityState.Modified; } db_datawarehouse_context.SaveChanges(); } } } catch (Exception ex) { File_Log.SaveLog_ToFile(ex, Common.Enums.LoggingActions.Error, "Update_year_Aggregation passing parameter element_id:- " + Element_ID); } }