public bool ConfirmFriendRequest(FriendRequestModel friendRequestModel)
        {
            UserProfile requester = db.UserProfiles.Where(up => up.UserProfileId == friendRequestModel.AdderUserProfileId).FirstOrDefault();
            UserProfile accepter = db.UserProfiles.Where(up => up.UserProfileId == friendRequestModel.AddedUserProfileId).FirstOrDefault();

            if ((requester != null && accepter != null) && (requester != accepter))
            {
                if (!Utilities.AreFriends(requester, accepter))
                {
                    Friendship friendship = new Friendship();
                    friendship.AddingParty = requester;
                    friendship.AddedParty = accepter;

                    db.AddToFriendships(friendship);

                    FriendRequest friendRequest = db.FriendRequests.Where(x => x.AdderId == friendRequestModel.AdderUserProfileId && x.AddedId == friendRequestModel.AddedUserProfileId).FirstOrDefault();
                    db.DeleteObject(friendRequest);

                    db.SaveChanges();

                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        public override bool Execute()
        {
            int totalUsers = accountServices.GetAllUserProfiles().Count();
            UserProfileModel accepter = accountServices.GetUserProfileByUserProfileId(random.Next(1, totalUsers));

            GetFriendRequestsModel gfrm = new GetFriendRequestsModel();
            gfrm.UserProfileId = accepter.UserProfileId;

            IQueryable<UserProfileModel> friendRequests = accountServices.GetFriendRequests(gfrm);
            UserProfileModel requester = friendRequests.FirstOrDefault();

            if (requester != null)
            {
                FriendRequestModel m = new FriendRequestModel();
                m.AddedUserProfileId = accepter.UserProfileId;
                m.AdderUserProfileId = requester.UserProfileId;

                Console.WriteLine("Making users " + m.AdderUserProfileId + " and " + m.AddedUserProfileId + " friends.");

                return accountServices.ConfirmFriendRequest(m);
            }
            else
            {
                return false;
            }
        }
Ejemplo n.º 3
0
        public async Task <IHttpActionResult> CancelFriendRequest(FriendRequestModel FriendRequest)
        {
            FriendRequest.UserID    = CurrentUser.UserID;
            FriendRequest.CreatedOn = DateTime.Now;
            ModelState.Remove("FriendRequest.PageID");
            ModelState.Remove("FriendRequest.CreatedOn");
            FriendRequest.PostedByName       = CurrentUser.FullName;
            FriendRequest.PostedByAvatar     = CurrentUser.ProfilePicture;
            FriendRequest.PageRelationStatus = Enums.FriendshipStatus.FS;
            if (ModelState.IsValid)
            {
                try
                {
                    BroadcastFriendRequest model = _page.RejectUserFriendRequest(FriendRequest);
                    await _broadcaster.CancelFriendRequest(model, FriendRequest.broadCastType);

                    return(Ok(model.FriendRequest));
                }
                catch (Exception ex)
                {
                    ExceptionService.LogError("Error cancel friend request to page", ex);
                    return(BadRequest(ex.Message));
                }
            }
            else
            {
                return(BadRequest(ModelState.JsonValidation()));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="FriendRequest"></param>
        /// <returns></returns>
        public async Task <IHttpActionResult> AddFriendRequest(FriendRequestModel FriendRequest)
        {
            FriendRequest.UserID    = CurrentUser.UserID;
            FriendRequest.CreatedOn = DateTime.Now;
            ModelState.Remove("FriendRequest.UserID");
            ModelState.Remove("FriendRequest.CreatedOn");
            FriendRequest.PostedByName       = CurrentUser.FullName;
            FriendRequest.PostedByAvatar     = CurrentUser.ProfilePicture;
            FriendRequest.UserInfo           = CurrentUser.Gender;
            FriendRequest.PageRelationStatus = Enums.FriendshipStatus.FS;
            if (ModelState.IsValid)
            {
                try
                {
                    BroadcastFriendRequest model = _page.AddFriendRequest(FriendRequest);
                    await _broadcaster.AddFriendRequest(model, FriendRequest.broadCastType);

                    return(Ok((byte)model.FriendRequest.PageRelationStatus));
                }
                catch (Exception ex)
                {
                    Logs.Error("Error adding friend request for page", ex);
                    return(BadRequest(ex.Message));
                }
            }
            else
            {
                return(BadRequest(ModelState.JsonValidation()));
            }
        }
Ejemplo n.º 5
0
        public async Task <bool> SendFriendRequest(FriendRequestModel model)
        {
            var toaster = new ToasterSettings("Friend request sending");

            var settings = new HttpSettings($"{this._url}/request", null, null, toaster);

            var body = new HttpBody <FriendRequestModel>(model);

            return(await this._httpService.Create <FriendRequestModel>(settings, body));
        }
Ejemplo n.º 6
0
        public BroadcastFriendRequest RejectUserFriendRequest(FriendRequestModel FriendRequest)
        {
            switch (FriendRequest.PageType)
            {
            case Enums.PageType.Profile:
                return(_dr.RejectUserFriendRequest(FriendRequest));

            default:
                return(null);
            }
        }
Ejemplo n.º 7
0
        public async Task <object> Unfriend([FromBody] FriendRequestModel request)
        {
            var currUser = await GetLoginUserAsync();

            if (currUser.Email != request.UserId && currUser.Email != request.FriendId)
            {
                return(Forbid());
            }
            await repository.UnfriendAsync(request.UserId, request.FriendId);

            return(Ok());
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Add([FromBody] FriendRequestModel friendRequestModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var friendRequestDto = _mapper.Map <FriendRequestDto>(friendRequestModel);
            var statuscode       = await _friendRequestService.Create(friendRequestDto);

            return(_friendRequestResponseCreator.ResponseForCreate(statuscode));
        }
Ejemplo n.º 9
0
        public ActionResult FriendRequest()
        {
            var model   = new FriendRequestModel();
            var userRep = new UserRepository();

            using (var friendReqRepository = new FriendReqRepository())
            {
                model.FriendReqs =
                    friendReqRepository.returnAllPendingRequestsByUser(userRep.GetUserByUserName(User.Identity.Name));
            }
            return(View(model));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Send friend request
        /// Add notification rows
        /// </summary>
        /// <param name="model">Model of the request</param>
        public void SendFriendRequest(FriendRequestModel model)
        {
            var user = this._utilsService.GetCurrentUser();

            if (user.UserName == model.DestinationUserName)
            {
                throw this._loggerService.LogInvalidThings(user, nameof(FriendService), UserNameThing,
                                                           ThisNameIsYoursMessage);
            }

            var destination = this._context.AppUsers.FirstOrDefault(x => x.UserName == model.DestinationUserName);

            if (destination == null)
            {
                throw this._loggerService.LogInvalidThings(user, nameof(FriendService), UserNameThing,
                                                           ThisUserDoesNotExistMessage);
            }

            if (this.HasFriendAlready(user, destination.Id))
            {
                throw this._loggerService.LogInvalidThings(user, nameof(FriendService), UserNameThing,
                                                           ThisUserIsYourFriendAlready);
            }

            if (this.HasOpenFriendRequestAlready(user, destination.Id))
            {
                throw this._loggerService.LogInvalidThings(user, nameof(FriendService), UserNameThing,
                                                           YouHasOpenFriendRequestWithThisUserMessage);
            }

            var request = new FriendRequest
            {
                Message       = model.Message,
                SenderId      = user.Id,
                DestinationId = destination.Id
            };


            this._context.FriendRequests.Add(request);
            this._context.SaveChanges();

            this._loggerService.LogInformation(user, nameof(FriendService), SendFriendRequestAction, request.Id);

            this._notificationService.AddSystemNotificationByType(SystemNotificationType.FriendRequestSent, user,
                                                                  destination.UserName);
            this._notificationService.AddSystemNotificationByType(SystemNotificationType.FriendRequestReceived, destination,
                                                                  user.UserName);
        }
Ejemplo n.º 11
0
        public HttpResponseMessage PostFriendRequest([FromBody] FriendRequestModel model)
        {
            try
            {
                LogRequest(model);

                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }

                if (model.UId == model.FriendUId)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "UId and FriendUId cannot be same."));
                }

                FriendRequest request = NearByMeManager.GetInstance().IsFriendRequestExist(model.UId, model.FriendUId);

                if (request != null && request.SenderId == model.UId)
                {
                    return(Request.CreateResponse(HttpStatusCode.OK));
                }

                if (request != null && request.RecipientId == model.UId && request.Status != FriendRequestStatus.Pending)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "A request is already exist with " + request.Status.ToString() + "."));
                }

                var friendRequest = new FriendRequest()
                {
                    SenderId = model.UId, RecipientId = model.FriendUId, Status = FriendRequestStatus.Pending
                };
                bool operationCompleted = NearByMeManager.GetInstance().UpsertFriendRequest(friendRequest);

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (ApplicationException applicationException)
            {
                return(Request.CreateErrorResponse((HttpStatusCode)Convert.ToInt16(applicationException.Message), NeeoDictionaries.HttpStatusCodeDescriptionMapper[Convert.ToInt16(applicationException.Message)]));
            }
            catch (Exception exception)
            {
                Logger.LogManager.CurrentInstance.ErrorLogger.LogError(System.Reflection.MethodBase.GetCurrentMethod().GetType(), exception.Message, exception);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }
Ejemplo n.º 12
0
        public async Task <FriendRequestModel> SendFriendRequest(string SourceId, string TargetId)
        {
            FriendRequestModel result = null;

            if (!await AreUsersFriends(SourceId, TargetId) &&
                !await _blockService.IsUserBlocked(SourceId, TargetId) &&
                !await _friendRepository.HasPendingRequest(SourceId, TargetId))
            {
                result = await _friendRepository.SendFriendRequest(SourceId, TargetId);
            }
            else if (await _friendRepository.HasPendingRequest(TargetId, SourceId))
            {
                var request = await _friendRepository.FindRequest(TargetId, SourceId);
                await AnswerFriendRequest(request.Id, true);

                result = await _friendRepository.GetRequest(request.Id);
            }

            return(result);
        }
Ejemplo n.º 13
0
        //Accept Friend Request
        public ActionResult Accept(int id)
        {
            FriendRequestModel request = db.FriendRequests.Find(id);

            Profile requester = db.Profile.Find(request.Requester.ProfileId);
            Profile requestee = db.Profile.Find(request.Requestee.ProfileId);

            if (requester != null && requestee != null)
            {
                if (TryUpdateModel(requester) && TryUpdateModel(requestee))
                {
                    requester.FriendRequests.Remove(request);
                    requester.Friends.Add(requestee);
                    requestee.FriendRequests.Remove(request);
                    requestee.Friends.Add(requester);
                    db.SaveChanges();
                }
            }
            return(this.Delete(request));
        }
Ejemplo n.º 14
0
        //Create Friend Request
        public ActionResult Create(int id)
        {
            var MyId  = User.Identity.GetUserId();
            var query = from pf in db.Profile
                        where pf.UserId == MyId
                        select pf;

            Profile profile = query.FirstOrDefault <Profile>();

            Profile friendProfile = db.Profile.Find(id);

            var query1 = from fr in db.FriendRequests
                         where fr.Requester.ProfileId.Equals(profile.ProfileId) &&
                         fr.Requestee.ProfileId.Equals(friendProfile.ProfileId)
                         select fr;

            FriendRequestModel friendRequest = query1.FirstOrDefault <FriendRequestModel>();

            if (friendRequest == null || friendRequest.Equals(default(Profile)))
            {
                var NewFR = new FriendRequestModel();
                NewFR.Requester = profile;
                NewFR.Requestee = friendProfile;
                NewFR.Accepted  = false;
                db.FriendRequests.Add(NewFR);
                db.SaveChanges();
                if (TryUpdateModel(profile))
                {
                    profile.FriendRequests.Insert(0, NewFR);
                    db.SaveChanges();
                }
                if (TryUpdateModel(friendProfile))
                {
                    friendProfile.FriendRequests.Insert(0, NewFR);
                    db.SaveChanges();
                }
                db.SaveChanges();
            }
            return(RedirectToAction("Show", "Profile", id));
        }
        public bool DenyFriendRequest(FriendRequestModel friendRequestModel)
        {
            FriendRequest friendRequest = db.FriendRequests.Where(x => x.AdderId == friendRequestModel.AdderUserProfileId && x.AddedId == friendRequestModel.AddedUserProfileId).FirstOrDefault();

            if (friendRequest != null)
            {
                db.DeleteObject(friendRequest);
                db.SaveChanges();

                return true;
            }
            else
            {
                return false;
            }
        }
        public async Task <FriendRequestModel> UpdateFriendRequest(FriendRequestModel friendRequest)
        {
            FriendRequest dbFriendRequest = Mapper.Map <FriendRequestModel, FriendRequest>(friendRequest);

            return(Mapper.Map <FriendRequest, FriendRequestModel>(await _friendRequestsRepository.UpdateItemAsync(dbFriendRequest)));
        }
Ejemplo n.º 17
0
 public IActionResult SendFriendRequest(FriendRequestModel model)
 {
     this._friendService.SendFriendRequest(model);
     return(this.Ok());
 }
Ejemplo n.º 18
0
 //Delete Friend Request
 public ActionResult Delete(FriendRequestModel fr)
 {
     db.FriendRequests.Remove(fr);
     db.SaveChanges();
     return(RedirectToAction("Index", "FriendRequest"));
 }