public override decimal RegisterOutPut(ControlInputsOutputsEntity controlInputsOutputs) { AmountEntity oAmount = unitOfWork .AmountRepository .LastOrDefault(g => g.VehicleType.Equals((int)VehicleType.VIP)); if (oAmount == null) { throw new BusinessExeption(string.Format(GeneralMessages.AmountNotFound, VehicleType.VIP.GetDisplayName())); } VehicleEntity oVehicle = unitOfWork. VehicleRepository. FirstOrDefault(g => g.VehiclePlate.ToUpper().Equals(controlInputsOutputs.VehiclePlate.ToUpper()) && g.VehicleType.Equals((int)VehicleType.VIP)); if (oVehicle == null) { throw new BusinessExeption(string.Format(GeneralMessages.VehicleAndTypeVehicleNotFound, controlInputsOutputs.VehiclePlate.ToUpper(), VehicleType.VIP.GetDisplayName())); } controlInputsOutputs.DepartureTime = DateTime.Now; controlInputsOutputs.TotalMinutesOfStay = (decimal)(DateTime.Now - controlInputsOutputs.EntryTime).TotalMinutes; unitOfWork.ControlInputsOutputsRepository.Update(controlInputsOutputs); oVehicle.TotalMinutesOfStay += controlInputsOutputs.TotalMinutesOfStay; oVehicle.ModificationDate = DateTime.Now; oVehicle.ModificationUser = UsersParkingLot.System; unitOfWork.VehicleRepository.Update(oVehicle); return(controlInputsOutputs.TotalMinutesOfStay * oAmount.Amount); }
/// <summary> /// Register a new Output /// </summary> /// <param name="VehiclePlate"></param> /// <returns></returns> public RegisterOutPutResponseDto RegisterOutPut(string VehiclePlate) { RegisterOutPutResponseDto oResponse = new RegisterOutPutResponseDto(); AVehicleBase aVehicle; if (ValidateInputNotOpen(VehiclePlate)) { VehicleEntity oVehicle = GetVehicle(VehiclePlate); if (oVehicle != null) { aVehicle = GetVehicleBase(oVehicle, (VehicleType)Enum.ToObject(typeof(VehicleType), oVehicle.VehicleType)); } else { oVehicle = new VehicleEntity { VehicleType = (int)VehicleType.NotResident }; aVehicle = GetVehicleBase(oVehicle, VehicleType.NotResident); } if (aVehicle != null) { ControlInputsOutputsEntity oControlInputsOutputs = unitOfWork .ControlInputsOutputsRepository .FirstOrDefault(g => g.VehiclePlate.ToUpper().Equals(VehiclePlate)); Decimal oAmountToBePaid = aVehicle.RegisterOutPut(oControlInputsOutputs); if (unitOfWork.Save() > 0) { oResponse.Inserted = true; oResponse.Message = GeneralMessages.ItemInserted; oResponse.AmountToBePaid = oAmountToBePaid; } } else { throw new BusinessExeption(string.Format(GeneralMessages.VehicleAndTypeVehicleNotFound, VehiclePlate, oVehicle.VehicleType)); } } else { oResponse.Message = string.Format(GeneralMessages.OpenCloseEntrance, TypeMovement.OutPut, VehiclePlate.ToUpper(), ExistMovement.No); } return(oResponse); }
public override decimal RegisterOutPut(ControlInputsOutputsEntity controlInputsOutputs) { AmountEntity oAmount = unitOfWork .AmountRepository .LastOrDefault(g => g.VehicleType.Equals((int)VehicleType.NotResident)); if (oAmount == null) { throw new BusinessExeption(string.Format(GeneralMessages.AmountNotFound, VehicleType.NotResident.GetDisplayName())); } controlInputsOutputs.DepartureTime = DateTime.Now; controlInputsOutputs.TotalMinutesOfStay = (decimal)(DateTime.Now - controlInputsOutputs.EntryTime).TotalMinutes; unitOfWork.ControlInputsOutputsRepository.Update(controlInputsOutputs); return(controlInputsOutputs.TotalMinutesOfStay * oAmount.Amount); }
/// <summary> /// Register a new input /// </summary> /// <param name="VehiclePlate"></param> /// <returns></returns> public CreateVehicleResponseDto RegisterInput(string VehiclePlate) { CreateVehicleResponseDto oResponse = new CreateVehicleResponseDto(); ControlInputsOutputsEntity oInput = new ControlInputsOutputsEntity { CreationDate = DateTime.Now, CreationUser = UsersParkingLot.System, VehiclePlate = VehiclePlate, EntryTime = DateTime.Now, TotalMinutesOfStay = 0 }; if (!ValidateInputNotOpen(VehiclePlate)) { VehicleEntity oVehicle = GetVehicle(VehiclePlate); if (oVehicle != null) { oInput.VehicleType = oVehicle.VehicleType; } else { oInput.VehicleType = (int)VehicleType.NotResident; } unitOfWork.ControlInputsOutputsRepository.Insert(oInput); if (unitOfWork.Save() > 0) { oResponse.Inserted = true; oResponse.Message = GeneralMessages.ItemInserted; } } else { oResponse.Message = string.Format(GeneralMessages.OpenCloseEntrance, TypeMovement.Input, VehiclePlate.ToUpper(), ExistMovement.Already); } return(oResponse); }
public abstract decimal RegisterOutPut(ControlInputsOutputsEntity controlInputsOutputs);