コード例 #1
0
        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));
        }
コード例 #2
0
        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)));
        }