public async Task <IActionResult> UpdateTransportationStageAsync([FromBody] UpdateTransportationStageManagementAc updateTransportationStage) { var user = await _userManager.FindByNameAsync(User.Identity.Name); return(Ok(await _transportationStageManagementRepository.UpdateTransportationStageAsync(updateTransportationStage, user))); }
/// <summary> /// Method to update stage - SS /// </summary> /// <param name="updateTransportationStage">stage detail</param> /// <param name="loggedInUser">logged in user</param> /// <returns>response</returns> public async Task <TransportationStageManagementResponse> UpdateTransportationStageAsync(UpdateTransportationStageManagementAc updateTransportationStage, ApplicationUser loggedInUser) { if (string.IsNullOrEmpty(updateTransportationStage.Name) && string.IsNullOrEmpty(updateTransportationStage.Name)) { return new TransportationStageManagementResponse() { HasError = true, Message = "Name can't be empty", ErrorType = TransportationStageManagementResponseType.Name } } ; else if (string.IsNullOrEmpty(updateTransportationStage.Code) && string.IsNullOrEmpty(updateTransportationStage.Code)) { return new TransportationStageManagementResponse() { HasError = true, Message = "Code can't be empty", ErrorType = TransportationStageManagementResponseType.Code } } ; else { var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true); var stages = await _iMSDbContext.TransportationStages.Where(x => x.InstituteId == instituteId && x.Id != updateTransportationStage.Id).ToListAsync(); if (stages.Any(x => x.Code.ToLowerInvariant() == updateTransportationStage.Code.ToLowerInvariant())) { return new TransportationStageManagementResponse() { HasError = true, Message = "Code already exist. Please use unique one", ErrorType = TransportationStageManagementResponseType.Code } } ; else { var stage = await _iMSDbContext.TransportationStages.FirstOrDefaultAsync(x => x.Id == updateTransportationStage.Id && x.InstituteId == instituteId); if (stage == null) { return new TransportationStageManagementResponse() { HasError = true, Message = "Stage not found", ErrorType = TransportationStageManagementResponseType.Id } } ; else { stage.Address = updateTransportationStage.Address; stage.Code = updateTransportationStage.Code; stage.Name = updateTransportationStage.Name; stage.UpdatedById = loggedInUser.Id; stage.UpdatedOn = DateTime.UtcNow; stage.Latitude = updateTransportationStage.Latitude; stage.Longitude = updateTransportationStage.Longitude; stage.SlabId = updateTransportationStage.SlabId; stage.Term1 = updateTransportationStage.Term1; stage.Term2 = updateTransportationStage.Term2; stage.Term3 = updateTransportationStage.Term3; _iMSDbContext.TransportationStages.Update(stage); await _iMSDbContext.SaveChangesAsync(); return(new TransportationStageManagementResponse() { HasError = false, Message = "Stage updated successfully" }); } } } }