예제 #1
0
        public async Task <ActionResult> Update(SettingsPageModel model)
        {
            var site = await _contextService.CurrentSiteAsync();

            var user = await _contextService.CurrentUserAsync();

            if (model.User.Id != user.Id || user.IsSuspended)
            {
                _logger.LogWarning("Unauthorized access to update settings.", new
                {
                    SiteId = site.Id,
                    UserId = model.User?.Id,
                    User   = User.Identity.Name
                });

                return(Unauthorized());
            }

            var command = new UpdateUser
            {
                Id          = user.Id,
                DisplayName = model.User.DisplayName,
                SiteId      = site.Id,
                UserId      = user.Id
            };

            await _userService.UpdateAsync(command);

            return(Ok());
        }
예제 #2
0
        /// <summary>
        /// This function is the callback used to execute a command when the a menu item is clicked.
        /// See the Initialize method to see how the menu item is associated to this function using
        /// the OleMenuCommandService service and the MenuCommand class.
        /// </summary>
        private void MenuItemCallback(object sender, EventArgs e)
        {
            //Get the settings value from the store
            //SettingsManager settingsManager = new ShellSettingsManager(this);
            //SettingsStore configurationSettingsStore = settingsManager.GetReadOnlySettingsStore(SettingsScope.Configuration);


            SettingsPageModel page = (SettingsPageModel)GetDialogPage(typeof(SettingsPageModel));



            // Show a Message Box to prove we were here
            IVsUIShell uiShell = (IVsUIShell)GetService(typeof(SVsUIShell));
            Guid       clsid   = Guid.Empty;
            int        result;

            Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(uiShell.ShowMessageBox(
                                                                   0,
                                                                   ref clsid,
                                                                   "ChangesetViewer",
                                                                   string.Format(CultureInfo.CurrentCulture, "Inside {0}.MenuItemCallback()", this.ToString()),
                                                                   string.Empty,
                                                                   0,
                                                                   OLEMSGBUTTON.OLEMSGBUTTON_OK,
                                                                   OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST,
                                                                   OLEMSGICON.OLEMSGICON_INFO,
                                                                   0, // false
                                                                   out result));
        }
예제 #3
0
        public async Task <SettingsPageModel> BuildSettingsPageModelAsync(Guid userId)
        {
            var result = new SettingsPageModel();

            var user = await _dbContext.Users
                       .FirstOrDefaultAsync(x =>
                                            x.Id == userId &&
                                            x.Status != StatusType.Deleted);

            if (user == null)
            {
                return(null);
            }

            result.User = new SettingsPageModel.UserModel
            {
                Id           = user.Id,
                Email        = user.Email,
                DisplayName  = user.DisplayName,
                GravatarHash = _gravatarService.HashEmailForGravatar(user.Email),
                IsSuspended  = user.Status == StatusType.Suspended
            };

            return(result);
        }
        public SettingsPage()
        {
            InitializeComponent();
            var pageModel = new SettingsPageModel(this.Navigation);

            CurrencyOptions.ItemsSource = Statics.CurrencyOptions;
            this.BindingContext         = pageModel;
        }
예제 #5
0
        public void ShouldSaveServerPortInUserSettings()
        {
            var userSettingsMock = new Mock <IUserSettings>();
            var pageModel        = new SettingsPageModel(userSettingsMock.Object);

            pageModel.ServerPort = 1234;

            userSettingsMock.Verify(x => x.Set(It.Is <string>(y => y == "ServerPort"), It.Is <int>(y => y == 1234)));
        }
예제 #6
0
        public void ShouldSaveServerIpInUserSettings()
        {
            var userSettingsMock = new Mock <IUserSettings>();
            var pageModel        = new SettingsPageModel(userSettingsMock.Object);

            pageModel.ServerIp = "123.123.123.123";

            userSettingsMock.Verify(x => x.Set(It.Is <string>(y => y == "ServerIP"), It.Is <string>(y => y == "123.123.123.123")));
        }
예제 #7
0
        public void ShouldGetServerPortFromUserSettings()
        {
            var userSettingsMock = new Mock <IUserSettings>();

            userSettingsMock.Setup(x => x.GetInt32("ServerPort")).Returns(2345);
            var pageModel = new SettingsPageModel(userSettingsMock.Object);

            var serverPort = pageModel.ServerPort;

            serverPort.Should().Be(2345);
        }
예제 #8
0
        public void ShouldGetServerIpFromUserSettings()
        {
            var userSettingsMock = new Mock <IUserSettings>();

            userSettingsMock.Setup(x => x.GetString("ServerIP")).Returns("12.34.56.78");
            var pageModel = new SettingsPageModel(userSettingsMock.Object);

            var serverIp = pageModel.ServerIp;

            serverIp.Should().Be("12.34.56.78");
        }
예제 #9
0
        // GET: /<controller>/
        public IActionResult Index()
        {
            var settings = SettingsRepository.GetSettings(_settingsFolderPath);

            var model = new SettingsPageModel
            {
                ApiKey        = _configuration.GetValue <string>("IncomingMapAPIKey"),
                TweetResponse = settings
            };

            return(View(model));
        }
예제 #10
0
        public IActionResult Index(TweetResponse tweetResponse)
        {
            SettingsRepository.SaveSettings(_settingsFolderPath, tweetResponse);

            var model = new SettingsPageModel
            {
                ApiKey        = _configuration.GetValue <string>("IncomingMapAPIKey"),
                TweetResponse = tweetResponse
            };

            ViewData["message"] = "Settings saved";
            return(View(model));
        }
예제 #11
0
        // GET: /<controller>/
        public IActionResult Embed()
        {
            var settings = SettingsRepository.GetSettings(_settingsFolderPath);

            var model = new SettingsPageModel
            {
                ApiKey        = _configuration.GetValue <string>("IncomingMapAPIKey"),
                TweetResponse = settings
            };

            ViewData["host"]         = Request.Host;
            ViewData["cachebust_qs"] = DateTime.Now.ToString("yyyyMMddHHmmss");

            return(View(model));
        }
예제 #12
0
        public async Task <ActionResult> Update(SettingsPageModel model)
        {
            var site = await _contextService.CurrentSiteAsync();

            var user = await _contextService.CurrentUserAsync();

            var command = new UpdateSite
            {
                SiteId     = site.Id,
                UserId     = user.Id,
                Title      = model.Site.Title,
                Theme      = model.Site.Theme,
                Css        = model.Site.Css,
                Language   = model.Site.Language,
                Privacy    = model.Site.Privacy,
                Terms      = model.Site.Terms,
                HeadScript = model.Site.HeadScript
            };

            await _siteService.UpdateAsync(command);

            return(Ok());
        }
예제 #13
0
 public SettingsRouter()
 {
     _driver            = PropertiesCollection.Driver;
     _settingsPageModel = new SettingsPageModel();
 }
예제 #14
0
        public SettingsPage()
        {
            InitializeComponent();

            DataContext = new SettingsPageModel();
        }
예제 #15
0
 public SettingsPageViewModel(SettingsPageModel model)
 {
     this._model      = model;
     this.ContentPage = new SettingsPage(this);
 }
 public SettingsPage(MainWindow window)
 {
     InitializeComponent();
     WrappedContext = new SettingsPageModel(window);
     DataContext    = WrappedContext;
 }