Exemplo n.º 1
0
        private IPredicate DontCareAboutRolePredicates(MessageFilterDto filter)
        {
            var predicates = new List <IPredicate>();

            var opt1 = new List <IPredicate>();

            if (filter.Sender != Guid.Empty)
            {
                opt1.Add(new SimplePredicate(nameof(Message.UserSenderId), ValueComparingOperator.Equal, filter.Sender));
            }
            if (filter.Receiver != Guid.Empty)
            {
                opt1.Add(new SimplePredicate(nameof(Message.UserReceiverId), ValueComparingOperator.Equal, filter.Receiver));
            }
            predicates.Add(new CompositePredicate(opt1, LogicalOperator.AND));

            var opt2 = new List <IPredicate>();

            if (filter.Receiver != Guid.Empty)
            {
                opt2.Add(new SimplePredicate(nameof(Message.UserSenderId), ValueComparingOperator.Equal, filter.Receiver));
            }
            if (filter.Sender != Guid.Empty)
            {
                opt2.Add(new SimplePredicate(nameof(Message.UserReceiverId), ValueComparingOperator.Equal, filter.Sender));
            }
            predicates.Add(new CompositePredicate(opt2, LogicalOperator.AND));


            return(new CompositePredicate(predicates, LogicalOperator.OR));
        }
 protected override IQuery <Message> ApplyWhereClause(IQuery <Message> query, MessageFilterDto filter)
 {
     return(!filter.ChatId.HasValue
         ? query
         : query.Where(new SimplePredicate(nameof(Message.ChatId),
                                           ValueComparingOperator.Equal,
                                           filter.ChatId.Value)));
 }
Exemplo n.º 3
0
        protected override IQuery <Message> ApplyWhereClause(IQuery <Message> query, MessageFilterDto filter)
        {
            var simplePredicate = new SimplePredicate(nameof(Message.FriendshipId), ValueComparingOperator.Equal, filter.FriendshipId);

            return(filter.FriendshipId.Equals(null)
                ? query
                : query.Where(simplePredicate));
        }
Exemplo n.º 4
0
        private IPredicate CareAboutRolePredicates(MessageFilterDto filter)
        {
            var predicates = new List <IPredicate>();

            predicates.Add(new SimplePredicate(nameof(Message.UserSenderId), ValueComparingOperator.Equal, filter.Sender));
            predicates.Add(new SimplePredicate(nameof(Message.UserReceiverId), ValueComparingOperator.Equal, filter.Receiver));
            return(new CompositePredicate(predicates, LogicalOperator.AND));
        }
        public async Task ApplyWhereClause_EmptyFilter_ReturnsNull()
        {
            var mockManager        = new QueryMockManager();
            var mapperMock         = mockManager.ConfigureMapperMock <Message, MessageDto, MessageFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Message>();
            var messageQueryObject = new MessageQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new MessageFilterDto();
            var temp   = await messageQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(null, mockManager.CapturedPredicate);
        }
Exemplo n.º 6
0
        protected override IQuery <Message> ApplyWhereClause(IQuery <Message> query, MessageFilterDto filter)
        {
            throw new NotImplementedException();

            /*
             * if (string.IsNullOrWhiteSpace(filter.Email))
             * {
             *     return query;
             * }
             * return query.Where(new SimplePredicate(nameof(AppUser.Email), ValueComparingOperator.Equal, filter.Email));
             */
        }
Exemplo n.º 7
0
        private IPredicate CreateCompositePredicateFromFilter(MessageFilterDto filter)
        {
            var predicates = new List <IPredicate>();

            predicates.Add(filter.CareAboutRole
                ? CareAboutRolePredicates(filter)
                : DontCareAboutRolePredicates(filter));
            if (filter.UnseenOnly)
            {
                predicates.Add(new SimplePredicate(nameof(Message.Seen), ValueComparingOperator.Equal, false));
            }
            return(new CompositePredicate(predicates, LogicalOperator.AND));
        }
        public async Task ApplyWhereClause_FilterByUserIdAndTypeSender_ReturnsCorrectPredicate()
        {
            Guid filteredUserId = Guid.NewGuid();
            MessageUserFilterType filterType = MessageUserFilterType.Sender;

            var mockManager       = new QueryMockManager();
            var expectedPredicate = new SimplePredicate(nameof(Message.UserSenderId), ValueComparingOperator.Equal,
                                                        filteredUserId);
            var mapperMock         = mockManager.ConfigureMapperMock <Message, MessageDto, MessageFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Message>();
            var messageQueryObject = new MessageQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new MessageFilterDto {
                UserId = filteredUserId, UserFilterType = filterType
            };
            var temp = await messageQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
        public async Task ApplyWhereClause_FilterByUserId_ReturnsCorrectPredicate()
        {
            Guid filteredUserId    = Guid.NewGuid();
            var  mockManager       = new QueryMockManager();
            var  expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new SimplePredicate(nameof(Message.UserReceiverId), ValueComparingOperator.Equal, filteredUserId),
                new SimplePredicate(nameof(Message.UserSenderId), ValueComparingOperator.Equal, filteredUserId)
            }, LogicalOperator.OR);
            var mapperMock         = mockManager.ConfigureMapperMock <Message, MessageDto, MessageFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Message>();
            var messageQueryObject = new MessageQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new MessageFilterDto {
                UserId = filteredUserId
            };
            var temp = await messageQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Exemplo n.º 10
0
 public async Task <QueryResultDto <MessageDto, MessageFilterDto> > SentMessages(UserDto user, MessageFilterDto filter)
 {
     filter.SortCriteria  = "Time";
     filter.Sender        = user.Id;
     filter.CareAboutRole = true;
     using (UnitOfWorkProvider.Create())
     {
         return(await messageService.ListMessageAsync(filter));
     }
 }
Exemplo n.º 11
0
        public async Task <QueryResultDto <MessageDto, MessageFilterDto> > MessagesBetweenUsers(UserDto userA, UserDto userB, MessageFilterDto filter)
        {
            filter.SortCriteria  = "Time";
            filter.SortAscending = false;
            filter.Sender        = userA.Id;
            filter.Receiver      = userB.Id;
            filter.CareAboutRole = false;
            using (UnitOfWorkProvider.Create())
            {
                return(await messageService.ListMessageAsync(filter));

                ;
            }
        }
Exemplo n.º 12
0
 protected override IQuery <Message> ApplyWhereClause(IQuery <Message> query, MessageFilterDto filter)
 {
     return(filter == null ? query : query.Where(CreateCompositePredicateFromFilter(filter)));
 }