public async Task <string> UpdateAsync(FiscalYearDto dto) { var currentFiscalYear = await GetCurrentFiscalYearAsync(); var con = _baseInterface.GetConnection(); var transaction = con.BeginTransaction(); string message = ""; try { var fiscalYear = await GetFiscalYearByIdAsync(dto.FiscalYearId); if (fiscalYear is null) { return(null); } if (dto.IsCurrent) { _fiscalYearRepository.MakeIsCurrentFalse(con, transaction); } else { if (currentFiscalYear is null) { dto.IsCurrent = true; } } dto.StartDateAD = Convert.ToDateTime(_dateService.ConvertToEnglishDate(dto.StartDateBS)); dto.EndDateAD = Convert.ToDateTime(_dateService.ConvertToEnglishDate(dto.EndDateBS)); dto.CreatedBy = fiscalYear.CreatedBy; dto.CreatedDate = fiscalYear.CreatedDate; int result = _fiscalYearRepository.Update(dto.ToEntity(), transaction, con); message = _messageClass.ShowSuccessMessage(fiscalYear.FiscalYearId); transaction.Commit(); } catch (SqlException ex) { message = _messageClass.ShowErrorMessage(string.Format("{0} ~ {1}", ex.Number.ToString(), ex.Message)); transaction.Rollback(); } return(message); }