private void RecordVCCTime() { try { label1.Text = "Process started Please wait...."; label2.Text = "Start Time - " + DateTime.Now; label3.Text = ""; com.incontact.login.inSideWS objRep = new com.incontact.login.inSideWS(); DateTime start = Convert.ToDateTime(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek - 7)).ToUniversalTime(); DateTime end = Convert.ToDateTime(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek - 1)).ToUniversalTime(); var dates = Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray(); com.incontact.login.inCredentials objinCred = new com.incontact.login.inCredentials(); objinCred.busNo = 4593343; objinCred.password = "******"; objinCred.partnerPassword = ""; objinCred.timeZoneName = ""; objinCred.DialerDSNName = ""; objinCred.DialerDSNUserID = ""; objinCred.DialerDSNPassword = ""; objRep.inCredentialsValue = objinCred; //var myXML = objRep.DataDownloadReport_Run(16, start, end); var myXML = objRep.DataDownloadReport_Run(16, start, end); DataTable dt = new DataTable(); dt = myXML.Tables[0]; var agentStateXML = objRep.DataDownloadReport_Run(350083, start, end); dtAgentState = agentStateXML.Tables[0]; dtUsers = GetUsers(); dtRTMClients = GetClients(); DataTable dtResult = new DataTable(); if (dt.Rows.Count > 0) { if (dtUsers.Rows.Count > 0) { string date = DateTime.Now.AddDays(-1).ToShortDateString(); foreach (DataRow drUser in dtUsers.Rows) { string empId = drUser["UL_Employee_Id"].ToString().Trim(); string user = drUser["UL_User_Name"].ToString().Trim(); string userName = drUser["UL_System_User_Name"].ToString(); userName = userName.Substring(5, userName.Length - 5); userName = userName.Replace('.', ' '); string expression = "agent_name Like '%" + userName.Trim() + "%' and start_date ='" + date + "'"; var rows = dt.Select(expression); if (rows.Any()) { dtResult = new DataTable(); dtResult = rows.CopyToDataTable(); Double defaultTime = dtResult .AsEnumerable() .Where(r => (String)r["campaign_name"] == "Default" && r["agent_name"].ToString().Contains(userName.Trim())) .Sum(r => (Int32)r["Total_Time"]); if (defaultTime > 0) { expression = "campaign_name <> 'Default'"; DataTable dtClients = new DataTable(); var clientRows = dtResult.Select(expression); if (clientRows.Any()) { dtClients = clientRows.CopyToDataTable(); } //dtClients = dtResult.Select(expression).CopyToDataTable(); //dtResult.AsEnumerable().Where(r => (String)r["campaign_name"] != "Default"); if (dtClients.Rows.Count > 0) { double splitTime = (defaultTime / dtClients.Rows.Count); dtClients.Rows.Cast <DataRow>().ToList().ForEach(r => r.SetField("Total_Time", UpdateTime(r["Total_Time"].ToString(), splitTime))); foreach (DataRow finalRow in dtClients.Rows) { double RTMDuration = Convert.ToDouble(finalRow["Total_Time"].ToString()) / 60; TimeSpan span = TimeSpan.FromMinutes(RTMDuration); string totalDuration = span.ToString(@"hh\:mm\:ss"); string startDateTime = finalRow["start_date"].ToString() + " " + finalRow["start_time"].ToString(); int clientId = 0; var query = dtRTMClients.AsEnumerable().Where(x => x.Field <string>("CL_ClientName") == finalRow["campaign_name"].ToString()); foreach (var st in query) { clientId = st.Field <int>("CL_ID"); } if (clientId != 0) { InsertData(12, empId, user, clientId, 1591, 10239, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); } //Task=1591 //SubTask=10239 } } else { foreach (DataRow finalRow in dtResult.Rows) { double RTMDuration = Convert.ToDouble(finalRow["Total_Time"].ToString()) / 60; TimeSpan span = TimeSpan.FromMinutes(RTMDuration); string totalDuration = span.ToString(@"hh\:mm\:ss"); string startDateTime = finalRow["start_date"].ToString() + " " + finalRow["start_time"].ToString(); InsertData(12, empId, user, 18439, 1591, 10239, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); } } } else { foreach (DataRow finalRow in dtResult.Rows) { double RTMDuration = Convert.ToDouble(finalRow["Total_Time"].ToString()) / 60; TimeSpan span = TimeSpan.FromMinutes(RTMDuration); string totalDuration = span.ToString(@"hh\:mm\:ss"); string startDateTime = finalRow["start_date"].ToString() + " " + finalRow["start_time"].ToString(); int clientId = 0; //var client = dtRTMClients // .AsEnumerable() // .Where(r => (String)r["CL_ClientName"] == finalRow["campaign_name"].ToString()).ToArray(); var query = dtRTMClients.AsEnumerable().Where(x => x.Field <string>("CL_ClientName") == finalRow["campaign_name"].ToString()); foreach (var st in query) { clientId = st.Field <int>("CL_ID"); } if (clientId != 0) { InsertData(12, empId, user, clientId, 1591, 10239, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); } //Task=1591 //SubTask=10239 } } // } } } } if (dtAgentState.Rows.Count > 0) { string date = DateTime.Now.AddDays(-1).ToShortDateString(); string startDateTime = date; foreach (DataRow drUser in dtUsers.Rows) { string empId = drUser["UL_Employee_Id"].ToString().Trim(); string user = drUser["UL_User_Name"].ToString().Trim(); string userName = drUser["UL_System_User_Name"].ToString(); userName = userName.Substring(5, userName.Length - 5); userName = userName.Replace('.', ' '); string expression = "Agent_Name Like '%" + userName.Trim() + "%' and start_date >= '" + Convert.ToDateTime(date) + "' and start_date < '" + Convert.ToDateTime(date).AddDays(1) + "'"; var rows = dtAgentState.Select(expression); if (rows.Any()) { dtResult = new DataTable(); dtResult = rows.CopyToDataTable(); double RTMDuration; string totalDuration; double SupportTime = dtResult .AsEnumerable() .Where(r => ((r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Unavailable" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Outbound Dialing" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Technical Issue" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Floor Walking" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "HeldPartyAbandoned" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Refused" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Disposition" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Offline") && r["Agent_Name"].ToString().Contains(userName.Trim())) .Sum(r => (Int32)r["Duration"]); if (SupportTime > 0) { RTMDuration = SupportTime / 60000; TimeSpan span1 = TimeSpan.FromMinutes(RTMDuration); totalDuration = span1.ToString(@"hh\:mm\:ss"); InsertData(12, empId, user, 13550, 1326, 10240, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); //Client = 13550 //Task =1326 //Subtask =10240 } double TrainingTime = dtResult .AsEnumerable() .Where(r => ((r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "New Hire Training" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Meeting" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Up-Training") && r["Agent_Name"].ToString().Contains(userName.Trim())) .Sum(r => (Int32)r["Duration"]); if (TrainingTime > 0) { RTMDuration = TrainingTime / 60000; TimeSpan span2 = TimeSpan.FromMinutes(RTMDuration); totalDuration = span2.ToString(@"hh\:mm\:ss"); InsertData(12, empId, user, 13550, 1326, 10241, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); //Client = 13550 //Task =1326 //Subtask =10241 } double AvailableTime = dtResult .AsEnumerable() .Where(r => (r["Skill_Name"] == DBNull.Value ? "" : (String)r["Skill_Name"]) == "" && (Int32)r["Outstate_Code"] == 0 && r["Agent_Name"].ToString().Contains(userName.Trim())) .Sum(r => (Int32)r["Duration"]); if (AvailableTime > 0) { RTMDuration = AvailableTime / 60000; TimeSpan span3 = TimeSpan.FromMinutes(RTMDuration); totalDuration = span3.ToString(@"hh\:mm\:ss"); InsertData(12, empId, user, 13550, 1326, 10242, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); //Client = 13550 //Task =1326 //Subtask =10242 } } } } label1.Text = "Process Completed Successfully"; label3.Text = "End time - " + DateTime.Now; } catch (Exception ex) { MessageBox.Show(ex.Message); label1.Text = "Error occured please try again"; } finally { } }
private void GetVCCAPI_Data() { try { DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE); label1.Text = "Process started Please wait...."; label2.Text = "Start Time - " + DateTime.Now; label3.Text = ""; com.incontact.login.inSideWS objRep = new com.incontact.login.inSideWS(); DateTime start = Convert.ToDateTime(indianTime.AddDays(-(int)DateTime.Now.DayOfWeek - 7).ToShortDateString() + " 0:00:00 AM"); // Convert.ToDateTime(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek - 7)).ToUniversalTime(); DateTime end = Convert.ToDateTime(indianTime.AddDays(-(int)DateTime.Now.DayOfWeek - 1).ToShortDateString() + " 11:59:59 PM"); // Convert.ToDateTime(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek - 1)).ToUniversalTime(); //DateTime start = Convert.ToDateTime(DateTime.Now.AddDays(-1)).ToUniversalTime(); //DateTime end = Convert.ToDateTime(DateTime.Now).ToUniversalTime(); //start = Convert.ToDateTime("07/28/2017"); //end = Convert.ToDateTime("07/29/2017"); var dates = Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray(); com.incontact.login.inCredentials objinCred = new com.incontact.login.inCredentials(); objinCred.busNo = 4593343; objinCred.password = "******"; objinCred.partnerPassword = ""; objinCred.timeZoneName = ""; objinCred.DialerDSNName = ""; objinCred.DialerDSNUserID = ""; objinCred.DialerDSNPassword = ""; objRep.inCredentialsValue = objinCred; //var myXML = objRep.DataDownloadReport_Run(16, start, end); //Expanded Call details var myXML = objRep.DataDownloadReport_Run(16, start, end); DataTable dt = new DataTable(); dt = myXML.Tables[0]; //Agent State log var agentStateXML = objRep.DataDownloadReport_Run(350083, start, end); dtAgentState = agentStateXML.Tables[0]; dtUsers = GetUsers(); dtRTMClients = GetClients(); if (dtUsers.Rows.Count > 0) { DataTable dtResult = new DataTable(); if (dt.Rows.Count > 0) { foreach (var selDate in dates) { string date = selDate.ToString("MM/dd/yyyy"); foreach (DataRow drUser in dtUsers.Rows) { string empId = drUser["UL_Employee_Id"].ToString().Trim(); string user = drUser["UL_User_Name"].ToString().Trim(); string userName = drUser["UL_System_User_Name"].ToString(); userName = userName.Substring(5, userName.Length - 5); userName = userName.Replace('.', ' '); if (userName == "ashwini1") { userName = "******"; } else if (userName == "c nikitha") { userName = "******"; } else if (userName == "Dinesh S") { userName = "******"; } else if (userName == "Edward A") { userName = "******"; } else if (userName == "faizal a") // { userName = "******"; } else if (userName == "fantin j") // { userName = "******"; } else if (userName == "sandeep v") // { userName = "******"; } else if (userName == "sandhesh r") // { userName = "******"; } else if (userName == "S Nandini1") { userName = "******"; } //else if (userName == "Sangeetha A") //{ // userName = "******"; //} else if (userName == "Sulaiman S") { userName = "******"; } else if (userName == "Suprith T") { userName = "******"; } else if (userName == "zeeshan1") { userName = "******"; } if (userName == "Arvindh G") { userName = "******"; } else if (userName == "Sangeetha A") { userName = "******"; } else if (userName == "Maria S") { userName = "******"; } //else //{ // continue; //} string expression = "agent_name Like '%" + userName.Trim() + "%' and start_date ='" + date + "'"; var rows = dt.Select(expression); if (rows.Any()) { dtResult = new DataTable(); dtResult = rows.CopyToDataTable(); Double defaultTime = dtResult .AsEnumerable() .Where(r => (String)r["campaign_name"] == "Default") .Sum(r => (Int32)r["Total_Time"]); if (defaultTime > 0) { expression = "campaign_name <> 'Default'"; DataTable dtClients = new DataTable(); var clientRows = dtResult.Select(expression); if (clientRows.Any()) { dtClients = clientRows.CopyToDataTable(); } //dtClients = dtResult.Select(expression).CopyToDataTable(); //dtResult.AsEnumerable().Where(r => (String)r["campaign_name"] != "Default"); if (dtClients.Rows.Count > 0) { double splitTime = (defaultTime / dtClients.Rows.Count); dtClients.Rows.Cast <DataRow>().ToList().ForEach(r => r.SetField("Total_Time", UpdateTime(r["Total_Time"].ToString(), splitTime))); foreach (DataRow finalRow in dtClients.Rows) { double RTMDuration = Convert.ToDouble(finalRow["Total_Time"].ToString()) / 60; TimeSpan span = TimeSpan.FromMinutes(RTMDuration); string totalDuration = span.ToString(@"hh\:mm\:ss"); string startDateTime = finalRow["start_date"].ToString() + " " + finalRow["start_time"].ToString(); int clientId = 0; var query = dtRTMClients.AsEnumerable().Where(x => x.Field <string>("CL_ClientName") == finalRow["campaign_name"].ToString()); foreach (var st in query) { clientId = st.Field <int>("CL_ID"); } if (clientId != 0) { InsertData(12, empId, user, clientId, 1591, 10239, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); } //Task=1591 //SubTask=10239 } } else { foreach (DataRow finalRow in dtResult.Rows) { double RTMDuration = Convert.ToDouble(finalRow["Total_Time"].ToString()) / 60; TimeSpan span = TimeSpan.FromMinutes(RTMDuration); string totalDuration = span.ToString(@"hh\:mm\:ss"); string startDateTime = finalRow["start_date"].ToString() + " " + finalRow["start_time"].ToString(); InsertData(12, empId, user, 18439, 1591, 10239, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); } } } else { foreach (DataRow finalRow in dtResult.Rows) { double RTMDuration = Convert.ToDouble(finalRow["Total_Time"].ToString()) / 60; TimeSpan span = TimeSpan.FromMinutes(RTMDuration); string totalDuration = span.ToString(@"hh\:mm\:ss"); string startDateTime = finalRow["start_date"].ToString() + " " + finalRow["start_time"].ToString(); int clientId = 0; //var client = dtRTMClients // .AsEnumerable() // .Where(r => (String)r["CL_ClientName"] == finalRow["campaign_name"].ToString()).ToArray(); var query = dtRTMClients.AsEnumerable().Where(x => x.Field <string>("CL_ClientName") == finalRow["campaign_name"].ToString()); foreach (var st in query) { clientId = st.Field <int>("CL_ID"); } if (clientId != 0) { InsertData(12, empId, user, clientId, 1591, 10239, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); } //Task=1591 //SubTask=10239 } } // } } } } if (dtAgentState.Rows.Count > 0) { foreach (var selDate in dates) { string date = selDate.ToShortDateString(); string startDateTime = date; foreach (DataRow drUser in dtUsers.Rows) { string empId = drUser["UL_Employee_Id"].ToString().Trim(); string user = drUser["UL_User_Name"].ToString().Trim(); string userName = drUser["UL_System_User_Name"].ToString(); userName = userName.Substring(5, userName.Length - 5); userName = userName.Replace('.', ' '); if (userName == "ashwini1") { userName = "******"; } else if (userName == "c nikitha") { userName = "******"; } else if (userName == "Dinesh S") { userName = "******"; } else if (userName == "Edward A") { userName = "******"; } else if (userName == "faizal a") // { userName = "******"; } else if (userName == "fantin j") // { userName = "******"; } else if (userName == "sandeep v") // { userName = "******"; } else if (userName == "sandhesh r") // { userName = "******"; } else if (userName == "S Nandini1") { userName = "******"; } //else if (userName == "Sangeetha A") //{ // userName = "******"; //} else if (userName == "Sulaiman S") { userName = "******"; } else if (userName == "Suprith T") { userName = "******"; } else if (userName == "zeeshan1") { userName = "******"; } if (userName == "Arvindh G") { userName = "******"; } else if (userName == "Sangeetha A") { userName = "******"; } else if (userName == "Maria S") { userName = "******"; } //else //{ // continue; //} string expression = "Agent_Name Like '%" + userName.Trim() + "%' and start_date >= '" + Convert.ToDateTime(date) + "' and start_date < '" + Convert.ToDateTime(date).AddDays(1) + "'"; var rows = dtAgentState.Select(expression); if (rows.Any()) { dtResult = new DataTable(); dtResult = rows.CopyToDataTable(); double RTMDuration; string totalDuration; double SupportTime = dtResult .AsEnumerable() .Where(r => ((r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Unavailable" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Special Project" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Outbound Dialing" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Technical Issue" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Floor Walking" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "HeldPartyAbandoned" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Refused" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Support" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Task" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Disposition" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Offline")) .Sum(r => (Int32)r["Duration"]); if (SupportTime > 0) { RTMDuration = SupportTime / 60000; TimeSpan span1 = TimeSpan.FromMinutes(RTMDuration); totalDuration = span1.ToString(@"hh\:mm\:ss"); InsertData(12, empId, user, 13550, 1326, 10240, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); //Client = 13550 //Task =1326 //Subtask =10240 } double TrainingTime = dtResult .AsEnumerable() .Where(r => ((r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "New Hire Training" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Meeting" || (r["Outstate"] == DBNull.Value ? "" : (String)r["Outstate"]) == "Up-Training")) .Sum(r => (Int32)r["Duration"]); if (TrainingTime > 0) { RTMDuration = TrainingTime / 60000; TimeSpan span2 = TimeSpan.FromMinutes(RTMDuration); totalDuration = span2.ToString(@"hh\:mm\:ss"); InsertData(12, empId, user, 13550, 1326, 10241, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); //Client = 13550 //Task =1326 //Subtask =10241 } double AvailableTime = dtResult .AsEnumerable() .Where(r => (r["Skill_Name"] == DBNull.Value ? "" : (String)r["Skill_Name"]) == "" && (Int32)r["Outstate_Code"] == 0) .Sum(r => (Int32)r["Duration"]); if (AvailableTime > 0) { RTMDuration = AvailableTime / 60000; TimeSpan span3 = TimeSpan.FromMinutes(RTMDuration); totalDuration = span3.ToString(@"hh\:mm\:ss"); InsertData(12, empId, user, 13550, 1326, 10242, totalDuration, startDateTime, "Completed", "VCCU", startDateTime); //Client = 13550 //Task =1326 //Subtask =10242 } } } } } } label1.Text = "Process Completed Successfully"; label3.Text = "End time - " + DateTime.Now; return; } catch (Exception ex) { MessageBox.Show(ex.Message); label1.Text = "Error occured please try again"; } finally { } }