Ejemplo n.º 1
0
        public async Task AddMessage(Message message)
        {
            var renter = await GetUser(message.RenterEmail);

            var lessor = await GetUser(message.LessorEmail);

            var junction = new List <MessagesWithUsers>()
            {
                new MessagesWithUsers()
                {
                    Message   = message,
                    MessageId = message.MessageID,
                    User      = renter,
                    UserEmail = renter.Email
                },
                new MessagesWithUsers()
                {
                    Message   = message,
                    MessageId = message.MessageID,
                    User      = lessor,
                    UserEmail = lessor.Email
                }
            };


            await MessagesWithUsersJunction.AddRangeAsync(junction);

            await Messages.AddAsync(message);

            await SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public async Task <List <Message> > GetMessages(User user, List <Message> messageAlreadyRead, int amount)
        {
            var messages = await MessagesWithUsersJunction
                           .Where(mwu => mwu.UserEmail == user.Email)
                           .Select(mwu => mwu.Message)
                           .Where(msg => !messageAlreadyRead.Contains(msg))
                           .OrderByDescending(msg => msg.CreatedDate)
                           .Include(msg => msg.MessagesWithUsers)
                           .ThenInclude(mwu => mwu.User)
                           .Include(msg => msg.CarProfile)
                           .Take(amount)
                           .ToListAsync();

            return(messages);
        }