コード例 #1
0
        private void AddSubJob()
        {
            SubJob subjob = SelectedSubJob.Copy();

            SelectedJob.Subjobs.Add(subjob);
            SelectedSubJob = subjob;
        }
コード例 #2
0
        public IActionResult AddSubJob(string id, bool list = false)
        {
            //First get the Absence Request
            AbsenceRequest absenceRequest = data.AbsenceRequests.Get(new QueryOptions <AbsenceRequest>
            {
                Include = "DurationType, AbsenceRequestPeriods, User, SubJob, SubJob.User, SubJob.SubJobStatus",
                Where   = ar => ar.AbsenceRequestId == id,
            });

            //Then copy the absence values to the new sub job.
            SubJob subJob = new SubJob
            {
                StartDate      = absenceRequest.StartDate,
                EndDate        = absenceRequest.EndDate,
                StartTime      = absenceRequest.StartTime,
                EndTime        = absenceRequest.EndTime,
                DurationTypeId = absenceRequest.DurationTypeId,
                SubJobStatus   = data.SubJobStatuses.List().Where(ct => ct.Name == "Unfilled").FirstOrDefault(),
                AbsenceRequest = absenceRequest
            };

            data.SubJobs.Insert(subJob);
            data.Save();


            if (list)
            {
                return(RedirectToAction("List"));
            }
            else
            {
                return(RedirectToAction("Details", new { ID = absenceRequest.AbsenceRequestId }));
            }
        }
コード例 #3
0
        public override void Work()
        {
            if (SubJob == null)
            {
                Logger.Log("Construct.Work doing self work", Logger.DEBUG);
                WorkRequired--;
                if (WorkRequired <= 0)
                {
                    Logger.Log("Construct.Work Finishing", Logger.DEBUG);
                    Finish();
                }
            }
            else
            {
                Logger.Log("Construct.Work doing SubJob.Work", Logger.DEBUG);
                SubJob.Work();
                Location = SubJob.GetLocation();
                if (SubJob.Completed)
                {
                    Logger.Log("Construct.Work SubJob Completed", Logger.DEBUG);
                    var j = (Haul)SubJob;
                    foreach (var c in j.Carried)
                    {
                        CapturedResources.Add(c);
                    }

                    j.Carried = new List <Entity>();
                    j.ReleaseOwnership();

                    SubJob = null;
                    GenerateNextStep();
                }
            }
        }
コード例 #4
0
 private bool CanDelete(SubJob p)
 {
     if (SelectedJob == null || SelectedJob.Subjobs == null)
     {
         return(false);
     }
     return(SelectedJob.Subjobs.Contains(p));
 }
コード例 #5
0
        private void DeleteJob(SPWebApplication webApp)
        {
            SubJob subJob = webApp.JobDefinitions.OfType <SubJob>().FirstOrDefault();

            if (subJob != null)
            {
                subJob.Delete();
            }
        }
コード例 #6
0
 public override Point GetLocation()
 {
     if (SubJob == null)
     {
         Logger.Log("Construct job returning it's own location", Logger.DEBUG);
         return(Location);
     }
     Logger.Log("Construct job returning Subjob Location", Logger.DEBUG);
     return(SubJob.GetLocation());
 }
コード例 #7
0
        public void createSubJob(int stage, SubJob job)
        {
            if (stage <= this.progress)
            {
                throw new System.Exception("stage small than progress");
            }

            if (stage > 100)
            {
                stage = 100;
            }

            job(new HpScheduleSubContext(this, stage));
        }
コード例 #8
0
        private void RegisterJob(SPWebApplication webApp)
        {
            DeleteJob(webApp);

            SubJob job = new SubJob(webApp, "http://localhost");

            SPMinuteSchedule scheduleSubJob = new SPMinuteSchedule();

            scheduleSubJob.BeginSecond = 0;
            scheduleSubJob.EndSecond   = 15;
            scheduleSubJob.Interval    = 1;

            job.Schedule = scheduleSubJob;
            job.Update();
        }
コード例 #9
0
        //     [TestMethod]
        //     public void CreateJob()
        //     {

        //         //CanvasSize canvasSize = new CanvasSize(1440, 960);
        //CanvasSize canvasSize = new CanvasSize(188, 125);

        ////Size canvasSize = new Size(7200, 4800);
        ////Size canvasSize = new Size(10800, 7200);
        ////Size canvasSize = new Size(14400, 9600);
        ////Size canvasSize = new Size(21600, 14400);

        ////DPoint leftBot = new DPoint(-0.7764118407199196, 0.13437492059936854);
        ////DPoint rightTop = new DPoint(-0.7764117329761986, 0.13437499747905846);

        //DPoint leftBot = new DPoint(-2, -1);
        //DPoint rightTop = new DPoint(1, 1);


        //int maxIterations = 100;
        //         MapInfo mapInfo = new MapInfo(leftBot, rightTop, maxIterations);

        //SCoords coords = new SCoords(new SPoint(leftBot), new SPoint(rightTop));
        //MapSection area = new MapSection(new Point(0, 0), canvasSize.GetWholeUnits(Engine.BLOCK_SIZE));

        //string connectionId = "dummy";

        //SMapWorkRequest mapWorkRequest = new SMapWorkRequest("FET", coords, canvasSize, area, maxIterations, connectionId);

        //Job job = new Job(mapWorkRequest);
        //mapWorkRequest.JobId = job.JobId;

        //SubJob subJob = null;
        //while((subJob = job.GetNextSubJob()) != null)
        //{
        //	int lx = subJob.MapSectionWorkRequest.MapSection.SectionAnchor.X;
        //	ProcessSubJob(subJob);
        //}
        //     }

        private void ProcessSubJob(SubJob subJob)
        {
            MapSectionWorkRequest mswr = subJob.MapSectionWorkRequest;

            //MapWorkingData2 workingData = new MapWorkingData2(mswr.MapSection.CanvasSize, mswr.MaxIterations, mswr.XValues, mswr.YValues);
            //int[] packedCntsAndEscVels = workingData.GetValues();

            Job parentJob = subJob.ParentJob as Job;

            double[] xValues = parentJob.SamplePoints.XValueSections[subJob.MapSectionWorkRequest.HPtr];
            double[] YValues = parentJob.SamplePoints.YValueSections[subJob.MapSectionWorkRequest.VPtr];


            MapCalculator workingData = new MapCalculator();

            int[] packedCntsAndEscVels = workingData.GetValues(xValues, YValues, subJob.MapSectionWorkRequest.MaxIterations);
        }
コード例 #10
0
        public async void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            var cnx = Maincnx;


            var item = e.SelectedItem as JobCell;

            Job _item = new Job();

            _item = item.job;


            string jobKey = String.Format("/api/api/5?id=id$~{0}~cmd$~getjobdetails~{1}", cnx.ID, item.JobNumber);

            //List<MegaParser.groupitem> groupitems = MegaParser.ParseJobs(await GetJob(jobKey, cnx.Token));

            string rawJson = await GetJob(jobKey, cnx.Token);

            if (connected == false)
            {
                return;
            }

            if (rawJson == "no jobs" || string.IsNullOrEmpty(rawJson))
            {
                await DisplayAlert("No Info", "No Further Information", "ok");

                Console.WriteLine("RETURNED: no jobs");
                updateList(Maincnx, null);
            }
            else if (rawJson[0] != '[')
            {
                await DisplayAlert("No Info", "No Further Information", "ok");

                Console.WriteLine("RETURNED: Improper Format");
                updateList(Maincnx, null);
            }
            else
            {
                var x = JobsFromJson.FromJson(rawJson);

                List <SubJob> _subJobs = new List <SubJob>();

                foreach (Dictionary <string, string> i in x)
                {
                    SubJob sj = new SubJob();

                    if (i["subjob"] == "")
                    {
                        sj.Subjob = 0;
                    }
                    else
                    {
                        sj.Subjob = Convert.ToInt32(i["subjob"]);
                    }

                    if (i["esent"] == "")
                    {
                        sj.Sent = 0;
                    }
                    else
                    {
                        sj.Sent = Convert.ToInt32(i["esent"]);
                    }

                    sj.Status      = i["status"];
                    sj.Created     = i["created"];
                    sj.Description = i["description"];
                    sj.GrossValue  = i["grossValue"];
                    sj.NetValue    = i["netValue"];
                    sj.VatValue    = i["vatValue"];
                    sj.Notes       = i["notes"];

                    _subJobs.Add(sj);
                }

                List <Job> subjobs = new List <Job>();

                foreach (SubJob _sj in _subJobs)
                {
                    Job job = new Job();
                    if (_sj.Description == "none")
                    {
                        _sj.Description = "";
                    }

                    if (_sj.GrossValue == null || _sj.GrossValue == "")
                    {
                        if (_item.grossValue == null || _item.grossValue == 0)
                        {
                            _sj.GrossValue = "0.00";
                            job.grossValue = Convert.ToDouble(_sj.GrossValue);
                        }
                        else if (_sj.Subjob == 0)
                        {
                            job.grossValue = _item.grossValue;
                        }
                    }
                    else
                    {
                        job.grossValue = Convert.ToDouble(_sj.GrossValue);
                    }

                    if (_sj.NetValue == null || _sj.NetValue == "")
                    {
                        if (_item.netValue == null || _item.netValue == 0)
                        {
                            _sj.NetValue = "0.00";
                            job.netValue = Convert.ToDouble(_sj.NetValue);
                        }
                        else if (_sj.Subjob == 0)
                        {
                            job.netValue = _item.netValue;
                        }
                    }
                    else
                    {
                        job.netValue = Convert.ToDouble(_sj.NetValue);
                    }

                    if (_sj.VatValue == null || _sj.VatValue == "")
                    {
                        if (_item.vatValue == null || _item.vatValue == 0)
                        {
                            _sj.VatValue = "0.00";
                            job.vatValue = Convert.ToDouble(_sj.VatValue);
                        }
                        else if (_sj.Subjob == 0)
                        {
                            job.vatValue = _item.vatValue;
                        }
                    }
                    else
                    {
                        job.vatValue = Convert.ToDouble(_sj.VatValue);
                    }



                    job.job         = _item.job;
                    job.subjob      = _sj.Subjob;
                    job.status      = _sj.Status;
                    job.created     = Convert.ToDateTime(_sj.Created, System.Globalization.CultureInfo.CreateSpecificCulture("en-GB"));
                    job.add1        = _item.add1;
                    job.add2        = _item.add2;
                    job.add3        = _item.add3;
                    job.add4        = _item.add4;
                    job.addpc       = _item.addpc;
                    job.awarded     = _item.awarded;
                    job.buildername = _item.buildername;
                    job.description = _sj.Description;
                    job.sentcount   = _sj.Sent;
                    job.Notes       = _sj.Notes;

                    subjobs.Add(job);
                }


                if (subjobs.Count == 1)
                {
                    JobCell _job = new JobCell
                    {
                        JobColor    = StatusSorter.JobNumberColor(subjobs[0]),
                        Status      = StatusSorter.StatusText(subjobs[0]),
                        StatusColor = StatusSorter.StatusColor(subjobs[0]),
                        CellColor   = StatusSorter.CellColor(subjobs[0]),
                        Add1        = subjobs[0].add1,
                        Add2        = subjobs[0].add2,
                        Add3        = subjobs[0].add3,
                        Add4        = subjobs[0].add4,
                        AddPC       = subjobs[0].addpc,
                        Awarded     = subjobs[0].awarded,
                        Builder     = subjobs[0].buildername,
                        Created     = subjobs[0].created,
                        Description = subjobs[0].description,
                        JobNumber   = subjobs[0].job.ToString(),
                        SentCount   = subjobs[0].sentcount,
                        GrossValue  = subjobs[0].grossValue,
                        NetValue    = subjobs[0].netValue,
                        VatValue    = subjobs[0].vatValue,
                        Notes       = subjobs[0].Notes,
                        noSubs      = true,

                        job = _item
                    };


                    await Navigation.PushAsync(new JobSpecific(cnx, _job, false));
                }
                else
                {
                    await Navigation.PushAsync(new Subjobs_List(cnx, subjobs, _item));
                }
            }
        }
コード例 #11
0
        public void SetDefinitionModel(Resource resource, IEnumerable <CMSDDocumentDataSectionJob> CMSDjobs)
        {
            foreach (ResourceProperty resourceProperty in resource.Property)
            {
                if (resourceProperty != null)
                {
                    switch (resourceProperty.Name)
                    {
                    case "MTTR":
                        var distsource = resourceProperty.Distribution.First();
                        MTTR.Distribution = IDistribution.GetFromCmsd(distsource);
                        MTTR.Distribution.ParameterConverter.UnitType = GeneralConverter.GetInstance(resourceProperty.Unit);
                        break;

                    case "MTBF":
                        distsource        = resourceProperty.Distribution.First();
                        MTBF.Distribution = IDistribution.GetFromCmsd(distsource);
                        MTBF.Distribution.ParameterConverter.UnitType = GeneralConverter.GetInstance(resourceProperty.Unit);
                        break;

                    case "Capacity":
                        try
                        {
                            Capacity = Int32.Parse(resourceProperty.Value);
                        }
                        catch
                        {
                        }
                        break;

                    case "Speed":
                        try
                        {
                            Speed = Int32.Parse(resourceProperty.Value, CultureInfo.InvariantCulture);
                        }
                        catch
                        {
                        }
                        break;

                    case "DistanceToNode":
                        try
                        {
                            DistansToNode = int.Parse(resourceProperty.Value, CultureInfo.InvariantCulture);
                        }
                        catch
                        { }
                        break;
                    }
                }
            }

            ProcessName = resource.Name;

            AddConsumption(resource.Property.FirstOrDefault(t => t.Name.StartsWith("Idle")), Idle);
            AddConsumption(resource.Property.FirstOrDefault(t => t.Name.StartsWith("Off")), Off);
            AddConsumption(resource.Property.FirstOrDefault(t => t.Name.StartsWith("Down")), Down);

            Job.Clear();
            var cmsdDocumentDataSectionJobs = CMSDjobs as IList <CMSDDocumentDataSectionJob> ?? CMSDjobs.ToList();

            foreach (var sectionJob in cmsdDocumentDataSectionJobs.Where(t => t.Identifier.StartsWith("BaseJob")))
            {
                var job = new Job()
                {
                    Name = sectionJob.Identifier.Remove(0, 7).Replace(ProcessName, "")
                };
                AddConsumption(resource.Property.FirstOrDefault(t => t.Name.Contains(job.Name)), job.State);
                job.Subjobs.Clear();
                foreach (var pointSubJob in sectionJob.SubJob)
                {
                    var cmsdSubJob = cmsdDocumentDataSectionJobs.FirstOrDefault(t => t.Identifier == pointSubJob.JobIdentifier);
                    if (cmsdSubJob != null)
                    {
                        var sub = new SubJob()
                        {
                            Description  = cmsdSubJob.Description,
                            Distribution = IDistribution.GetFromCmsd(cmsdSubJob.PlannedEffort.ProcessingTime.Distribution)
                        };
                        sub.Distribution.ParameterConverter.UnitType = GeneralConverter.TimeConverters.FirstOrDefault(
                            t => t.ToString() == cmsdSubJob.PlannedEffort.ProcessingTime.TimeUnit);
                        job.Subjobs.Add(sub);
                    }
                }

                Job.Add(job);
                LoadDistances(new [] { this }, new [] { resource });
            }
            foreach (var reloadJob in _reloadJobs)
            {
                var productcollection = reloadJob.Key.Nodes.Where(t => t.Key.ResourceModel == this).GetEnumerator();
                foreach (var jobstring in reloadJob.Value)
                {
                    productcollection.MoveNext();
                    productcollection.Current.Value = Job.First(t => t.Name == jobstring);
                }
            }
        }
コード例 #12
0
 private void Delete(SubJob result)
 {
     SelectedJob.Subjobs.Remove(result);
     SelectedSubJob = new SubJob();
 }
コード例 #13
0
        private static ModelNode LoadModelNode(Resource resource, IEnumerable <CMSDDocumentDataSectionJob> CMSDjobs)
        {
            var modelnode = new ModelNode();

            if (resource.ResourceType.Contains("Machine"))
            {
                modelnode = new Machine();
            }
            else if (resource.ResourceType.Contains("Facility"))
            {
                modelnode = new Facility();
            }
            else if (resource.ResourceType.Contains("Buffer"))
            {
                modelnode = new UserControles.Buffer();
            }
            else if (resource.ResourceType.Contains("Transport"))
            {
                modelnode = new Transport();
            }

            double left = 0, top = 0;

            foreach (ResourceProperty resourceProperty in resource.Property)
            {
                switch (resourceProperty.Name)
                {
                case "XGrid":
                    left = double.Parse(resourceProperty.Value);
                    break;

                case "YGrid":
                    top = double.Parse(resourceProperty.Value);
                    break;

                case "MTTR":
                    var distsource = resourceProperty.Distribution.First();
                    modelnode.ResourceModel.MTTR.Distribution = DataLayer.IDistribution.GetFromCmsd(distsource);
                    modelnode.ResourceModel.MTTR.Distribution.ParameterConverter.UnitType = GeneralConverter.GetInstance(resourceProperty.Unit);
                    break;

                case "MTBF":
                    distsource = resourceProperty.Distribution.First();
                    modelnode.ResourceModel.MTBF.Distribution = DataLayer.IDistribution.GetFromCmsd(distsource);
                    modelnode.ResourceModel.MTBF.Distribution.ParameterConverter.UnitType = GeneralConverter.GetInstance(resourceProperty.Unit);
                    break;

                case "Capacity":
                    try
                    {
                        modelnode.ResourceModel.Capacity = int.Parse(resourceProperty.Value);
                    }
                    catch {}
                    break;

                case "Speed":
                    try
                    {
                        modelnode.ResourceModel.Speed = int.Parse(resourceProperty.Value, CultureInfo.InvariantCulture);
                    }
                    catch
                    {}
                    break;

                case "DistanceToNode":
                    try
                    {
                        modelnode.ResourceModel.DistansToNode = int.Parse(resourceProperty.Value, CultureInfo.InvariantCulture);
                    }
                    catch
                    { }
                    break;
                }
            }

            modelnode.Margin = new Thickness(left, top, 0, 0);
            modelnode.XGrid  = left;
            modelnode.YGrid  = top;
            modelnode.ResourceModel.ProcessName = resource.Name;

            AddConsumption(resource.Property.Where(t => t.Name.StartsWith("IdleTime")), modelnode.ResourceModel.Idle);
            AddConsumption(resource.Property.Where(t => t.Name.StartsWith("Off")), modelnode.ResourceModel.Off);
            AddConsumption(resource.Property.Where(t => t.Name.StartsWith("Down")), modelnode.ResourceModel.Down);

            modelnode.ResourceModel.Job.Clear();
            var cmsdDocumentDataSectionJobs = CMSDjobs as IList <CMSDDocumentDataSectionJob> ?? CMSDjobs.ToList();

            foreach (var sectionJob in cmsdDocumentDataSectionJobs.Where(t => t.Identifier.StartsWith("BaseJob")))
            {
                var job = new Job()
                {
                    Name = sectionJob.Identifier.Remove(0, 7).Replace(modelnode.ResourceModel.ProcessName, "")
                };

                AddConsumption(resource.Property.Where(t => t.Name.StartsWith(job.Name)), job.State);
                job.Subjobs.Clear();
                foreach (var pointSubJob in sectionJob.SubJob)
                {
                    var cmsdSubJob = cmsdDocumentDataSectionJobs.FirstOrDefault(t => t.Identifier == pointSubJob.JobIdentifier);
                    if (cmsdSubJob != null)
                    {
                        var sub = new SubJob()
                        {
                            Description  = cmsdSubJob.Description,
                            Distribution = IDistribution.GetFromCmsd(cmsdSubJob.PlannedEffort.ProcessingTime.Distribution)
                        };
                        sub.Distribution.ParameterConverter.UnitType = GeneralConverter.TimeConverters.FirstOrDefault(
                            t => t.ToString() == cmsdSubJob.PlannedEffort.ProcessingTime.TimeUnit);
                        job.Subjobs.Add(sub);
                    }
                }

                modelnode.ResourceModel.Job.Add(job);
            }
            return(modelnode);
        }