Exemplo n.º 1
0
		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;


		}
Exemplo n.º 2
0
		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);

		}
Exemplo n.º 3
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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);
        }
Exemplo n.º 4
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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);
        }
Exemplo n.º 5
0
        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));
            }
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
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));
        }
Exemplo n.º 8
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;



				}
			}
		}