public async Task <ActionResult> RegisterCommercial([Bind(Include = "FirstName, LastName, Phone, AddressLineOne, AddressLineTwo, City, State, Zip, EmailAddress, Username, Password, ConfirmPassword, FederalTaxID")] RegisterCommercialViewModel user) { if (!ModelState.IsValid) { return(View()); } try { // SnackOverflow System Application if (_customerManager.ApplyForCommercialAccount(user)) { var rvm = new RegisterViewModel { Email = user.EmailAddress, Password = user.Password }; var controller = DependencyResolver.Current.GetService <AccountController>(); controller.ControllerContext = new ControllerContext(this.Request.RequestContext, controller); var result = await controller.Register(rvm); ViewBag.SupplierOrCommercial = "Commercial"; return(RedirectToAction("ApplicationSuccess", new { username = user.UserName, supOrCom = false })); } else { return(View("Error")); } } catch (ApplicationException ex) { ViewBag.Error = "Error: " + ex.Message; return(View()); } catch (Exception ex) { Debug.WriteLine(ex.Message); throw new ApplicationException(ex.Message); } }
/// <summary> /// Created by Michael Takrama /// 04/15/17 /// /// Logic to Apply for Commercial Account - MVC /// </summary> /// <param name="user"></param> /// <returns></returns> public bool ApplyForCommercialAccount(RegisterCommercialViewModel user) { // App User Creation var userManager = new UserManager(); try { var createdUserResult = userManager.CreateNewUser(user, user.Password, user.ConfirmPassword); if ("Created" != createdUserResult) { throw new ApplicationException(createdUserResult); } } catch (Exception ex) { Debug.WriteLine("CustomerManager-ApplyForCommercialAccount: " + ex.Message); throw; } // Commercial Customer Creation User userData = null; try { userData = userManager.RetrieveUserByUserName(user.UserName); var cm = new CommercialCustomer { UserId = userData.UserId, FederalTaxId = int.Parse(user.FederalTaxID), ApprovedBy = 0, Active = true }; if (CreateCommercialAccount(cm)) { return(true); } //Commercial Customer Creation failed - delete created user if (1 == UserAccessor.DeleteUser(userData.UserId)) { throw new ApplicationException("Fatal Error Occured"); } } catch (SqlException ex) { if (userData != null) { UserAccessor.DeleteUser(userData.UserId); } Debug.WriteLine(ex.Message); throw new ApplicationException("Fatal Error Occured"); } catch (Exception e) { Debug.WriteLine(e); throw; } return(false); }