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();
        }
示例#3
0
        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();
        }