public JsonResult Activate(Guid userId)
        {
            if (userId == Guid.Empty)
            {
                return(Json(ResponseFactory.ErrorReponse));
            }

            var user = UserCore.Get(userId, new[] { nameof(datalayer.User.AspNetUser) });

            if (user == null)
            {
                return(Json(ResponseFactory.ErrorReponse));
            }

            user.AspNetUser.Status = 0;

            var updatedUser = AspNetUserCore.Update(user.AspNetUser);

            if (updatedUser == null)
            {
                return(Json(ResponseFactory.ErrorReponse));
            }

            return(Json(ResponseFactory.SuccessResponse));
        }
示例#2
0
        public JsonResult Login(LoginModel model)
        {
            var response = ResponseFactory.Success(ResponseCode.SuccessLoggedIn);

            if (model == null)
            {
                return(Json(ResponseFactory.Error(ResponseCode.ErrorInvalidInput), JsonRequestBehavior.AllowGet));
            }

            var user = UserCore.GetSingle(userTemp => userTemp.Email == model.Email);

            if (user == null)
            {
                return(Json(ResponseFactory.Error(ResponseCode.ErrorEmailInvalid), JsonRequestBehavior.AllowGet));
            }

            var check = Md5Helper.VerifyPassword(model.Password, user.Password);

            if (check == false)
            {
                return(Json(ResponseFactory.Error(ResponseCode.ErrorInvalidPassword), JsonRequestBehavior.AllowGet));
            }

            if (user.IsAdmin == true)
            {
                Session["isAdmin"] = true;
            }
            Session["userId"]   = user.Id;
            Session["userName"] = user.FirstName;
            return(Json(response));
        }
示例#3
0
        public void Update_Subtract_Points_Success_Test()
        {
            UserCore core = SetupUser(2, 1);
            User     user = core.UpdatePoints(1, -1, false);

            Assert.Equal(0, user.Points);
        }
示例#4
0
        public void TestRegister()
        {
            var user = new UserViewModel()
            {
                FirstName = "Test",
                LastName  = "Test",
                Email     = "*****@*****.**",
                Password  = Md5Helper.Hash("6178")
            };

            var createdUser = UserCore.Create(user);

            Assert.AreEqual(true, createdUser.Success);

            var createdUserDb = UserCore.GetSingle(_user => _user.Email == user.Email);

            Assert.AreEqual(true, createdUser != null);
            Assert.AreEqual(user.FirstName, createdUserDb.FirstName, "FirstName");
            Assert.AreEqual(user.LastName, createdUserDb.LastName, "LastName");
            Assert.AreEqual(user.Password, createdUserDb.Password, "Passwords");

            var deleteUserResponse = UserCore.Delete(createdUserDb);

            Assert.AreEqual(true, deleteUserResponse);
        }
        private void SetPreference(Guid appId, Guid userId)
        {
            using (new PerformanceMonitor())
            {
                var app = new Application()
                {
                    Identifier = ServerConfiguration.ApplicationIdentifier,
                };
                var currentApp = new Application()
                {
                    Identifier = appId,
                };
                var user = new User()
                {
                    Identifier = userId,
                };
                var pref = new UserPreference()
                {
                    Application        = app,
                    CurrentApplication = currentApp,
                    User = user,
                    MaximumAllowedApplications = null,
                };

                var core = new UserCore();
                core.Save(pref);
            }
        }
        public void ProfilePageUpdate()
        {
            var page = new ProfilePage()
            {
                ApplicationIdentifier = Guid.NewGuid(),
                Handle          = Guid.NewGuid().ToString(),
                OwnerIdentifier = Guid.NewGuid(),
            };

            var core = new UserCore();

            core.Save(page);
            var newPage = new ProfilePage()
            {
                ExistingHandle        = page.Handle,
                Handle                = Guid.NewGuid().ToString(),
                ApplicationIdentifier = page.ApplicationIdentifier,
                OwnerIdentifier       = page.OwnerIdentifier,
            };

            core.Save(newPage);
            var get = core.Get(page);

            Assert.IsNull(get);
            get = core.Get(newPage);
            Assert.AreEqual <string>(newPage.Handle, get.Handle);
            Assert.AreEqual <Guid>(newPage.ApplicationIdentifier, get.ApplicationIdentifier);
            Assert.AreEqual <Guid>(newPage.OwnerIdentifier, get.OwnerIdentifier);
        }
        public virtual JsonResult GetLoggedUser()
        {
            var response = new { Success = false, Data = "" };

            var aspnetEmail = GetMyAspnetEmail();

            if (string.IsNullOrEmpty(aspnetEmail))
            {
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            var user = UserCore.GetEFByAspNetEmail(aspnetEmail);

            if (user == null)
            {
                return(Json(response, JsonRequestBehavior.AllowGet));
            }

            var userModel = new UserLoginResponse
            {
                Id                = user.Id,
                OrganizationId    = user.OrganizationId,
                FirstName         = user.FirstName,
                LastName          = user.LastName,
                FullName          = user.FirstName,
                Email             = user.AspNetUser.Email,
                DisplayName       = user.DisplayName,
                ProfilePictureUrl = user.ProfilePictureUrl,
                RolesId           = AspNetUserCore.SetRolesId(user.AspNetUser.AspNetRoles),
            };

            return(Json(new { Success = true, Data = userModel }, JsonRequestBehavior.AllowGet));
        }
        public void UserPreferenceRoundTrip()
        {
            var core  = new UserCore();
            var pref  = this.Preference();
            var saved = core.Save(pref);

            Assert.AreEqual <Guid>(pref.User.Identifier, saved.User.Identifier);
            Assert.AreEqual <Guid>(pref.Application.Identifier, saved.Application.Identifier);
            Assert.AreEqual <Guid>(pref.CurrentApplication.Identifier, saved.CurrentApplication.Identifier);
            Assert.AreEqual <string>(pref.TimeZone.Id, saved.TimeZone.Id);
            Assert.AreEqual <string>(pref.TwitterHandle, saved.TwitterHandle);
            Assert.AreEqual <string>(pref.AbcHandle, saved.AbcHandle);
            Assert.AreEqual <string>(pref.GitHubHandle, saved.GitHubHandle);
            Assert.AreEqual <string>(pref.City, saved.City);
            Assert.AreEqual <string>(pref.Country, saved.Country);

            var got = core.Get(pref);

            Assert.AreEqual <Guid>(pref.User.Identifier, got.User.Identifier);
            Assert.AreEqual <Guid>(pref.Application.Identifier, got.Application.Identifier);
            Assert.AreEqual <Guid>(pref.CurrentApplication.Identifier, got.CurrentApplication.Identifier);
            Assert.AreEqual <string>(pref.TimeZone.Id, got.TimeZone.Id);
            Assert.AreEqual <string>(pref.TwitterHandle, got.TwitterHandle);
            Assert.AreEqual <string>(pref.AbcHandle, got.AbcHandle);
            Assert.AreEqual <string>(pref.GitHubHandle, got.GitHubHandle);
            Assert.AreEqual <string>(pref.City, got.City);
            Assert.AreEqual <string>(pref.Country, got.Country);
        }
        private static void SetIdentity(AuthorizationContext filterContext, string validationToken)
        {
            var user = UserCore.GetSingle(usr => usr.AspNetUserId == validationToken, new[] { nameof(User.AspNetUser) });

            if (user == null)
            {
                return;
            }

            var identity = new CustomIdentity
            {
                AspNetUserId        = validationToken,
                Username            = user.AspNetUser.Email,
                Status              = user.AspNetUser.Status ?? user.AspNetUser.Status.Value,
                Id                  = user.Id,
                ProfilePictureUrl   = user.ProfilePictureUrl,
                UserType            = user.AspNetUser.UserType ?? user.AspNetUser.UserType.Value,
                FullName            = user.FullName,
                NumberOfMealsPerDay = user.NumberOfMealsPerDay.Value,
                BirthDay            = user.BirthDay.HasValue == true?user.BirthDay.Value.Date.ToString() : "1997/02/07",

                                          //NumberOfWorkoutsPerDay = user.NumberOfWorkoutsPerDay ?? user.NumberOfWorkoutsPerDay.Value,
            };

            SetIdentity(filterContext, identity, user.AspNetUser);
        }
        private static void SetIdentity(AuthorizationContext filterContext, string validationToken)
        {
            var user = UserCore.GetByAspNetUserId(validationToken, new[]
            {
                nameof(User.AspNetUser)
            });

            if (user == null)
            {
                //LogHelper.LogInfo<GlobalIdentityInjectorAttribute>("failed to retrieve user!");
                return;
            }

            //if (!user.AspNetUser.WhitelabelId.HasValue)
            //{
            //    //LogHelper.LogInfo<GlobalIdentityInjectorAttribute>("user does not have WhitelabelId!");
            //    return;
            //}

            var identity = new CustomIdentity
            {
                Id           = user.Id,
                AspNetUserId = validationToken,
                Username     = user.AspNetUser.Email,
                //identity.Status = user.AspNetUser.Status;
                FirstName       = user.FirstName,
                LastName        = user.LastName,
                PhoneNumber     = user.AspNetUser.PhoneNumber,
                ProfileImageUrl = user.ProfilePictureUrl
            };

            SetIdentity(filterContext, identity, user.AspNetUser);
        }
示例#11
0
        public virtual async Task <ActionResult> Login(UserLoginModel model)
        {
            var user = await UserCore.GetByEmailAndPasswordAsync(model.Email, model.Password).ConfigureAwait(false);

            if (user == null)
            {
                return(RedirectToAction(MVC.Account.Actions.Login()));
            }

            var token = await AuthTokenCore.CreateAsync(new AuthToken { UserId = user.Id }).ConfigureAwait(false);

            HttpContext.Request.Cookies.Clear(); // clear all cookies, to start a fresh session

            var tkt = new FormsAuthenticationTicket(1, model.Email, DateTime.Now,
                                                    DateTime.Now.AddMinutes(999), false, $"{token.Id}#{Guid.NewGuid()}#{token.Id}", FormsAuthentication.FormsCookiePath);

            var cookiestr = FormsAuthentication.Encrypt(tkt);
            var ck        = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr)
            {
                Expires = tkt.Expiration,
                Path    = FormsAuthentication.FormsCookiePath
            };

            Response.Cookies.Add(ck);

            return(RedirectToAction(MVC.Home.Actions.Index()));
        }
示例#12
0
        public bool IsSangamAdmin(string profileID)
        {
            bool     IsSangamAdmin = false;
            UserCore objUserCore   = new UserCore(_objLoggedInUser.ConnectionStringAppKey);

            using (objUserCore as IDisposable)
            {
                UserCoreEntity objUserCoreEntity = new UserCoreEntity();
                using (objUserCoreEntity as IDisposable)
                {
                    objUserCoreEntity = objUserCore.GetByLoginID(profileID);
                    if (objUserCoreEntity.RoleID == Constants.RoleIDForSangamAdmin)
                    {
                        IsSangamAdmin = true;
                    }
                    else if (objUserCoreEntity.RoleID == Constants.RoleIDForMugurthamAdmin)
                    {
                        IsSangamAdmin = true;
                    }
                }
                objUserCoreEntity = null;
            }
            objUserCore = null;
            return(IsSangamAdmin);
        }
        public ActionResult Edit(FormCollection collection)
        {
            var twitterHandle = collection["TwitterHandle"];

            if (string.IsNullOrWhiteSpace(twitterHandle))
            {
                return(base.RedirectToAction("Index", "Home"));
            }
            else
            {
                var source     = new DomainSource();
                var user       = source.GetUserByEmail(Application.Default.Identifier, base.User.Identity.Name);
                var preference = new UserPreference()
                {
                    TwitterHandle = twitterHandle,
                    User          = user.Convert(),
                    Application   = Application.Default,
                };

                var core = new UserCore();
                core.Save(preference);

                return(this.Edit());
            }
        }
        private static void SetCustomPrincipal(AuthorizationContext filterContext, Guid validationToken)
        {
            if (validationToken == Guid.Empty)
            {
                SignOutAndSetStatusCode(filterContext);
                return;
            }

            var authToken = Task.Run(async() => await AuthTokenCore.GetAsync(validationToken).ConfigureAwait(false)).GetAwaiter().GetResult();

            if (authToken == null)
            {
                SignOutAndSetStatusCode(filterContext);
                return;
            }

            var user = Task.Run(async() => await UserCore.GetAsync(authToken.UserId).ConfigureAwait(false)).GetAwaiter().GetResult();

            if (user == null)
            {
                SignOutAndSetStatusCode(filterContext);
                return;
            }

            var identity = new CustomIdentity(user);

            var newUser = new CustomPrincipal(identity);

            //set the custom principal
            filterContext.HttpContext.User = newUser;
        }
示例#15
0
        public void GetPublicProfiles()
        {
            var appId = Guid.NewGuid();
            var core  = new UserCore();

            for (int i = 0; i < 5; i++)
            {
                var page = new ProfilePage()
                {
                    ApplicationIdentifier = appId,
                    Handle          = Guid.NewGuid().ToString(),
                    OwnerIdentifier = Guid.NewGuid(),
                };

                core.Save(page);
            }
            var app = new Application()
            {
                Identifier = appId,
            };

            var profiles = core.PublicProfiles(app);

            Assert.AreEqual <int>(5, profiles.Count());
        }
示例#16
0
        public void SaveUserPreferenceNullApplication()
        {
            var core = new UserCore();
            var pref = this.Preference();

            pref.Application = null;
            core.Save(pref);
        }
示例#17
0
        public void GetUserPreferenceEmptyApplicationId()
        {
            var core = new UserCore();
            var pref = this.Preference();

            pref.Application.Identifier = Guid.Empty;
            core.Get(pref);
        }
示例#18
0
        public void GetUserApplicationEmptyUserIdentifier()
        {
            var core = new UserCore();
            var data = this.UserApp();

            data.User.Identifier = Guid.Empty;
            core.Get(data);
        }
示例#19
0
        public void SaveContactEmptyOwnerIdentifier()
        {
            var core = new UserCore();
            var data = this.Contact();

            data.Owner.Identifier = Guid.Empty;
            core.Save(data);
        }
示例#20
0
        public void SaveContactGroupEmptyIdentifier()
        {
            var core = new UserCore();
            var data = this.Group();

            data.Identifier = Guid.Empty;
            core.Save(data);
        }
示例#21
0
        public void SaveUserPreferenceNullUser()
        {
            var core = new UserCore();
            var pref = this.Preference();

            pref.User = null;
            core.Save(pref);
        }
示例#22
0
        public void SaveUserPreferenceEmptyUserId()
        {
            var core = new UserCore();
            var pref = this.Preference();

            pref.User.Identifier = Guid.Empty;
            core.Save(pref);
        }
示例#23
0
        public void GetContactsEmptyUserIdentifier()
        {
            var core = new UserCore();
            var data = this.UserData();

            data.Identifier = Guid.Empty;
            core.GetContacts(data);
        }
示例#24
0
        public UserCoreTest()
        {
            LoyaltyContext context = new LoyaltyContext(new DbContextOptionsBuilder <LoyaltyContext>()
                                                        .UseInMemoryDatabase(databaseName: "Add_writes_to_database")
                                                        .Options);

            core = new UserCore(context);
        }
示例#25
0
        public void GetUserApplicationNullUser()
        {
            var core = new UserCore();
            var data = this.UserApp();

            data.User = null;
            core.Get(data);
        }
示例#26
0
        public void SaveContactNullOwner()
        {
            var core = new UserCore();
            var data = this.Contact();

            data.Owner = null;
            core.Save(data);
        }
        public UserCore UpdateUser(UserCore user)
        {
            UserCore userToUpdate = _users.Find(s => s.Account == user.Account);
            int      ix           = _users.IndexOf(userToUpdate);

            _users[ix] = user;
            return(_users[ix]);
        }
示例#28
0
        /// <summary>
        /// 修改地址
        /// </summary>
        /// <param name="me">当前用户</param>
        public static void ChangeMyAddress(this UserCore me)
        {
            Write("地址: ");
            string address = ReadLine();

            me.AddHistory(new Message("你", $"重新设置了地址({me.Address = address})"));
            DisplayTheInformationOfSuccessfully();
        }
示例#29
0
        /// <summary>
        /// 查看我的操作记录
        /// </summary>
        /// <param name="me">当前用户</param>
        public static void ViewMyHistory(this UserCore me)
        {
            me.GetHistory().OrderByDescending(msg => msg.Time).ToList().ForEach(WriteLine);

            //var messages = (from msg in me.GetHistory()
            //                          orderby msg.Time descending
            //                          select msg).ToList();
            //messages.ForEach(WriteLine);
        }
示例#30
0
        public void GetUserByEmailApplicationNull()
        {
            var userApp = this.UserApp();

            userApp.Application = null;
            var core = new UserCore();

            core.GetByEmail(userApp);
        }