public ActionResult Settings()
        {
            SettingsVm sc   = SettingsManager.Instance.LoadSettings(Db);
            string     view = IsNxs ? "SettingsNXS" : "Settings";

            return(View(view, sc));
        }
示例#2
0
        public void LoggedInEvent(bool?_)
        {
            updateTimer.Elapsed -= UpdateConnectText;

            automation.ResetStatusTimers();
            OnPropertyChanged("RecentChannels");
            OnPropertyChanged("RecentCharacters");
            SettingsVm.OnSettingsLoaded();
        }
示例#3
0
 /// <summary>
 /// Navigates to the settings page, and performs an intra-navigation
 /// to the specified settings page.
 /// </summary>
 /// <param name="page">Page to navigate to.</param>
 public void NavigateToSettings(SettingsCategoryEnum page)
 {
     lock (_mainWindowLock)
     {
         RequireMainWindow();
         CurrentPage = NavigationPageEnum.Settings;
         SettingsVm.Navigate(page);
     }
 }
示例#4
0
        // GET: Settings
        public async Task <IActionResult> Index()
        {
            var vm = new SettingsVm
            {
                Profile = await _userAccountManager.GetUserProfile(),
                NotificationSettings = await _userAccountManager.GetNotificationSettings(),
                IssueSettings        = await _userAccountManager.GetIssueSettingsForUser()
            };

            return(View(vm));
        }
示例#5
0
        public void TestSettingsVm()
        {
            var settingsVm = new SettingsVm(new DatabaseServiceMock(), _resource);

            Assert.AreEqual(1, settingsVm.MenuItems.Count());
            var firstGroup = settingsVm.MenuItems.FirstOrDefault();

            // All groups have an empty title, so all settings are put inside the empty group
            Assert.AreEqual(4, firstGroup?.Count());
            Assert.IsNotNull(settingsVm.SelectedItem);
            var selectedItem = (ListMenuItemVm)settingsVm.SelectedItem;

            Assert.AreEqual(typeof(SettingsNewDatabasePage), selectedItem.PageType);
        }
 public SettingsWindow(SettingsVm settingsVm)
 {
     InitializeComponent();
     DataContext = settingsVm;
 }
        private static void SaveNotification(WfpictContext db, SettingsVm settings, Guid?campaignId, string orderNumber, string segmentNumber, DateTime?deployDate, string responseStatus, CampaignTracking campaignTracking)
        {
            if (!deployDate.HasValue)
            {
                return;
            }

            string message;

            int hoursPassed = DateTime.Now.Subtract(deployDate.Value).Hours;

            // QC Rule 1
            if (responseStatus == ProDataResponseStatus.NotFound.ToString() &&
                hoursPassed >= settings.NotStartedInXHoursValue)
            {
                //message = $"{hoursPassed}Hrs passed and not yet started. Max allowed time {settings.NotStartedInXHoursValue}Hrs";
                message = $"Campaign started {deployDate.Value} as of {DateTime.Now}, Campaign has no traffic.";
                SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotStartedInFirstXHours,
                                       message);
            }
            else // If Started
            {
                // QC Rule 10
                if (campaignTracking.OpenedPercentage < 0.01 && hoursPassed > 0) // less than 1% and deploy date time passed
                {
                    message = $"Number of Opens in last 24hrs, No Open Traffic in 24hrs.";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.OpenTrafficInLast1Day, message);
                }

                // QC Rule 10
                if (campaignTracking.ClickedPercentage < 0.01 && hoursPassed > 0) // less than 1% and deploy date time passed
                {
                    message = $"Number of Clicks in last 24hrs, No Click Traffic in 24hrs.";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.ClickTrafficInLast1Day, message);
                }
            }

            if (hoursPassed >= 24)
            {
                // QC Rule 2
                if (campaignTracking.OpenedPercentage < (settings.NotHitOpenRateIn24HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Opened} / {campaignTracking.Quantity} is Less than required value {settings.NotHitOpenRateIn24HoursValue}% in first 24hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitOpenRateIn1Day, message);
                }

                // QC Rule 4
                if (campaignTracking.ClickedPercentage < (settings.NotHitClickRateIn24HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Clicked} / {campaignTracking.Quantity} is Less than required value {settings.NotHitClickRateIn24HoursValue}% in first 24hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitClickRateIn1Day, message);
                }

                // QC Rule 6
                if (campaignTracking.OpenedPercentage > (settings.ExceededOpenRateIn24HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Opened} / {campaignTracking.Quantity} is Greater than required value {settings.ExceededOpenRateIn24HoursValue}% in first 24hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.ExceededOpenRateIn24Hours, message);
                }

                // QC Rule 8
                if (campaignTracking.ClickedPercentage > (settings.ExceededClickRateIn24HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Clicked} / {campaignTracking.Quantity} is Greater than required value {settings.ExceededClickRateIn24HoursValue}% in first 24hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.ExceededClickRateIn24Hours, message);
                }
            }
            else if (hoursPassed >= 72)
            {
                // QC Rule 3
                if (campaignTracking.OpenedPercentage < (settings.NotHitOpenRateIn72HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Opened} / {campaignTracking.Quantity} is Less than required value {settings.NotHitOpenRateIn72HoursValue}% in first 72hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitOpenRateIn3Days, message);
                }

                // QC Rule 5
                if (campaignTracking.ClickedPercentage < (settings.NotHitClickRateIn72HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Clicked} / {campaignTracking.Quantity} is Less than required value {settings.NotHitClickRateIn72HoursValue}% in first 72hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitClickRateIn3Days, message);
                }

                // QC Rule 7
                if (campaignTracking.OpenedPercentage > (settings.ExceededOpenRateIn72HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Opened} / {campaignTracking.Quantity} is Greater than required value {settings.ExceededOpenRateIn72HoursValue}% in first 72hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.ExceededOpenRateIn72Hours, message);
                }

                // QC Rule 9
                if (campaignTracking.ClickedPercentage > (settings.ExceededClickRateIn72HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Clicked} / {campaignTracking.Quantity} is Greater than required value {settings.ExceededClickRateIn72HoursValue}% in first 72hrs";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.ExceededClickRateIn72Hours, message);
                }
            }
        }
        private static void SaveNotificationNXS(WfpictContext db, SettingsVm settings, Guid?campaignId, string orderNumber, string segmentNumber, DateTime?deployDate, string responseStatus, CampaignTracking campaignTracking)
        {
            if (!deployDate.HasValue)
            {
                return;
            }

            string message;

            int hoursPassed = (int)DateTime.Now.Subtract(deployDate.Value).TotalHours;

            // If Started
            if (hoursPassed < 96 && hoursPassed >= 72) // < 4 days
            {
                // QC Rule 3
                if (campaignTracking.OpenedPercentage < (settings.NotHitOpenRateIn72HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Opened} / {campaignTracking.Quantity} is Less than required value {settings.NotHitOpenRateIn72HoursValue}% in 3 days";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitOpenRateIn3Days, message);
                }
                // QC Rule 5
                if (campaignTracking.ClickedPercentage < (settings.NotHitClickRateIn72HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Clicked} / {campaignTracking.Quantity} is Less than required value {settings.NotHitClickRateIn72HoursValue}% in 3 days";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitClickRateIn3Days, message);
                }
                return;
            }

            if (hoursPassed < 72 && hoursPassed >= 48)
            {
                // QC Rule 3
                if (campaignTracking.OpenedPercentage < (settings.NotHitOpenRateIn48HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Opened} / {campaignTracking.Quantity} is Less than required value {settings.NotHitOpenRateIn48HoursValue}% in 2 days";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitOpenRateIn2Days, message);
                }
                // QC Rule 5
                if (campaignTracking.ClickedPercentage < (settings.NotHitClickRateIn48HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Clicked} / {campaignTracking.Quantity} is Less than required value {settings.NotHitClickRateIn48HoursValue}% in 2 days";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitClickRateIn2Days, message);
                }
                return;
            }

            if (hoursPassed < 48 && hoursPassed >= 24)
            {
                // QC Rule 2
                if (campaignTracking.OpenedPercentage < (settings.NotHitOpenRateIn24HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Opened} / {campaignTracking.Quantity} is Less than required value {settings.NotHitOpenRateIn24HoursValue}% in 1 day";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitOpenRateIn1Day, message);
                }
                // QC Rule 4
                if (campaignTracking.ClickedPercentage < (settings.NotHitClickRateIn24HoursValue / 100.0))
                {
                    message = $"{campaignTracking.Clicked} / {campaignTracking.Quantity} is Less than required value {settings.NotHitClickRateIn24HoursValue}% in 1 day";
                    SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotHitClickRateIn1Day, message);
                }
            }

            //if (hoursPassed < 24 && hoursPassed >= settings.NotStartedInXHoursValue)
            //{
            //    if (campaignTracking.OpenedPercentage < 0.001 && hoursPassed > 0) // less than 0.1% and deploy date time passed
            //    {
            //        message = $"Number of Opens in last 24hrs, No Open Traffic in 24hrs.";
            //        SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.OpenTrafficInLast24Hours, message);
            //    }
            //    // QC Rule 10
            //    if (campaignTracking.ClickedPercentage < 0.001 && hoursPassed > 0) // less than 0.1% and deploy date time passed
            //    {
            //        message = $"Number of Click in last 24hrs, No Click Traffic in 24hrs.";
            //        SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.ClickTrafficInLast24Hours, message);
            //    }
            //    return;
            //}

            // QC Rule 1, Not Started
            if (responseStatus == ProDataResponseStatus.NotFound.ToString() && hoursPassed >= settings.NotStartedInXHoursValue)
            {
                message = $"Campaign to be started {deployDate.Value} as of {DateTime.Now}, Campaign has not started within {settings.NotStartedInXHoursValue} hours.";
                SaveNotificationRecord(db, campaignId, orderNumber, segmentNumber, QcRule.NotStartedInFirstXHours,
                                       message);
            }
        }
示例#9
0
        public async Task <IActionResult> Update([FromBody] SettingsVm settings)
        {
            await Mediator.Send(new UpdateSettings(settings));

            return(NoContent());
        }
 public async Task SaveSettings()
 {
     await SettingsVm.SaveSettings();
 }
 public ActionResult Settings(SettingsVm sc)
 {
     SettingsManager.Instance.SaveSettings(Db, sc);
     TempData["Success"] = "Notification Settings has been saved sucessfully.";
     return(RedirectToAction("Settings"));
 }
示例#12
0
 public UpdateSettings(SettingsVm settings)
 {
     Settings = settings;
 }