/*
  * Function that calculates the priority of an oppurtunity
  * Currently only using OpportunityStatus and the number of people to calculate it
  */
 private String CalculatePriority(PracticeManagerData result)
 {
     if (result.PositionStatusName != null)
     {
         if (result.PositionStatusName == "Need Candidates" && result.NumberOfPositions != null)
         {
             if (result.NumberOfPositions == 1)
             {
                 return("Medium");
             }
             if (result.NumberOfPositions >= 2)
             {
                 return("High");
             }
         }
     }
     return("Low");
 }
Пример #2
0
        public JsonResult GetMainData()
        {
            //get the results
            try
            {
                var returnJSON = new List <PracticeManagerData> {
                };
                var ACTList    = new List <UserData> {
                };
                var AEList     = new List <UserData> {
                };


                List <Opportunity>     opportunities   = db.Opportunities.ToList <Opportunity>();
                List <OpportunityData> opportunityList = new List <OpportunityData> {
                };
                List <Position>     positions          = db.Positions.ToList <Position>();
                List <PositionData> positionList       = new List <PositionData> {
                };
                List <Client>     clients    = db.Clients.ToList <Client>();
                List <ClientData> clientList = new List <ClientData> {
                };
                List <Unit>       units      = db.Units.ToList <Unit>();
                List <SoldStatus> statuses   = db.SoldStatuses.ToList <SoldStatus>();
                List <User>       users      = db.Users.ToList <User>();
                List <UserData>   userList   = new List <UserData> {
                };
                List <UserBusinessRole> userBusinessRoles = db.UserBusinessRoles.ToList <UserBusinessRole>();


                foreach (UserBusinessRole ubr in userBusinessRoles)
                {
                    foreach (User us in users)
                    {
                        if (ubr.UserId == us.UserId)
                        {
                            if (ubr.BusinessRoleId == 3)
                            {
                                ACTList.Add(new UserData
                                {
                                    FullName = us.FullName,
                                    UserId   = us.UserId
                                });
                            }
                            else if (ubr.BusinessRoleId == 2)
                            {
                                AEList.Add(new UserData
                                {
                                    FullName = us.FullName,
                                    UserId   = us.UserId
                                });
                            }
                        }
                    }
                }

                PracticeManagerData oppJSON        = new PracticeManagerData();
                PracticeManagerData positionJSON   = new PracticeManagerData();
                PracticeManagerData clientJSON     = new PracticeManagerData();
                PracticeManagerData unitJSON       = new PracticeManagerData();
                PracticeManagerData soldStatusJSON = new PracticeManagerData();

                //bool match = new bool();

                foreach (Position p in positions)
                {
                    foreach (Opportunity o in opportunities)
                    {
                        if (o.OpportunityId == p.OpportunityId)
                        {
                            oppJSON.OpportunityName = o.OpportunityName;
                            oppJSON.OpportunityId   = o.OpportunityId;
                            oppJSON.ClientContact   = o.ClientContact;
                            oppJSON.ClientId        = o.ClientId;
                            oppJSON.AE     = o.AccountExecutiveUserId;
                            oppJSON.ACT    = o.OpportunityOwnerUserId;
                            oppJSON.UnitId = o.UnitId;
                            foreach (Client c in clients)
                            {
                                if (o.ClientId == c.ClientId)
                                {
                                    clientJSON.ClientName        = c.ClientName;
                                    clientJSON.ClientSubbusiness = c.ClientSubbusiness;
                                }
                            }
                            //Loop through units
                            foreach (Unit u in units)
                            {
                                if (o.UnitId == u.UnitId)
                                {
                                    unitJSON.UnitName = u.UnitName;
                                }
                            }
                            //Loop through sold statuses
                            foreach (SoldStatus s in statuses)
                            {
                                if (o.SoldStatusId == 1)
                                {
                                    soldStatusJSON.SoldStatusName = "Yes";
                                }
                                else
                                {
                                    soldStatusJSON.SoldStatusName = "No";
                                }
                            }
                        }
                    }
                    returnJSON.Add(new PracticeManagerData
                    {
                        PositionName         = p.PositionName,
                        PositionId           = p.PositionId,
                        OpportunityName      = oppJSON.OpportunityName,
                        Skillset             = p.Skillset,
                        Rate                 = p.Rate == null ? 0 : (int)p.Rate,
                        LastModified         = p.LastModified,
                        ProposedCandidate    = p.ProposedCandidate,
                        ExpectedStartDate    = p.ExpectedStartDate == null ? new DateTime(1000, 1, 1) : (System.DateTime)p.ExpectedStartDate,
                        NumberOfPositions    = p.NumberOfPositions,
                        Duration             = p.Duration == null ? 0 : (int)p.Duration,
                        HireCandidate        = p.HireCandidate,
                        AcceptedCandidate    = p.AcceptedCandidate,
                        RejectedCandidate    = p.RejectedCandidate,
                        MaxConsultantGradeId = p.MaxConsultantGradeId == null ? 0 : (int)p.MaxConsultantGradeId,
                        MinConsultantGradeId = p.MinConsultantGradeId == null ? 0 : (int)p.MinConsultantGradeId,
                        PositionNote         = p.PositionNote,
                        ClientName           = clientJSON.ClientName,
                        ClientSubbusiness    = clientJSON.ClientSubbusiness,
                        ClientContact        = oppJSON.ClientContact,
                        ClientId             = oppJSON.ClientId,
                        UnitName             = unitJSON.UnitName,
                        UnitId               = oppJSON.UnitId,
                        SoldStatusName       = soldStatusJSON.SoldStatusName,
                        SActive              = soldStatusJSON.SActive,
                        PositionStatusId     = p.PositionStatusId,
                        AE            = oppJSON.AE,
                        ACT           = oppJSON.ACT,
                        Priority      = this.CalculatePriority(p.NumberOfPositions),
                        OpportunityId = oppJSON.OpportunityId
                    });
                }



                return(Json(returnJSON, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occured {0}", e);
                return(Json("Unable to get from database", JsonRequestBehavior.AllowGet));
            }
        }