public async Task <ActionResult> Index(int?customerID, int?contractorID, int?periodID, string requirementStatusID, int?entityTypeID) { var customersByAuditor = await customerAuditorRespository.FindCustomerAuditorsByUserIDAsync(this.CurrentUserID); var customerIDFilter = customerID == null?customersByAuditor.FirstOrDefault().CustomerID : customerID; var contractors = await contractorRepository.FindContractorsByCustomerIDAsync((int)customerIDFilter); var contractorIDFilter = contractors != null && contractorID == null?contractors.FirstOrDefault()?.ContractorID : contractorID; ViewBag.PeriodID = new SelectList(await periodRepository.FindPeriodsAsync(), "PeriodID", "PeriodID"); ViewBag.RequirementStatusID = new SelectList(Enum.GetNames(typeof(RequirementStatus))); ViewBag.EntityTypeID = new SelectList(await entityTypeRepository.EntityTypesAsync(), "EntityTypeID", "Description"); RequirementStatus requirementStatus = !string.IsNullOrEmpty(requirementStatusID) ? (RequirementStatus)Enum.Parse(typeof(RequirementStatus), requirementStatusID) : 0; //var requirements = await requirementRepository.FindRequirementsByFilterAsync((int)customerIDFilter, (int)contractorIDFilter, 0, periodID == null ? 0 : periodID.Value, requirementStatus, entityTypeID == null ? 0 : entityTypeID.Value); var requirements = await requirementRepository.FindRequirementsByFilterAsync((int)customerIDFilter, contractorIDFilter == null? 0 : contractorIDFilter.Value, 0, periodID == null? 0 : periodID.Value, requirementStatus, entityTypeID == null? 0 : entityTypeID.Value); var requirementsViewModel = new RequirementListViewModel(requirements.ToList()); ViewBag.CustomerID = customerIDFilter; ViewBag.ContractorId = contractorIDFilter; requirementsViewModel.Customers = customersByAuditor.Select(x => new SelectListItem() { Value = x.CustomerID.ToString(), Text = x.Customer.FullCompanyName }); requirementsViewModel.Contractors = contractors.Select(x => new SelectListItem() { Value = x.ContractorID.ToString(), Text = x.FullCompanyName }); return(View(requirementsViewModel)); }