예제 #1
0
 public ActionResult Provision(CustomersProvisionModel model)
 {
     if (ModelState.IsValid)
     {
         var customerId = _customerService.Provision(model);
         return(RedirectToAction("index", new { id = customerId })
                .AndAlert(AlertType.Success, "Customer Provisioned.", "The Customer was provisioned successfully."));
     }
     return(View(model));
 }
예제 #2
0
        public Guid Provision(CustomersProvisionModel model)
        {
            var fullName = model.FirstName + " " + model.LastName;

            //create customer in stripe
            StripeCustomer stripeCustomer = StripeFactory.GetStripeService().CreateCustomer(fullName, model.Email);

            // Customer
            Customer customer = new Customer(fullName, model.Domain, model.Company, stripeCustomer.Id)
            {
                PlanCreatedOn = stripeCustomer.Created
            };

            _customerRepository.Add(customer);

            // roles
            var role = new Role(customer, "Administrator", true, UserType.SystemUser);

            _roleRepository.Add(role);

            // users
            var user = new User(customer, model.Email, model.FirstName, model.LastName, model.Password, true);

            _userRepository.Add(user);
            role.AddUser(user);
            customer.UpdateAdminUser(user);

            // security questions
            ReferenceList referenceList = _referenceListRepository.Query().SingleOrDefault(l => l.SystemName == "Security Questions");

            foreach (var securityQuestion in SecurityQuestions.Questions)
            {
                referenceList.AddItem(customer, securityQuestion);
            }

            // user security questions
            user.AddSecurityQuestion("a", "a");
            user.AddSecurityQuestion("b", "b");
            user.AddSecurityQuestion("c", "c");

            _unitOfWork.Commit();

            return(customer.Id);
        }
예제 #3
0
        public void T02_Provision()
        {
            var model = new CustomersProvisionModel();

            Validate(model);
            Assert.AreEqual(7, Validate(model).Count, "Customers provision model validation is incorrect");

            model.Domain          = "alex-domain";
            model.FirstName       = "Alex";
            model.LastName        = "Sanches";
            model.Email           = "*****@*****.**";
            model.Company         = "Sanches LTD";
            model.Password        = "******";
            model.ConfirmPassword = "******";

            var result = Controller.Provision(model) as AlertResult <RedirectToRouteResult>;

            Assert.IsNotNull(result, "Customers provision method don't work correct");
            Assert.AreEqual(result.Message.AlertType, AlertType.Success, "Customers provision method return not success result");
        }