예제 #1
0
        public IDtoOutObjects Accept(DtoInAddFriend dtoInFriend)
        {
            DtoOutError error = new DtoOutError();

            if (TokenTools.Authentication(dtoInFriend.Token, dtoInFriend.DeviceName))
            {
                User   acceptant = TokenTools.getUserFromToken(dtoInFriend.Token);
                Friend friend    = _friendsRepository.FindBy(x => x.IdReciever == acceptant.Id && x.IsDeleted == false && x.ObjectApplicant.Email == dtoInFriend.EmailReciever).FirstOrDefault();
                if (friend == null)
                {
                    UserDoesNotAskedForFriendshipException ex = new UserDoesNotAskedForFriendshipException();
                    error.Exception = ex;
                    return(error);
                }
                if (friend.Accepted == true)
                {
                    YouAreAlreadyFriendsExceptions ex = new YouAreAlreadyFriendsExceptions();
                    error.Exception = ex;
                    return(error);
                }
                friend.Accepted = true;
                _friendsRepository.Edit(friend);
                _friendsRepository.Save();
                ChatRoomTools.Create(new List <User>()
                {
                    acceptant, _usersRepository.FindBy(x => x.Email == dtoInFriend.EmailReciever).FirstOrDefault()
                });
                var          config       = new MapperConfiguration(cfg => { cfg.CreateMap <Friend, DtoOutFriend>(); });
                IMapper      mapper       = config.CreateMapper();
                DtoOutFriend dtoOutFriend = new DtoOutFriend();
                mapper.Map(friend, dtoOutFriend);
                return(dtoOutFriend);
            }
            else
            {
                NotAuthenticatedException ex = new NotAuthenticatedException();
                error.Exception = ex;
                return(error);
            }
        }
예제 #2
0
        public IDtoOutObjects Seen(DtoInSeenMessage dtoInSeenMessage)
        {
            DtoOutError error = new DtoOutError();

            if (TokenTools.Authentication(dtoInSeenMessage.Token, dtoInSeenMessage.DeviceName))
            {
                SeenMessage seenMessage = new SeenMessage();
                seenMessage.SeenTime = System.DateTime.Now;
                Message message = _messagesRepository.FindBy(x => x.Id == dtoInSeenMessage.IdMessage && x.IsDeleted == false).FirstOrDefault();
                if (message == null)
                {
                    error.Exception = new MessageWithThisIdDoesNotExistsException();
                    error.Message   = "Message with this id {" + dtoInSeenMessage.IdMessage + "} does not exists";
                    return(error);
                }
                if (!ChatRoomTools.getListIdChatRoomFromUser(TokenTools.getUserFromToken(dtoInSeenMessage.Token).Id).Contains(message.IdChatRoom))
                {
                    error.Exception = new MessageIsNotInYourListOfChatRooms();
                    error.Message   = "Message is not in your list of chatRooms";
                    return(error);
                }
                seenMessage.IdMessage = dtoInSeenMessage.IdMessage;
                seenMessage.IdUser    = TokenTools.getUserFromToken(dtoInSeenMessage.Token).Id;
                SeenMessage result = _seenMessagesRepository.Add(seenMessage);

                var               config            = new MapperConfiguration(cfg => { cfg.CreateMap <SeenMessage, DtoOutSeenMessage>(); });
                IMapper           mapper            = config.CreateMapper();
                DtoOutSeenMessage dtoOutSeenMessage = new DtoOutSeenMessage();
                mapper.Map(result, dtoOutSeenMessage);
                return(dtoOutSeenMessage);
            }
            else
            {
                NotAuthenticatedException ex = new NotAuthenticatedException();
                error.Exception = ex;
                return(error);
            }
        }
예제 #3
0
        public IDtoOutObjects Send(DtoInMessage dtoInMessage)
        {
            DtoOutError error = new DtoOutError();

            if (TokenTools.Authentication(dtoInMessage.Token, dtoInMessage.DeviceName))
            {
                Message message = null;
                try
                {
                    message = new Message(dtoInMessage);
                }
                catch (ObjectIsNotValidException ex)
                {
                    error.Exception = ex;
                    error.Message   = "this chatroom does not exists";
                    return(error);
                }
                if (ChatRoomTools.getListIdChatRoomFromUser(TokenTools.getUserFromToken(dtoInMessage.Token).Id).Contains(message.IdChatRoom))
                {
                    error.Exception = new MessageIsNotInYourListOfChatRooms();
                    error.Message   = "Message is not in your list of chatRooms";
                    return(error);
                }
                Message result = _messagesRepository.Add(message);
                _messagesRepository.Save();
                var           config        = new MapperConfiguration(cfg => { cfg.CreateMap <Message, DtoOutMessage>(); });
                IMapper       mapper        = config.CreateMapper();
                DtoOutMessage dtoOutMessage = new DtoOutMessage();
                mapper.Map(result, dtoOutMessage);
                return(dtoOutMessage);
            }
            else
            {
                NotAuthenticatedException ex = new NotAuthenticatedException();
                error.Exception = ex;
                return(error);
            }
        }