/// <summary> /// Method to update auto sequence - SS /// </summary> /// <param name="updateAutoSequence">auto sequence</param> /// <param name="loggedInUser">logged in user detail</param> /// <returns>response</returns> public async Task <AutoSequenceGeneratorManagementResponse> UpdateAutoSequenceGeneratorAsync(UpdateAutoSequenceGeneratorManagementAc updateAutoSequence, ApplicationUser loggedInUser) { await semaphore.WaitAsync(); try { var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true); var autoSequence = await _iMSDbContext.AutoSequenceGenerators.FirstOrDefaultAsync(x => x.Id == updateAutoSequence.Id && x.InstituteId == instituteId); if (autoSequence != null) { if (updateAutoSequence.AutoSequenceGeneratorDataTypes.Any(x => x.IsSelected && x.Name == "Text")) { if (string.IsNullOrEmpty(updateAutoSequence.CustomText)) { return new AutoSequenceGeneratorManagementResponse() { HasError = true, Message = "Please add text in custom text." } } ; } autoSequence.CustomText = updateAutoSequence.CustomText; autoSequence.Seperator = EnumHelperService.GetValueFromDescription <AutoSequenceGeneratorSeperatorEnum>(updateAutoSequence.SeperatorDescription); autoSequence.UpdateById = loggedInUser.Id; autoSequence.UpdateDate = DateTime.UtcNow; autoSequence.AutoSequenceGeneratorDataTypes = null; _iMSDbContext.AutoSequenceGenerators.Update(autoSequence); await _iMSDbContext.SaveChangesAsync(); var types = await _iMSDbContext.AutoSequenceGeneratorDataTypes.Where(x => x.AutoSequenceGeneratorId == autoSequence.Id).ToListAsync(); _iMSDbContext.AutoSequenceGeneratorDataTypes.RemoveRange(types); await _iMSDbContext.SaveChangesAsync(); updateAutoSequence.AutoSequenceGeneratorDataTypes.ForEach(x => x.Id = 0); _iMSDbContext.AutoSequenceGeneratorDataTypes.AddRange(updateAutoSequence.AutoSequenceGeneratorDataTypes); await _iMSDbContext.SaveChangesAsync(); return(new AutoSequenceGeneratorManagementResponse() { HasError = false, Message = "Auto sequence updated successfully" }); } else { return new AutoSequenceGeneratorManagementResponse() { HasError = true, Message = "Auto sequence not found" } }; } finally { semaphore.Release(); } }
public async Task <IActionResult> UpdateAutoSequenceGeneratorAsync([FromBody] UpdateAutoSequenceGeneratorManagementAc updateAutoSequence) { var loggedInUser = await _userManager.FindByNameAsync(User.Identity.Name); return(Ok(await _autoSequenceGeneratorManagementRepository.UpdateAutoSequenceGeneratorAsync(updateAutoSequence, loggedInUser))); }