예제 #1
0
        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);
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }
예제 #4
0
        /// <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);
        }