Ejemplo n.º 1
0
        private void MessageService_OnReceivedMessage(object sender, System.EventArgs e)
        {
            var messageDTO   = (MessageDTO)sender;
            var conversation = UserConversations.FirstOrDefault(uc => uc.Id == messageDTO.ConversationId && uc.ConversationType == messageDTO.ConversationType);

            conversation.ConversationLastMessage = messageDTO.MessageContent;
        }
Ejemplo n.º 2
0
        public void FilterConversations(string value, bool isOwner = false)
        {
            if (!isOwner)
            {
                if (!string.IsNullOrEmpty(value))
                {
                    UserConversations = UserConversations.Where(c => (c.Owner.School != null && c.Owner.School.Name.ToLower().Contains(value.ToLower())) ||
                                                                (c.Owner.Rental != null && c.Owner.Rental.Name.ToLower().Contains(value.ToLower()))).ToList();
                }

                UserConversations = UserConversations.Where(c => c.Messages.Count != 0).OrderByDescending(c => (c.Messages.LastOrDefault(m => m != null).DateSent)).ToList();
            }
            else
            {
                if (OwnerConversations.Count == 0)
                {
                    return;
                }

                if (!string.IsNullOrEmpty(value))
                {
                    OwnerConversations = OwnerConversations.Where(c => c.User.UserName.ToLower().Contains(value.ToLower())).ToList();
                }

                OwnerConversations = OwnerConversations.Where(c => c.Messages.Count != 0).OrderByDescending(c => (c.Messages.LastOrDefault(m => m != null).DateSent)).ToList();
            }
        }
Ejemplo n.º 3
0
        public void RemoveEmtpyConversations()
        {
            var conversations = new List <ConversationDTO>(UserConversations);

            foreach (var conversation in conversations)
            {
                if (conversation.ConversationLastMessage is null)
                {
                    UserConversations.Remove(conversation);
                }
            }
        }
Ejemplo n.º 4
0
        public async Task GetUserConversations()
        {
            var conversations = await _conversationService.GetConversationsForUserAsync(DataContainer.GetUserId());

            UserConversations.Clear();
            foreach (var conversation in conversations)
            {
                UserConversations.Add(conversation);
            }

            foreach (var conversation in conversations)
            {
                await _messageService.JoinChat(conversation);
            }
        }
Ejemplo n.º 5
0
        public async Task <ConversationDTO> GetConversationWithUser(string username)
        {
            var userPair = new UserPairIdUsernameDTO()
            {
                UserId   = DataContainer.GetUserId(),
                Username = username
            };
            var conversation = await _conversationService.GetConversationWithUser(userPair);

            if (conversation == null)
            {
                return(conversation);
            }

            DataContainer.ConversationDTO = conversation;
            if (conversation.ConversationLastMessage is null)
            {
                UserConversations.Add(conversation);
                await _messageService.JoinChat(conversation);
            }

            return(conversation);
        }
Ejemplo n.º 6
0
 public async Task RegisterNewGroupConversation()
 {
     UserConversations.Add(DataContainer.ConversationDTO);
     await _messageService.JoinChat(DataContainer.ConversationDTO);
 }
Ejemplo n.º 7
0
        public IHttpActionResult MakeFriend(int InvitationId, bool accept)
        {
            try
            {
                var inv = db.FriendInvitations.Where(x => x.Id == InvitationId).FirstOrDefault();
                if (inv.Status == 1 || inv.Status == 2)
                {
                    // Nie akceptujemy 2 razy etc... w przypadku kilku kliknięć.
                    return(Ok());
                }
                if (accept)
                {
                    inv.Status = 1;
                    var tmp = new Friends
                    {
                        UserId      = inv.UserId,
                        FriendId    = inv.TargetPersonId,
                        IsObserving = true,
                    };
                    var tmp2 = new Friends
                    {
                        UserId      = inv.TargetPersonId,
                        FriendId    = inv.UserId,
                        IsObserving = true,
                    };

                    var conv = new UserConversations
                    {
                        FriendId = tmp.FriendId,
                        UserId   = tmp.UserId,
                    };
                    // PRZYJACIELE W BAZIE
                    db.Friends.AddRange(new[] { tmp, tmp2 });
                    // ZALÓŻ KONWERSACJĘ JESLI NIGDY NIE ISTNIAŁA
                    var check = db.UserConversations.Where(x => (x.FriendId == conv.FriendId && x.UserId == conv.UserId) || (x.FriendId == conv.UserId && x.UserId == conv.FriendId));
                    if (!check.Any())
                    {
                        db.UserConversations.Add(conv);
                    }
                }
                else // Nie przyjął zaproszenia - usuń zaproszenie + dodaj powiadomienie na użytkownika, który je wysłał
                {
                    inv.Status = 2;
                    var not = new Notifications
                    {
                        SourcePersonId = inv.TargetPersonId,
                        TargetPersonId = inv.UserId,
                        Description    = "Odrzucono zaproszenie do grona znajomych.",
                        Type           = 1,
                    };
                    db.Notifications.Add(not);
                    db.FriendInvitations.Remove(inv);
                }
                db.SaveChanges();
                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }