Пример #1
0
        protected async Task Publish()
        {
            Post.Published = SystemClock.Now();
            await OnUpdate.InvokeAsync("publish");

            await SavePost(PostAction.Publish);
        }
Пример #2
0
        protected async Task HideEditor()
        {
            Edit = false;
            await OnUpdate.InvokeAsync("add");

            StateHasChanged();
        }
Пример #3
0
        protected async Task HideEditor(string arg)
        {
            Edit   = false;
            PostId = 0;
            await OnUpdate.InvokeAsync(arg);

            StateHasChanged();
        }
Пример #4
0
        public async void OnDelete(ItemClickEventArgs e)
        {
            StateHasChanged();
            UserLinkVM = e.Data as UserLinkViewModel;

            UserLinkVM.UserLink.IsActive = !(UserLinkVM.UserLink.IsActive);
            await OnUpdate.InvokeAsync(new ChangeEventArgs { Value = UserLinkVM });

            StateHasChanged();
        }
Пример #5
0
        public async void OnSearchMark(ItemClickEventArgs e)
        {
            StateHasChanged();
            UserLinkVM = e.Data as UserLinkViewModel;
            if (UserLinkVM.UserLink.CanSearchSite)
            {
                UserLinkVM.IsTheSearchSite = !(UserLinkVM.IsTheSearchSite);
                await OnUpdate.InvokeAsync(new ChangeEventArgs { Value = UserLinkVM });
            }

            StateHasChanged();
        }
Пример #6
0
        public async void OnClickEdit(ItemClickEventArgs e)
        {
            StateHasChanged();

            var parameters = new ModalDialogParameters();

            parameters.Add("Link", e.Data as UserLinkViewModel);
            ModalDialogResult result = await ModalDialog.ShowDialogAsync <Edit>("Edit Form", null, parameters);

            if (result.Success)
            {
                UserLinkVM = result.ReturnParameters.Get <UserLinkViewModel>("Link");
                await OnUpdate.InvokeAsync(new ChangeEventArgs { Value = UserLinkVM });
            }
            StateHasChanged();
        }
        protected async Task Publish(int id)
        {
            try
            {
                var post = await DataService.BlogPosts.GetItem(p => p.Id == id);

                post.Published = DateTime.UtcNow;
                var saved = await DataService.BlogPosts.SaveItem(post);

                DataService.Complete();

                if (!AppSettings.DemoMode)
                {
                    // send newsletters on post publish
                    var section = Configuration.GetSection(Constants.ConfigSectionKey);
                    if (section != null)
                    {
                        var apiKey = section.GetValue <string>("SendGridApiKey");
                        if (!string.IsNullOrEmpty(apiKey) && apiKey != "YOUR-SENDGRID-API-KEY")
                        {
                            var pager = new Pager(1, 10000);
                            var items = await DataService.Newsletters.GetList(e => e.Id > 0, pager);

                            var emails   = items.Select(i => i.Email).ToList();
                            var blogPost = DataService.BlogPosts.Single(p => p.Id == saved.Id);

                            int count = await EmailService.SendNewsletters(blogPost, emails, NavigationManager.BaseUri);

                            if (count > 0)
                            {
                                Toaster.Success(string.Format(Localizer["email-sent-count"], count));
                            }
                        }
                    }
                }
                Toaster.Success("Saved");

                await OnUpdate.InvokeAsync("publish");

                StateHasChanged();
            }
            catch (Exception ex)
            {
                Toaster.Error(ex.Message);
            }
        }
Пример #8
0
        public async Task Feature(int id)
        {
            try
            {
                var post = DataService.BlogPosts.Find(p => p.Id == id).FirstOrDefault();
                post.IsFeatured = false;
                DataService.Complete();

                await OnUpdate.InvokeAsync("unfeature");

                StateHasChanged();
                Toaster.Success("Saved");
            }
            catch (Exception ex)
            {
                Toaster.Error(ex.Message);
            }
        }
Пример #9
0
        public async void OnPin(ItemClickEventArgs e)
        {//set new pin to 99, Not Pin to -1
            StateHasChanged();
            UserLinkVM = e.Data as UserLinkViewModel;

            if (UserLinkVM.UserLink.Pined > 0)
            {
                UserLinkVM.UserLink.Pined = -1;
            }
            else
            {
                UserLinkVM.UserLink.Pined = 99;
            }

            await OnUpdate.InvokeAsync(new ChangeEventArgs { Value = UserLinkVM });

            StateHasChanged();
        }
Пример #10
0
        public async Task Publish(int id, bool published)
        {
            try
            {
                var post = DataService.BlogPosts.Find(p => p.Id == id).FirstOrDefault();
                post.Published = published ? DateTime.MinValue : DateTime.UtcNow;
                await Task.FromResult(DataService.Complete());

                await OnUpdate.InvokeAsync("unpublish");

                StateHasChanged();
                Toaster.Success("Saved");
                await LoadPosts(1);
            }
            catch (Exception ex)
            {
                Toaster.Error(ex.Message);
            }
        }
Пример #11
0
        protected async Task Publish(int id)
        {
            try
            {
                var post = await DataService.BlogPosts.GetItem(p => p.Id == id);

                post.Published = DateTime.UtcNow;
                var saved = await DataService.BlogPosts.SaveItem(post);

                DataService.Complete();

                if (FeatureManager.IsEnabledAsync(nameof(AppFeatureFlags.Email)).Result)
                {
                    // send newsletters on post publish when email feature enabled
                    var pager = new Pager(1, 10000);
                    var items = await DataService.Newsletters.GetList(e => e.Id > 0, pager);

                    var emails   = items.Select(i => i.Email).ToList();
                    var blogPost = DataService.BlogPosts.Single(p => p.Id == saved.Id);

                    int count = await EmailService.SendNewsletters(blogPost, emails, NavigationManager.BaseUri);

                    if (count > 0)
                    {
                        Toaster.Success(string.Format(Localizer["email-sent-count"], count));
                    }
                }
                Toaster.Success("Saved");

                await OnUpdate.InvokeAsync("publish");

                StateHasChanged();
            }
            catch (Exception ex)
            {
                Toaster.Error(ex.Message);
            }
        }
Пример #12
0
        protected async Task Save()
        {
            await OnUpdate.InvokeAsync("save");

            await SavePost(PostAction.Save);
        }
Пример #13
0
        protected async Task Unpublish()
        {
            await OnUpdate.InvokeAsync("unpublish");

            await SavePost(PostAction.Unpublish);
        }
Пример #14
0
 public async void OnUpdateEvent(SortableJSEvent e)
 {
     await OnUpdate.InvokeAsync(new SortableEvent <TItem>(this, e));
 }