Example #1
0
        public async Task <bool> EditUser(UserViewDto userData)
        {
            bool updatedRole = false;

            if (userData?.Role != null)
            {
                updatedRole = await authenticationService.EditRole(userData.Id, userData.Role.Id);
            }

            var userEntity = await userRepository.GetSingleByCondition(x => x.Id == userData.Id);

            var updated = mapper.Map(mapper.Map <UserDataDto>(userData), userEntity);

            await userRepository.Update(userEntity, updated);

            var updatedUser = await userRepository.SaveChanges();

            bool updatedPerson;

            if (userData?.Person != null)
            {
                var person = mapper.Map <EditPersonDataDto>(userData.Person);
                updatedPerson = await personService.EditPerson(person);
            }
            else
            {
                updatedPerson = true;
            }

            return((updatedUser || updatedRole) && updatedPerson);
        }
        public ResultCode Register(UserViewDto mLogin, string confirmPass)
        {
            var result = CheckRegister(mLogin, confirmPass);

            if (result != ResultCode.Success)
            {
                return(result);
            }
            var mUser = new User()
            {
                UserName         = mLogin.UserName,
                NickName         = string.IsNullOrEmpty(mLogin.NickName) ? mLogin.UserName : (mLogin.NickName.Length > 50 ? mLogin.NickName.Substring(0, 50) : mLogin.NickName),
                Email            = mLogin.Email,
                EmailConfirmed   = false,
                IsActive         = false,
                PasswordHash     = PasswordSecurity.PasswordStorage.CreateHash(mLogin.Password),
                CreationTime     = DateTime.Now,
                LastModifiedTime = DateTime.Now
            };

            _unitOfWork.RegisterNew(mUser);
            _unitOfWork.CommitAsync();


            return(result);
        }
        public ResultCode Login(UserViewDto mLogin)
        {
            User mUser  = null;
            var  result = CheckLogin(mLogin, ref mUser);

            if (result != ResultCode.Success)
            {
                return(result);
            }

            var loginInfo = new LoginInfo()
            {
                UserId = mUser.Id, UserName = mUser.UserName, NickName = mUser.NickName
            };

            AddLoginInfo(loginInfo);//添加用户信息到cookie

            //记住我
            if (mLogin.IsRemember)
            {
                CookieHelper.SetCookie(CookieHelper.RememberMe, mLogin.UserName, DateTime.Now.AddMonths(3));
            }
            else
            {
                var rememberMe = CookieHelper.GetCookie(CookieHelper.RememberMe);
                if (rememberMe == null)
                {
                    CookieHelper.Expires(new[] { CookieHelper.RememberMe });
                }
            }

            return(result);
        }
Example #4
0
        public JsonResult UpdateUserView(string viewId, string viewPref)
        {
            var userView = new UserViewDto
            {
                UserID     = _authUser.UserId,
                ClientID   = _authUser.ClientId,
                UserViewID = Int32.Parse(viewId),
                ViewName   = "Default",
                View       = viewPref
            };

            var nList = _userBl.UpdateUserView(userView);

            var userAdded = new UserHandlerModel();

            if (nList > 0)
            {
                userAdded.MgUserId   = nList;
                userAdded.StrMessage = "Updated";
            }
            else if (nList == 0)
            {
                userAdded.MgUserId   = nList;
                userAdded.StrMessage = "Error";
            }

            return(Json(userAdded, JsonRequestBehavior.AllowGet));
        }
        public async Task <ActionResult> Register(UserViewDto userView)
        {
            //var result = _userService.Register(mLogin, Request.Form["confirmPass"]);
            //ViewBag.SubmitResult = (string.Format("CallBack({0},\"{1}\")", (int)result, result.ToString()));

            if (ModelState.IsValid)
            {
                var  nickName = string.IsNullOrEmpty(userView.NickName) ? userView.UserName : userView.NickName;
                User user     = new User()
                {
                    UserName = userView.UserName, NickName = nickName.Length > 50? nickName.Substring(0, 50):nickName,
                    Email    = userView.Email, CreationTime = DateTime.Now, LastModifiedTime = DateTime.Now
                };
                IdentityResult result = await UserManager.CreateAsync(user, userView.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Login", "Account", new { area = "Front" }));
                }
                else
                {
                    AddErrorsFromResult(result);
                }
            }
            return(View(userView));
        }
Example #6
0
        public JsonResult SaveNewUserView(string viewName, string viewPref)
        {
            var userView = new UserViewDto
            {
                UserID   = _authUser.UserId,
                ClientID = _authUser.ClientId,
                View     = viewPref,
                ViewName = viewName
            };
            var nList = _userBl.SaveNewUserView(userView);

            var userAdded = new UserHandlerModel();

            if (nList > 0)
            {
                userAdded.MgUserId   = nList;
                userAdded.StrMessage = "Added";
            }
            else if (nList == 0)
            {
                userAdded.MgUserId   = nList;
                userAdded.StrMessage = "Cannot store more than 30 views";
            }
            //else if (nList == -2)
            //{
            //    userAdded.MgUserId = nList;
            //    userAdded.StrMessage = "There is already a view with this name";
            //}
            return(Json(userAdded, JsonRequestBehavior.AllowGet));
        }
Example #7
0
        /// <summary>
        /// Saves the new user view.
        /// </summary>
        /// <param name="userView">The user view.</param>
        /// <returns></returns>
        public int SaveNewUserView(UserViewDto userView)
        {
            int result;

            using (var sdaCloudEntities = new SDACloudEntities())
            {
                using (var transactionScope = new TransactionScope())
                {
                    var nList = GetUserViewsByUserAndClient(userView.ClientID, userView.UserID);

                    if (nList.Count < 30)
                    {
                        var existName = nList.Where(u => u.ViewName.ToUpper().Equals(userView.ViewName.ToUpper())).FirstOrDefault();
                        if ((existName == null) && (!userView.ViewName.ToUpper().Equals("DEFAULT")))
                        {
                            var existingUser = new UserView
                            {
                                UserID   = userView.UserID,
                                ClientID = userView.ClientID,
                                View     = userView.View,
                                ViewName = userView.ViewName
                            };

                            sdaCloudEntities.UserViews.AddObject(existingUser);

                            sdaCloudEntities.SaveChanges();

                            var existingUv = sdaCloudEntities.UserViews.Where(u => u.ClientID == userView.ClientID && u.UserID == userView.UserID && u.ViewName.ToUpper().Equals(userView.ViewName.ToUpper())).FirstOrDefault();

                            result = existingUv.UserViewID;

                            transactionScope.Complete();
                        }
                        else if ((existName != null) && (!userView.ViewName.ToUpper().Equals("DEFAULT")))
                        {
                            var existingUv = sdaCloudEntities.UserViews.Where(u => u.ClientID == userView.ClientID && u.UserID == userView.UserID && u.ViewName.ToUpper().Equals(userView.ViewName.ToUpper())).FirstOrDefault();
                            existingUv.View = userView.View;

                            sdaCloudEntities.SaveChanges();

                            result = existingUv.UserViewID;

                            transactionScope.Complete();
                        }
                        else
                        {
                            result = -2;
                        }
                    }
                    else
                    {
                        result = 0;
                    }
                }
            }
            return(result);
        }
        public async Task <UserViewDto> Login(UserPostDto user)
        {
            User record = await _context.Users.Where(u => u.EmailAddress == user.EmailAddress)
                          .FirstOrDefaultAsync();

            if (record == null)
            {
                throw new Exception("Cannot find a user using the email address entered");
            }

            using (SHA256CryptoServiceProvider sha256 = new SHA256CryptoServiceProvider())
            {
                UTF8Encoding utf8   = new UTF8Encoding();
                byte[]       data   = sha256.ComputeHash(utf8.GetBytes(user.Password + record.Salt));
                var          result = Convert.ToBase64String(data);

                if (result != record.Hash)
                {
                    throw new Exception("Incorrect password or email address");
                }
            }

            var configurationBuilder = new ConfigurationBuilder();
            var path = Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json");

            configurationBuilder.AddJsonFile(path, false);

            var root = configurationBuilder.Build();

            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(root.GetSection("AppSettings").GetSection("Encrytion").Value);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim("Id", record.ID.ToString()),
                    new Claim("EmaillAddress", record.EmailAddress.ToString()),
                    new Claim("Firstname", record.FirstName.ToString()),
                    new Claim("Lastname", record.LastName.ToString()),
                    new Claim("UserType", "System")
                }),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };

            var newToken = tokenHandler.CreateToken(tokenDescriptor);
            var token    = tokenHandler.WriteToken(newToken);

            UserViewDto response = new UserViewDto()
            {
                Token = token
            };

            return(response);
        }
        public async Task <ActionResult> Edit(UserViewDto userView)
        {
            if (userView == null || string.IsNullOrEmpty(userView.UserId) || string.IsNullOrEmpty(userView.Email))
            {
                ModelState.AddModelError("", "Params Error.");
                return(View(userView));
            }

            var user = await UserManager.FindByIdAsync(userView.UserId);

            if (user != null)
            {
                user.NickName = userView.NickName;
                user.Email    = userView.Email;
                var nickName = string.IsNullOrEmpty(userView.NickName) ? userView.UserName : userView.NickName;
                user.NickName = nickName.Length > 50 ? nickName.Substring(0, 50) : nickName;
                IdentityResult validEmail = await UserManager.UserValidator.ValidateAsync(user);

                if (!validEmail.Succeeded)
                {
                    AddErrorsFromResult(validEmail);
                }
                IdentityResult validPass = (string.IsNullOrEmpty(userView.Password)) ? null : await UserManager.PasswordValidator.ValidateAsync(userView.Password);

                if (validPass != null && validPass.Succeeded)
                {
                    user.PasswordHash = UserManager.PasswordHasher.HashPassword(userView.Password);
                }
                else if (validPass != null && validPass.Errors.Any())
                {
                    AddErrorsFromResult(validPass);
                }

                if (validEmail.Succeeded && (validPass == null || validPass.Succeeded))
                {
                    IdentityResult result = await UserManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        AddErrorsFromResult(result);
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", "User Not Found.");
            }
            return(View(userView));
        }
Example #10
0
        public JsonResult LoadDefaultUserView()
        {
            var userView = new UserViewDto
            {
                UserID   = _authUser.UserId,
                ClientID = _authUser.ClientId,
                ViewName = "Default"
            };
            var viewPref = _userBl.GetUserViewByName(userView);

            return(Json(viewPref, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Mapper from UserViewModel to UserViewDto
        /// </summary>
        /// <param name="userViewModel">information about User in UI</param>
        /// <returns>ViewDto model information about User</returns>
        private static UserViewDto MapView(UserViewModel userViewModel)
        {
            var userViewDto = new UserViewDto
            {
                Id        = userViewModel.Id,
                FirstName = userViewModel.FirstName,
                LastName  = userViewModel.LastName,
                Passport  = userViewModel.Passport,
                Email     = userViewModel.Email
            };

            return(userViewDto);
        }
        private UserViewDto GetTestUserViewDto()
        {
            var users = new UserViewDto()
            {
                FullName  = "ABC",
                FirstName = "test title",
                LastName  = "Test message",
                Reminder  = false,
                Email     = "*****@*****.**"
            };

            return(users);
        }
        /// <summary>
        /// Mapper from UserViewDto to userViewModel
        /// </summary>
        /// <param name="userViewDto">information abount User from BLL</param>
        /// <returns>information about User</returns>
        private static UserViewModel MapView(UserViewDto userViewDto)
        {
            var userViewModel = new UserViewModel
            {
                Id        = userViewDto.Id,
                FirstName = userViewDto.FirstName,
                LastName  = userViewDto.LastName,
                Passport  = userViewDto.Passport,
                Email     = userViewDto.Email
            };

            return(userViewModel);
        }
Example #14
0
        /// <summary>
        /// Mapper from userInfo to UserViewDto
        /// </summary>
        /// <param name="userInfo">information abount User</param>
        /// <returns>Dto model information about User</returns>
        private static UserViewDto MapView(UserInfo userInfo)
        {
            var userViewDto = new UserViewDto
            {
                Id        = userInfo.Id,
                FirstName = userInfo.FirstName,
                LastName  = userInfo.LastName,
                Passport  = userInfo.Passport,
                Email     = userInfo.Email
            };

            return(userViewDto);
        }
Example #15
0
        public JsonResult SaveDefaultUserView(string viewPref)
        {
            var userView = new UserViewDto
            {
                UserID   = _authUser.UserId,
                ClientID = _authUser.ClientId,
                View     = viewPref,
                ViewName = "Default"
            };
            var userAdded = _userBl.SaveUserViewByName(userView);

            return(Json(userAdded, JsonRequestBehavior.AllowGet));
        }
Example #16
0
        public async Task <JsonResult> ConversationListData()
        {
            var authUserId        = this.User.Identity.GetUserIdGuid().Value;
            var userConversations = (await _userService
                                     .QueryUser()
                                     .Include(u => u.Conversations)
                                     .Include(u => u.Conversations.Select(c => c.Users))
                                     .SingleAsync(u => u.Id == authUserId))
                                    .Conversations
                                    .Where(c => !c.ConversationOptions.Single(opt => opt.UserId == authUserId).IsDeleted);

            List <ConversationPreviewDto> listDto = new List <ConversationPreviewDto>();

            foreach (var conv in userConversations)
            {
                var user    = conv.Users.First(u => u.Id != authUserId);
                var userDto = new UserViewDto
                {
                    Gender       = user.Gender,
                    Name         = user.Name,
                    ProfilePhoto = PhotoUrlService.GetPhotoDto(user.ProfilePhotoUrl),
                    UserId       = user.Id
                };

                var lastMessage = conv.Messages
                                  .OrderByDescending(m => m.SentOn)
                                  .Where(m => m.SentByUserId != authUserId)
                                  .FirstOrDefault();

                MessageDto lastMessageDto = lastMessage != null
                    ? new MessageDto
                {
                    SentByUserId = lastMessage.SentByUserId,
                    SentOn       = lastMessage.SentOn,
                    Text         = lastMessage.Text
                } : null;

                listDto.Add(new ConversationPreviewDto
                {
                    ConversationId = conv.Id,
                    Message        = lastMessageDto,
                    User           = userDto,
                    HasNewMessages = conv
                                     .ConversationOptions
                                     .Single(u => u.UserId == authUserId)
                                     .HasNewMessages
                });
            }

            return(Json(listDto, JsonRequestBehavior.AllowGet));
        }
Example #17
0
        public ActionResult GetVideoReport(eReportTypes type, UserViewDto dto, int?pageSize = null)
        {
            switch (type)
            {
            case eReportTypes.Grid:
                return(PartialView("Author/_VideosList", new AuthorVideosPageToken {
                    user = dto, ListPageSize = pageSize ?? 8
                }));

            case eReportTypes.List:
                return(PartialView("Author/_VideosGrid", dto));
            }

            return(PartialView("CourseReport/_CoursesList", dto));
        }
Example #18
0
        public async Task <JsonResult> VoteForUser(VoteViewModel model)
        {
            var userId = this.User.Identity.GetUserIdGuid().Value;
            var voteId = Guid.NewGuid();

            var latestVote = _userService.QueryUser()
                             .Include(u => u.ReceivedVotes)
                             .Where(u => u.Id == model.RatedOnUserId)
                             .SelectMany(u => u.ReceivedVotes)
                             .OrderByDescending(v => v.RatedOn)
                             .FirstOrDefault(v => v.RatedByUserId == userId);

            if (latestVote != null && (model.VotedOn - latestVote.RatedOn).TotalHours < 3)
            {
                return(Json(new { success = false, error = "You can only vote every 3 hours." }));
            }

            await _voteService.Vote(voteId, model.Rate, model.Comment, userId, model.RatedOnUserId, model.VotedOn);

            var user = await _userService.QueryUser().SingleAsync(u => u.Id == userId);

            UserViewDto userView = new UserViewDto
            {
                Gender       = user.Gender,
                Name         = user.Name,
                ProfilePhoto = PhotoUrlService.GetPhotoDto(user.ProfilePhotoUrl),
                UserId       = user.Id
            };

            var ratedOnUser = await _userService.QueryUser()
                              .SingleAsync(u => u.Id == model.RatedOnUserId);

            if (ratedOnUser.EmailNotificationEnabled)
            {
                await _emailService.SendVoteReceived(ratedOnUser.Email, model.RatedOnUserId, userView.Name);
            }

            _voteHub.Clients.All.VoteReceived(voteId,
                                              model.RatedOnUserId,
                                              userView,
                                              model.Rate,
                                              model.Comment,
                                              model.VotedOn);

            return(Json(new { success = true }));
        }
        public async Task <ActionResult> Edit(string id)
        {
            User user = await UserManager.FindByIdAsync(id);

            if (user != null)
            {
                var userView = new UserViewDto()
                {
                    UserId = user.Id, UserName = user.UserName, NickName = user.NickName, Email = user.Email
                };
                return(View(userView));
            }
            else
            {
                return(RedirectToAction("Index", "Admin", new { area = "Back" }));
            }
        }
Example #20
0
        public async Task <IActionResult> EditUser(UserViewDto userData)
        {
            try
            {
                if (userData == null)
                {
                    return(BadRequest());
                }

                var result = await userService.EditUser(userData);

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(HandleException(ex.Message));
            }
        }
Example #21
0
        public async Task EditUser_GivenAValidUserDataToEdit_ShouldEditTheUserData()
        {
            var userdata = new UserViewDto
            {
                Id       = ADMIN_USER_ID.ToString(),
                Email    = "*****@*****.**",
                UserName = "******",
            };

            var request = await DoPostRequest("api/user/edituser", userdata);

            request.EnsureSuccessStatusCode();

            var response = GetStructResult <bool>(await request.Content.ReadAsStringAsync());

            Assert.AreEqual(HttpStatusCode.OK, request.StatusCode);
            Assert.IsTrue(response);
        }
Example #22
0
        /// <summary>
        /// Gets the name of the user view by.
        /// </summary>
        /// <param name="userView">The user view.</param>
        /// <returns></returns>
        public string GetUserViewByName(UserViewDto userView)
        {
            using (var sdaCloudEntities = new SDACloudEntities())
            {
                using (sdaCloudEntities)
                {
                    var existingUser =
                        sdaCloudEntities.UserViews.SingleOrDefault(
                            i =>
                            i.UserID == userView.UserID && i.ClientID == userView.ClientID && i.ViewName.ToUpper().Trim().Equals(userView.ViewName.ToUpper().Trim()));

                    if (existingUser != null)
                    {
                        return(existingUser.View);
                    }

                    return(string.Empty);
                }
            }
        }
Example #23
0
        /// <summary>
        /// Updates the user view.
        /// </summary>
        /// <param name="userView">The user view.</param>
        /// <returns></returns>
        public int UpdateUserView(UserViewDto userView)
        {
            int result;

            using (var sdaCloudEntities = new SDACloudEntities())
            {
                using (var transactionScope = new TransactionScope())
                {
                    UserView exist;

                    if (userView.UserViewID != 0)
                    {
                        exist = sdaCloudEntities.UserViews.SingleOrDefault(u => u.UserViewID == userView.UserViewID);
                    }
                    else
                    {
                        exist =
                            sdaCloudEntities.UserViews.SingleOrDefault(
                                i =>
                                i.UserID == userView.UserID && i.ClientID == userView.ClientID && i.ViewName.ToUpper().Trim().Equals(userView.ViewName.ToUpper().Trim()));
                    }

                    if (exist != null)
                    {
                        exist.View = userView.View;
                        sdaCloudEntities.SaveChanges();

                        result = exist.UserViewID;

                        transactionScope.Complete();
                    }
                    else
                    {
                        result = 0;
                    }
                }
            }
            return(result);
        }
        public ResultCode CheckRegister(UserViewDto mLogin, string confirmPass)
        {
            var result = ResultCode.Success;

            if (mLogin == null || string.IsNullOrEmpty(mLogin.UserName) || (!Util.IsUserName(mLogin.UserName)))
            {
                return(ResultCode.UserNameError);
            }
            if (string.IsNullOrEmpty(mLogin.Password) || (string.IsNullOrEmpty(confirmPass)) || (!Util.IsPassword(mLogin.Password)) || (!mLogin.Password.Equals(confirmPass)))
            {
                return(ResultCode.PasswordError);
            }

            var mUser = _userRepository.GetByName(mLogin.UserName);

            if (mUser != null)
            {
                return(ResultCode.UserNameExists);
            }

            return(result);
        }
Example #25
0
        public async Task <UserViewDto> GetUserById(string userId)
        {
            UserViewDto result = null;

            var dbResult = await userRepository.GetUserById(userId);

            if (dbResult == null)
            {
                return(result);
            }

            result = new UserViewDto
            {
                Id          = dbResult.Id,
                CreatedDate = dbResult.CreatedDate,
                Email       = dbResult.Email,
                Provider    = dbResult.Provider,
                UserName    = dbResult.UserName,
                Person      = mapper.Map <PersonFullDto>(personRepository.GetPersonWithChildEntities(userId: dbResult.Id).Result)
            };

            return(result);
        }
        private ResultCode CheckLogin(UserViewDto mLogin, ref User mUser)
        {
            var result = ResultCode.Success;

            mUser = null;
            if ((!Util.IsUserName(mLogin.UserName)) || (!Util.IsPassword(mLogin.Password)))
            {
                return(ResultCode.UserPasswordError);
            }

            var loginInfo = GetLoginInfo(new LoginInfo());

            if (loginInfo != null || (!string.IsNullOrEmpty(loginInfo.UserId)))//loginInfo.UserId > 0)
            {
                return(ResultCode.HasLogined);
            }

            mUser = _userRepository.GetByName(mLogin.UserName);
            if (mUser == null)
            {
                return(ResultCode.UserPasswordError);
            }

            if (!mUser.IsActive)
            {
                return(ResultCode.UnActive);
            }

            var correctPass = PasswordSecurity.PasswordStorage.VerifyPassword(mLogin.Password, mUser.PasswordHash);

            if (!correctPass)
            {
                return(ResultCode.UserPasswordError);
            }

            return(result);;
        }
Example #27
0
        /// <summary>
        /// Saves the name of the user view by.
        /// </summary>
        /// <param name="userView">The user view.</param>
        /// <returns></returns>
        public int SaveUserViewByName(UserViewDto userView)
        {
            int result;

            using (var sdaCloudEntities = new SDACloudEntities())
            {
                using (var transactionScope = new TransactionScope())
                {
                    var existingUser = sdaCloudEntities.UserViews.FirstOrDefault(i => i.UserID == userView.UserID && i.ClientID == userView.ClientID && i.ViewName.ToUpper() == userView.ViewName.ToUpper());

                    if (existingUser != null)
                    {
                        existingUser.View = userView.View;
                    }
                    else
                    {
                        existingUser = new UserView
                        {
                            UserID   = userView.UserID,
                            ClientID = userView.ClientID,
                            View     = userView.View,
                            ViewName = userView.ViewName
                        };

                        sdaCloudEntities.UserViews.AddObject(existingUser);
                    }

                    sdaCloudEntities.SaveChanges();

                    result = existingUser.UserViewID;

                    transactionScope.Complete();
                }
            }
            return(result);
        }
Example #28
0
        /// <summary>
        /// Saves the name of the user view by.
        /// </summary>
        /// <param name="userView">The user view.</param>
        /// <returns></returns>
        public int SaveUserViewByName(UserViewDto userView)
        {
            var userDl = new UserDL();

            return(userDl.SaveUserViewByName(userView));
        }
Example #29
0
        public int UpdateUserView(UserViewDto userView)
        {
            var userDl = new UserDL();

            return(userDl.UpdateUserView(userView));
        }
Example #30
0
        /// <summary>
        /// Saves the new user view.
        /// </summary>
        /// <param name="userView">The user view.</param>
        /// <returns></returns>
        public int SaveNewUserView(UserViewDto userView)
        {
            var userDl = new UserDL();

            return(userDl.SaveNewUserView(userView));
        }