public ResponseModel DashBoardCountData(string BrandID, string UserIds, string fromdate, string todate) { ResponseModel objResponseModel = new ResponseModel(); DashBoardDataModel db = new DashBoardDataModel(); int statusCode = 0; string statusMessage = ""; try { string token = Convert.ToString(Request.Headers["X-Authorized-Token"]); Authenticate authenticate = new Authenticate(); DashBoardCaller dCaller = new DashBoardCaller(); var temp = SecurityService.DecryptStringAES(token); authenticate = SecurityService.GetAuthenticateDataFromTokenCache(Cache, SecurityService.DecryptStringAES(token)); db = dCaller.GetDashBoardCountData(new DashBoardService(Cache, Db), BrandID, UserIds, fromdate, todate, authenticate.TenantId); statusCode = db == null ? (int)EnumMaster.StatusCode.RecordNotFound : (int)EnumMaster.StatusCode.Success; statusMessage = CommonFunction.GetEnumDescription((EnumMaster.StatusCode)statusCode); objResponseModel.Status = true; objResponseModel.StatusCode = statusCode; objResponseModel.Message = statusMessage; objResponseModel.ResponseData = db; } catch (Exception) { throw; } return(objResponseModel); }
public HttpResponseMessage GetDashBoardData() { DashBoardDataModel result = new DashBoardDataModel(); try { var data = _associatesService.GetAllAssociates().ToList(); if (data != null && data.Count > 0) { int totalCandidates = data.Count(); result.registeredUsers = totalCandidates; if (totalCandidates > 0) { var candFreshers = data.Where(c => c.Level_1 == true).Count(); result.candidateFreshers = candFreshers > 0 ? (candFreshers * 100 / totalCandidates) : 0; var l1Candidates = data.Where(c => c.Level_1 == true).Count(); result.level1candidates = l1Candidates > 0 ? (l1Candidates * 100 / totalCandidates) : 0; var l2Candidates = data.Where(c => c.Level_2 == true).Count(); result.level2candidates = l2Candidates > 0 ? (l2Candidates * 100 / totalCandidates) : 0; var l3Candidates = data.Where(c => c.Level_3 == true).Count(); result.level3candidates = l3Candidates > 0 ? (l3Candidates * 100 / totalCandidates) : 0; result.candidatesRated = data.Where(c => c.Associate_Skills.Any(x => x.Rating > 0)).Count(); var femaleCandidates = data.Where(c => c.Gender.Equals("female", StringComparison.InvariantCultureIgnoreCase)).Count(); result.femaleCandidates = femaleCandidates > 0 ? (femaleCandidates * 100 / totalCandidates) : 0; var femaleCandidatesRated = data.Where(c => c.Gender.Equals("female", StringComparison.InvariantCultureIgnoreCase) && c.Associate_Skills.Any(x => x.Rating > 0)).Count(); result.femaleCandidatesRated = femaleCandidatesRated > 0 ? (femaleCandidatesRated * 100 / totalCandidates) : 0; var maleCandidates = data.Where(c => c.Gender.Equals("male", StringComparison.InvariantCultureIgnoreCase)).Count(); result.maleCandidates = maleCandidates > 0 ? (maleCandidates * 100 / totalCandidates) : 0; var maleCandidatesRated = data.Where(c => c.Gender.Equals("male", StringComparison.InvariantCultureIgnoreCase) && c.Associate_Skills.Any(x => x.Rating > 0)).Count(); result.maleCandidatesRated = maleCandidatesRated > 0 ? (maleCandidatesRated * 100 / totalCandidates) : 0; var countByName = data .SelectMany(x => x.Associate_Skills) .Where(y => y.Rating > 0) .GroupBy(c => c.Skill.Skill_Name) .Select(g => new { name = g.Key, count = g.Count() }).OrderBy(x => x.name); var totalCount = countByName.Sum(x => x.count); var random = new Random(); result.chartData = countByName.Select(pair => new ChartData { name = pair.name, color = string.Format("#{0:X6}", random.Next(0x1000000)), percentage = (pair.count / (double)totalCount * 100) }).ToList(); } } } catch (Exception ex) { _logManager.WriteLog(ex); } return(ToJson(result)); }
public void GetDashBoardData() { var response = new DashBoardDataModel(); var associateController = new AssociateController(_associatesService, _logManager) { Request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri(ServiceBaseURL + "associate/getDashBoardData") } }; associateController.Configuration = new HttpConfiguration(); _response = associateController.GetDashBoardData(); response = JsonConvert.DeserializeObject <DashBoardDataModel>(_response.Content.ReadAsStringAsync().Result); Assert.AreEqual(_response.StatusCode, HttpStatusCode.OK); Assert.AreEqual(response != null, true); }
/// <summary> /// Load Dashboard Data /// </summary> public DashBoardDataModel GetDashBoardCountData(string BrandID, string UserID, string fromdate, string todate, int TenantID) { DataSet ds = new DataSet(); DataSet graphds = new DataSet(); MySqlCommand cmd = new MySqlCommand(); DashBoardDataModel dashBoarddata = new DashBoardDataModel(); DateTime date = new DateTime(); TimeSpan ts = new TimeSpan(); // DashBoardGraphModel dashBoardGraphdata = new DashBoardGraphModel(); int totalTickets = 0; int respondedTickets = 0; int UnrespondedTickets = 0; int TotalResponseTime = 0; int resolvedTickets = 0; int UnresolvedTickets = 0; int TotalResolutionTime = 0; try { conn = Db.Connection; cmd.Connection = conn; #region DashBoard Data MySqlCommand cmd1 = new MySqlCommand("SP_DashBoardList", conn); cmd1.CommandType = CommandType.StoredProcedure; cmd1.Parameters.AddWithValue("@_BrandID", string.IsNullOrEmpty(BrandID) ? "" : BrandID); cmd1.Parameters.AddWithValue("@User_ID", string.IsNullOrEmpty(UserID) ? "" : UserID); //cmd1.Parameters.AddWithValue("@Tenant_ID", 1); cmd1.Parameters.AddWithValue("@Tenant_ID", TenantID); cmd1.Parameters.AddWithValue("@_FromDate", fromdate); cmd1.Parameters.AddWithValue("@_ToDate", todate); MySqlDataAdapter da = new MySqlDataAdapter(); da.SelectCommand = cmd1; da.Fill(ds); if (ds != null && ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) //Resolution % { dashBoarddata.ResolutionPercentage = ds.Tables[0].Rows[0]["Resolution%"] != System.DBNull.Value ? Convert.ToDouble(ds.Tables[0].Rows[0]["Resolution%"]) : 0; } if (ds.Tables[1].Rows.Count > 0) //AllTicket { dashBoarddata.All = ds.Tables[1].Rows[0]["AllTicket"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[1].Rows[0]["AllTicket"]) : 0; } if (ds.Tables[2].Rows.Count > 0) //OpenTicket { dashBoarddata.Open = ds.Tables[2].Rows[0]["OpenTicket"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[2].Rows[0]["OpenTicket"]) : 0; } if (ds.Tables[3].Rows.Count > 0) //SLADue { dashBoarddata.DueToday = ds.Tables[3].Rows[0]["SLADueCount"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[3].Rows[0]["SLADueCount"]) : 0; } if (ds.Tables[4].Rows.Count > 0) //SLAOverDue { dashBoarddata.OverDue = ds.Tables[4].Rows[0]["SLAOverDueCount"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[4].Rows[0]["SLAOverDueCount"]) : 0; } if (ds.Tables[5].Rows.Count > 0) //TaskOpen { dashBoarddata.TaskOpen = ds.Tables[5].Rows[0]["TaskOpen"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[5].Rows[0]["TaskOpen"]) : 0; } if (ds.Tables[6].Rows.Count > 0) //TaskClose { dashBoarddata.TaskClose = ds.Tables[6].Rows[0]["TaskClose"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[6].Rows[0]["TaskClose"]) : 0; } if (ds.Tables[7].Rows.Count > 0) //ClaimOpen { dashBoarddata.ClaimOpen = ds.Tables[7].Rows[0]["ClaimOpen"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[7].Rows[0]["ClaimOpen"]) : 0; } if (ds.Tables[8].Rows.Count > 0) //ClaimClose { dashBoarddata.ClaimClose = ds.Tables[8].Rows[0]["ClaimClose"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[8].Rows[0]["ClaimClose"]) : 0; } //if (ds.Tables[9].Rows.Count > 0) //Response SLA ----hardcoded for now----- //{ // dashBoarddata.ResponseRate = ds.Tables[9].Rows[0]["ResponseSLA"] != System.DBNull.Value ? Convert.ToString(ds.Tables[9].Rows[0]["ResponseSLA"]) + "%" : ""; // dashBoarddata.isResponseSuccess = true; //} if ((ds.Tables[9].Rows.Count > 0)) //Resolution SLA { totalTickets = ds.Tables[9].Rows[0]["TotalTickets"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[9].Rows[0]["TotalTickets"]) : 0; respondedTickets = ds.Tables[9].Rows[0]["RespondedTickets"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[9].Rows[0]["RespondedTickets"]) : 0; resolvedTickets = ds.Tables[9].Rows[0]["ResolvedTickets"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[9].Rows[0]["ResolvedTickets"]) : 0; UnrespondedTickets = ds.Tables[9].Rows[0]["UnRespondedTickets"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[9].Rows[0]["UnRespondedTickets"]) : 0; TotalResponseTime = ds.Tables[9].Rows[0]["TotalRespondTime"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[9].Rows[0]["TotalRespondTime"]) : 0; UnresolvedTickets = ds.Tables[9].Rows[0]["UnresolvedTickets"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[9].Rows[0]["UnresolvedTickets"]) : 0; TotalResolutionTime = ds.Tables[9].Rows[0]["TotalResolutionTime"] != System.DBNull.Value ? Convert.ToInt32(ds.Tables[9].Rows[0]["TotalResolutionTime"]) : 0; if (totalTickets > 0) { #region response SLA calculation dashBoarddata.isResponseSuccess = respondedTickets > 0; dashBoarddata.isResolutionSuccess = resolvedTickets > 0; dashBoarddata.ResponseRate = ds.Tables[9].Rows[0]["ResponseRate"] != System.DBNull.Value ? Convert.ToString(ds.Tables[9].Rows[0]["ResponseRate"]) : "0%"; dashBoarddata.ResolutionRate = ds.Tables[9].Rows[0]["ResolutionRate"] != System.DBNull.Value ? Convert.ToString(ds.Tables[9].Rows[0]["ResolutionRate"]) : "0%"; if (TotalResponseTime > 0) { ts = date.AddHours(TotalResponseTime / UnrespondedTickets) - date; dashBoarddata.AvgResponseTAT = ts.Days + "d " + ts.Hours + "h"; } else { dashBoarddata.AvgResponseTAT = "0d 0h"; } #endregion #region resolution SLA calculation date = new DateTime(); if (TotalResolutionTime > 0) { ts = date.AddHours(TotalResolutionTime / UnresolvedTickets) - date; dashBoarddata.AvgResolutionTAT = ts.Days + "d " + ts.Hours + "h"; } else { dashBoarddata.AvgResolutionTAT = "0d 0h"; } #endregion } else { dashBoarddata.isResponseSuccess = false; dashBoarddata.ResponseRate = "0 %"; dashBoarddata.isResolutionSuccess = false; dashBoarddata.ResolutionRate = "0 %"; dashBoarddata.AvgResponseTAT = "0d 0h"; dashBoarddata.AvgResolutionTAT = "0d 0h"; } } } #endregion } catch (Exception ex) { throw ex; } return(dashBoarddata); }