/// <summary> /// resets the Receipt Mode /// </summary> private void ResetReceiptModeCampaignIDToZero() { Agent objAgent; AgentStat objAgentStat; Campaign objCampaign; try { objCampaign = (Campaign)Session["Campaign"]; objAgentStat = (AgentStat)Session["AgentStat"]; objAgent = (Agent)Session["LoggedAgent"]; if (objAgentStat != null) { objAgentStat.ReceiptModeID = objAgent.ReceiptModeID = 0; } objAgent.CampaignID = 0; AgentService objAgentService = new AgentService(); CampaignService objCampService = new CampaignService(); XmlDocument xDocAgent = new XmlDocument(); XmlDocument xDocCampaign = new XmlDocument(); XmlDocument xDocAgentStat = new XmlDocument(); if (objAgentStat != null) { xDocAgentStat.LoadXml(Serialize.SerializeObject(objAgentStat, "AgentStat")); } xDocCampaign.LoadXml(Serialize.SerializeObject(objCampaign, "Campaign")); xDocAgent.LoadXml(Serialize.SerializeObject(objAgent, "Agent")); objAgent = (Agent)Serialize.DeserializeObject( objAgentService.AgentActivityInsertUpdate(xDocAgent), "Agent"); try { if (objAgentStat != null) { objAgentStat = (AgentStat)Serialize.DeserializeObject( objCampService.InsertUpdateAgentStat(xDocCampaign, xDocAgentStat), "AgentStat"); if (objAgentStat != null) { Session["AgentStat"] = objAgentStat; } } } catch { } } catch (Exception ex) { PageMessage = ex.Message; } }
/// <summary> /// Saves Agent Stats, Agent Activity, Log Off status /// </summary> /// <returns></returns> private void SaveLoginStatus() { Agent objAgent; AgentStat objAgentStat; Campaign objCampaign; /*if (lbxLoginStatus.SelectedValue == "Manual Dial") * { * return; * }*/ if (Session["Campaign"] != null && Session["AgentStat"] != null && Session["LoggedAgent"] != null) { objCampaign = (Campaign)Session["Campaign"]; objAgentStat = (AgentStat)Session["AgentStat"]; objAgent = (Agent)Session["LoggedAgent"]; if (lbxLoginStatus.SelectedValue == "Receive Outbound Calls Only") { objAgentStat.StatusID = objAgent.AgentStatusID = (long)AgentLoginStatus.Ready; objAgentStat.ReceiptModeID = objAgent.ReceiptModeID = (long)AgentCallReceiptMode.OutboundOnly; } if (lbxLoginStatus.SelectedValue == "Verification Only") { objAgentStat.StatusID = objAgent.AgentStatusID = (long)AgentLoginStatus.Ready; objAgentStat.ReceiptModeID = objAgent.ReceiptModeID = (long)AgentCallReceiptMode.VerifyOnly; } if (lbxLoginStatus.SelectedValue == "Blended: Verification and Outbound Calls") { objAgentStat.StatusID = objAgent.AgentStatusID = (long)AgentLoginStatus.Ready; objAgentStat.ReceiptModeID = objAgent.ReceiptModeID = (long)AgentCallReceiptMode.VerifyBlended; } if (lbxLoginStatus.SelectedValue == "Manual Dial") { objAgentStat.StatusID = objAgent.AgentStatusID = (long)AgentLoginStatus.Pause; objAgentStat.ReceiptModeID = objAgent.ReceiptModeID = (long)AgentCallReceiptMode.ManualDial; } if (lbxLoginStatus.SelectedValue == "Log Off") { objAgentStat.LogOffDate = DateTime.Now; objAgentStat.LogOffTime = DateTime.Now; } AgentService objAgentService = new AgentService(); CampaignService objCampService = new CampaignService(); XmlDocument xDocAgent = new XmlDocument(); XmlDocument xDocCampaign = new XmlDocument(); XmlDocument xDocAgentStat = new XmlDocument(); xDocAgentStat.LoadXml(Serialize.SerializeObject(objAgentStat, "AgentStat")); xDocCampaign.LoadXml(Serialize.SerializeObject(objCampaign, "Campaign")); try { xDocAgent.LoadXml(Serialize.SerializeObject(objAgent, "Agent")); if (lbxLoginStatus.SelectedValue == "Receive Outbound Calls Only" || lbxLoginStatus.SelectedValue == "Manual Dial" || lbxLoginStatus.SelectedValue == "Verification Only" || lbxLoginStatus.SelectedValue == "Blended: Verification and Outbound Calls") { objAgent = (Agent)Serialize.DeserializeObject( objAgentService.AgentActivityInsertUpdate(xDocAgent), "Agent"); try { objAgentStat = (AgentStat)Serialize.DeserializeObject( objCampService.InsertUpdateAgentStat(xDocCampaign, xDocAgentStat), "AgentStat"); if (objAgentStat != null) { Session["AgentStat"] = objAgentStat; } } catch { } } else if (lbxLoginStatus.SelectedValue == "Log Off") { objAgentService.UpdateAgentLogOut(xDocAgent); //Sets LogoutTime to now for specific agent try { objAgentStat = (AgentStat)Serialize.DeserializeObject ( objCampService.InsertUpdateAgentStat(xDocCampaign, xDocAgentStat), "AgentStat" ); } catch { } } string timestamp = "ts=" + DateTime.Now.Ticks.ToString(); if (lbxLoginStatus.SelectedValue == "Receive Outbound Calls Only" || lbxLoginStatus.SelectedValue == "Verification Only" || lbxLoginStatus.SelectedValue == "Blended: Verification and Outbound Calls") { ActivityLogger.WriteAgentEntry(objAgent, "Agent has chosen to recieve outbound calls only."); Response.Redirect("~/agent/waitingforCall.aspx" + "?" + timestamp); } else if (lbxLoginStatus.SelectedValue == "Manual Dial") { ActivityLogger.WriteAgentEntry(objAgent, "Agent has chosen to manual dial."); Response.Redirect("~/agent/ManualDial.aspx" + "?" + timestamp); } else if (lbxLoginStatus.SelectedValue == "Select Another Campaign") { ActivityLogger.WriteAgentEntry(objAgent, "Agent has chosen to select another campaign."); Response.Redirect("~/agent/Campaigns.aspx"); } else { ActivityLogger.WriteAgentEntry(objAgent, "Agent has chosen to log out."); Session.Remove("LoggedAgent"); Response.Redirect("../Logout.aspx" + "?" + timestamp); } } catch (Exception ex) { PageMessage = ex.Message; } } }
/// <summary> /// Saves agent campaignmap details: /// Save Agent Stat and Agent Activity if isLogOff is false, /// else Update Log out status /// </summary> /// <returns></returns> private bool SaveAgentActivity(bool isLogoff) { Agent objAgent; if (Session["LoggedAgent"] != null) { objAgent = (Agent)Session["LoggedAgent"]; if (lbxCampaign.SelectedValue != "") { objAgent.CampaignID = Convert.ToInt64(lbxCampaign.SelectedValue); } AgentService objAgentService = new AgentService(); XmlDocument xDocAgent = new XmlDocument(); try { xDocAgent.LoadXml(Serialize.SerializeObject(objAgent, "Agent")); if (!isLogoff) { string chosenCampaignName = ""; if (objAgent.CampaignID != 0) { /*if (Request.QueryString["CampaignID"] != null && Request.QueryString["CampaignID"].ToString() == lbxCampaign.SelectedValue) * { * if (Session["AgentStat"] != null) * objAgentStat = (AgentStat)Session["AgentStat"]; * }*/ // Get selected campaign details and login in agent stat CampaignService objCampService = new CampaignService(); Campaign objCampaign = (Campaign)Serialize.DeserializeObject(objCampService.GetCampaignByCampaignID(objAgent.CampaignID), "Campaign"); Session["Campaign"] = objCampaign; AgentStat objAgentStat; objAgentStat = new AgentStat(); objAgentStat.AgentID = objAgent.AgentID; objAgentStat.StatusID = objAgent.AgentStatusID; objAgentStat.LoginDate = objAgent.LoginTime; objAgentStat.LoginTime = objAgent.LoginTime; chosenCampaignName = objCampaign.Description; XmlDocument xDocAgentStat = new XmlDocument(); XmlDocument xDocCampaign = new XmlDocument(); xDocAgentStat.LoadXml(Serialize.SerializeObject(objAgentStat, "AgentStat")); xDocCampaign.LoadXml(Serialize.SerializeObject(objCampaign, "Campaign")); objAgentStat = (AgentStat)Serialize.DeserializeObject(objCampService.InsertUpdateAgentStat(xDocCampaign, xDocAgentStat), "AgentStat"); Session["AgentStat"] = objAgentStat; } // change the campaign objAgent = (Agent)Serialize.DeserializeObject( objAgentService.AgentActivityInsertUpdate(xDocAgent), "Agent"); ActivityLogger.WriteAgentEntry(objAgent, "Campaign {0} with ID {1} has been chosen.", chosenCampaignName, objAgent.CampaignID); } else { objAgentService.UpdateAgentLogOut(xDocAgent); //Sets LogoutTime to now for specific agent //LogOffAgentStat(); Session.Remove("LoggedAgent"); } return(true); } catch (Exception ex) { PageMessage = ex.Message; } } return(false); }