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