public Task <FilterResultModel <AccountTypeView> > Handle(GetAccountTypeListQuery request, CancellationToken cancellationToken)
        {
            var sortBy        = request.SortBy.Trim() != "" ? request.SortBy : "Type";
            var sortDirection = (request.SortDirection.ToUpper() == "DESCENDING") ? true : false;

            FilterResultModel <AccountTypeView> result = new FilterResultModel <AccountTypeView> ();
            var accountType = _database.AccountType.Where(a => a.TypeOfNavigation != null)
                              .Select(AccountTypeView.Projection)
                              .Select(DynamicQueryHelper.GenerateSelectedColumns <AccountTypeView> (request.SelectedColumns))
                              .AsQueryable();

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

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

            return(Task.FromResult <FilterResultModel <AccountTypeView> > (result));
        }
        public async Task ReturnOnlyAccountsListCreatedByUser()
        {
            GetAccountTypeListQuery        query   = new GetAccountTypeListQuery();
            GetAccountTypeListQueryHandler handler = new GetAccountTypeListQueryHandler(_Database);
            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            Assert.True(result.Items.FirstOrDefault(a => a.TypeOfId != 0) != null);
        }
        public async Task ReturnListOfAccountTypesSuccessFuly()
        {
            // Arrange
            GetAccountTypeListQuery        query   = new GetAccountTypeListQuery();
            GetAccountTypeListQueryHandler handler = new GetAccountTypeListQueryHandler(_Database);
            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            Assert.IsType <FilterResultModel <AccountTypeView> > (result);
            Assert.True(result.Items.Count() > 0);
        }
        public async Task <ActionResult <IEnumerable <AccountTypeView> > > GetAccountTypesList([FromBody] GetAccountTypeListQuery query)
        {
            var accountType = await _Mediator.Send(query);

            return(Ok(accountType));
        }