/* * 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"); }
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)); } }