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));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }