/// <summary> /// Get Recording parameters /// </summary> /// <param name="camp"></param> /// <returns></returns> public static DigitalizedRecording GetDigitizedRecordings(Campaign camp) { //DialerEngine.Log.Write("|CA|GetDigitizedRecordings Invoked for Campaign - {0}", // camp.CampaignID.ToString()); CampaignService objCampaignService = null; DigitalizedRecording objDigitalizedRecording = null; XmlDocument xDocCampaign = null; try { objCampaignService = new CampaignService(); xDocCampaign = new XmlDocument(); xDocCampaign.LoadXml(Serialize.SerializeObject(camp, "Campaign")); objDigitalizedRecording = (DigitalizedRecording)Serialize.DeserializeObject( objCampaignService.GetDigitalizedRecording(xDocCampaign), "DigitalizedRecording"); if (objDigitalizedRecording.DigitalizedRecordingID == 0) { return(null); } } catch (Exception ex) { DialerEngine.Log.WriteException(ex, "Error in GetDigitizedRecordings"); return(null); } finally { objCampaignService = null; //objDialingParameter = null; xDocCampaign = null; } return(objDigitalizedRecording); }
/// <summary> /// Cancel the changes made /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /*protected void lbtnCancel_Click(object sender, EventArgs e) * { * if (Session["Campaign"] != null) * { * Campaign objCampaign = (Campaign)Session["Campaign"]; * GetRecordings(objCampaign); * } * else * { * SetDefaultData(); * } * }*/ #endregion #region Private Methods /// <summary> /// /// </summary> /// <param name="objCampaign"></param> private void GetRecordings(Campaign objCampaign) { if (objCampaign != null) { CampaignService objCampaignService = new CampaignService(); DigitalizedRecording objDigitalizedRecording = new DigitalizedRecording(); XmlDocument xDocCampaign = new XmlDocument(); xDocCampaign.LoadXml(Serialize.SerializeObject(objCampaign, "Campaign")); objDigitalizedRecording = (DigitalizedRecording)Serialize.DeserializeObject(objCampaignService.GetDigitalizedRecording(xDocCampaign), "DigitalizedRecording"); if (objDigitalizedRecording.DigitalizedRecordingID != 0) { ViewState["DigitalizedRecordingID"] = objDigitalizedRecording.DigitalizedRecordingID; chkEnableDigitizedRecording.Checked = objDigitalizedRecording.EnableRecording; //chkStartRecordingWithBeep.Checked = objDigitalizedRecording.StartWithABeep; //chkWaveFormat.Checked = objDigitalizedRecording.RecordToWave; //chkHigherQuality.Checked = objDigitalizedRecording.HighQualityRecording; txtFileStoragePath.Text = objDigitalizedRecording.RecordingFilePath; } } }
/// <summary> /// Saves recording Data /// </summary> private void SaveData() { if (chkEnableDigitizedRecording.Checked && !IsPathValid()) { PageMessage = "Please provide valid Recording File's Storage Path"; txtFileStoragePath.Focus(); } else { DigitalizedRecording objDigitalizedRecording = new DigitalizedRecording(); Campaign objCampaign = new Campaign(); if (Session["Campaign"] != null) { objCampaign = (Campaign)Session["Campaign"]; } if (ViewState["DigitalizedRecordingID"].ToString() != "0") { objDigitalizedRecording.DigitalizedRecordingID = (long)ViewState["DigitalizedRecordingID"]; } objDigitalizedRecording.EnableRecording = chkEnableDigitizedRecording.Checked; objDigitalizedRecording.EnableWithABeep = false; //objDigitalizedRecording.StartWithABeep = chkStartRecordingWithBeep.Checked; //objDigitalizedRecording.RecordToWave = chkWaveFormat.Checked; //objDigitalizedRecording.HighQualityRecording = chkHigherQuality.Checked; objDigitalizedRecording.RecordingFilePath = txtFileStoragePath.Text.EndsWith(@"\") == true? txtFileStoragePath.Text.Trim() : txtFileStoragePath.Text.Trim() + @"\"; /*string RecordingsPath; * string ismultiboxconfig = ConfigurationManager.AppSettings["IsMultiBoxConfig"]; * if (ismultiboxconfig == "yes" || ismultiboxconfig == "Yes" || ismultiboxconfig == "YES") * { * RecordingsPath = ConfigurationManager.AppSettings["RecordingsPathMulti"]; * * } * else * { * RecordingsPath = ConfigurationManager.AppSettings["RecordingsPath"]; * * } * * objDigitalizedRecording.RecordingFilePath = RecordingsPath; */ objDigitalizedRecording.FileNaming = string.Empty; CampaignService objCampaignService = new CampaignService(); XmlDocument xDocDigitalizedRecording = new XmlDocument(); XmlDocument xDocCampaign = new XmlDocument(); try { xDocDigitalizedRecording.LoadXml(Serialize.SerializeObject( objDigitalizedRecording, "DigitalizedRecording")); xDocCampaign.LoadXml(Serialize.SerializeObject(objCampaign, "Campaign")); objDigitalizedRecording = (DigitalizedRecording)Serialize.DeserializeObject( objCampaignService.DigitalizedRecordingInsertUpdate(xDocCampaign, xDocDigitalizedRecording), "DigitalizedRecording"); Response.Redirect("Home.aspx"); } catch (Exception ex) { PageMessage = ex.Message; } } }
/// <summary> /// Start campaigns for dialing /// </summary> /// <param name="campaign"></param> /// <returns></returns> private void StartCampaignProcess() { Log.Write("|DE|Checking for start times for {0} new campaigns.", qCampaignQueue.Count); if (qCampaignQueue.Count == 0) { // no campaigns DialerEngine.Log.Write("No active campaigns found"); return; } // clear GC.Collect(); try { ThreadStart ts = null; while (qCampaignQueue.Count != 0) { Campaign objCampaign = null; lock (qCampaignQueue) { objCampaign = qCampaignQueue.Dequeue(); } // add to running list // m_RunningCampaignIdList.Add(campaign.CampaignID.ToString()); DialingParameter objDialParam = CampaignAPI.GetDialParam(objCampaign); OtherParameter objOtherParam = null; bool bStartCampaign = false; CallType callType = CallType.AMCall; DateTime dtStartTime; if (DateTime.Now.Hour >= 12) { callType = CallType.PMCall; dtStartTime = objDialParam.PMDialingStart; } else { dtStartTime = objDialParam.AMDialingStart; } int iCurrHour = DateTime.Now.Hour; int iCurrMinutes = DateTime.Now.Minute; int iDPhour = dtStartTime.Hour; int iDPMinutes = dtStartTime.Minute; //------------------------------------------------- // We ignore time issue for anything // other than unmanned campaigns. //------------------------------------------------- Log.Write("|DE|Campaign - Dialing Mode: {0})", objDialParam.DialingMode.ToString()); if (objDialParam.DialingMode != 6) { bStartCampaign = true; } else if (iCurrHour > iDPhour || ((iCurrHour == iDPhour) && (iCurrMinutes >= iDPMinutes))) { bStartCampaign = true; } try { if (bStartCampaign) { DigitalizedRecording digRecording = CampaignAPI.GetDigitizedRecordings(objCampaign); objOtherParam = CampaignAPI.GetOtherParam(objCampaign); CampaignProcess campProcess = new CampaignProcess(objCampaign, objDialParam, objOtherParam); if (digRecording != null) { campProcess.RecordingsPath = digRecording.RecordingFilePath; campProcess.RecordCalls = digRecording.EnableRecording; campProcess.RecordBeep = digRecording.StartWithABeep; } // weekend call checking if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday || DateTime.Now.DayOfWeek == DayOfWeek.Sunday) { callType = CallType.WkendCall; } campProcess.CallType = callType; Log.Write("|DE|Starting campaign '{0}'.", objCampaign.ShortDescription); // Start campaignprocess thread. Different startup method for normal / unmanned mode if (objDialParam.DialingMode == Convert.ToInt32(DialingMode.Unmanned)) { ts = new ThreadStart(campProcess.RunCampaignUnmannedMode); } else { ts = new ThreadStart(campProcess.RunCampaign); } Thread t = new Thread(ts); t.Priority = ThreadPriority.Normal; t.IsBackground = true; t.Name = objCampaign.ShortDescription.ToString(); lock (lstCampaignThreads) { lstCampaignThreads.Add(t); } if (objDialParam.DialingMode != Convert.ToInt32(DialingMode.ManualDial)) { t.Start(); } } else { Log.Write("|DE|Campaign '{0}' not started, outside of schedule range. (Start time = {1}:{2})", objCampaign.ShortDescription, iDPhour.ToString(), iDPMinutes.ToString()); } } catch (Exception ex) { Log.WriteException(ex, "Error in Starting Campaign " + objCampaign.ShortDescription); } } } catch (Exception ex) { Log.WriteException(ex, "Error in StartCampaignProcess"); } finally { // } }