/// <summary> /// This method is used to create the list of recommended posts on the user timeline. /// </summary> /// <param name="currentuser">Logged in user details</param> /// <param name="usersPersonalDetails">Users personal details</param> /// <param name="usersTradingDetails">Users trading details</param> /// <returns>Creates and returns a recommended user list</returns> private static List <UsersTimeLinePost> GetUserTimelineRecommendedPosts(LetsTradingDetails currentuser, List <RegisterUserViewModel> usersPersonalDetails, List <LetsTradingDetails> usersTradingDetails) { var currentUser = currentuser; var userList = new List <LetsUser>(); var timelinePostsList = new List <UsersTimeLinePost>(); //Building a list that contains all the users personal details and trading details foreach (var userPersonalDetails in usersPersonalDetails) { var userTradingDetails = usersTradingDetails.Find(item => item.Id.Equals(userPersonalDetails.Id)); var letsUser = new LetsUser { UserPersonalDetails = userPersonalDetails, UserTradingDetails = userTradingDetails }; userList.Add(letsUser); } foreach (var user in userList) { if (user.UserTradingDetails.Requests != null) { foreach (var request in user.UserTradingDetails.Requests) { if (string.IsNullOrEmpty(request.IsAssignedTo) && !request.HasDeleted) { foreach (var tag in request.Tags) { if (currentUser.Skills.Contains(tag)) { var timelinePost = new UsersTimeLinePost { ImageId = user.UserPersonalDetails.Account.ImageId, UserName = user.UserPersonalDetails.Account.UserName, FirstName = user.UserPersonalDetails.About.FirstName, LastName = user.UserPersonalDetails.About.LastName, Request = request }; if (!timelinePostsList.Contains(timelinePost)) { timelinePostsList.Add(timelinePost); } } } } } } } timelinePostsList = timelinePostsList.OrderBy(post => post.Request.Date).ToList(); return(timelinePostsList); }
public async Task TestSkillsSettingsEdit() { var letsTradingDetails = new LetsTradingDetails { Skill = "Test" }; var controller = new AccountController { ControllerContext = MockControllerContext() }; var result = await controller.SkillsSettingsEdit(letsTradingDetails); var dump = await controller.RemoveSkill("Test"); Assert.IsInstanceOf(typeof(RedirectToRouteResult), result); }
public async Task <ActionResult> SkillsSettingsEdit(LetsTradingDetails letsTradingDetails) { await AddSkill(letsTradingDetails.Skill); return(RedirectToAction("UserProfile", "Account")); }
public ActionResult Register(RegisterUserViewModel registerUser) { var recaptcha = new ReCaptcha(); var responseFromServer = recaptcha.OnActionExecuting(); if (responseFromServer.StartsWith("true", StringComparison.Ordinal)) { if (registerUser != null && ModelState.IsValid) { var userByUsername = DatabaseContext.RegisteredUsers.Find(new BsonDocument { { "Account.UserName", registerUser.Account.UserName } }).ToList(); var userByEmail = DatabaseContext.RegisteredUsers.Find(new BsonDocument { { "Account.Email", registerUser.Account.Email } }).ToList(); if (userByUsername.Count == 0) { if (userByEmail.Count == 0) { var passwordEncryption = new PasswordHashAndSalt(); registerUser.Id = Guid.NewGuid().ToString(); registerUser.Account.Password = passwordEncryption.getHashedPassword(registerUser.Account.Password); registerUser.Account.ConfirmPassword = passwordEncryption.getHashedPassword(registerUser.Account.ConfirmPassword); registerUser.Account.ImageId = "586a7d67cf43d7340cb54670"; var tradingDetails = new LetsTradingDetails { Id = registerUser.Id, Credit = 100 }; DatabaseContext.RegisteredUsers.InsertOne(registerUser); DatabaseContext.LetsTradingDetails.InsertOne(tradingDetails); using (var mail = new MailMessage()) { mail.To.Add(registerUser.Account.Email); mail.Subject = "Welcome to Royal Holloway LETS"; mail.Body = "<p>Hello " + registerUser.About.FirstName + ",</p><h3>Thanks for joining Royal Holloway LETS</h3><p>Please find your account details below</p><p>Title : <b>" + registerUser.About.Title + "</b></p><p>First Name : <b>" + registerUser.About.FirstName + "</b></p><p>Last Name : <b>" + registerUser.About.LastName + "</b></p><p>Gender : <b>" + registerUser.About.Gender + "</b></p><p>User Name : <b>" + registerUser.Account.UserName + "</b></p><p>Kind Regards,<br/>Royal Holloway LETS</p>"; SendEmail(mail); TempData.Add("Registered", "You have successfully signed up for Royal Holloway LETS, We have also sent you can email with your account details for your future reference."); } return(RedirectToAction("Login")); } else { registerUser.Account.Password = null; registerUser.Account.ConfirmPassword = null; ModelState.AddModelError("Account.Email", "Sorry, The following email already exists in our system."); return(View(registerUser)); } } else { registerUser.Account.Password = null; registerUser.Account.ConfirmPassword = null; ModelState.AddModelError("Account.UserName", "Sorry, This username is not available."); if (userByEmail.Count > 0) { ModelState.AddModelError("Account.Email", "Sorry, The following email already exists in our system."); } return(View(registerUser)); } } } else { registerUser.Account.Password = null; registerUser.Account.ConfirmPassword = null; ModelState.AddModelError("ReCaptcha", "Incorrect CAPTCHA entered."); return(View(registerUser)); } return(View()); }