Exemplo n.º 1
0
        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));
        }