コード例 #1
0
ファイル: CaseSdk.cs プロジェクト: israelsam/Qantler
 public async Task <long> ScheduleInspection(long id, CaseScheduleInspectionParam data)
 {
     return(await _requestProvider.BuildUpon(_url)
            .Uri($"/api/case/{id}/inspection")
            .Method(HttpMethod.Post)
            .Content(new JsonContent(data))
            .AddInterceptor(new JsonDeserializerInterceptor())
            .Execute <long>());
 }
コード例 #2
0
ファイル: CaseService.cs プロジェクト: israelsam/Qantler
        public async Task <long> ScheduleInspection(long caseID,
                                                    CaseScheduleInspectionParam data, Officer officer)
        {
            var @case = await _apiClient.CaseSdk.GetCaseByID(caseID);

            var premise   = @case.Premises.Where(x => x.ID == data.PremiseID).FirstOrDefault();
            var lineItems = new List <JobOrderLineItem>();

            var certificates = @case.Certificates.Where(x => x.PremiseID == data.PremiseID).GroupBy(x => x.Scheme).Select(x => x.FirstOrDefault()).ToList();

            foreach (var caseLineItem in certificates)
            {
                var checklist = _apiClient.ChecklistSdk.GetLatest(caseLineItem.Scheme);

                lineItems.Add(new JobOrderLineItem
                {
                    Scheme             = caseLineItem.Scheme,
                    SubScheme          = caseLineItem.SubScheme,
                    ChecklistHistoryID = checklist.Id
                });
            }

            var jobOrder = new ScheduleJobOrderParam
            {
                RefID         = caseID,
                Type          = data.Type,
                Status        = JobOrderStatus.Pending,
                ScheduledOn   = data.ScheduledOn,
                ScheduledOnTo = data.ScheduledOnTo,
                Notes         = data.Notes,
                Officer       = new Officer
                {
                    ID   = officer.ID,
                    Name = officer.Name
                },
                Customer = new Model.Customer
                {
                    ID   = @case.Offender.ID,
                    Name = @case.Offender.Name
                },
                Premises = new List <Premise>
                {
                    premise
                },
                LineItems = lineItems
            };

            data.JobOrderID = (await _apiClient.JobOrderSdk.Submit(jobOrder)).ID;

            var result = await _apiClient.CaseSdk.ScheduleInspection(caseID, data);

            return(result);
        }
コード例 #3
0
 public ScheduleInspectionCommand(long caseID, CaseScheduleInspectionParam data, Officer user)
 {
     _data   = data;
     _user   = user;
     _caseID = caseID;
 }
コード例 #4
0
ファイル: CaseController.cs プロジェクト: israelsam/Qantler
 public async Task <long> Inspection(long id, CaseScheduleInspectionParam data,
                                     Guid userID, string username)
 {
     return(await _caseService.ScheduleInspection(id, data, new Officer(userID, username)));
 }
コード例 #5
0
ファイル: CaseController.cs プロジェクト: israelsam/Qantler
 public async Task <long> ScheduleInspection(long id,
                                             [FromBody] CaseScheduleInspectionParam data)
 {
     return(await _caseService.ScheduleInspection(id, data, new Officer(User.GetUserId(), User.GetName())));
 }
コード例 #6
0
 public async Task <long> ScheduleInspection(long caseID,
                                             CaseScheduleInspectionParam data, Officer user)
 {
     return(await Execute(new ScheduleInspectionCommand(caseID, data, user)));
 }