public JSONValue ToJSON() { var result = new JSONArray(); foreach (var item in this.Items) { result.AddValue(item.ToObject()); } return result; }
public JSONObject ToObject() { JSONObject result = new JSONObject(); result.AddValue("text", Headline); result.AddValue("content", Content); result.AddValue("moduleId", ModuleId); JSONArray items = new JSONArray(); foreach (var child in Items) items.AddValue(child.ToObject()); result.AddValue("items", items); return result; }
public static JSONObject HandleChange(JSONArray request) { var provider = new LinqIt.UmbracoCustomFieldTypes.UmbracoTreeModuleProvider(HttpContext.Current.Request.QueryString["itemId"]); var placeholderData = provider.GetPlaceholderData(); var layout = provider.GetLayout().Rows.SelectMany(r => r.Cells).ToArray(); var result = layout.ToDictionary(cell => cell.Key, cell => new GridPlaceholderData(cell.Key, cell.ColumnSpan)); var response = new JSONObject(); var messages = new JSONArray(); response.AddValue("messages", messages); foreach (JSONObject replacement in request.Values) { var from = (string) replacement["from"]; var id = (string) replacement["id"]; var to = (string) replacement["to"]; var message = new JSONObject(); message.AddValue("ph", from); message.AddValue("id", id); if (string.IsNullOrEmpty(to)) { message.AddValue("type", "alert"); message.AddValue("text", _removedMessage); } else { var oldItem = placeholderData[from].Items.Where(i => i.Id == id).FirstOrDefault(); var newItem = provider.GetItem(id); newItem.ColumnSpan = oldItem.ColumnSpan; var cell = result[to]; if (cell.Items.Where(i => i.Id == newItem.Id).Any()) { message.AddValue("type", "alert"); message.AddValue("text", _duplicateMessage); } else { if (cell.Span < newItem.ColumnSpan) { newItem.ColumnSpan = provider.GetItemColumnOptions(id).Where(o => o <= cell.Span).Max(); message.AddValue("type", "info"); message.AddValue("text", string.Format(_resizedMessage, newItem.ColumnSpan)); } else { message.AddValue("type", "ok"); } cell.AddItem(newItem); } } messages.AddValue(message); } response.AddValue("hiddenId", HttpContext.Current.Request.QueryString["hiddenId"]); var values = new JSONArray(); values.AddRange(result.Values.Select(v => v.ToJSON()).ToArray()); response.AddValue("value", values.ToString()); return response; }