Пример #1
0
        public void Affiliate_CanAddAffiliateWithExistedUser()
        {
            using (ShimsContext.Create())
            {
                InitShims();
                var users      = new List <UserInfo>();
                var dnnUserCtl = GetStubIUserController(users);
                DnnGlobal.SetTestableInstance(GetStubIDnnGlobal());
                DnnUserController.SetTestableInstance(dnnUserCtl);
                users.Add(dnnUserCtl.BuildUserInfo(
                              "user1", "User", "First", "email@test",
                              "12345", DnnGlobal.Instance.GetPortalId()));

                var hccApp = CreateHccAppInMemory();
                var target = hccApp.ContactServices.Affiliates;

                var expected = new Affiliate
                {
                    AffiliateId = "001",
                    UserId      = users[0].UserID,
                    TaxId       = "123",
                    Username    = "******"
                };

                var status = CreateUserStatus.None;
                var res    = target.Create(expected, ref status);
                var actual = target.FindAllPaged(1, 1).First();

                Assert.AreEqual(1, target.CountOfAll());
                Assert.AreEqual(expected.TaxId, actual.TaxId);
                Assert.AreEqual(expected.Username, actual.Username);
                Assert.AreEqual(1, users.Count);
            }
        }
Пример #2
0
        public void TestInOrder()
        {
            using (ShimsContext.Create())
            {
                DnnGlobal.SetTestableInstance(GetStubIDnnGlobal());
                DnnUserController.SetTestableInstance(GetStubIUserController(new List <UserInfo>()));

                CreateDefaultStore();
                StoreUrls();
                EnsureStore();
            }
        }
Пример #3
0
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //

        #endregion

        public void InitBasicStubs()
        {
            DnnGlobal.SetTestableInstance(GetStubIDnnGlobal());
            DnnUserController.SetTestableInstance(GetStubIUserController(new List <UserInfo>()));
        }
        public HttpResponseMessage CreateRegistration(RegistrationInfo registration)
        {
            try
            {
                var response = new ServiceResponse <RegistrationInfo>();

                if (registration.UserId <= 0)
                {
                    // user isn't logged in and therefore doesn't likely have a user account on the site
                    // we need to register them into DNN for them

                    var firstName = registration.CustomPropertiesObj.FirstOrDefault(p => p.Name == "FirstName").Value;
                    var lastName  = registration.CustomPropertiesObj.FirstOrDefault(p => p.Name == "LastName").Value;
                    var email     = registration.CustomPropertiesObj.FirstOrDefault(p => p.Name == "Email").Value;
                    var portalId  = int.Parse(registration.CustomPropertiesObj.FirstOrDefault(p => p.Name == "PortalId").Value);

                    var ctlUser = new DnnUserController();
                    var status  = ctlUser.CreateNewUser(firstName, lastName, email, portalId);

                    switch (status)
                    {
                    case UserCreateStatus.DuplicateEmail:
                        ServiceResponseHelper <RegistrationInfo> .AddUserCreateError("DuplicateEmail", ref response);

                        break;

                    case UserCreateStatus.DuplicateUserName:
                        ServiceResponseHelper <RegistrationInfo> .AddUserCreateError("DuplicateUserName", ref response);

                        break;

                    case UserCreateStatus.Success:
                        var user = UserController.GetUserByName(email);
                        registration.UserId = user.UserID;

                        UserController.UserLogin(portalId, user, PortalSettings.PortalName, string.Empty, false);
                        break;

                    case UserCreateStatus.UnexpectedError:
                        ServiceResponseHelper <RegistrationInfo> .AddUserCreateError("UnexpectedError", ref response);

                        break;

                    case UserCreateStatus.UsernameAlreadyExists:
                        ServiceResponseHelper <RegistrationInfo> .AddUserCreateError("UsernameAlreadyExists", ref response);

                        break;

                    case UserCreateStatus.UserAlreadyRegistered:
                        ServiceResponseHelper <RegistrationInfo> .AddUserCreateError("UserAlreadyRegistered", ref response);

                        break;

                    default:
                        ServiceResponseHelper <RegistrationInfo> .AddUnknownError(ref response);

                        break;
                    }
                }

                if (response.Errors.Count == 0)
                {
                    registration.RegistrationDate = DateTime.Now;

                    RegistrationDataAccess.CreateItem(registration);

                    var registrations     = RegistrationDataAccess.GetItems(registration.CodeCampId).OrderByDescending(r => r.RegistrationId);
                    var savedRegistration = registrations.FirstOrDefault(r => r.UserId == registration.UserId);

                    response.Content = savedRegistration;

                    if (savedRegistration == null)
                    {
                        ServiceResponseHelper <RegistrationInfo> .AddNoneFoundError("registration", ref response);
                    }
                }

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }