Esempio n. 1
0
        public Task <FilterResultModel <JornalEntryListView> > Handle(GetJornalEntryListQuery request, CancellationToken cancellationToken)
        {
            var sortBy        = request.SortBy.Trim() != "" ? request.SortBy : "VoucherId";
            var sortDirection = (request.SortDirection.ToUpper() == "DESCENDING") ? true : false;

            FilterResultModel <JornalEntryListView> result = new FilterResultModel <JornalEntryListView> ();

            CustomDateConverter converter = new CustomDateConverter();
            var start      = Convert.ToInt32(request.Year) - 1;
            var start_date = converter.EthiopicToGregorian($"1/11/{start}");
            var end_date   = converter.EthiopicToGregorian($"30/10/{request.Year}");

            var jornalEntries = _database.Ledger
                                .Where(l => l.Date >= start_date && l.Date <= end_date)
                                .Select(JornalEntryListView.Projection)

                                .Select(DynamicQueryHelper.GenerateSelectedColumns <JornalEntryListView> (request.SelectedColumns))
                                .AsQueryable();

            if (request.Filter.Count() > 0)
            {
                jornalEntries = jornalEntries
                                .Where(DynamicQueryHelper
                                       .BuildWhere <JornalEntryListView> (request.Filter)).AsQueryable();
            }
            result.Count = jornalEntries.Count();

            result.Items = jornalEntries.OrderBy(sortBy, sortDirection).Skip(request.PageNumber)
                           .Take(request.PageSize)
                           .ToList();

            return(Task.FromResult <FilterResultModel <JornalEntryListView> > (result));
        }
        public async Task ReturnListOfJornalEntryViewSuccessfuly()
        {
            GetJornalEntryListQuery query = new GetJornalEntryListQuery();

            var result = await handler.Handle(query, CancellationToken.None);

            Assert.IsType <FilterResultModel <JornalEntryListView> > (result);
        }