示例#1
0
        private async Task <Result> UpdateBillingAccount(Company company, DtoUpdateCompanyRequest request)
        {
            if (request.AccountNumber == null || request.NameOnAccount == null || request.SortCode == null)
            {
                return(Result.Ok());
            }

            try
            {
                await billingManager.UpdateBillingAccount(company, new BillingAccountDetails
                {
                    IsBusinessAccount = request.BankAccountIsBusiness,
                    AccountNumber     = request.AccountNumber,
                    SortCode          = request.SortCode,
                    NameOnAccount     = request.NameOnAccount
                }).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Failed to update billing account");
                return(Result.Fail($"Error occurred creating account: {ex}"));
            }

            return(Result.Ok());
        }
示例#2
0
        public async Task <IActionResult> ReplaceCompany([FromBody] DtoUpdateCompanyRequest request, [FromRoute(Name = "companyId")] int companyId)
        {
            if (ModelState.ValidationState != ModelValidationState.Valid)
            {
                return(BadRequest());
            }

            var company = new Company
            {
                CompanyId       = companyId,
                CompanyName     = request.CompanyName,
                CompanyAddress  = request.CompanyAddress,
                CompanyPostcode = request.CompanyPostcode,
                CompanyContact  = request.CompanyContact,
                CompanyPhone    = request.CompanyPhone,
                CompanyEmail    = request.CompanyEmail
            };

            return(await companies.ReplaceCompany(company)
                   .OnSuccess(() => UpdateBillingAccount(company, request))
                   .OnBoth(result => result.IsFailure ? StatusCode(500) : StatusCode(200))
                   .ConfigureAwait(false));
        }