Exemple #1
0
        public static void ProcessWOsStartingAtEnforced()
        {
            //Unenforce WOs (from enforced state)
            using (var thas01 = new thas01Entities())
            {
                thas01.Database.CommandTimeout = 50000;

                int enforcedCounter = 1;

                try
                {
                    //Get only remaining error WOs - set back to enforce

                    PrepareCompletedWorksOrdersForEnforcedRun(thas01);

                    var completedWOs = thas01.THAS_CONNECT_GetCompletedWorksorders().ToList();
                    var enforcedWOs  = completedWOs.Where(x => x.WorksOrderCostStatusCode == 3).ToList();

                    //Run enforce on error WOs

                    RunEnforcedWorksOrders(enforcedWOs, enforcedCounter, thas01);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("WO Costing failed. " + ex.Message + ex.InnerException);
                }
            }
        }
Exemple #2
0
        public static void PrepareEnforcedWorksOrdersForOrganicRun(thas01Entities thas01)
        {
            // will set back any enforced works orders to an unchecked state so it can be considered by the normal wo costing application agent.

            Console.WriteLine("Attempting to prep enforced works orders.");
            thas01.THAS_CONNECT_WOCostingOrganicPrep();
            Console.Write("Prepped enforced works orders for organic run.");
        }
Exemple #3
0
 public static void PrepareCompletedWorksOrdersForEnforcedRun(thas01Entities thas01)
 {
     // will set completed works orders to the required state for an enforced run.
     try
     {
         Console.WriteLine("Attempting to prep error works orders.");
         thas01.THAS_CONNECT_WOCostingEnforcePrep();
         Console.Write("Prepped error works orders for enforced run.");
     }
     catch (Exception ex)
     {
         Console.WriteLine("Enforced prep failed. " + ex.Message + ex.InnerException);
     }
 }
Exemple #4
0
        public static void ProcessOrganicWOsWithoutPrep()
        {
            using (var thas01 = new thas01Entities())
            {
                thas01.Database.CommandTimeout = 50000;
                var completedWOs    = thas01.THAS_CONNECT_GetCompletedWorksorders().ToList();
                var unenforcedWOs   = completedWOs.Where(x => x.WorksOrderCostStatusCode == 1).ToList();
                int enforcedCounter = 1;

                try
                {
                    RunUnenforcedWorksOrders(unenforcedWOs, enforcedCounter, thas01);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("WO Costing failed. " + ex.Message + ex.InnerException);
                }
            }
        }
Exemple #5
0
        public static void RunErrorWorksOrders(List <THAS_CONNECT_GetCompletedWorksorders_Result> errorWOs, int woCounter, int woSuccessCounter, int woFailCounter, thas01Entities thas01)
        {
            foreach (var wo in errorWOs)
            {
                Logger.Log("WO Count: " + woCounter);
                woCounter++;

                var count = 1;
                Logger.Log("Attempting to Cost " + wo.WorksOrderNumber + "...");

                //prepare works order
                var woFromDb  = thas01.WorksOrders.Where(x => x.WorksOrderNumber == wo.WorksOrderNumber).First();
                var wotFromDb = thas01.WorksOrderTransfers.Where(x => x.WorksOrderNumber == wo.WorksOrderNumber).First();

                woFromDb.WorksOrderCostStatusCode  = 1;
                wotFromDb.WorksOrderCostStatusCode = 1;
                thas01.SaveChanges();

                //end works order preparation

                thas01.CostCompletedWO_CostWorksOrder(wo.WorksOrderNumber, "/A", 1);

                Logger.Log("Stored Procedure Finished Running...");


                var thisWO = thas01.THAS_CONNECT_GetSingleWorksOrder(wo.WorksOrderNumber).First();

                if (thisWO.WorksOrderStatusCode == 5)
                {
                    //Must have costed successfully
                    Logger.Log(thisWO.WorksOrderNumber + " Has Been Costed Successfully. Works Order Cost Status: " + thisWO.WorksOrderCostStatusCode + ". WO Success Count: " + woSuccessCounter);
                    woSuccessCounter++;
                }
                else if (thisWO.WorksOrderCostStatusCode == 2)
                {
                    Logger.Log(thisWO.WorksOrderNumber + " Has Failed To Be Costed..." + " WO Fail Count: " + woFailCounter);
                    woFailCounter++;
                }
                while (thisWO.WorksOrderCostStatusCode == 1 && count < 10)
                {
                    //Still ongoing
                    Logger.Log(thisWO.WorksOrderNumber + " Is Still Processing... Check " + count);
                    count++;
                }
            }
        }
Exemple #6
0
        public static void RunUnenforcedWorksOrders(List <THAS_CONNECT_GetCompletedWorksorders_Result> untriedWOs, int woCounter, thas01Entities thas01)
        {
            var thousCounter  = 0;
            var deadlockCount = 0;

            Logger.Log("Start Time: " + DateTime.Now);

            foreach (var wo in untriedWOs)
            {
                try
                {
                    woCounter++;
                    if (woCounter % 1000 == 0)
                    {
                        thousCounter += 1;
                        Logger.Log("Processed : " + thousCounter + "k records. Deadlock Count: " + deadlockCount + ". Time is now: " + DateTime.Now);
                    }
                }
                catch (Exception)
                {
                    deadlockCount++;
                }

                var origWOCostStatus = wo.WorksOrderCostStatusCode;
                var count            = 1;

                thas01.CostCompletedWO_CostWorksOrder(wo.WorksOrderNumber, "/A", 1);

                var thisWO = thas01.THAS_CONNECT_GetSingleWorksOrder(wo.WorksOrderNumber).First();

                //if (thisWO.WorksOrderStatusCode == 5)
                //{
                //    //Must have costed successfully
                //    Logger.Log(thisWO.WorksOrderNumber + " Has Been Costed Successfully. Works Order Cost Status: " + thisWO.WorksOrderCostStatusCode);
                //    count++;
                //}
                //else if (thisWO.WorksOrderCostStatusCode == 2)
                //{
                //    Logger.Log(thisWO.WorksOrderNumber + " Has Failed To Be Costed...");
                //    count++;
                //}
                while (thisWO.WorksOrderCostStatusCode == origWOCostStatus && count < 10)
                {
                    //Still ongoing
                    Logger.Log(thisWO.WorksOrderNumber + " Is Still Processing... Check " + count);
                    count++;
                }
            }
        }
Exemple #7
0
        public static void ProcessWOsNormally()
        {
            //Unenforce WOs (from enforced state)
            using (var thas01 = new thas01Entities())
            {
                thas01.Database.CommandTimeout = 50000;
                int unenforcedCounter = 1;
                int enforcedCounter   = 1;

                try
                {
                    try
                    {
                        PrepareEnforcedWorksOrdersForOrganicRun(thas01);

                        try
                        {
                            //Run organically
                            var liveWOs    = thas01.THAS_CONNECT_GetCompletedWorksorders().ToList();
                            var untriedWOs = liveWOs.Where(x => x.WorksOrderCostStatusCode == 1).ToList();

                            RunUnenforcedWorksOrders(untriedWOs, unenforcedCounter, thas01);

                            try
                            {
                                //Get only remaining error WOs - set back to enforce

                                PrepareCompletedWorksOrdersForEnforcedRun(thas01);

                                try
                                {
                                    //Run enforce on error WOs

                                    var liveWOs2    = thas01.THAS_CONNECT_GetCompletedWorksorders().ToList();
                                    var enforcedWOs = liveWOs2.Where(x => x.WorksOrderCostStatusCode == 3).ToList();

                                    RunEnforcedWorksOrders(enforcedWOs, enforcedCounter, thas01);
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("Enforced WO run error. " + ex.Message + ex.InnerException);
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("Enforced prep error. " + ex.Message + ex.InnerException);
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Organic WO run error. " + ex.Message + ex.InnerException);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Organic run prep error. " + ex.Message + ex.InnerException);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("WO Costing failed. " + ex.Message + ex.InnerException);
                }
            }
        }
Exemple #8
0
        public static void RunEnforcedWorksOrders(List <THAS_CONNECT_GetCompletedWorksorders_Result> enforcedWOs, int woCounter, thas01Entities thas01)
        {
            var deadlockCount = 0;
            var thousCounter  = 0;

            Logger.Log("Start Time: " + DateTime.Now);

            foreach (var wo in enforcedWOs)
            {
                try
                {
                    woCounter++;
                    if (woCounter % 1000 == 0)
                    {
                        thousCounter += 1;
                        Logger.Log("Processed : " + thousCounter + "k records. Time is now: " + DateTime.Now);
                    }

                    var count = 1;

                    ////prepare works order
                    //var woFromDb = thas01.WorksOrders.Where(x => x.WorksOrderNumber == wo.WorksOrderNumber).First();
                    //var wotFromDb = thas01.WorksOrderTransfers.Where(x => x.WorksOrderNumber == wo.WorksOrderNumber).First();

                    //woFromDb.WorksOrderCostStatusCode = 3;
                    //wotFromDb.WorksOrderCostStatusCode = 3;
                    //wotFromDb.IsEnforced = true;
                    //thas01.SaveChanges();

                    //end works order preparation

                    thas01.CostCompletedWO_CostWorksOrder(wo.WorksOrderNumber, "/A", 1);

                    //Logger.Log("Stored Procedure Finished Running...");

                    var thisWO = thas01.THAS_CONNECT_GetSingleWorksOrder(wo.WorksOrderNumber).First();

                    //if (thisWO.WorksOrderStatusCode == 5)
                    //{
                    //    //Must have costed successfully
                    //    Logger.Log(thisWO.WorksOrderNumber + " Has Been Costed Successfully. Works Order Cost Status: " + thisWO.WorksOrderCostStatusCode + ". WO Success Count: " + woSuccessCounter);
                    //    woSuccessCounter++;
                    //}
                    //else if (thisWO.WorksOrderCostStatusCode == 2)
                    //{
                    //    Logger.Log(thisWO.WorksOrderNumber + " Has Failed To Be Costed..." + " WO Fail Count: " + woFailCounter);
                    //    woFailCounter++;
                    //}
                    while (thisWO.WorksOrderCostStatusCode == 1 && count < 10)
                    {
                        //Still ongoing
                        Logger.Log(thisWO.WorksOrderNumber + " Is Still Processing... Check " + count);
                        count++;
                    }
                }
                catch (Exception)
                {
                    deadlockCount++;
                }
            }
        }