public async Task <IActionResult> CreateAccount( [FromRoute] Guid organizationId, [FromBody] NewCustomerAccountInput model) { var account = await _accountService .Create(_agencyOwner, model); return(Ok(account)); }
public async Task <CustomerAccountResult> Create( IProviderAgencyOwner ao, NewCustomerAccountInput model) { _logger.LogInformation(GetLogMessage("PAO: {0}; Input: {@input};"), ao.OrganizationId, model); var accountManager = await _accountManagerService .GetAccountManagerOrDefault <AgencyOwnerOrganizationAccountManagerOutput> (ao.OrganizationId, model.AccountManagerId); model.PhoneNumber = !string.IsNullOrEmpty(model.PhoneNumber?.Trim()) ? model.PhoneNumber.Trim() : null; return(CheckValidation(model) ?? await CreateInternal(accountManager, model)); }
public async Task <CustomerAccountResult> Create( IOrganizationAccountManager am, NewCustomerAccountInput model, bool checkValidation = true) { _logger.LogInformation(GetLogMessage("AM: {0}; Input: {@input};"), am.OrganizationId, model); model.PhoneNumber = !string.IsNullOrEmpty(model.PhoneNumber?.Trim()) ? model.PhoneNumber.Trim() : null; if (!checkValidation) { return(await CreateInternal(am, model)); } return(CheckValidation(model) ?? await CreateInternal(am, model)); }
private CustomerAccountResult CheckValidation(NewCustomerAccountInput model) { bool isPhoneExists = false; bool isOrganizationExists = false; bool isEmailExists = false; if (!string.IsNullOrEmpty(model.PhoneNumber?.Trim())) { _logger.LogInformation(GetLogMessage("Phone Number validation : {0}"), model.PhoneNumber); isPhoneExists = _applicationUsers.Queryable().Any(a => a.PhoneNumber == model.PhoneNumber); } if (!string.IsNullOrEmpty(model.EmailAddress?.Trim())) { _logger.LogInformation(GetLogMessage("Email validation : {0}"), model.EmailAddress); isEmailExists = _applicationUsers.Queryable().Any(a => a.Email == model.EmailAddress); } if (!string.IsNullOrEmpty(model.OrganizationName?.Trim())) { _logger.LogInformation(GetLogMessage("Organization Name validation : {0}"), model.OrganizationName); isOrganizationExists = _organizations.Queryable().Any(a => a.Name == model.OrganizationName); } if (!isPhoneExists && !isOrganizationExists && !isEmailExists) { return(null); } string errorMessage = GetErrorMessage(isPhoneExists, isOrganizationExists, isEmailExists); _logger.LogInformation(GetLogMessage(errorMessage)); return(new CustomerAccountResult { Succeeded = false, ErrorMessage = errorMessage }); }
private async Task <CustomerAccountResult> CreateInternal(IOrganizationAccountManager am, NewCustomerAccountInput model) { var retVal = new CustomerAccountResult(); _logger.LogInformation(GetLogMessage("AM: {0}; Input: {@input};"), am.OrganizationId, model); model.AccountManagerId = am.AccountManagerId; var person = await _personService .CreatePerson(model, null, model.MarketerId, model.MarketerOrganizationId ?? am.OrganizationId); if (person.Succeeded) { _logger.LogDebug(GetLogMessage("Person was created successfully")); var result = await _organizationService.CreateOrganization(am, new OrganizationCreateInput() { Name = model.OrganizationName, Description = string.Empty, Iso2 = model.Iso2, ProvinceState = model.ProvinceState, }, person.PersonId.Value); if (result.Succeeded) { _logger.LogWarning(GetLogMessage("Organization was created successfully")); retVal.Succeeded = true; retVal.AccountManagerId = model.AccountManagerId; retVal.AccountManagerOrganizationId = am.OrganizationId; retVal.CustomerId = person.PersonId.Value; retVal.CustomerOrganizationId = result.OrganizationId.Value; if (result?.OrganizationId != null) { var m = new CustomerAccountInput() { PaymentTermId = model.PaymentTermId.GetValueOrDefault(1), AccountManagerId = am.AccountManagerId, AccountManagerOrganizationId = am.OrganizationId, CustomerId = person.PersonId.Value, CustomerOrganizationId = result.OrganizationId.Value, AutoApproveTimeEntries = model.AutoApproveTimeEntries, }; return(await Create(m)); } } else { retVal.ErrorMessage = result.ErrorMessage; _logger.LogWarning(GetLogMessage("unable to create organization")); } } else { retVal.ErrorMessage = person.ErrorMessage; _logger.LogWarning(GetLogMessage("unable to create person")); } return(retVal); }