public async Task <IActionResult> GetPagedmealType([FromQuery] MealTypeParams mealTypeParams)
        {
            var mealTypes = await mealtypeRepository.GetPagedmealType(mealTypeParams);

            var result = mapper.Map <IEnumerable <ViewMealTypeResource> >(mealTypes);

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

            return(Ok(result));
        }
Esempio n. 2
0
        public async Task <PagedList <MealType> > GetPagedmealType(MealTypeParams mealTypeParams)
        {
            var mealTypes = context.MealType.AsQueryable();

            // perlu user id untuk membatasi
            if (!string.IsNullOrEmpty(mealTypeParams.Code))
            {
                mealTypes = mealTypes.Where(m =>
                                            m.Code.Contains(mealTypeParams.Code, StringComparison.OrdinalIgnoreCase));
            }

            if (!string.IsNullOrEmpty(mealTypeParams.Name))
            {
                mealTypes = mealTypes.Where(m =>
                                            m.Name.Contains(mealTypeParams.Name, StringComparison.OrdinalIgnoreCase));
            }

            // if (!string.IsNullOrEmpty(mealTypeParams.vendorName))
            // {
            //   mealTypes = mealTypes.Where(m => m.MealVendor.Name.Contains(mealTypeParams.vendorName, StringComparison.OrdinalIgnoreCase));
            // }

            //name,sort
            if (mealTypeParams.isDescending)
            {
                if (!string.IsNullOrEmpty(mealTypeParams.OrderBy))
                {
                    switch (mealTypeParams.OrderBy.ToLower())
                    {
                    case "code":
                        mealTypes = mealTypes.OrderByDescending(m => m.Code);
                        break;

                    case "name":
                        mealTypes = mealTypes.OrderByDescending(m => m.Name);
                        break;

                    // case "vendorname":
                    //   mealTypes = mealTypes.OrderByDescending(m => m.MealVendor.Name);
                    //   break;
                    default:
                        mealTypes = mealTypes.OrderByDescending(m => m.Code);
                        break;
                    }
                }
                else
                {
                    mealTypes = mealTypes.OrderByDescending(m => m.Code);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(mealTypeParams.OrderBy))
                {
                    switch (mealTypeParams.OrderBy.ToLower())
                    {
                    case "code":
                        mealTypes = mealTypes.OrderBy(m => m.Code);
                        break;

                    case "name":
                        mealTypes = mealTypes.OrderBy(m => m.Name);
                        break;

                    // case "vendorname":
                    //   mealTypes = mealTypes.OrderBy(m => m.MealVendor.Name);
                    //   break;
                    default:
                        mealTypes = mealTypes.OrderBy(m => m.Code);
                        break;
                    }
                }
                else
                {
                    mealTypes = mealTypes.OrderBy(m => m.Code);
                }
            }
            return(await PagedList <MealType>
                   .CreateAsync(mealTypes, mealTypeParams.PageNumber, mealTypeParams.PageSize));
        }