public override Result <EmergencyRequiredVehicle> Update(EmergencyRequiredVehicleModel model)
        {
            try
            {
                EmergencyRequiredVehicle emergencyRequiredVehicle = _mapper.Map <EmergencyRequiredVehicle>(model);

                var result = _emergencyRequiredVehicleValidation.Validate(emergencyRequiredVehicle);
                if (!result.Success)
                {
                    return(result);
                }

                _emergencyRequiredVehicleDAL.Update(emergencyRequiredVehicle);



                EmergencyHistory emergencyHistory = _mapper.Map <EmergencyHistory>(model.EmergencyHistoryModel);
                _emergencyHistoryDAL.Insert(emergencyHistory);

                MedicalDecisionHistory medicalDecision = _mapper.Map <MedicalDecisionHistory>(model.MedicalDecisionHistoryModel);
                _medicalDecisionHistoryDAL.Insert(medicalDecision);

                var resultSave = _emergencyRequiredVehicleDAL.Save();
                if (!resultSave.Success)
                {
                    return(Result <EmergencyRequiredVehicle> .BuildError(resultSave.Messages));
                }

                return(Result <EmergencyRequiredVehicle> .BuildSuccess(null));
            }
            catch (Exception error)
            {
                return(Result <EmergencyRequiredVehicle> .BuildError("Erro ao alterar o registro do veículo requerido para a ocorrência.", error));
            }
        }
Example #2
0
        public Result SendVehicle(ServiceHistoryModel serviceHistoryModel)
        {
            try
            {
                var vehicleRequerid = _emergencyRequiredVehicleDAL.Find(new EmergencyRequiredVehicleFilter {
                    Id = serviceHistoryModel.EmergencyRequiredVehicleId
                });
                vehicleRequerid.Status = VehicleRequiredStatus.Committed;
                vehicleRequerid.Emergency.EmergencyStatus = EmergencyStatus.Committed;
                _emergencyRequiredVehicleDAL.Update(vehicleRequerid);

                var vehicle = _vehicleDAL.Find(new VehicleFilter {
                    Id = serviceHistoryModel.VehicleId
                });
                vehicle.VehicleStatus = VehicleStatus.InService;
                _vehicleDAL.Update(vehicle);

                var serviceHistory = new ServiceHistory
                {
                    EmergencyId          = vehicleRequerid.EmergencyId,
                    Description          = "Veículo empenhado",
                    Date                 = serviceHistoryModel.Date,
                    ServiceHistoryStatus = ServiceHistoryStatus.InProgress,
                    VehicleId            = serviceHistoryModel.VehicleId,
                    CodeColor            = vehicleRequerid.CodeColor
                };
                _serviceHistoryDAL.Insert(serviceHistory);

                var members = _memberDAL.FindAll(new MemberFilter {
                    EmployeeStatus = EmployeeStatus.Working, VehicleId = vehicle.Id
                });
                members.ForEach(d =>
                {
                    var teamMember = new TeamMember
                    {
                        MemberId       = d.Id,
                        ServiceHistory = serviceHistory
                    };
                    _teamMemberDAL.Insert(teamMember);
                });

                var resultSave = _serviceHistoryDAL.Save();

                return(resultSave);
            }
            catch (Exception error)
            {
                return(Result.BuildError("Erro ao enviar veículo, favor tente novamente.", error));
            }
        }