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