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)); }
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 })); }
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)); }