public void UploadWorkOrderData() { DashboardDbEntities db = new DashboardDbEntities(); List<WODurationCategory> DurationCategories; var objQueryDefinitions = new QueryDefinitions(); var objAnnualMP2ByCategory = new WOData(out DurationCategories, DateTime.Now.AddYears(-1).Date, DateTime.Now.Date); foreach (var objDurationCategory in DurationCategories) db.WorkOrderMetrics.Add(new WorkOrderMetric { DateCreated = DateTime.Now.Date, MetricType = (char)WOMetricType.AnnualWOAvgDaysOpenByCategory + string.Empty, WOCategory = objDurationCategory.Category, AverageWODuration = objDurationCategory.AverageWODuration, WOCount = objDurationCategory.WOCount }); db.Database.ExecuteSqlCommand(objQueryDefinitions.GetQuery("DeleteWOMetricByTypeAndDate", //Delete any work orders that may exist for this day to avoid duplicates... new string[] { (char)WOMetricType.AnnualWOAvgDaysOpenByCategory + string.Empty, DateTime.Now.Date.ToShortDateString() })); db.SaveChanges(); //Save the WOMetrics to the database... var objOpenReadyHoldMP2ByCategory = new WOData(out DurationCategories, new List<Status> { Status.Open, Status.Ready, Status.Hold }); foreach (var objDurationCategory in DurationCategories) db.WorkOrderMetrics.Add(new WorkOrderMetric { DateCreated = DateTime.Now.Date, MetricType = (char)WOMetricType.CurrentWOAvgDaysOpenByCategory + string.Empty, WOCategory = objDurationCategory.Category, AverageWODuration = objDurationCategory.AverageWODuration, WOCount = objDurationCategory.WOCount }); db.Database.ExecuteSqlCommand(objQueryDefinitions.GetQuery("DeleteWOMetricByTypeAndDate", new string[] { (char)WOMetricType.CurrentWOAvgDaysOpenByCategory + string.Empty, DateTime.Now.Date.ToShortDateString() })); db.SaveChanges(); }
public InventoryDataUploader(List<InventoryCostMetric> InventoryCostMetrics) { var db = new DashboardDbEntities(); foreach (var objData in InventoryCostMetrics) db.InventoryCostMetrics.Add(objData); db.SaveChanges(); }
public WOData(WOMetricType WOMetric, int RecordSetCount, bool PopulateSeriesDataSets = false) { var db = new DashboardDbEntities(); SeriesDataSets = new List<List<WorkOrderMetric>>(); CollectionComparisonData = new List<WorkOrderMetric>(); var objQueryDefs = new QueryDefinitions(); var strSQL = objQueryDefs.GetQuery("SelectTopNWOAvgsByCategory", new string[] { ((char)WOMetric).ToString(), RecordSetCount.ToString() }); CollectionData = db.Database .SqlQuery<WorkOrderMetric>(strSQL) .ToList(); if (PopulateSeriesDataSets) PopulateSeriesDataSetsByCategory(); }
public InventoryData(InventoryCostGroup objInventoryCostGroup, int RecordSetCount) { SeriesDataSets = new List<List<InventoryCostMetric>>(); mobjInventoryCostGroup = objInventoryCostGroup; var db = new DashboardDbEntities(); var objQueryDefs = new QueryDefinitions(); var strSQL = objQueryDefs.GetQuery("SelectTopNInventoryCosts", new string[] { RecordSetCount.ToString() }); var CostMetrics = db.Database .SqlQuery<InventoryCostMetric>(strSQL); mobjInventoryTypes = CostMetrics .GroupBy(w => w.InventoryType) .Select(w => w.Key) .ToList(); mobjWarehouses = CostMetrics .GroupBy(w => w.Warehouse) .Select(w => w.Key) .ToList(); switch (InventoryCostGroup) { case InventoryCostGroup.InventoryType: GroupCollectionDataByInventoryType(CostMetrics); PopulateSeriesDataSetsByInventoryType(); break; case InventoryCostGroup.Warehouse: GroupCollectionDataByWarehouse(CostMetrics); PopulateSeriesDataSetsByWarehouse(); break; case InventoryCostGroup.Purchased: GetCollectionDataByInventoryType(CostMetrics, "Purchased"); break; case InventoryCostGroup.Manufactured: GetCollectionDataByInventoryType(CostMetrics, "Manufactured"); break; case InventoryCostGroup.WIP: GetCollectionDataByInventoryType(CostMetrics, "WIP"); break; case InventoryCostGroup.None: GetCollectionData(CostMetrics); break; } }
private void GroupCollectionDataByInventoryType(IEnumerable<InventoryCostMetric> objCostMetrics) { var db = new DashboardDbEntities(); CollectionData = objCostMetrics .GroupBy(c => new { c.InventoryType, c.DateCreated }) .Select(c => new InventoryCostMetric { InventoryType = c.Key.InventoryType, DateCreated = c.Key.DateCreated, Cost = c.Sum(m => m.Cost) }) .OrderBy(c => c.DateCreated) .ToList(); }