コード例 #1
0
        public async Task <bool> UpdateCompanyAsync(cor_company model)
        {
            if (model.CompanyId > 0)
            {
                var item = await _dataContext.cor_company.FindAsync(model.CompanyId);

                _dataContext.Entry(item).CurrentValues.SetValues(model);
            }
            else
            {
                await _dataContext.cor_company.AddAsync(model);
            }
            return(await _dataContext.SaveChangesAsync() > 0);
        }
        public async Task <CompanyRegRespObj> Handle(AddUpdateCompanyCommand request, CancellationToken cancellationToken)
        {
            try
            {
                if (request.CompanyId < 1)
                {
                    if (await _repo.CompanyExistAsync(request.Email, request.Name))
                    {
                        return new CompanyRegRespObj
                               {
                                   Status = new APIResponseStatus
                                   {
                                       IsSuccessful = false,
                                       Message      = new APIResponseMessage
                                       {
                                           FriendlyMessage = $"Company with this email or or name already exist"
                                       }
                                   }
                               }
                    }
                    ;
                }

                var currentUserId = _httpContextAccessor.HttpContext.User?.FindFirst(x => x.Type == "userId").Value;
                var user          = await _userManger.FindByIdAsync(currentUserId);

                var company = new cor_company
                {
                    Name                  = request.Name,
                    Code                  = request.Code,
                    Address1              = request.Address1,
                    Address2              = request.Address2,
                    Telephone             = request.Telephone,
                    Fax                   = request.Fax,
                    Email                 = request.Email,
                    RegistrationNumber    = request.RegistrationNumber,
                    TaxId                 = request.TaxId,
                    NoOfEmployees         = request.NoOfEmployees,
                    WebSite               = request.WebSite,
                    Logo                  = request.Logo,
                    LogoType              = request.LogoType,
                    State                 = request.State,
                    City                  = request.City,
                    CurrencyId            = request.CurrencyId,
                    CountryId             = request.CountryId,
                    ApplyRegistryTemplate = request.ApplyRegistryTemplate,
                    RegistryTemplate      = request.RegistryTemplate,
                    PostalCode            = request.PostalCode,
                    IsMultiCompany        = request.IsMultiCompany,
                    Subsidairy_Level      = request.Subsidairy_Level,
                    Description           = request.Description,
                    Active                = true,
                    Deleted               = false,
                    CreatedBy             = user.UserName,
                    CreatedOn             = request.CompanyId > 0 ? request.CreatedOn : DateTime.Now,
                    UpdatedBy             = user.UserName,
                    UpdatedOn             = DateTime.Now,
                };
                if (request.CompanyId > 0)
                {
                    company.CompanyId = request.CompanyId;
                }

                await _repo.UpdateCompanyAsync(company);

                var actionTaken = request.CompanyId > 0 ? "updated" : "added";
                return(new CompanyRegRespObj
                {
                    CompanyId = company.CompanyId,
                    Status = new APIResponseStatus
                    {
                        IsSuccessful = true,
                        Message = new APIResponseMessage
                        {
                            FriendlyMessage = $"Company  successfully  {actionTaken}",
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                #region Log error to file
                var errorCode = ErrorID.Generate(4);
                _logger.Error($"ErrorID : AddUpdateCompanyCommandHandler{errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new CompanyRegRespObj
                {
                    Status = new APIResponseStatus
                    {
                        IsSuccessful = false,
                        Message = new APIResponseMessage
                        {
                            FriendlyMessage = "Error occured!! Unable to process item",
                            MessageId = errorCode,
                            TechnicalMessage = $"ErrorID : AddUpdateCompanyCommandHandler{errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"
                        }
                    }
                });

                #endregion
            }
        }