Ejemplo n.º 1
0
 public static WorkApplication Populate(String applicationName)
 {
     try {
         marcdissertation_dbEntities ctxt = new marcdissertation_dbEntities();
         WorkApplication             wa   = (from x in ctxt.WorkApplications
                                             where x.ApplicationName == applicationName
                                             select x).First();
         wa.context = ctxt;
         return(wa);
     } catch {
         throw new Exception("Application with name given does not exist");
     }
 }
Ejemplo n.º 2
0
 public static WorkApplication Populate(int ApplicationId)
 {
     try {
         marcdissertation_dbEntities ctxt = new marcdissertation_dbEntities();
         WorkApplication             wa   = (from x in ctxt.WorkApplications
                                             where x.ApplicationId.Equals(ApplicationId)
                                             select x).First();
         wa.context = ctxt;
         return(wa);
     } catch {
         throw new Exception("Application with ID given does not exist");
     }
 }
Ejemplo n.º 3
0
        public static List <WorkOrder> GetWorkOrdersRequiringReassignment()
        {
            marcdissertation_dbEntities ctxt = new marcdissertation_dbEntities();

            IEnumerable <WorkOrder> wos = (from x in ctxt.WorkOrders
                                           where x.WorkOrderStatus == "SLAVE_ACKNOWLEDGED"
                                           select x);

            // Get distinct app IDs
            IEnumerable <int> appIds = wos.Select(x => x.ApplicationId).Distinct();

            List <WorkOrder> offendingWorkOrders = new List <WorkOrder>();

            foreach (int appId in appIds)
            {
                // Get average then go thru the WOs in turn
                WorkApplication wa             = WorkApplication.Populate(appId);
                double          avgComputeTime = wa.GetAverageComputeTime();

                if (avgComputeTime == 0 || double.IsNaN(avgComputeTime))
                {
                    // New app, give 2 mins
                    avgComputeTime += 120;
                }
                else
                {
                    // Give some leeway
                    avgComputeTime += 40;
                }

                foreach (WorkOrder wo in wos)
                {
                    if (wo.ApplicationId == appId)
                    {
                        double waitTime = (DateTime.Now - wo.SlaveWorkerSubmit.Value).TotalSeconds;

                        if (waitTime > avgComputeTime)
                        {
                            offendingWorkOrders.Add(wo);
                        }
                    }
                }

                //List<WorkOrder> woss = wos.Where(x=> x.ApplicationId == appId && avgComputeTime <(DateTime.Now - x.SlaveWorkerSubmit.Value).Seconds).ToList();

                //offendingWorkOrders.AddRange(woss);
            }

            return(offendingWorkOrders);
        }
Ejemplo n.º 4
0
        public static WorkApplication CreateApplication(string applicationName, string applicationDescription, string applicationCreator, string applicationPackageUrl, string applicationWorkIntent, string applicationNamespace, int applicationVersion = 1)
        {
            WorkApplication wa = new WorkApplication();
            wa.ApplicationName = applicationName;
            wa.ApplicationCreator = applicationCreator;
            wa.ApplicationDescription = applicationDescription;
            wa.ApplicationPackageURL = applicationPackageUrl;
            wa.ApplicationWorkIntent = applicationWorkIntent;
            wa.ApplicationVersion = applicationVersion;
            wa.ApplicationNamespace = applicationNamespace;
            wa.context = new marcdissertation_dbEntities();

            wa = wa.context.WorkApplications.Add(wa);
            errors = wa.context.GetValidationErrors();

            try {
                wa.context.SaveChanges();
            } catch {
                throw App.ExceptionFormatter(errors);
            }
            return wa;
        }
Ejemplo n.º 5
0
        public static WorkApplication CreateApplication(string applicationName, string applicationDescription, string applicationCreator, string applicationPackageUrl, string applicationWorkIntent, string applicationNamespace, int applicationVersion = 1)
        {
            WorkApplication wa = new WorkApplication();

            wa.ApplicationName        = applicationName;
            wa.ApplicationCreator     = applicationCreator;
            wa.ApplicationDescription = applicationDescription;
            wa.ApplicationPackageURL  = applicationPackageUrl;
            wa.ApplicationWorkIntent  = applicationWorkIntent;
            wa.ApplicationVersion     = applicationVersion;
            wa.ApplicationNamespace   = applicationNamespace;
            wa.context = new marcdissertation_dbEntities();

            wa     = wa.context.WorkApplications.Add(wa);
            errors = wa.context.GetValidationErrors();

            try {
                wa.context.SaveChanges();
            } catch {
                throw App.ExceptionFormatter(errors);
            }
            return(wa);
        }