示例#1
0
 public void Delete(int?visitId)
 {
     if (visitId.HasValue)
     {
         var parameters = new DialogParameters();
         parameters.Add(ParametersKeys.Message, CommonResources.WarningDelete);
         parameters.Add(ParametersKeys.Title, CommonResources.Warning);
         dialogService.ShowDialog(DialogNames.MessageDialog, parameters, (r) =>
         {
             if (r.Result == ButtonResult.OK)
             {
                 petsData.DeleteVisitById(visitId.Value);
                 var visit = Visits.FirstOrDefault(x => x.Id == visitId.Value);
                 Visits.Remove(visit);
             }
         }
                                  );
     }
 }
示例#2
0
        public void Edit(int?visitId)
        {
            if (visitId.HasValue)
            {
                var visit = Visits.FirstOrDefault(x => x.Id == visitId.Value);

                var parameters = new DialogParameters();
                parameters.Add(ParametersKeys.ViewModel, visit);
                dialogService.ShowDialog(DialogNames.VisitDialog, parameters, r =>
                {
                    if (r.Result == ButtonResult.OK)
                    {
                        visit.Update();

                        LoadData();
                    }
                    else
                    {
                        visit.SetValuesByOriginValues();
                    }
                });
            }
        }
示例#3
0
        public void UpdateStatusDueToAppointmentBooking(Visit bookedVisit, BookingRemark bookingRemark, UserRole userRole)
        {
            if (bookingRemark == null)
            {
                return;
            }

            // preconditions
            if (Status != WorkStatusType.VisitNeeded &&
                Status != WorkStatusType.VisitOpen)
            {
                return;
            }
            if (bookedVisit != null ||
                bookingRemark.ResultCode.Outcome != ResultCodeOutcomeType.Done)
            {
                WorkOrderRemarks.Add(bookingRemark);
            }

            // check when status VISIT_NEEDED
            if (Status == WorkStatusType.VisitNeeded)
            {
                if (bookingRemark.ResultCode.Outcome == ResultCodeOutcomeType.Done)
                {
                    if (bookedVisit != null)
                    {
                        var visit = Visits.FirstOrDefault(v => v.Id == bookedVisit.Id);
                        if (visit == null)
                        {
                            Visits.Add(bookedVisit);
                        }
                        else
                        {
                            visit.AppointmentWindowId = bookedVisit.AppointmentWindowId;
                            visit.AppointmentWindow   = bookedVisit.AppointmentWindow;
                            visit.WindowStart         = bookedVisit.WindowStart;
                            visit.WindowEnd           = bookedVisit.WindowEnd;
                        }
                    }
                }
                if (bookingRemark.ResultCode.Outcome == ResultCodeOutcomeType.Abort)
                {
                    ChangeStatusTo(WorkStatusType.Closed, userRole);
                }
            }

            // check when status VISIT_OPEN
            if (Status == WorkStatusType.VisitOpen)
            {
                var visit = Visits.OrderByDescending(v => v.WindowStart)
                            .FirstOrDefault();
                if (visit != null && visit.SuperState == VisitSuperStateType.Provisional)
                {
                    if (bookingRemark.ResultCode.Outcome == ResultCodeOutcomeType.Done &&
                        bookedVisit != null)
                    {
                        visit.AppointmentWindowId = bookedVisit.AppointmentWindowId;
                        visit.AppointmentWindow   = bookedVisit.AppointmentWindow;
                        visit.WindowStart         = bookedVisit.WindowStart;
                        visit.WindowEnd           = bookedVisit.WindowEnd;
                    }
                    if (bookingRemark.ResultCode.Outcome == ResultCodeOutcomeType.Abort)
                    {
                        visit.ChangeStatusTo(VisitStatusType.Closed, userRole);
                        ChangeStatusTo(WorkStatusType.Closed, userRole);
                    }
                }
            }
        }