Пример #1
0
        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);
            }
        }
Пример #2
0
        /// <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);
        }