public ActionResult Profile(ProfileModel model) { try { if (ModelState.IsValid) { User user = model.toUser(); //Will need to be uncommented when we start editing tags on the profile page /* foreach (string tag in model.tagValues) { user = userManager.addTag(user, tag); } */ user = userManager.UpdateUser(user); } return RedirectToAction("Index"); } catch (Exception ex) { logAccessor.CreateLog(DateTime.Now, this.GetType().ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), ex.ToString()); return View("Error"); } }
public ActionResult Profile(string profileURL) { if (profileURL == "") { User currentUser = userManager.GetUser(User.Identity.Name); return RedirectToAction("Profile", "User", new { profileURL = currentUser.profileURL }); } //throw (new ArgumentNullException()); TempData["MessageBar"] = TempData["MessageBar"]; TempData["Popup"] = TempData["Popup"]; try { ViewBag.DisplayPicture = false; ViewBag.DisplayInfo = false; TagManager tagManager = new TagManager(); User user = userManager.GetUserByProfileURL(profileURL); if (user == null) { try { string userNameLoggedIn = User.Identity.Name; if (userNameLoggedIn == null || userNameLoggedIn == "") { return RedirectToAction("Index", "Home"); } else { user = userManager.GetUser(userNameLoggedIn); } } catch (Exception e) { } } else if ((User.Identity.Name != user.userName) && (user.isPublic != 1)) { //if not the owner and trying to access a user that is not public return RedirectToAction("Index", "Home"); } //else... //projectManager.moveProjectRight(user, 2); //userManager.UpdateUser(user); if (user.projectOrder == null) { userManager.ResetProjectOrder(user); userManager.UpdateUser(user); foreach (Project p in user.projects) { projectManager.resetProjectElementOrder(p); projectManager.UpdateProject(p); } } ProfileModel model = new ProfileModel(user); List<string> tagValues = new List<string>(); //Put user's tags on the ProfileModel /* if (user.tagIds != null && user.tagIds != "") { List<Tag> tagList = tagManager.GetTags(user.tagIds); foreach (Tag tag in tagList) { tagValues.Add(tag.value); } model.tagValues = tagValues; }*/ //ViewBag.WillingToRelocate = new List<string>(Enum.GetNames(typeof(WillingToRelocateType))); if (user.userName == User.Identity.Name && User.Identity.IsAuthenticated) { AnalyticsAccessor aa = new AnalyticsAccessor(); aa.CreateAnalytic("Profile Page Hit: Logged in", DateTime.Now, user.userName); //User is going to their own profile ViewBag.IsOwner = true; model.connections = new List<User>(); if (user.connections != null) { foreach (string userId in user.connections.Split(',')) { if (userId.Trim() != "") { int userIdInt = Convert.ToInt32(userId); User connection = userManager.GetUser(userIdInt); model.connections.Add(connection); } } } /*//depreciated. can't use .CompleteProfilePrompt any more. will have to deal with tags some other way * if (userManager.IsProfilePartiallyComplete(user)) { //User has already entered some extra information on their profile ViewBag.CompleteProfilePrompt = false; } else { //User has not updated any further info on their profile //Get list of tags for picking out which ones we initially want on our profile List<string> listOfLowestLevelTags = userManager.GetAllLowestLevelTagValues(); ViewBag.LowestLevelTags = listOfLowestLevelTags; ViewBag.CompleteProfilePrompt = true; }*/ } else { AnalyticsAccessor aa = new AnalyticsAccessor(); aa.CreateAnalytic("Profile Page Hit: Not Logged in", DateTime.Now, user.userName); //User is visiting someone else's profile ViewBag.IsOwner = false; } //------------------------------------------------------------ return View(model); } catch (Exception ex) { logAccessor.CreateLog(DateTime.Now, this.GetType().ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), ex.ToString()); return View("Error"); } }