public async Task <ActionResult> CreateBusiness(BusinessPullModel pullModel) { var IPAddress = Server.HtmlEncode(Request.UserHostAddress); ViewBag.IPAddress = IPAddress; var subject = "Create A Business"; var instigator = "Admin Business Form"; var system = "Business Admin Controller"; if (ModelState.IsValid) { if (pullModel.BusinessTypeId > 0) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); instigator = user.Email; // everything is just fine var methodResults = await Provider.CreateNewBusiness(pullModel, IPAddress, instigator); if (methodResults.Success) { return(RedirectToAction("ViewBusiness")); } ModelState.AddModelError("", methodResults.Message); } else { ModelState.AddModelError(nameof(BusinessPullModel.BusinessTypeId), "Please select a business type before continuing..."); } } pullModel = await Provider.UpdatePullModel(pullModel); return(View(pullModel)); }
public async Task <MethodResults> CreateNewBusiness(BusinessPullModel pullModel, BPMainContext context, string IPAddress, string instigator, CoreLoggerProvider logger) { var methodResults = new MethodResults { Success = false, Message = "Something went wrong. Please try again, or contact your system administrator." }; // the pull model should have been validated at the controller // first, create the account var account = new BPAccount() { BusinessAttribute = new BusinessAttribute(), EntityAttribute = new EntityAttribute() }; account.BusinessAttribute.BusinessName = pullModel.BusinessName; var subject = "Business Account Creation"; var system = "Business Service"; account.EntityAttribute.AccountType = await context.AccountTypes.FirstOrDefaultAsync(x => x.Index == 2); account.BusinessAttribute.BusinessType = await context.BusinessTypes.FirstOrDefaultAsync(x => x.Index == pullModel.BusinessTypeId); var accountDateType = await context.AccountDateTypes.FirstOrDefaultAsync(x => x.Index == 1); var accountDate = new AccountDate { AccountDateType = accountDateType, DateLine = DateTimeOffset.Now }; account.EntityAttribute.AccountDates.Add(accountDate); context.Accounts.Add(account); methodResults = await context.SaveChangesAsync(context); if (methodResults.Success) { await logger.CreateNewLog($"Successfully create {pullModel.BusinessName} as {pullModel.BusinessTypes.FirstOrDefault(x => x.Value == pullModel.BusinessTypeId.ToString())} by {instigator} on {IPAddress}", subject, instigator, system); } else { await logger.CreateNewLog($"Failed to create new business {pullModel.BusinessName} by {instigator} on {IPAddress}", subject, instigator, system); } return(methodResults); }
internal async Task <BusinessPullModel> UpdatePullModel(BusinessPullModel pullModel, BPMainContext context) { var businessTypeList = new List <SelectListItem>(); if (pullModel.BusinessTypeId == 0) { businessTypeList.Add(new SelectListItem { Text = "Select a business type...", Value = "0" }); } businessTypeList.AddRange(await context.BusinessTypes.Select(y => new SelectListItem { Text = y.Name, Value = y.ID.ToString(), Selected = y.ID == pullModel.BusinessTypeId }).ToListAsync()); pullModel.BusinessTypes = businessTypeList; return(pullModel); }