コード例 #1
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));
            }
        }
コード例 #2
0
 public override Result <VehicleModel> Find(IFilter filter)
 {
     try
     {
         Vehicle      vehicle      = _vehicleDAL.Find((VehicleFilter)filter);
         VehicleModel vehicleModel = _mapper.Map <VehicleModel>(vehicle);
         return(Result <VehicleModel> .BuildSuccess(vehicleModel));
     }
     catch (Exception error)
     {
         return(Result <VehicleModel> .BuildError("Erro ao localizar o veículo.", error));
     }
 }
コード例 #3
0
        public override Result <VehiclePositionHistory> Register(VehiclePositionHistoryModel model)
        {
            try
            {
                VehiclePositionHistory vehiclePositionHistory = _mapper.Map <VehiclePositionHistory>(model);

                var result = _vehiclePositionHistoryValidation.Validate(vehiclePositionHistory);
                if (!result.Success)
                {
                    return(result);
                }

                var resultFind = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                {
                    ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                    VehiclePosition  = vehiclePositionHistory.VehiclePosition
                });

                if ((resultFind?.Id ?? 0) > 0)
                {
                    resultFind.Date = vehiclePositionHistory.Date;
                    _vehiclePositionHistoryDAL.Update(resultFind);
                    var resultUpdate = _vehiclePositionHistoryDAL.Save();
                    if (!resultUpdate.Success)
                    {
                        return(Result <VehiclePositionHistory> .BuildError(resultUpdate.Messages));
                    }
                    return(Result <VehiclePositionHistory> .BuildSuccess(null));
                }
                if (vehiclePositionHistory.VehiclePosition == VehiclePosition.J10Local)
                {
                    var resultJ = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                    {
                        ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                        VehiclePosition  = VehiclePosition.J9Local
                    });
                    if ((resultJ?.Id ?? 0) == 0)
                    {
                        return(Result <VehiclePositionHistory> .BuildError("Para cadastrar o J10 no local da ocorrência é necessário informar o J9."));
                    }
                }
                if (vehiclePositionHistory.VehiclePosition == VehiclePosition.J9Hospital)
                {
                    var resultJ = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                    {
                        ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                        VehiclePosition  = VehiclePosition.J10Local
                    });
                    if ((resultJ?.Id ?? 0) == 0)
                    {
                        return(Result <VehiclePositionHistory> .BuildError("Para cadastrar o J9 para o hospital é necessário informar o J10 no local da ocorrência."));
                    }
                }
                if (vehiclePositionHistory.VehiclePosition == VehiclePosition.J10Hospital)
                {
                    var resultJ = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                    {
                        ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                        VehiclePosition  = VehiclePosition.J9Hospital
                    });
                    if ((resultJ?.Id ?? 0) == 0)
                    {
                        return(Result <VehiclePositionHistory> .BuildError("Para cadastrar o J10 no hospital é necessário informar o J9 para o Hospital."));
                    }
                }
                if (vehiclePositionHistory.VehiclePosition == VehiclePosition.J11)
                {
                    var resultJ9H = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                    {
                        ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                        VehiclePosition  = VehiclePosition.J9Hospital
                    });
                    if ((resultJ9H?.Id ?? 0) > 0)
                    {
                        var resultJ10H = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                        {
                            ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                            VehiclePosition  = VehiclePosition.J10Hospital
                        });
                        if ((resultJ10H?.Id ?? 0) == 0)
                        {
                            return(Result <VehiclePositionHistory> .BuildError("Para cadastrar o J11 é necessário informar o J10 no Hospital."));
                        }
                    }
                    else
                    {
                        var resultJ = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                        {
                            ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                            VehiclePosition  = VehiclePosition.J10Local
                        });
                        if ((resultJ?.Id ?? 0) == 0)
                        {
                            return(Result <VehiclePositionHistory> .BuildError("Para cadastrar o J11 é necessário informar o J10 no local."));
                        }
                    }
                }
                if (vehiclePositionHistory.VehiclePosition == VehiclePosition.J12)
                {
                    var resultJ = _vehiclePositionHistoryDAL.Find(new VehiclePositionHistoryFilter
                    {
                        ServiceHistoryId = vehiclePositionHistory.ServiceHistoryId,
                        VehiclePosition  = VehiclePosition.J11
                    });
                    if ((resultJ?.Id ?? 0) == 0)
                    {
                        return(Result <VehiclePositionHistory> .BuildError("Para cadastrar o J12 é necessário informar o J11."));
                    }
                }

                _vehiclePositionHistoryDAL.Insert(vehiclePositionHistory);

                vehiclePositionHistory.ServiceHistory = _serviceHistoryDAL.Find(new ServiceHistoryFilter {
                    Id = vehiclePositionHistory.ServiceHistoryId
                });
                if (vehiclePositionHistory.VehiclePosition == VehiclePosition.J11)
                {
                    _vehicleDAL.Find(new VehicleFilter {
                        Id = vehiclePositionHistory.ServiceHistory.VehicleId
                    });
                    vehiclePositionHistory.ServiceHistory.Vehicle.VehicleStatus = VehicleStatus.Cleared;
                    _vehicleDAL.Update(vehiclePositionHistory.ServiceHistory.Vehicle);
                }

                if (vehiclePositionHistory.VehiclePosition == VehiclePosition.J12)
                {
                    vehiclePositionHistory.ServiceHistory.ServiceHistoryStatus = ServiceHistoryStatus.Finalized;
                    _serviceHistoryDAL.Update(vehiclePositionHistory.ServiceHistory);
                }

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

                return(Result <VehiclePositionHistory> .BuildSuccess(null));
            }
            catch (Exception error)
            {
                return(Result <VehiclePositionHistory> .BuildError("Erro no momento de registar a posição do veículo.", error));
            }
        }