Exemplo n.º 1
0
        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);
        }