public Workspace[] GetKPIs(string rolename, string location, string[] locations) { if (string.IsNullOrEmpty(rolename)) throw new Exception("No role assigned for user"); Workspace A = new Workspace { Code = "A", Description = "Operational KPIs" }; Workspace B = new Workspace { Code = "B", Description = "Truck Cycle KPIs" }; using (System.Data.IDbConnection conn = _dbf.Create()) { conn.Open(); KPIRole role = RetrieveRole(conn, rolename); string[] filterlocations = location.Equals("all", StringComparison.InvariantCultureIgnoreCase) ? locations : new string[] {location}; using (System.Data.IDbCommand cmd = conn.CreateCommand()) { cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = this.SelectKPISQL(filterlocations); Console.Out.WriteLine(cmd.CommandText); using (System.Data.IDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { foreach (KPIDisplay kpi in role.KPIs) { RetrieveKPI(dr, kpi); } } } } List<Models.KPI> akpis = new List<Models.KPI>(); List<Models.KPI> bkpis = new List<Models.KPI>(); foreach (KPIDisplay kpi in role.KPIs) { if (kpi.StartTime == null || !kpi.StartTime.HasValue || kpi.EndTime == null || !kpi.EndTime.HasValue || (DateTime.Now >= kpi.StartTime.Value && DateTime.Now < kpi.EndTime.Value)) { List<Models.KPI> wkpis = kpi.Display.StartsWith("A") ? akpis : bkpis; wkpis.Add(kpi.KPI); } } A.KPIs = akpis.ToArray(); B.KPIs = bkpis.ToArray(); } return new Workspace[] { A, B }; }
public Workspace[] GetKPIs(string rolename, string location, string[] locations) { Workspace A = new Workspace { Code = "A", Description = "Operational KPIs" }; if (_numkpi > 0) { A.KPIs = GenerateKPI(location); } else { A.KPIs = new CAI.COMMANDoptimize.KPI.Models.KPI[] { new CAI.COMMANDoptimize.KPI.Models.KPI { Code = "005", Description = "Total Compliance", Category = "02", Actual = 181, Units = 230, Target = 207, Level1 = 195.5M, Level2 = 184 }, new CAI.COMMANDoptimize.KPI.Models.KPI { Code = "006", Description = "Locked Loads", Category = "02", Actual = 22, Units = 228, Target = 11.4M, Level1 = 22.8M, Level2 = 34.2M } }; } Workspace B = new Workspace { Code = "B", Description = "Truck Cycle KPIs" }; if (_numkpi > 0) { B.KPIs = GenerateKPI(location); } else { B.KPIs = new CAI.COMMANDoptimize.KPI.Models.KPI[] { new CAI.COMMANDoptimize.KPI.Models.KPI { Code = "001", Description = "First Load", Category = "01", Actual = 885, Units = 36, Target = 370, Level1 = 740, Level2 = 1110 }, new CAI.COMMANDoptimize.KPI.Models.KPI { Code = "002", Description = "Job Wait", Category = "01", Actual = 835, Units = 40, Target = 416, Level1 = 624, Level2 = 832 }, new CAI.COMMANDoptimize.KPI.Models.KPI { Code = "003", Description = "Yard Time", Category = "01", Actual = 860, Units = 40, Target = 600, Level1 = 800, Level2 = 1000 } }; } return new Workspace[] { A, B }; }