public void AddAndUpdateLeadRecycleSample() { MainFacade mf = new MainFacade(ConfigManager.ConnectionStrings.VicidialEntities); //get the campaign instance vicidial_campaigns walmartCampaign = mf.GetCampaign("Wal-Mart"); //ADD LEAD RECYCLE SAMPLE USING SYSTEM STATUS //=========================================== //this is adding a leady recycle rule of 1 day for SYSTEM NO ANSWER status, up to 10 times for no answer mf.AddLeadRecycle(walmartCampaign, vicidial_statuses.NoAnswer, TimeSpan.FromDays(1), 10); //ADD FOR A CUSTOM STATUS mf.AddLeadRecycle(walmartCampaign, "WM_RETURN", TimeSpan.FromHours(1), 5); //UPDATE SAMPLE //============= //there are various overload combinations with instance types and primitive to make it easy to reach, here //we'll use the campaign ID as string and status instance to update a system status recycle rule vicidial_lead_recycle rule = mf.GetLeadRecycle(walmartCampaign.campaign_id, vicidial_statuses.NoAnswer); rule.attempt_maximum = 10; mf.UpdateLeadRecycle(rule); //UPDATE FOR CUSTOM STATUS using the campaign instance and the known status name rule = mf.GetLeadRecycle(walmartCampaign, "WM_RETURN"); rule.attempt_maximum = 10; }
static void Main(string[] args) { MainFacade mf = new MainFacade(ConfigManager.ConnectionStrings.VicidialEntities); //add another user by cloning an existing user with auto generated username & password //==================================================================================== vicidial_users existingUser = mf.GetUsers().First(); mf.AddUserByCloning(existingUser, "John", "Doe"); //add user from scratch //===================== //get a reference to the QA group he will participate in vicidial_user_groups QAGroup = mf.GetUserGroup("QA"); //the user group name //add the user with user level 5 with automatic username and password mf.AddUser("John", "Doe", 5, QAGroup); //add the user with user level 5 with automatic username & explicit password mf.AddUser("password1", "John", "Doe", 5, QAGroup); //add the user with user level 5 with automatic explicit username & password mf.AddUser("usernameA", "passwordB", "John", "Doe", 5, QAGroup); }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// RssFacade オブジェクトを生成します。 /// </summary> /// /* ----------------------------------------------------------------- */ private MainFacade Create([CallerMemberName] string name = null) { Copy(name); var asm = Assembly.GetExecutingAssembly(); var setting = new SettingFolder(asm, RootDirectory(name), IO); var invoker = Invoker.Vanilla; var dest = new MainFacade(setting, invoker); setting.Shared.InitialDelay = TimeSpan.FromMinutes(1); dest.Setup(); return(dest); }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// RssFacade オブジェクトを生成します。 /// </summary> /// /* ----------------------------------------------------------------- */ private MainFacade Create([CallerMemberName] string name = null) { Copy(name); var asm = Assembly.GetExecutingAssembly(); var settings = new SettingsFolder(asm, RootDirectory(name), IO); var context = SynchronizationContext.Current; var dest = new MainFacade(settings, context); settings.Shared.InitialDelay = TimeSpan.FromMinutes(1); dest.Setup(); return(dest); }
public void Setup_Empty() { var ctx = Invoker.Vanilla; var asm = Assembly.GetExecutingAssembly(); using (var m = new MainFacade(new SettingFolder(asm, Results, IO), ctx)) { m.Setup(); m.Stop(); Assert.That(m.Data.Root.Count(), Is.EqualTo(0)); Assert.That(m.Data.Current.Value, Is.Null, nameof(m.Data.Current)); Assert.That(m.Data.LastEntry.Value, Is.Null, nameof(m.Data.LastEntry)); Assert.That(m.Data.Content.Value, Is.Null, nameof(m.Data.Content)); Assert.That(m.Data.Message.Value, Is.Empty, nameof(m.Data.Message)); } }
public void VM_DataDirectory() { var dest = RootDirectory(nameof(ChangeDataFolder)); Execute(vm => { vm.Subscribe <SettingViewModel>(e => ChangeDataFolder(e)); vm.Setting.Execute(null); Assert.That(vm.Data.Local.Value.DataDirectory, Is.EqualTo(dest), nameof(SettingViewModel)); }); Assert.That(IO.Exists(dest), Is.False); var asm = Assembly.GetExecutingAssembly(); var setting = new SettingFolder(asm, RootDirectory(), IO); setting.Load(); Assert.That(setting.DataDirectory, Is.EqualTo(dest), nameof(SettingFolder)); var facade = new MainFacade(setting, Invoker.Vanilla); Assert.That(facade.Data.Root.Flatten().Count(), Is.EqualTo(0)); }
public void VM_DataDirectory() { var dest = RootDirectory(nameof(ChangeDataFolder)); Execute(vm => { vm.Register <SettingsViewModel>(this, e => ChangeDataFolder(e)); vm.Settings.Execute(null); Assert.That(vm.Data.Local.Value.DataDirectory, Is.EqualTo(dest), nameof(SettingsViewModel)); }); Assert.That(IO.Exists(dest), Is.False); var asm = Assembly.GetExecutingAssembly(); var settings = new SettingsFolder(asm, RootDirectory(), IO); settings.Load(); Assert.That(settings.DataDirectory, Is.EqualTo(dest), nameof(SettingsFolder)); var facade = new MainFacade(settings, SynchronizationContext.Current); Assert.That(facade.Data.Root.Flatten().Count(), Is.EqualTo(0)); }
static vicidial_statuses() { MainFacade mf = new MainFacade(ConfigManager.ConnectionStrings.VicidialEntities); foreach (vicidial_statuses status in mf.GetStatuses()) { switch (status.status) { case "NEW": NewLead = status; break; case "QUEUE": LeadToBeCalled = status; break; case "INCALL": LeadBeingCalled = status; break; case "DROP": AgentNotAvailable = status; break; case "XDROP": AgentNotAvailableIn = status; break; case "NA": NoAnswerAutoDial = status; break; case "CALLBK": CallBack = status; break; case "CBHOLD": CallBackHold = status; break; case "A": AnswerMachine = status; break; case "AA": AnswerMachineAuto = status; break; case "AM": AnswerMachineSentToMesg = status; break; case "AL": AnswerMachineMsgPlayed = status; break; case "AFAX": FaxMachineAuto = status; break; case "B": Busy = status; break; case "DC": DisconnectedNumber = status; break; case "DNC": DoNotCall = status; break; case "DNCL": DoNotCallHopperMatch = status; break; case "SALE": SaleMade = status; break; case "N": NoAnswer = status; break; case "NI": NotInterested = status; break; case "PU": CallPickedUp = status; break; case "PM": PlayedMessage = status; break; case "XFER": CallTransferred = status; break; case "ERI": AgentError = status; break; case "SVYEXT": SurveySentToExtension = status; break; case "SVYVM": SurveySentToVoiceMail = status; break; case "SVYHU": SurveyHangUp = status; break; case "SVYREC": SurveySentToRecord = status; break; case "QVMAIL": QueueAbandonVoicemailLeft = status; break; case "AB": BusyAuto = status; break; case "ADC": DisconnectedNumberAuto = status; break; case "TIMEOT": InboundQueueTimeoutDrop = status; break; case "AFTHRS": InboundAfterHoursDrop = status; break; case "NANQUE": InboundNoAgentNoQueueDrop = status; break; } } }