Пример #1
0
        public int CountQuestions(CounterParams Condition)
        {
            int i = 0;

            foreach (Question Q in Questions)
            {
                if (Condition == CounterParams.Correct)
                {
                    if (Q.Result == Question.QuestionResult.Correct)
                    {
                        i++;
                    }
                }
                if (Condition == CounterParams.Normal)
                {
                    if (Q.Type == Question.QuestionType.Normal)
                    {
                        i++;
                    }
                }
                if (Condition == CounterParams.NormalCorrects)
                {
                    if (Q.Type == Question.QuestionType.Normal && Q.Result == Question.QuestionResult.Correct)
                    {
                        i++;
                    }
                }
                if (Condition == CounterParams.TieBreak)
                {
                    if (Q.Type == Question.QuestionType.TieBreak)
                    {
                        i++;
                    }
                }
                if (Condition == CounterParams.TieBreakCorrect)
                {
                    if (Q.Type == Question.QuestionType.TieBreak && Q.Result == Question.QuestionResult.Correct)
                    {
                        i++;
                    }
                }
                if (Condition == CounterParams.TieBreakWrong)
                {
                    if (Q.Type == Question.QuestionType.TieBreak && Q.Result == Question.QuestionResult.Wrong)
                    {
                        i++;
                    }
                }
                if (Condition == CounterParams.NormalWrong)
                {
                    if (Q.Type == Question.QuestionType.Normal && Q.Result == Question.QuestionResult.Wrong)
                    {
                        i++;
                    }
                }
            }

            return(i);
        }
        public async Task <IActionResult> GetPagedcounter([FromQuery] CounterParams counterParams)
        {
            var counters = await counterRepository.GetPagedCounter(counterParams);

            var result = mapper.Map <IEnumerable <ViewCounterResource> >(counters);

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

            return(Ok(result));
        }
Пример #3
0
        public async Task <PagedList <Counter> > GetPagedCounter(CounterParams counterParams)
        {
            var counter = context.Counter.AsQueryable();

            // ini untuk Filter
            if (!string.IsNullOrEmpty(counterParams.Code))
            {
                counter = counter.Where(c => c.Code.Contains(counterParams.Code, StringComparison.OrdinalIgnoreCase));
            }

            if (!string.IsNullOrEmpty(counterParams.Name))
            {
                counter = counter.Where(c => c.Name.Contains(counterParams.Name, StringComparison.OrdinalIgnoreCase));
            }

            if (!string.IsNullOrEmpty(counterParams.Location))
            {
                counter = counter.Where(c => c.Location.Contains(counterParams.Location, StringComparison.OrdinalIgnoreCase));
            }

            if (counterParams.Status > 0)
            {
                counter = counter.Where(c => c.Status == counterParams.Status);
            }

            // ini untuk Sort
            if (counterParams.isDescending)
            {
                if (!string.IsNullOrEmpty(counterParams.OrderBy))
                {
                    switch (counterParams.OrderBy.ToLower())
                    {
                    case "code":
                        counter = counter.OrderByDescending(c => c.Code);
                        break;

                    case "name":
                        counter = counter.OrderByDescending(c => c.Name);
                        break;

                    case "location":
                        counter = counter.OrderByDescending(c => c.Location);
                        break;

                    case "status":
                        counter = counter.OrderByDescending(c => c.Status);
                        break;

                    default:
                        counter = counter.OrderByDescending(c => c.Code);
                        break;
                    }
                }
                else
                {
                    counter = counter.OrderByDescending(c => c.Code);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(counterParams.OrderBy))
                {
                    switch (counterParams.OrderBy.ToLower())
                    {
                    case "code":
                        counter = counter.OrderBy(c => c.Code);
                        break;

                    case "name":
                        counter = counter.OrderBy(c => c.Name);
                        break;

                    case "location":
                        counter = counter.OrderBy(c => c.Location);
                        break;

                    case "status":
                        counter = counter.OrderBy(c => c.Status);
                        break;

                    default:
                        counter = counter.OrderBy(c => c.Code);
                        break;
                    }
                }
                else
                {
                    counter = counter.OrderBy(c => c.Code);
                }
            }

            return(await PagedList <Counter> .CreateAsync(counter, counterParams.PageNumber, counterParams.PageSize));
        }