public UIStyle Name(String key) { if (meta.ContainsKey(key)) { var obj = meta.GetDictionary()[key]; if (obj is UIStyle) { return((UIStyle)obj); } } var style = new UIStyle(); meta.Put(key, style); return(style); }
public override void ProcessActivity(WebRequest request, WebResponse response) { var user = UMC.Security.Identity.Current; var ids = new List <Guid>(); var itemId = Utility.Guid(this.AsyncDialog("Id", g => this.DialogValue(Guid.NewGuid().ToString())), true);//, true).Value; var config = this.AsyncDialog("Config", g => { return(this.DialogValue("none")); }); var pids = new List <Guid>(); var items = new List <Design_Item>(); var itemsEntity = Database.Instance().ObjectEntity <Design_Item>() .Where.And().Equal(new Design_Item { Id = itemId }); var size = this.AsyncDialog("Size", g => { return(this.DialogValue("none")); }); var webr = UMC.Data.WebResource.Instance(); var ts = this.AsyncDialog("Setting", g => { var fm = new UIFormDialog() { Title = "界面配置" }; var item = itemsEntity.Entities.Single(); WebMeta meta = new UMC.Web.WebMeta(); if (item != null) { meta = UMC.Data.JSON.Deserialize <WebMeta>(item.Data) ?? meta; if (String.Equals(config, "none")) { if (meta.ContainsKey("Config")) { config = meta["Config"]; } } } if (String.Equals(config, "none")) { this.Prompt("您配置错误"); } else if (config == "UISEO") { fm.Title = "SEO优化"; fm.AddTextarea("标题", "Title", meta["Title"]); fm.AddTextarea("关键词", "Keywords", meta["Keywords"]); fm.AddTextarea("描述", "Description", meta["Description"]); return(fm); } request.Arguments["Config"] = config; var keyIndex = config.IndexOf('.'); if (keyIndex > -1) { config = config.Substring(keyIndex + 1); } if (String.Equals(size, "none")) { size = "注意图片尺寸"; } else { size = String.Format("图片尺寸:{0}", size); } var pictureEntity = Database.Instance().ObjectEntity <Design_Config>(); pictureEntity.Order.Asc(new Design_Config { Sequence = 0 }); var pices = pictureEntity.Where.And().Equal(new Design_Config { GroupBy = config }).Entities.Query(); if (new List <Design_Config>(pices).Exists(dr => dr.Value == "Image" && dr.Name == "none") == false) { fm.AddFile(size, "_Image", webr.ResolveUrl(String.Format("{0}{1}/1/0.jpg!100", UMC.Data.WebResource.ImageResource, itemId))) //.Put("Model", "Settings").Put("Command", "Jpeg").Put("SendValue", new WebADNuke.Web.WebMeta().Put("Id", itemId)); .Command("Design", "Picture", new UMC.Web.WebMeta().Put("id", itemId).Put("seq", "1", "type", "jpg")); } UMC.Data.Utility.Each(pices, dr => { if (dr.Value == "Image" && dr.Name == "none") { } else { fm.AddText(dr.Name, dr.Value, meta[dr.Value]); } }); if (item == null) { item = itemsEntity.Reset().And().Equal(new Design_Item { design_id = UMC.Data.Utility.Guid(config, true) }).Entities.Max(new Design_Item { Seq = 0 }); item.Seq = (item.Seq ?? 0) + 1; } fm.AddNumber("展示顺序", "Seq", item.Seq ?? 0); return(fm); }); var seq = UMC.Data.Utility.IntParse(ts["Seq"], 0); ts.Remove("Seq"); ts.Remove("Image"); ts["Config"] = config; var ite = new Design_Item { Type = UIDesigner.StoreDesignTypeCustom, ModifiedDate = DateTime.Now, Data = UMC.Data.JSON.Serialize(ts), Id = itemId, Seq = seq }; itemsEntity.Entities.IFF(e => e.Update(ite) == 0, e => { ite.design_id = UMC.Data.Utility.Guid(config, true); e.Insert(ite); }); this.Context.Send(new UMC.Web.WebMeta().Put("type", "Design"), true); }
/// <summary> /// 向发送客户端发送数据事情 /// </summary> /// <param name="data">发送的数据</param> /// <param name="endResponse"></param> public void Send(WebMeta data, bool endResponse) { WebResponse response = this.Response; if (data.ContainsKey("type") && data["type"] == "UI.Event") { if (runtime.Client.UIEvent != null) { var click = runtime.Client.UIEvent; var key = data["key"]; if (String.Equals(key, "Click") && data.GetDictionary()["value"] is ListItem) { runtime.Client.UIEvent = null; runtime.Client.Session.Storage(new Hashtable(), this); var value = data.GetDictionary()["value"] as ListItem; var objValue = click.Send(); if (objValue is Hashtable) { var val = objValue as Hashtable; var em = val.GetEnumerator(); while (em.MoveNext()) { if (String.Equals(em.Value, "Value")) { val[em.Key] = value.Value; val[String.Format("{0}_Text", em.Key)] = value.Text; //val.Put(em.Key as string, value.Value); break; } } response.Redirect(click.Model, click.Command, new WebMeta(val), false); } else if (objValue is WebMeta) { var val = objValue as WebMeta; var em = val.GetDictionary().GetEnumerator(); while (em.MoveNext()) { if (String.Equals(em.Value, "Value")) { val.Put(em.Key as string, value.Value); val[String.Format("{0}_Text", em.Key)] = value.Text; break; } } response.Redirect(click.Model, click.Command, val, false); } else { response.Redirect(click.Model, click.Command, value.Value, false); } } } } response.ClientEvent |= WebEvent.DataEvent; if (response.Headers.ContainsKey("DataEvent")) { var ts = response.Headers.GetDictionary()["DataEvent"]; if (ts is WebMeta) { response.Headers.Set("DataEvent", (WebMeta)ts, data); } else if (ts is IDictionary) { response.Headers.Set("DataEvent", new WebMeta((IDictionary)ts), data); } else if (ts is Array) { var ats = new System.Collections.ArrayList(); ats.AddRange((Array)ts); ats.Add(data); response.Headers.Set("DataEvent", (WebMeta[])ats.ToArray(typeof(WebMeta))); } else { response.Headers.Set("DataEvent", data); } } else { response.Headers.Set("DataEvent", data); } if (endResponse) { response.ClientEvent ^= response.ClientEvent & WebEvent.Normal; this.End(); } }