public async Task <IActionResult> UpdateVehicleMaintenanceAsync([FromBody] UpdateVehicleMaintenanceManagementAc updateVehicleMaintenance)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            return(Ok(await _vehicleMaintenanceManagementRepository.UpdateVehicleMaintenanceAsync(updateVehicleMaintenance, user)));
        }
Пример #2
0
        /// <summary>
        /// Method to update Vehicle Maintenance - SS
        /// </summary>
        /// <param name="updateVehicleMaintenance">Vehicle Maintenance</param>
        /// <param name="loggedInUser">logged in user</param>
        /// <returns>response</returns>
        public async Task <VehicleMaintenanceManagementResponse> UpdateVehicleMaintenanceAsync(UpdateVehicleMaintenanceManagementAc
                                                                                               updateVehicleMaintenance, ApplicationUser loggedInUser)
        {
            if (string.IsNullOrEmpty(updateVehicleMaintenance.Code.Trim()))
            {
                return new VehicleMaintenanceManagementResponse()
                       {
                           HasError = true, Message = "Code can't be empty", ErrorType = VehicleMaintenanceManagementResponseType.Code
                       }
            }
            ;
            else if (string.IsNullOrEmpty(updateVehicleMaintenance.ActionTaken.Trim()))
            {
                return new VehicleMaintenanceManagementResponse()
                       {
                           HasError = true, Message = "Action taken can't be empty", ErrorType = VehicleMaintenanceManagementResponseType.ActionTaken
                       }
            }
            ;
            else
            {
                var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true);

                if (!await _iMSDbContext.VehicleMasters.AnyAsync(x => x.InstituteId == instituteId && x.Id == updateVehicleMaintenance.VehicleId))
                {
                    return new VehicleMaintenanceManagementResponse()
                           {
                               HasError = true, Message = "Vehicle not found", ErrorType = VehicleMaintenanceManagementResponseType.VehicleId
                           }
                }
                ;
                else
                {
                    var maintenances = await _iMSDbContext.VehicleMaintenances.Where(x => x.Vehicle.InstituteId == instituteId && x.Id != updateVehicleMaintenance.Id).ToListAsync();

                    if (maintenances.Any(x => x.Code.ToLowerInvariant() == updateVehicleMaintenance.Code.ToLowerInvariant()))
                    {
                        return new VehicleMaintenanceManagementResponse()
                               {
                                   HasError = true, Message = "Vehicle maintenance code already exist. Please unique one", ErrorType = VehicleMaintenanceManagementResponseType.Code
                               }
                    }
                    ;
                    else
                    {
                        var maintenance = await _iMSDbContext.VehicleMaintenances.FirstOrDefaultAsync(x => x.Id == updateVehicleMaintenance.Id && x.Vehicle.InstituteId == instituteId);

                        if (maintenance == null)
                        {
                            return new VehicleMaintenanceManagementResponse()
                                   {
                                       HasError = true, Message = "Vehicle maintenance not found", ErrorType = VehicleMaintenanceManagementResponseType.Id
                                   }
                        }
                        ;
                        else
                        {
                            maintenance.ActionTaken = updateVehicleMaintenance.ActionTaken;

                            maintenance.Code                = updateVehicleMaintenance.Code;
                            maintenance.EstimateCost        = updateVehicleMaintenance.EstimateCost;
                            maintenance.MaintenanceDate     = updateVehicleMaintenance.MaintenanceDate;
                            maintenance.MaintenanceDoneBy   = updateVehicleMaintenance.MaintenanceDoneBy;
                            maintenance.NextMaintenanceDate = updateVehicleMaintenance.NextMaintenanceDate;
                            maintenance.Remark              = updateVehicleMaintenance.Remark;
                            maintenance.UpdatedById         = loggedInUser.Id;
                            maintenance.UpdatedOn           = DateTime.UtcNow;
                            maintenance.VehicleId           = updateVehicleMaintenance.VehicleId;
                            _iMSDbContext.VehicleMaintenances.Update(maintenance);
                            await _iMSDbContext.SaveChangesAsync();

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