public ActionResult ViewProfile(int id) { UserProfileView model = GetViewProfile(id); if (model == null) { return(RedirectToAction("Index", "Home")); } //Get current user's id int current_user_id = UserContext.GetUserId(User.Identity.Name); //Is other user's profile? if (id == current_user_id) { ViewBag.Profile = CONST.PROFILE.MY_PROFILE; } else { ViewBag.Profile = CONST.PROFILE.OTHER_USER_PROFILE; //Check relationship CONST.FRIEND_OPTIONS relationship = RelationshipContext.CheckRelationship(current_user_id, id); ViewBag.Relationship = relationship; } return(View(model)); }
/// <summary> /// Create a record send request make friend from user_one to user_two /// </summary> /// <param name="user_one_id">user_one_id</param> /// <param name="user_two_id">user_two_id</param> /// <returns>return true if send request saved to db, otherwise return false</returns> //public bool SendResquest(int user_one_id, int user_two_id) //{ // //TODO // relationship relationship = new relationship(user_one_id,user_two_id); // try // { // Relationships.Add(relationship); // database.SaveChanges(); // }catch(Exception e) // { // Logging.Log(e.ToString()); // return false; // } // return true; //} //public bool ResponeRequest(int user_one_id, int user_two_id, CONST.FRIEND_OPTIONS user_one_option) //{ // //TODO // var result = from r in Relationships // where r.user_one_id == user_one_id && r.user_two_id == user_two_id // select r; // if(user_one_option == CONST.FRIEND_OPTIONS.Friends) // result.ElementAt(0).status = 1; // else // Relationships.Remove(result.ElementAt(0)); // try // { // database.SaveChanges(); // return true; // } // catch(Exception e){ // Logging.Log(e.ToString()); // return false; // } //} /// <summary> /// Update Relation: Case FRIEND_OPTIONS: None => UnFriend, Cancel Request, Reject Request /// Case FRIEND_OPTIONS: Request => Add Friend /// Case FRIEND_OPTIONS: Confirm => Acept Request /// </summary> /// <param name="user_one_id">User send</param> /// <param name="user_two_id">User receive</param> /// <param name="user_one_option">user's option</param> /// <returns>return true if update successful, otherwise return false</returns> public bool UpdateRelation(int user_one_id, int user_two_id, CONST.FRIEND_OPTIONS user_one_option) { if (user_one_option == CONST.FRIEND_OPTIONS.None) { //UnFriend var result = from r in Relationships where (r.user_one_id == user_one_id && r.user_two_id == user_two_id) || (r.user_one_id == user_two_id && r.user_two_id == user_one_id) select r; if (result.Count() != 1) { return(false); } Relationships.Remove(result.ToList().ElementAt(0)); } else if (user_one_option == CONST.FRIEND_OPTIONS.Request) { //Add Friend relationship relationship; if (user_one_id <= user_two_id) { relationship = new relationship(user_one_id, user_two_id, user_one_id); } else { relationship = new relationship(user_two_id, user_one_id, user_one_id); } Relationships.Add(relationship); } else if (user_one_option == CONST.FRIEND_OPTIONS.Confirm) { //Accept Request var result = from r in Relationships where (r.user_one_id == user_one_id && r.user_two_id == user_two_id && r.status == 0) || (r.user_one_id == user_two_id && r.user_two_id == user_one_id && r.status == 0) select r; if (result.Count() != 1) { return(false); } result.ToList().ElementAt(0).status = 1; } try { if (database.SaveChanges() == 0) { return(false); } return(true); }catch (Exception e) { Logging.Log(e.ToString()); return(false); } }
public RelationshipViewModels(int userId, string username, CONST.FRIEND_OPTIONS status) { this.userId = userId; this.status = status; this.username = username; }