コード例 #1
0
        public async Task <IActionResult> GetPagedMealOrderEntryHeader([FromQuery] MealOrderParams mealOrderParams)
        {
            var userId     = getUserId();
            var mealOrders = await mealOrderRepository.GetPagedMealOrder(mealOrderParams, userId);

            var result = mapper.Map <IEnumerable <ViewMealOrderResource> >(mealOrders);

            Response.AddPagination(mealOrders.CurrentPage, mealOrders.PageSize, mealOrders.TotalCount, mealOrders.TotalPages);

            return(Ok(result));
        }
コード例 #2
0
        public async Task <IActionResult> GetMealOrderReport([FromQuery] MealOrderParams mealOrderParams)
        {
            var mealOrders = await mealOrderRepository.GetPagedMealOrder(mealOrderParams);

            var departments = await departmentRepository.GetAll();

            var mealtypes = await mealtypeRepository.GetAll();

            var mealOrderResult  = mapper.Map <IEnumerable <ViewMealOrderResource> >(mealOrders);
            var departmentResult = mapper.Map <IEnumerable <ViewDepartmentResource> >(departments);
            var mealTypeResult   = mapper.Map <IEnumerable <ViewMealTypeResource> >(mealtypes);

            return(Ok(new
            {
                mealOrderResult,
                departmentResult,
                mealTypeResult
            }));
        }
コード例 #3
0
        public async Task <PagedList <MealOrder> > GetPagedMealOrder(MealOrderParams mealOrderParams, int?userId = null)
        {
            var mealOrders = context.MealOrder.Include(m => m.MealOrderDetails).AsQueryable();

            if (userId != null)
            {
                var user = context.User.FirstOrDefault(u => u.Id == userId);
                if (user.AdminStatus != true)
                {
                    mealOrders = mealOrders.Where(bo => bo.UserId == userId);
                }
            }

            if (DateTime.Compare(mealOrderParams.StartDate, new DateTime(01, 1, 1)) != 0 && DateTime.Compare(mealOrderParams.EndDate, new DateTime(01, 1, 1)) != 0)
            {
                mealOrders = mealOrders.Where(m => m.OrderEntryDate.Date >= mealOrderParams.StartDate.Date && m.OrderEntryDate.Date <= mealOrderParams.EndDate.Date);
            }

            if (DateTime.Compare(mealOrderParams.OrderEntryDate, new DateTime(01, 1, 1)) != 0)
            {
                mealOrders = mealOrders.Where(m => m.OrderEntryDate.Date == mealOrderParams.OrderEntryDate.Date);
            }

            if (mealOrderParams.isReadyToCollect == true)
            {
                mealOrders = mealOrders.Where(m => m.IsReadyToCollect == true);
            }

            // FIXME : harusnya department Name, bukan Id untuk filter. kecuali di frontend pakai comboxbox
            if (mealOrderParams.DepartmentId > 0)
            {
                mealOrders = mealOrders.Where(m => m.DepartmentId == mealOrderParams.DepartmentId);
            }
            // TODO : implmentasikan Filter pada Status

            // Sort
            if (mealOrderParams.isDescending)
            {
                if (!string.IsNullOrEmpty(mealOrderParams.OrderBy))
                {
                    switch (mealOrderParams.OrderBy.ToLower())
                    {
                    case "orderentrydate":
                        mealOrders = mealOrders.OrderByDescending(m => m.OrderEntryDate);
                        break;

                    case "departmentid":
                        mealOrders = mealOrders.OrderByDescending(m => m.DepartmentId);
                        break;

                    // TODO : implementasikan Sort pada Status
                    default:
                        mealOrders = mealOrders.OrderByDescending(m => m.OrderEntryDate);
                        break;
                    }
                }
                else
                {
                    mealOrders = mealOrders.OrderByDescending(m => m.OrderEntryDate);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(mealOrderParams.OrderBy))
                {
                    switch (mealOrderParams.OrderBy.ToLower())
                    {
                    case "orderentrydate":
                        mealOrders = mealOrders.OrderBy(m => m.OrderEntryDate);
                        break;

                    case "departmentid":
                        mealOrders = mealOrders.OrderBy(m => m.DepartmentId);
                        break;

                    // TODO : implementasikan Sort pada Status

                    default:
                        mealOrders = mealOrders.OrderBy(m => m.OrderEntryDate);
                        break;
                    }
                }
                else
                {
                    mealOrders = mealOrders.OrderBy(m => m.OrderEntryDate);
                }
            }
            var mealOrderToReturn = mealOrders.Include(m => m.MealOrderDetails);

            return(await PagedList <MealOrder> .CreateAsync(mealOrders, mealOrderParams.PageNumber, mealOrderParams.PageSize));
        }