public bool ProccessResponse(RelationshipNotificationModel model)
        {
            bool ret = true;

            switch (model.Response)
            {
            case RelationshipNotificationResponseEnum.Accept:
                ProcesssAccepted(model);
                break;

            case RelationshipNotificationResponseEnum.Reject:
                ProccessRejected(model);
                break;

            case RelationshipNotificationResponseEnum.Resend:
                ProcessResend(model);
                ret = false;
                break;

            case RelationshipNotificationResponseEnum.Cancel:
                ProcessCancel(model);
                break;

            default:
                break;
            }

            return(ret);
        }
        private void ProcessCancel(RelationshipNotificationModel model)
        {
            var friendRequest = _uow.FriendRequests.GetById((int)model.FriendRequestId);

            friendRequest.IsAccepted = false;
            friendRequest.IsDeleted  = true;

            _svcContainer.NotificationSvc.DepQuizzmateNotificationSvc.AddDepQuizzmateSendRequestCancelNotification(friendRequest, false);
            _uow.FriendRequests.Update(friendRequest);
        }
        public bool ProccessResponse(RelationshipNotificationModel model)
        {
            if (model.IsAccepted == true)
            {
                ProcesssAccepted(model);
            }
            else
            {
                ProccessRejected(model);
            }

            return(true);
        }
        private void ProcessResend(RelationshipNotificationModel model)
        {
            RelationshipNotification entity;

            model.MapToNew(out entity);
            entity.IsNew      = true;
            entity.PostedDate = DateTime.UtcNow;

            _uow.RelationshipNotifications.Update(entity);
            _uow.SaveChanges();

            var friendRequest = _uow.FriendRequests.GetById((int)model.FriendRequestId);

            _svcContainer.EmailSvc.ReSendQuizzmateRequest(friendRequest);
        }
        private void ProcesssAccepted(RelationshipNotificationModel model)
        {
            var depRequest = _uow.DependentRequestsFromUser.GetById((int)model.DependentRequestFromUserId);
            int childId    = depRequest.ToChildId;
            int userId     = depRequest.FromUserId;

            _uow.DependentRequestsFromUser.Delete((int)model.DependentRequestFromUserId);

            var dependentEntity = new Dependent();

            dependentEntity.ChildId   = childId;
            dependentEntity.UserId    = userId;
            dependentEntity.IsPrimary = false;

            _uow.Dependents.Add(dependentEntity);
            _svcContainer.NotificationSvc.QuizzlingNotificationSvc.AddQuizzlingRequestAcceptNotification(depRequest);
        }
        private void ProcesssAccepted(RelationshipNotificationModel model)
        {
            var friendRequest = _uow.FriendRequests.GetById((int)model.FriendRequestId);
            int requestFromId = friendRequest.RequestFromId;
            int requestToId   = friendRequest.RequestToId;

            friendRequest.IsAccepted = true;
            friendRequest.IsDeleted  = true;
            _uow.FriendRequests.Update(friendRequest);

            var friendRelationship = new FriendRelationship
            {
                User1Id = friendRequest.RequestFromId,
                User2Id = friendRequest.RequestToId
            };

            _uow.FriendRelationships.Add(friendRelationship);
            _svcContainer.NotificationSvc.DepQuizzmateNotificationSvc.AddDepQuizzmateRequestAcceptNotification(friendRequest, false);
            _svcContainer.NotificationSvc.DepQuizzmateNotificationSvc.AddDepQuizzmateSendRequestAcceptNotification(friendRequest, false);
            _svcContainer.NotificationSvc.QuizzmateNotificationSvc.AddQuizzmateRequestAcceptNofication(friendRequest, false);
        }
 private void ProccessRejected(RelationshipNotificationModel model)
 {
     _uow.DependentRequestsFromUser.Delete((int)model.DependentRequestFromUserId);
 }