Пример #1
0
        public async Task <IActionResult> UpdateVehicleAccidentAsync([FromBody] UpdateVehicleAccidentManagementAc updateVehicleAccident)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            return(Ok(await _vehicleAccidentManagementRepository.UpdateVehicleAccidentAsync(updateVehicleAccident, user)));
        }
Пример #2
0
        /// <summary>
        /// Method to update vehicle accident - SS
        /// </summary>
        /// <param name="addVehicleAccident">vehicle accident</param>
        /// <param name="loggedInUser">logged in user</param>
        /// <returns>response</returns>
        public async Task <VehicleAccidentManagementResponse> UpdateVehicleAccidentAsync(UpdateVehicleAccidentManagementAc updateVehicleAccident,
                                                                                         ApplicationUser loggedInUser)
        {
            if (string.IsNullOrEmpty(updateVehicleAccident.Code.Trim()))
            {
                return new VehicleAccidentManagementResponse()
                       {
                           HasError = true, Message = "Code can't be empty", ErrorType = VehicleAccidentManagementResponseType.Code
                       }
            }
            ;
            else
            {
                var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true);

                if (!await _iMSDbContext.VehicleMasters.AnyAsync(x => x.Id == updateVehicleAccident.VehicleId && x.InstituteId == instituteId))
                {
                    return new VehicleAccidentManagementResponse()
                           {
                               HasError = true, Message = "Vehicle not found", ErrorType = VehicleAccidentManagementResponseType.VehicleId
                           }
                }
                ;
                else
                {
                    if (!await _iMSDbContext.DriverMasters.AnyAsync(x => x.Id == updateVehicleAccident.DriverId && x.InstituteId == instituteId))
                    {
                        return new VehicleAccidentManagementResponse()
                               {
                                   HasError = true, Message = "Driver not found", ErrorType = VehicleAccidentManagementResponseType.DriverId
                               }
                    }
                    ;
                    else
                    {
                        var accidents = await _iMSDbContext.VehicleAccidents.Where(x => x.Vehicle.InstituteId == instituteId && x.Id != updateVehicleAccident.Id).ToListAsync();

                        if (accidents.Any(x => x.Code.ToLowerInvariant() == updateVehicleAccident.Code.ToLowerInvariant()))
                        {
                            return new VehicleAccidentManagementResponse()
                                   {
                                       HasError = true, Message = "Vehicle accident code already exist. Please use unique one", ErrorType = VehicleAccidentManagementResponseType.Code
                                   }
                        }
                        ;
                        else
                        {
                            var accident = await _iMSDbContext.VehicleAccidents.FirstOrDefaultAsync(x => x.Id == updateVehicleAccident.Id && x.Vehicle.InstituteId == instituteId);

                            if (accident == null)
                            {
                                return new VehicleAccidentManagementResponse()
                                       {
                                           HasError = true, Message = "Vehicle accident not found", ErrorType = VehicleAccidentManagementResponseType.Id
                                       }
                            }
                            ;
                            else
                            {
                                accident.AccidentDate = updateVehicleAccident.AccidentDate;

                                accident.Address      = updateVehicleAccident.Address;
                                accident.Code         = updateVehicleAccident.Code;
                                accident.DriverId     = updateVehicleAccident.DriverId;
                                accident.EstimateCost = updateVehicleAccident.EstimateCost;
                                accident.UpdatedById  = loggedInUser.Id;
                                accident.UpdatedOn    = DateTime.UtcNow;
                                accident.VehicleId    = updateVehicleAccident.VehicleId;
                                _iMSDbContext.VehicleAccidents.Update(accident);
                                await _iMSDbContext.SaveChangesAsync();

                                return(new VehicleAccidentManagementResponse()
                                {
                                    HasError = false, Message = "Vehicle accident updated successfully"
                                });
                            }
                        }
                    }
                }
            }
        }