示例#1
0
        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));
        }
示例#2
0
        /// <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);
            }
        }
示例#3
0
 public RelationshipViewModels(int userId, string username, CONST.FRIEND_OPTIONS status)
 {
     this.userId   = userId;
     this.status   = status;
     this.username = username;
 }