示例#1
0
 private List <FriendRelationEntity> FindRelations(FriendRelationRequest request)
 {
     return(_context.FriendRelationEntity.Where(x =>
                                                ((x.FriendListOwnerID == request.FriendListOwnerID) &&
                                                 (x.FriendID == request.FriendID)) ||
                                                ((x.FriendID == request.FriendListOwnerID) &&
                                                 (x.FriendListOwnerID == request.FriendID)))
            .ToList());
 }
示例#2
0
        public string Accept(FriendRelationRequest request)
        {
            if (request.FriendListOwnerID == request.FriendID)
            {
                return(Error.CANNOT_ADD_YOURSELF);
            }

            var relation = _context.FriendRelationEntity.FirstOrDefault(x =>
                                                                        (x.FriendListOwnerID == request.FriendListOwnerID) &&
                                                                        (x.FriendID == request.FriendID));

            if (relation == null || relation.Accepted)
            {
                return(Error.RELATION_DOES_NOT_EXIST_OR_ACCEPTED);
            }

            relation.Accepted = true;
            _context.SaveChanges();
            return(Error.OK);
        }
示例#3
0
        public string Delete(FriendRelationRequest request)
        {
            if (request.FriendListOwnerID == request.FriendID)
            {
                return(Error.CANNOT_DELETE_YOURSELF);
            }

            var relations = FindRelations(request);

            if (relations.Count != 2)
            {
                return(string.Format(Error.RELATION_DOES_NOT_EXIST, request.FriendID, request.FriendListOwnerID));
            }

            foreach (var relation in relations)
            {
                _context.FriendRelationEntity.Remove(relation);
            }
            _context.SaveChanges();
            return(Error.OK);
        }
示例#4
0
        public string Add(FriendRelationRequest request)
        {
            if (request.FriendListOwnerID == request.FriendID)
            {
                return(Error.CANNOT_ADD_YOURSELF);
            }

            var relations = FindRelations(request);

            if (relations.Count == 2)
            {
                return(Accept(request));
            }

            if (_context.UserEntity.FirstOrDefault(x => x.ID == request.FriendID) == null)
            {
                return(string.Format(Error.CANNOT_FIND_USER, request.FriendID));
            }
            if (_context.UserEntity.FirstOrDefault(x => x.ID == request.FriendListOwnerID) == null)
            {
                return(string.Format(Error.CANNOT_FIND_USER, request.FriendListOwnerID));
            }

            _context.FriendRelationEntity.Add(new FriendRelationEntity
            {
                FriendListOwnerID = request.FriendListOwnerID,
                FriendID          = request.FriendID,
                Accepted          = true
            });
            _context.FriendRelationEntity.Add(new FriendRelationEntity
            {
                FriendListOwnerID = request.FriendID,
                FriendID          = request.FriendListOwnerID,
                Accepted          = false
            });
            _context.SaveChanges();
            return(Error.OK);
        }