Example #1
0
        public async Task <ActionResult <PaginatedList <ProvinceSummary> > > GetAll([FromBody] ProvinceFilterRequest filter)
        {
            try
            {
                // get list of active sales quote (not deleted)
                var list = context.Provinces
                           .Include(c => c.Cities)
                           .AsNoTracking();

                // filter
                if (!string.IsNullOrEmpty(filter?.SearchTerm))
                {
                    list = list.Where(c => c.Name.Contains(filter.SearchTerm, StringComparison.CurrentCultureIgnoreCase) ||
                                      c.Cities.Any(a => a.Name.Contains(filter.SearchTerm, StringComparison.CurrentCultureIgnoreCase)));
                }

                // sort
                var ordering = $"{Constants.ColumnNames.Name} {Constants.DefaultSortDirection}";
                if (!string.IsNullOrEmpty(filter?.SortBy))
                {
                    ordering = $"{filter.SortBy} {filter.SortDirection}";
                }

                list = list.OrderBy(ordering);

                var result = await listHelpers.CreatePaginatedListAsync <Province, ProvinceSummary>(list, filter.PageNumber, filter.PageSize);

                return(result);
            }
            catch (Exception e)
            {
                logger.LogError(e.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
        public async Task <ActionResult <PaginatedList <UserSummary> > > GetAll([FromBody] UserFilterRequest filter)
        {
            try
            {
                // get list of active users (not deleted)
                var list = context.Users
                           .AsNoTracking();

                // filter
                if (filter != null)
                {
                    list = list.Where(a => a.Username.Contains(filter.SearchTerm) ||
                                      a.Firstname.Contains(filter.SearchTerm) ||
                                      a.Lastname.Contains(filter.SearchTerm));
                }

                // sort
                var ordering = $"{Constants.ColumnNames.Username} {Constants.DefaultSortDirection}";
                if (!string.IsNullOrEmpty(filter?.SortBy))
                {
                    ordering = $"{filter.SortBy} {filter.SortDirection}";
                }

                list = list.OrderBy(ordering);

                var result = await listHelpers.CreatePaginatedListAsync <ApplicationUser, UserSummary>(list, filter.PageNumber, filter.PageSize);

                return(result);
            }
            catch (Exception e)
            {
                logger.LogError(e.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
        public async Task <ActionResult <PaginatedList <OrderSummary> > > GetAll([FromBody] OrderFilterRequest filter)
        {
            try
            {
                // get list of active orders (not deleted)
                var list = context.Orders
                           .Include(c => c.Customer)
                           .AsNoTracking();

                // filter
                if (!string.IsNullOrEmpty(filter?.SearchTerm))
                {
                    list = list.Where(c => c.Code.ToString().Contains(filter.SearchTerm));
                }

                if (!(filter?.ProvinceId).IsNullOrZero())
                {
                    list = list.Where(c => c.Customer.ProvinceId == filter.ProvinceId);
                }

                if (!(filter?.CustomerId).IsNullOrZero())
                {
                    list = list.Where(c => c.CustomerId == filter.CustomerId);
                }

                if (filter?.DateFrom != null || filter?.DateTo != null)
                {
                    filter.DateFrom = filter.DateFrom == null || filter.DateFrom == DateTime.MinValue ? DateTime.Today : filter.DateFrom;
                    filter.DateTo   = filter.DateTo == null || filter.DateTo == DateTime.MinValue ? DateTime.Today : filter.DateTo;
                    list            = list.Where(c => c.Date >= filter.DateFrom && c.Date < filter.DateTo.Value.AddDays(1));
                }

                if (!(filter?.ItemId).IsNullOrZero())
                {
                    list = list.Where(c => c.LineItems.Any(d => d.ItemId == filter.ItemId));
                }

                var isInvoiced = filter?.IsInvoiced ?? false;
                list = list.Where(c => c.IsInvoiced == isInvoiced);

                // sort
                var ordering = $"{Constants.ColumnNames.Code} {Constants.DefaultSortDirection}";
                if (!string.IsNullOrEmpty(filter?.SortBy))
                {
                    ordering = $"{filter.SortBy} {filter.SortDirection}";
                }

                list = list.OrderBy(ordering);

                var entities = await listHelpers.CreatePaginatedListAsync <Order, OrderSummary>(list, filter.PageNumber, filter.PageSize);

                return(entities);
            }
            catch (Exception e)
            {
                logger.LogError(e.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
        public async Task <ActionResult <PaginatedList <ItemSummary> > > GetAll([FromBody] ItemFilterRequest filter)
        {
            try
            {
                // get list of active items (not deleted)
                var list = context.Items.AsNoTracking();

                // filter
                if (!string.IsNullOrEmpty(filter?.SearchTerm))
                {
                    list = list.Where(c => c.Code.Contains(filter.SearchTerm, StringComparison.CurrentCultureIgnoreCase) ||
                                      c.Name.Contains(filter.SearchTerm, StringComparison.CurrentCultureIgnoreCase));
                }

                if (!(filter?.CategoryId).IsNullOrZero())
                {
                    list = list.Where(c => c.CategoryId == filter.CategoryId);
                }

                if (filter?.IsQuantityLow ?? false)
                {
                    list = list.Where(c => c.Quantity < Constants.DefaultLowQuantity);
                }

                // sort
                var ordering = $"{Constants.ColumnNames.Code} {Constants.DefaultSortDirection}";
                if (!string.IsNullOrEmpty(filter?.SortBy))
                {
                    ordering = $"{filter.SortBy} {filter.SortDirection}";
                }

                list = list.OrderBy(ordering);

                var result = await listHelpers.CreatePaginatedListAsync <Item, ItemSummary>(list, filter.PageNumber, filter.PageSize);

                return(result);
            }
            catch (Exception e)
            {
                logger.LogError(e.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
        public async Task <ActionResult <PaginatedList <CashVoucherSummary> > > GetAll([FromBody] CashVoucherFilterRequest filter)
        {
            try
            {
                // get list of active cashVouchers (not deleted)
                var list = context.CashVouchers.AsNoTracking();

                // filter
                if (!string.IsNullOrEmpty(filter?.SearchTerm))
                {
                    list = list.Where(c => c.VoucherNumber.ToString().Contains(filter.SearchTerm) || c.PayTo.Contains(filter.SearchTerm));
                }

                if (filter?.DateFrom != null || filter?.DateTo != null)
                {
                    filter.DateFrom = filter.DateFrom == null || filter.DateFrom == DateTime.MinValue ? DateTime.Today : filter.DateFrom;
                    filter.DateTo   = filter.DateTo == null || filter.DateTo == DateTime.MinValue ? DateTime.Today : filter.DateTo;
                    list            = list.Where(c => c.Date >= filter.DateFrom && c.Date < filter.DateTo.Value.AddDays(1));
                }

                // sort
                var ordering = $"{Constants.ColumnNames.VoucherNumber} {Constants.DefaultSortDirection}";
                if (!string.IsNullOrEmpty(filter?.SortBy))
                {
                    ordering = $"{filter.SortBy} {filter.SortDirection}";
                }

                list = list.OrderBy(ordering);

                var entities = await listHelpers.CreatePaginatedListAsync <CashVoucher, CashVoucherSummary>(list, filter.PageNumber, filter.PageSize);

                return(entities);
            }
            catch (Exception e)
            {
                logger.LogError(e.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }