public ActionResult Index(OpportunitySearchHelper model) { var opportunities = _db.Opportunities.Select(o => o); if (User.IsInRole("Management") || User.IsInRole("Administrator") || User.IsInRole("Board") || User.IsInRole("Superadmin")) { //Search Engine -- Admin if (!String.IsNullOrEmpty(model.Campaign)) { opportunities = opportunities.Where(op => op.RelatedCampaign.CampaignName.Contains(model.Campaign)); } if (!String.IsNullOrEmpty(model.Opportunity)) { opportunities = opportunities.Where(op => op.OpportunityTitle.Contains(model.Opportunity)); } if (!String.IsNullOrEmpty(model.Organization)) { opportunities = opportunities.Where(op => op.RelatedOrganization.SubjectName.Contains(model.Organization) || op.RelatedOrganization.VAT.Contains(model.Organization)); } if (!String.IsNullOrEmpty(model.Address)) { opportunities = opportunities.Where(op => op.RelatedOrganization.OrganizationDetail.MainCity.Contains(model.Address)); } if (!String.IsNullOrEmpty(model.LastContactDate)) { var dateTemp = Convert.ToDateTime(model.LastContactDate); var dateTempPlus = dateTemp.AddDays(1); opportunities = opportunities.Where(op => op.LastContactDate >= dateTemp && op.LastContactDate < dateTempPlus); } if (!String.IsNullOrEmpty(model.OpportunityStatus.ToString())) { opportunities = opportunities.Where(op => op.OpportunityStatus == model.OpportunityStatus); } if (!String.IsNullOrEmpty(model.RejectReason.ToString())) { opportunities = opportunities.Where(op => op.RejectReason == model.RejectReason); } if (!String.IsNullOrEmpty(model.Priority.ToString())) { opportunities = opportunities.Where(op => op.Priority == model.Priority); } if (!String.IsNullOrEmpty(model.Assigned)) { if (model.Assigned == "1") { opportunities = opportunities.Where(op => op.IsAssigned == false); } if (model.Assigned == "2") { opportunities = opportunities.Where(op => op.IsAssigned); } } if (!String.IsNullOrEmpty(model.AssignedTo)) { opportunities = opportunities.Where(op => op.AssignedTo == model.AssignedTo); } } else { opportunities = opportunities.Where(op => op.AssignedTo == User.Identity.Name); //Search Engine -- User if (!String.IsNullOrEmpty(model.Campaign)) { opportunities = opportunities.Where(op => op.RelatedCampaign.CampaignName.Contains(model.Campaign)); } if (!String.IsNullOrEmpty(model.Opportunity)) { opportunities = opportunities.Where(op => op.OpportunityTitle.Contains(model.Opportunity)); } if (!String.IsNullOrEmpty(model.Organization)) { opportunities = opportunities.Where(op => op.RelatedOrganization.SubjectName.Contains(model.Organization) || op.RelatedOrganization.VAT.Contains(model.Organization)); } if (!String.IsNullOrEmpty(model.Address)) { opportunities = opportunities.Where(op => op.RelatedOrganization.OrganizationDetail.MainCity.Contains(model.Address)); } if (!String.IsNullOrEmpty(model.LastContactDate)) { var dateTemp = Convert.ToDateTime(model.LastContactDate); var dateTempPlus = dateTemp.AddDays(1); opportunities = opportunities.Where(op => op.LastContactDate >= dateTemp && op.LastContactDate < dateTempPlus); } if (!String.IsNullOrEmpty(model.OpportunityStatus.ToString())) { opportunities = opportunities.Where(op => op.OpportunityStatus == model.OpportunityStatus); } if (!String.IsNullOrEmpty(model.RejectReason.ToString())) { opportunities = opportunities.Where(op => op.RejectReason == model.RejectReason); } if (!String.IsNullOrEmpty(model.Priority.ToString())) { opportunities = opportunities.Where(op => op.Priority == model.Priority); } } ViewBag.SearchResults = opportunities.Count(); ViewBag.SearchResultsAssigned = opportunities.Count(op => op.IsAssigned); ViewBag.UsersAssigned = opportunities.Count(op => op.AssignedTo == User.Identity.Name); ViewBag.UsersCreated = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Start); ViewBag.UsersInContact = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Incontact); ViewBag.UsersLead = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Lead); ViewBag.UsersRejected = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Rejected); var returnModel = new OpportunityIndexViewModel() { Users = _db.Users }; if (User.IsInRole("Management") || User.IsInRole("Administrator") || User.IsInRole("Board") || User.IsInRole("Superadmin")) { returnModel.Opportunities = opportunities.OrderByDescending(op => op.Priority); return(View(returnModel)); } returnModel.Opportunities = opportunities.Where(op => op.OpportunityStatus != Models.Opportunity.OpportunityStatusEnum.Rejected).OrderByDescending(op => op.Priority); return(View(returnModel)); }
public ActionResult Index(OpportunitySearchHelper model) { var opportunities = _db.Opportunities.Select(o => o); if (User.IsInRole("Management") || User.IsInRole("Administrator") || User.IsInRole("Board") || User.IsInRole("Superadmin")) { //Search Engine -- Admin if (!String.IsNullOrEmpty(model.Campaign)) { opportunities = opportunities.Where(op => op.RelatedCampaign.CampaignName.Contains(model.Campaign)); } if (!String.IsNullOrEmpty(model.Opportunity)) { opportunities = opportunities.Where(op => op.OpportunityTitle.Contains(model.Opportunity)); } if (!String.IsNullOrEmpty(model.Organization)) { opportunities = opportunities.Where(op => op.RelatedOrganization.SubjectName.Contains(model.Organization) || op.RelatedOrganization.VAT.Contains(model.Organization)); } if (!String.IsNullOrEmpty(model.OpportunityStatus.ToString())) { opportunities = opportunities.Where(op => op.OpportunityStatus == model.OpportunityStatus); } if (!String.IsNullOrEmpty(model.RejectReason.ToString())) { opportunities = opportunities.Where(op => op.RejectReason == model.RejectReason); } if (!String.IsNullOrEmpty(model.Assigned)) { if (model.Assigned == "1") { opportunities = opportunities.Where(op => op.IsAssigned == false); } if (model.Assigned == "2") { opportunities = opportunities.Where(op => op.IsAssigned); } } if (!String.IsNullOrEmpty(model.AssignedTo)) { opportunities = opportunities.Where(op => op.AssignedTo == model.AssignedTo); } } else { opportunities = opportunities.Where(op => op.AssignedTo == User.Identity.Name); //Search Engine -- User if (!String.IsNullOrEmpty(model.Campaign)) { opportunities = opportunities.Where(op => op.RelatedCampaign.CampaignName.Contains(model.Campaign)); } if (!String.IsNullOrEmpty(model.Opportunity)) { opportunities = opportunities.Where(op => op.OpportunityTitle.Contains(model.Opportunity)); } if (!String.IsNullOrEmpty(model.Organization)) { opportunities = opportunities.Where(op => op.RelatedOrganization.SubjectName.Contains(model.Organization) || op.RelatedOrganization.VAT.Contains(model.Organization)); } if (!String.IsNullOrEmpty(model.OpportunityStatus.ToString())) { opportunities = opportunities.Where(op => op.OpportunityStatus == model.OpportunityStatus); } if (!String.IsNullOrEmpty(model.RejectReason.ToString())) { opportunities = opportunities.Where(op => op.RejectReason == model.RejectReason); } } ViewBag.SearchResults = opportunities.Count(); ViewBag.SearchResultsAssigned = opportunities.Count(op => op.IsAssigned); ViewBag.UsersAssigned = opportunities.Count(op => op.AssignedTo == User.Identity.Name); ViewBag.UsersCreated = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Start); ViewBag.UsersInContact = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Incontact); ViewBag.UsersLead = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Lead); ViewBag.UsersRejected = opportunities.Count(op => op.AssignedTo == User.Identity.Name && op.OpportunityStatus == Opportunity.OpportunityStatusEnum.Rejected); if (User.IsInRole("Management") || User.IsInRole("Administrator") || User.IsInRole("Board") || User.IsInRole("Superadmin")) { return(View(opportunities.OrderByDescending(op => op.InsertDate))); } return(View(opportunities.Where(op => op.OpportunityStatus != Opportunity.OpportunityStatusEnum.Lead || op.OpportunityStatus != Opportunity.OpportunityStatusEnum.Rejected).OrderByDescending(op => op.InsertDate))); }