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()); }
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); }
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); }
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); }