Exemplo n.º 1
0
        public override void ProcessActivity(WebRequest request, WebResponse response)
        {
            var Url = this.AsyncDialog("Id", g =>
            {
                if (request.IsApp == false)
                {
                    return(this.DialogValue("News"));
                }
                var optls   = new Web.UISheetDialog();
                optls.Title = "新建图文";;
                optls.Options.Add(new UIClick("News")
                {
                    Command = request.Command, Model = request.Model, Text = "新建富文本图文"
                });
                optls.Options.Add(new UIClick("Markdown")
                {
                    Command = request.Command, Model = request.Model, Text = "新建Markdown文档"
                });
                optls.Options.Add(new UIClick()
                {
                    Key = "CaseCMS", Text = "抓取粘贴板网址图文"
                });

                return(optls);
            });
            var user = UMC.Security.Identity.Current;

            if (user.IsAuthenticated == false)
            {
                this.Prompt("请先登录", false);
                response.Redirect("Account", "Login");
            }

            var sId = UMC.Data.Utility.Guid(Url);

            if (sId.HasValue == false)
            {
                var sType = "text/html";
                switch (Url)
                {
                case "Project":
                    response.Redirect(request.Model, "ProjectUI", "News", true);
                    break;

                case "Markdown":
                    sType = "markdown";
                    if (request.IsApp)
                    {
                        this.Context.Send("Markdown", new WebMeta().Put("Id", "News"), true);
                    }
                    break;
                }
                if (request.IsApp == false)
                {
                    var sub2 = new Subject()
                    {
                        Visible      = 1,
                        CreationTime = DateTime.Now,
                        Title        = DateTime.Now.ToShortDateString(),
                        IsPicture    = false,
                        IsDraught    = true,
                        Id           = Guid.NewGuid(),
                        ContentType  = sType,
                        LastDate     = DateTime.Now,
                        Poster       = user.Alias,
                        Seq          = Utility.TimeSpan(),
                        last_user_id = user.Id,
                        user_id      = user.Id,
                        Status       = -1
                    };
                    SubjectSaveActivity.Dashboard(user, sub2);
                    Utility.CMS.ObjectEntity <Subject>().Insert(sub2);
                    this.Context.Send("Markdown", new WebMeta().Put("Id", Utility.Guid(sub2.Id.Value)), true);
                }
            }


            var sub = sId.HasValue ? (Utility.CMS.ObjectEntity <Subject>()
                                      .Where.And().Equal(new Subject
            {
                Id = sId
            }).Entities.Single() ?? new Subject {
                Id = sId
            }) : new Subject {
                Id = sId
            };;

            if (String.IsNullOrEmpty(request.SendValue) == false)
            {
                if (sub.project_id.HasValue)
                {
                    var project = Utility.CMS.ObjectEntity <Project>().Where.And().Equal(new Project
                    {
                        Id = sub.project_id
                    }).Entities.Single();
                    if (project != null)
                    {
                        if (project.user_id == user.Id)
                        {
                        }
                        else
                        {
                            var member = Utility.CMS.ObjectEntity <ProjectMember>().Where.And().Equal(new ProjectMember
                            {
                                project_id = sub.project_id,
                                user_id    = user.Id
                            }).Entities.Single();
                            if (member != null)
                            {
                                switch (member.AuthType)
                                {
                                case WebAuthType.Admin:
                                case WebAuthType.User:
                                    break;

                                default:
                                    this.Prompt("您未有编辑此图文的权限");
                                    break;
                                }
                            }
                            else
                            {
                                this.Prompt("您未有编辑此图文的权限");
                            }
                        }
                    }
                }
                if (String.Equals("markdown", sub.ContentType, StringComparison.CurrentCultureIgnoreCase))
                {
                    this.Context.Send("Markdown", new WebMeta().Put("Id", sId), true);
                }
                else
                {
                    if (request.IsApp)
                    {
                        this.Context.Send(new UISectionBuilder(request.Model, request.Command, new UMC.Web.WebMeta().Put("Id", sId.HasValue ? sId : Guid.NewGuid()))
                                          .CloseEvent("Subject.Save")
                                          .Builder().Put("IsEditer", true), true);
                    }
                    else
                    {
                        this.Context.Send("Markdown", new WebMeta().Put("Id", Utility.Guid(sId.Value)), true);
                    }
                }
            }

            var Next  = this.AsyncDialog("Next", "none");
            var ui    = UISection.Create();
            var title = new UITitle("图文编辑器");

            ui.Title = title;
            title.Right(new UIEventText().Icon('\uf0c7').Click(UIClick.Click(new UIClick("Id", sub.Id.ToString(), "Next", Next)
            {
                Command = "Save",
                Model   = request.Model
            })));


            var celss = UMC.Data.JSON.Deserialize <WebMeta[]>((String.IsNullOrEmpty(sub.DataJSON) ? "[]" : sub.DataJSON)) ?? new UMC.Web.WebMeta[] { };

            foreach (var pom in celss)
            {
                switch (pom["_CellName"])
                {
                case "CMSImage":
                    pom.Put("style", new UIStyle().Padding(0, 10));
                    break;
                }
            }

            if (celss.Length == 0)
            {
                var ed = ui.NewSection();
                ed.DisableSeparatorLine();
                ed.IsEditer = true;
                ed.AddCells(new UMC.Web.WebMeta().Put("_CellName", "CMSText").Put("value", new UMC.Web.WebMeta().Put("text", "新建文档")));
            }
            else
            {
                var ed = ui.NewSection();
                ed.IsEditer = true;
                ed.AddCells(celss);
                ed.DisableSeparatorLine();
            }
            var style  = new UIStyle();
            var footer = new UIHeader();

            ui.UIFooter = footer;//
            footer.Desc(new UMC.Web.WebMeta("icon", "\uf004", "desc", "天天录,录入您知识财富"), "{icon}\n{desc}", style);

            style.Height(350).Color(0xf0f0f0).AlignCenter().BgColor(0xf8f8f8).Name("border", "none");//.BorderColor
            style.Name("icon").Font("wdk").Size(40);


            response.Redirect(ui);
        }