/// <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)));
        }