Beispiel #1
0
        // -----------------
        // Edit Settings
        // -----------------

        public async Task <IActionResult> EditSettings()
        {
            // Get authenticated user
            var user = await _contextFacade.GetAuthenticatedUserAsync();

            // Ensure user is authenticated
            if (user == null)
            {
                return(Unauthorized());
            }

            // Breadcrumb
            _breadCrumbManager.Configure(builder =>
            {
                builder.Add(S["Home"], home => home
                            .Action("Index", "Home", "Plato.Core")
                            .LocalNav()
                            ).Add(S["Your Account"]);
            });

            // Build view model
            var viewModel = new EditSettingsViewModel()
            {
                Id                 = user.Id,
                TimeZone           = user.TimeZone,
                ObserveDst         = user.ObserveDst,
                Culture            = user.Culture,
                AvailableTimeZones = await GetAvailableTimeZonesAsync()
            };

            // Return view
            return(View((LayoutViewModel)await _editSettingsViewProvider.ProvideEditAsync(viewModel, this)));
        }
Beispiel #2
0
        public static Settings SettingsViewModelToSettings(EditSettingsViewModel settingsViewModel, Settings existingSettings)
        {
            //NOTE: The only reason some properties are commented out, are because those items were
            //      moved to their own page when the admin was refactored.

            existingSettings.Id                              = settingsViewModel.Id;
            existingSettings.ForumName                       = settingsViewModel.ForumName;
            existingSettings.ForumUrl                        = settingsViewModel.ForumUrl;
            existingSettings.IsClosed                        = settingsViewModel.IsClosed;
            existingSettings.EnableRSSFeeds                  = settingsViewModel.EnableRSSFeeds;
            existingSettings.DisplayEditedBy                 = settingsViewModel.DisplayEditedBy;
            existingSettings.EnableMarkAsSolution            = settingsViewModel.EnableMarkAsSolution;
            existingSettings.MarkAsSolutionReminderTimeFrame = settingsViewModel.MarkAsSolutionReminderTimeFrame;
            //existingSettings.EnableSpamReporting = settingsViewModel.EnableSpamReporting;
            //existingSettings.EnableMemberReporting = settingsViewModel.EnableMemberReporting;
            existingSettings.EnableEmailSubscriptions    = settingsViewModel.EnableEmailSubscriptions;
            existingSettings.ManuallyAuthoriseNewMembers = settingsViewModel.ManuallyAuthoriseNewMembers;
            existingSettings.EmailAdminOnNewMemberSignUp = settingsViewModel.EmailAdminOnNewMemberSignUp;
            existingSettings.TopicsPerPage                   = settingsViewModel.TopicsPerPage;
            existingSettings.PostsPerPage                    = settingsViewModel.PostsPerPage;
            existingSettings.ActivitiesPerPage               = settingsViewModel.ActivitiesPerPage;
            existingSettings.EnablePrivateMessages           = settingsViewModel.EnablePrivateMessages;
            existingSettings.MaxPrivateMessagesPerMember     = settingsViewModel.MaxPrivateMessagesPerMember;
            existingSettings.PrivateMessageFloodControl      = settingsViewModel.PrivateMessageFloodControl;
            existingSettings.EnableSignatures                = settingsViewModel.EnableSignatures;
            existingSettings.EnablePoints                    = settingsViewModel.EnablePoints;
            existingSettings.PointsAllowedToVoteAmount       = settingsViewModel.PointsAllowedToVoteAmount;
            existingSettings.PointsAllowedForExtendedProfile = settingsViewModel.PointsAllowedForExtendedProfile;
            existingSettings.PointsAddedPerPost              = settingsViewModel.PointsAddedPerPost;
            existingSettings.PointsAddedPostiveVote          = settingsViewModel.PointsAddedPostiveVote;
            existingSettings.PointsDeductedNagativeVote      = settingsViewModel.PointsDeductedNagativeVote;
            existingSettings.PointsAddedForSolution          = settingsViewModel.PointsAddedForSolution;
            existingSettings.AdminEmailAddress               = settingsViewModel.AdminEmailAddress;
            existingSettings.NotificationReplyEmail          = settingsViewModel.NotificationReplyEmail;
            existingSettings.SMTP         = settingsViewModel.SMTP;
            existingSettings.SMTPUsername = settingsViewModel.SMTPUsername;
            existingSettings.SMTPPassword = settingsViewModel.SMTPPassword;
            existingSettings.Theme        = settingsViewModel.Theme;
            //existingSettings.AkismentKey = settingsViewModel.AkismentKey;
            //existingSettings.EnableAkisment = settingsViewModel.EnableAkisment;
            existingSettings.SMTPPort = settingsViewModel.SMTPPort.ToString();
            //existingSettings.SpamQuestion = settingsViewModel.SpamQuestion;
            //existingSettings.SpamAnswer = settingsViewModel.SpamAnswer;
            existingSettings.SMTPEnableSSL = settingsViewModel.SMTPEnableSSL;
            //existingSettings.EnableSocialLogins = settingsViewModel.EnableSocialLogins;
            existingSettings.EnablePolls                = settingsViewModel.EnablePolls;
            existingSettings.SuspendRegistration        = settingsViewModel.SuspendRegistration;
            existingSettings.NewMemberEmailConfirmation = settingsViewModel.NewMemberEmailConfirmation;
            existingSettings.PageTitle                   = settingsViewModel.PageTitle;
            existingSettings.MetaDesc                    = settingsViewModel.MetaDesc;
            existingSettings.EnableEmoticons             = settingsViewModel.EnableEmoticons;
            existingSettings.DisableDislikeButton        = settingsViewModel.DisableDislikeButton;
            existingSettings.AgreeToTermsAndConditions   = settingsViewModel.AgreeToTermsAndConditions;
            existingSettings.DisableStandardRegistration = settingsViewModel.DisableStandardRegistration;
            existingSettings.TermsAndConditions          = settingsViewModel.TermsAndConditions;
            existingSettings.ShowPostContent             = settingsViewModel.ShowPostContent;
            existingSettings.AutoLoginAfterRegister      = settingsViewModel.AutoLoginAfterRegister;
            return(existingSettings);
        }
Beispiel #3
0
        public static EditSettingsViewModel SettingsToSettingsViewModel(Settings currentSettings)
        {
            var settingViewModel = new EditSettingsViewModel
            {
                Id                              = currentSettings.Id,
                ForumName                       = currentSettings.ForumName,
                ForumUrl                        = currentSettings.ForumUrl,
                IsClosed                        = currentSettings.IsClosed,
                EnableRSSFeeds                  = currentSettings.EnableRSSFeeds,
                DisplayEditedBy                 = currentSettings.DisplayEditedBy,
                EnableMarkAsSolution            = currentSettings.EnableMarkAsSolution,
                MarkAsSolutionReminderTimeFrame = currentSettings.MarkAsSolutionReminderTimeFrame ?? 0,
                //EnableSpamReporting = currentSettings.EnableSpamReporting,
                //EnableMemberReporting = currentSettings.EnableMemberReporting,
                EnableEmailSubscriptions    = currentSettings.EnableEmailSubscriptions,
                ManuallyAuthoriseNewMembers = currentSettings.ManuallyAuthoriseNewMembers,
                EmailAdminOnNewMemberSignUp = currentSettings.EmailAdminOnNewMemberSignUp,
                TopicsPerPage                   = currentSettings.TopicsPerPage,
                PostsPerPage                    = currentSettings.PostsPerPage,
                ActivitiesPerPage               = currentSettings.ActivitiesPerPage,
                EnablePrivateMessages           = currentSettings.EnablePrivateMessages,
                MaxPrivateMessagesPerMember     = currentSettings.MaxPrivateMessagesPerMember,
                PrivateMessageFloodControl      = currentSettings.PrivateMessageFloodControl,
                EnableSignatures                = currentSettings.EnableSignatures,
                EnablePoints                    = currentSettings.EnablePoints,
                PointsAllowedToVoteAmount       = currentSettings.PointsAllowedToVoteAmount,
                PointsAllowedForExtendedProfile = currentSettings.PointsAllowedForExtendedProfile ?? 0,
                PointsAddedPerPost              = currentSettings.PointsAddedPerPost,
                PointsAddedPostiveVote          = currentSettings.PointsAddedPostiveVote,
                PointsDeductedNagativeVote      = currentSettings.PointsDeductedNagativeVote,
                PointsAddedForSolution          = currentSettings.PointsAddedForSolution,
                AdminEmailAddress               = currentSettings.AdminEmailAddress,
                NotificationReplyEmail          = currentSettings.NotificationReplyEmail,
                SMTP         = currentSettings.SMTP,
                SMTPUsername = currentSettings.SMTPUsername,
                SMTPPassword = currentSettings.SMTPPassword,
                //AkismentKey = currentSettings.AkismentKey,
                //EnableAkisment = currentSettings.EnableAkisment != null && (bool)currentSettings.EnableAkisment,
                NewMemberEmailConfirmation = currentSettings.NewMemberEmailConfirmation != null && (bool)currentSettings.NewMemberEmailConfirmation,
                Theme    = currentSettings.Theme,
                SMTPPort = string.IsNullOrEmpty(currentSettings.SMTPPort) ? null : (int?)(Convert.ToInt32(currentSettings.SMTPPort)),
                //SpamQuestion = currentSettings.SpamQuestion,
                //SpamAnswer = currentSettings.SpamAnswer,
                Themes        = AppHelpers.GetThemeFolders(),
                SMTPEnableSSL = currentSettings.SMTPEnableSSL ?? false,
                //EnableSocialLogins = currentSettings.EnableSocialLogins ?? false,
                EnablePolls                 = currentSettings.EnablePolls ?? false,
                SuspendRegistration         = currentSettings.SuspendRegistration ?? false,
                PageTitle                   = currentSettings.PageTitle,
                MetaDesc                    = currentSettings.MetaDesc,
                EnableEmoticons             = currentSettings.EnableEmoticons == true,
                DisableDislikeButton        = currentSettings.DisableDislikeButton,
                TermsAndConditions          = currentSettings.TermsAndConditions,
                AgreeToTermsAndConditions   = currentSettings.AgreeToTermsAndConditions ?? false,
                DisableStandardRegistration = currentSettings.DisableStandardRegistration ?? false
            };

            return(settingViewModel);
        }
        public ActionResult Edit(EditSettingsViewModel editSettingsViewModel)
        {
            List <Guid> GuidList    = new List <Guid>();
            UserManager userManager = new UserManager();

            //Get GuidList of Organization from input
            if (!String.IsNullOrEmpty(editSettingsViewModel.OrganizationFilterString))
            {
                List <string> GUIDS = new List <string>();

                if (editSettingsViewModel.OrganizationFilterString.Contains(","))
                {
                    GUIDS = editSettingsViewModel.OrganizationFilterString.Split(',').ToList();
                }
                else
                {
                    GUIDS.Add(editSettingsViewModel.OrganizationFilterString);
                }

                foreach (var item in GUIDS)
                {
                    Guid id = Guid.Parse(item);
                    GuidList.Add(id);
                }
            }
            userManager.AddFilterOrganization(new Guid(User.Identity.Name), GuidList);
            //Reset Guid List
            GuidList = new List <Guid>();
            //Get GuidList of Organization from input
            if (!String.IsNullOrEmpty(editSettingsViewModel.PersonFilterString))
            {
                List <string> GUIDS = new List <string>();

                if (editSettingsViewModel.PersonFilterString.Contains(","))
                {
                    GUIDS = editSettingsViewModel.PersonFilterString.Split(',').ToList();
                }
                else
                {
                    GUIDS.Add(editSettingsViewModel.PersonFilterString);
                }

                foreach (var item in GUIDS)
                {
                    Guid id = Guid.Parse(item);
                    GuidList.Add(id);
                }
            }
            userManager.AddFilterPerson(new Guid(User.Identity.Name), GuidList);
            //Save Things to Database
            userManager.saveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #5
0
        public ActionResult Index(EditSettingsViewModel settingsViewModel)
        {
            if (ModelState.IsValid)
            {
                using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
                {
                    try
                    {
                        var existingSettings = SettingsService.GetSettings();
                        var updatedSettings  = ViewModelMapping.SettingsViewModelToSettings(settingsViewModel, existingSettings);

                        // Map over viewModel from
                        if (settingsViewModel.NewMemberStartingRole != null)
                        {
                            updatedSettings.NewMemberStartingRole =
                                _roleService.GetRole(settingsViewModel.NewMemberStartingRole.Value);
                        }

                        if (settingsViewModel.DefaultLanguage != null)
                        {
                            updatedSettings.DefaultLanguage =
                                LocalizationService.Get(settingsViewModel.DefaultLanguage.Value);
                        }

                        var culture = new CultureInfo(updatedSettings.DefaultLanguage.LanguageCulture);

                        unitOfWork.Commit();

                        // Set the culture session too
                        Session["Culture"] = culture;
                    }
                    catch (Exception ex)
                    {
                        unitOfWork.Rollback();
                        LoggingService.Error(ex);
                    }
                }

                // All good clear cache and get reliant lists
                using (UnitOfWorkManager.NewUnitOfWork())
                {
                    TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel
                    {
                        Message     = "Settings Updated",
                        MessageType = GenericMessages.success
                    };
                    settingsViewModel.Themes    = AppHelpers.GetThemeFolders();
                    settingsViewModel.Roles     = _roleService.AllRoles().ToList();
                    settingsViewModel.Languages = LocalizationService.AllLanguages.ToList();
                }
            }
            return(View(settingsViewModel));
        }
Beispiel #6
0
 public static Settings SettingsViewModelToSettings(EditSettingsViewModel settingsViewModel, Settings existingSettings)
 {
     existingSettings.Id                          = settingsViewModel.Id;
     existingSettings.ForumName                   = settingsViewModel.ForumName;
     existingSettings.ForumUrl                    = settingsViewModel.ForumUrl;
     existingSettings.IsClosed                    = settingsViewModel.IsClosed;
     existingSettings.EnableRSSFeeds              = settingsViewModel.EnableRSSFeeds;
     existingSettings.DisplayEditedBy             = settingsViewModel.DisplayEditedBy;
     existingSettings.EnableMarkAsSolution        = settingsViewModel.EnableMarkAsSolution;
     existingSettings.EnableSpamReporting         = settingsViewModel.EnableSpamReporting;
     existingSettings.EnableMemberReporting       = settingsViewModel.EnableMemberReporting;
     existingSettings.EnableEmailSubscriptions    = settingsViewModel.EnableEmailSubscriptions;
     existingSettings.ManuallyAuthoriseNewMembers = settingsViewModel.ManuallyAuthoriseNewMembers;
     existingSettings.EmailAdminOnNewMemberSignUp = settingsViewModel.EmailAdminOnNewMemberSignUp;
     existingSettings.TopicsPerPage               = settingsViewModel.TopicsPerPage;
     existingSettings.PostsPerPage                = settingsViewModel.PostsPerPage;
     existingSettings.ActivitiesPerPage           = settingsViewModel.ActivitiesPerPage;
     existingSettings.EnablePrivateMessages       = settingsViewModel.EnablePrivateMessages;
     existingSettings.MaxPrivateMessagesPerMember = settingsViewModel.MaxPrivateMessagesPerMember;
     existingSettings.PrivateMessageFloodControl  = settingsViewModel.PrivateMessageFloodControl;
     existingSettings.EnableSignatures            = settingsViewModel.EnableSignatures;
     existingSettings.EnablePoints                = settingsViewModel.EnablePoints;
     existingSettings.PointsAllowedToVoteAmount   = settingsViewModel.PointsAllowedToVoteAmount;
     existingSettings.PointsAddedPerPost          = settingsViewModel.PointsAddedPerPost;
     existingSettings.PointsAddedPostiveVote      = settingsViewModel.PointsAddedPostiveVote;
     existingSettings.PointsDeductedNagativeVote  = settingsViewModel.PointsDeductedNagativeVote;
     existingSettings.PointsAddedForSolution      = settingsViewModel.PointsAddedForSolution;
     existingSettings.AdminEmailAddress           = settingsViewModel.AdminEmailAddress;
     existingSettings.NotificationReplyEmail      = settingsViewModel.NotificationReplyEmail;
     existingSettings.SMTP                        = settingsViewModel.SMTP;
     existingSettings.SMTPUsername                = settingsViewModel.SMTPUsername;
     existingSettings.SMTPPassword                = settingsViewModel.SMTPPassword;
     existingSettings.Theme                       = settingsViewModel.Theme;
     existingSettings.AkismentKey                 = settingsViewModel.AkismentKey;
     existingSettings.EnableAkisment              = settingsViewModel.EnableAkisment;
     existingSettings.SMTPPort                    = settingsViewModel.SMTPPort.ToString();
     existingSettings.SpamQuestion                = settingsViewModel.SpamQuestion;
     existingSettings.SpamAnswer                  = settingsViewModel.SpamAnswer;
     existingSettings.SMTPEnableSSL               = settingsViewModel.SMTPEnableSSL;
     existingSettings.EnableSocialLogins          = settingsViewModel.EnableSocialLogins;
     existingSettings.EnablePolls                 = settingsViewModel.EnablePolls;
     existingSettings.SuspendRegistration         = settingsViewModel.SuspendRegistration;
     existingSettings.NewMemberEmailConfirmation  = settingsViewModel.NewMemberEmailConfirmation;
     existingSettings.PageTitle                   = settingsViewModel.PageTitle;
     existingSettings.MetaDesc                    = settingsViewModel.MetaDesc;
     return(existingSettings);
 }
        public ActionResult Index(EditSettingsViewModel settingsViewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var existingSettings = SettingsService.GetSettings(false);
                    var updatedSettings  =
                        ViewModelMapping.SettingsViewModelToSettings(settingsViewModel, existingSettings);

                    // Map over viewModel from
                    if (settingsViewModel.NewMemberStartingRole != null)
                    {
                        updatedSettings.NewMemberStartingRole =
                            _roleService.GetRole(settingsViewModel.NewMemberStartingRole.Value);
                    }

                    if (settingsViewModel.DefaultLanguage != null)
                    {
                        updatedSettings.DefaultLanguage =
                            LocalizationService.Get(settingsViewModel.DefaultLanguage.Value);
                    }

                    Context.SaveChanges();
                    _cacheService.ClearStartsWith(CacheKeys.Settings.Main);
                }
                catch (Exception ex)
                {
                    Context.RollBack();
                    LoggingService.Error(ex);
                }


                // All good clear cache and get reliant lists

                TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = "Settings Updated",
                    MessageType = GenericMessages.success
                };
                settingsViewModel.Themes    = AppHelpers.GetThemeFolders();
                settingsViewModel.Roles     = _roleService.AllRoles().ToList();
                settingsViewModel.Languages = LocalizationService.AllLanguages.ToList();
            }
            return(View(settingsViewModel));
        }
Beispiel #8
0
        public async Task <IActionResult> EditSettingsPost(EditSettingsViewModel model)
        {
            var user = await _userManager.FindByIdAsync(model.Id.ToString());

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

            // Validate model state within all view providers
            if (await _editSettingsViewProvider.IsModelStateValidAsync(model, this))
            {
                // Update user
                user.TimeZone   = model.TimeZone;
                user.ObserveDst = model.ObserveDst;
                user.Culture    = model.Culture;

                // Update user
                var result = await _platoUserManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    // Invoke BuildUpdateAsync within involved view providers
                    await _editSettingsViewProvider.ProvideUpdateAsync(model, this);

                    // Ensure model state is still valid after view providers have executed
                    if (ModelState.IsValid)
                    {
                        // Add confirmation
                        _alerter.Success(T["Settings Updated Successfully!"]);
                        // Redirect
                        return(RedirectToAction(nameof(EditSettings)));
                    }
                }
            }

            // If errors occur manually expire the cache otherwise our
            // modifications made above to the object may persist as the
            // object is not updated and the cache is not invalidated by the store
            _platoUserStore.CancelTokens(user);

            return(await EditSettings());
        }
Beispiel #9
0
 public EditSettingsView(ConnectionConfig connectionConfig = null)
 {
     InitializeComponent();
     DataContext = new EditSettingsViewModel(connectionConfig);
 }
Beispiel #10
0
        public MainViewModel(
            DashboardViewModel dashboardViewModel,
            LibraryViewModel libraryViewModel,
            PlaylistsViewModel playlistsViewModel,
            CurrentPlaylistViewModel currentPlaylistViewModel,
            CurrentTrackViewModel currentTrackViewModel,
            ArtistViewModel artistViewModel,
            LastFmViewModel lastFmViewModel,
            NewsViewModel newsViewModel,
            SearchViewModel searchViewModel,
            ArchiveViewModel archiveViewModel,
            PlayHistoryViewModel playHistoryViewModel,
            SystemInfoViewModel systemInfoViewModel,
            EditSettingsViewModel settingsViewModel,
            EditTrackViewModel editTrackViewModel,
            EditCriteriaPlaylistViewModel editCriteriaPlaylistViewModel,
            EditOrderedPlaylistViewModel editOrderedPlaylistViewModel,
            IMessenger messenger,
            IShowTabRequestHandler showTabRequester)
        {
            Tabs = new List <TabViewModelBase>
            {
                dashboardViewModel,
                libraryViewModel,
                playlistsViewModel,
                currentPlaylistViewModel,
                currentTrackViewModel,
                artistViewModel,
                lastFmViewModel,
                newsViewModel,
                searchViewModel,
                archiveViewModel,
                playHistoryViewModel,
                systemInfoViewModel,
                settingsViewModel,
                editTrackViewModel,
                editCriteriaPlaylistViewModel,
                editOrderedPlaylistViewModel,
            };

            _editCriteriaPlaylistViewModel = editCriteriaPlaylistViewModel;
            _editOrderedPlaylistViewModel  = editOrderedPlaylistViewModel;
            _editTrackViewModel            = editTrackViewModel;
            _settingsViewModel             = settingsViewModel;

            _messenger = messenger;

            _returnToTab = dashboardViewModel;

            SetSelectedTab(dashboardViewModel);

            ChangeTabCommand = new RelayCommand <TabViewModelBase>(OnChangingTab, CanChangeTab);

            showTabRequester.ShowEditTrackTab            += ShowEditTrackTab;
            showTabRequester.ShowSettingsTab             += ShowSettingsTab;
            showTabRequester.ShowEditCriteriaPlaylistTab += ShowEditCriteriaPlaylistTab;
            showTabRequester.ShowEditOrderedPlaylistTab  += ShowEditOrderedPlaylistTab;

            _editTrackViewModel.FinishedEditing            += OnFinishedEditing;
            _settingsViewModel.FinishedEditing             += OnFinishedEditing;
            _editCriteriaPlaylistViewModel.FinishedEditing += OnFinishedEditing;
            _editOrderedPlaylistViewModel.FinishedEditing  += OnFinishedEditing;

            playlistsViewModel.FavouritePlaylistsUpdated += OnFavouritePlaylistsUpdated;
        }