public void SetUp() { var specification = new WidgetSpecification( "widget name", Enumerable.Empty<PropertySpecification>(), new IComponent[] { new Atom("atom", Enumerable.Empty<Property>()), new Placeholder("area 1"), new Container("container", Enumerable.Empty<Property>(), new[] { new Placeholder("area 2") }) }); var widget = new Widget( "widget name", new[] { new Area("area 1", new IComponent[] { new Atom("atom", Enumerable.Empty<Property>()), new Atom("atom", Enumerable.Empty<Property>()) }), new Area("area 2", new IComponent[] { new Atom("atom", Enumerable.Empty<Property>()), new Atom("atom", Enumerable.Empty<Property>()), new Atom("atom", Enumerable.Empty<Property>()) }) }); var buildContext = new BuildData(Enumerable.Empty<IContextItem>()); var builder = new Builder(RenderingInstructions.BuildForPreview(), n => specification, null); this.instance = (WidgetInstance)widget.Build(builder, new[] { 0 }, buildContext); }
public IActionResult Create(IFormCollection formCollection) { var model = ToCarouselWidgetFormModel(formCollection); if (ModelState.IsValid) { foreach(var item in model.Items) { item.Image = SaveFile(item.UploadImage); } var widgetInstance = new WidgetInstance { Name = model.Name, WidgetId = 1, WidgetZoneId = model.WidgetZoneId, Data = JsonConvert.SerializeObject(model.Items) }; _widgetInstanceRepository.Add(widgetInstance); _widgetInstanceRepository.SaveChange(); return Ok(); } return new BadRequestObjectResult(ModelState); }
public async Task <IActionResult> Post(IFormCollection formCollection) { var model = ProductFormWidgetFormModel(formCollection); if (ModelState.IsValid) { var widgetInstance = new WidgetInstance { Name = model.Name, WidgetId = widgetid, WidgetZoneId = model.WidgetZoneId, PublishStart = model.PublishStart, PublishEnd = model.PublishEnd, DisplayOrder = model.DisplayOrder, Data = JsonConvert.SerializeObject(model.Settings) }; _widgetInstanceRepository.Add(widgetInstance); _widgetInstanceRepository.SaveChanges(); return(CreatedAtAction(nameof(Get), new { id = widgetInstance.Id }, null)); } return(BadRequest(ModelState)); }
public async Task <IActionResult> Post([FromBody] RecentlyViewedWidgetForm model) { { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var widgetInstance = new WidgetInstance { Name = model.Name, WidgetId = "RecentlyViewedWidget", WidgetZoneId = model.WidgetZoneId, Data = model.ItemCount.ToString(), PublishStart = model.PublishStart, PublishEnd = model.PublishEnd, DisplayOrder = model.DisplayOrder, }; _widgetInstanceRepository.Add(widgetInstance); await _widgetInstanceRepository.SaveChangesAsync(); return(CreatedAtAction(nameof(Get), new { id = widgetInstance.Id }, null)); } }
public void AddToWidgetInstances(WidgetInstance widgetInstance) { base.AddObject("WidgetInstances", widgetInstance); }
public IResult Render(WidgetInstance widget) { var result = new CompositeResult(widget.Components.Select(c => c.Render(this))); return this.Annotate(widget, result); }
public static WidgetInstance CreateWidgetInstance(int id, int orderNo, bool expanded, bool maximized, bool resized, int width, int height, string title, string state, int versionNo, global::System.DateTime createdDate, byte[] lastUpdate) { WidgetInstance widgetInstance = new WidgetInstance(); widgetInstance.Id = id; widgetInstance.OrderNo = orderNo; widgetInstance.Expanded = expanded; widgetInstance.Maximized = maximized; widgetInstance.Resized = resized; widgetInstance.Width = width; widgetInstance.Height = height; widgetInstance.Title = title; widgetInstance.State = state; widgetInstance.VersionNo = versionNo; widgetInstance.CreatedDate = createdDate; widgetInstance.LastUpdate = lastUpdate; return widgetInstance; }
internal static string ToXml(this WidgetInstance widget) { return(XmlSerializerUtility.SerializeToXml(widget.ToXmlElement())); }
public IResult Render(WidgetInstance widget) { throw new NotImplementedException(); }
public ActionResult Generic(int id, string website) { var contentUrl = ""; //Guid gid = new Guid(id); WidgetInstance _widget = null; try { _widget = dataContext.Widgets.Find(id); } catch { System.Threading.Thread.CurrentThread.Join(100); _widget = dataContext.Widgets.Find(id); } if (_widget == null) { return(HttpNotFound()); } ViewBag.WidgetInstance = _widget; var descroptor = _widget.WidgetDescriptor; contentUrl = descroptor.ResolveUri(descroptor.ContentUrl, Consts.WIDGET_PKG_PATH); //if (Request.IsAjaxRequest()) // { //1.Load values from default if (!string.IsNullOrEmpty(descroptor.Defaults)) { Dictionary <string, PropertyDescriptor> preferenceStore = new Dictionary <string, PropertyDescriptor>(); var properties = descroptor.Properties; foreach (var pro in properties) { preferenceStore.Add((string)pro["name"], new PropertyDescriptor { Name = (string)pro["name"], IsReadonly = (bool)pro["readonly"], Value = pro["value"] }); } var _pros = _widget.ReadUserPreferences(); foreach (var p in _pros) { var key = (string)p["name"]; if (preferenceStore.ContainsKey(key)) { preferenceStore[key].IsReadonly = (bool)p["readonly"]; preferenceStore[key].Value = p["value"]; } } ViewBag.PropertyDescriptors = preferenceStore; } //} if (string.IsNullOrEmpty(contentUrl)) //View only { return(PartialView()); } if (descroptor.ContentType == "application/x-ms-aspnet") { return(PartialView(contentUrl)); } else { //W3C Widget and Google gadget ViewBag.ContentUrl = contentUrl; return(PartialView()); } }
public void Update(WidgetInstance wi) { RemoveWidgetInstanceCacheEntries(wi.Id); _database.Update<WidgetInstance>(wi); }
public IResult Render(WidgetInstance widget) { var result = new CompositeResult(widget.Components.Select(c => c.Render(this))); return(this.Annotate(widget, result)); }
private void ClearHtmlCache(WidgetInstance widget) { var key = "widget" + widget.ID.ToString() + "_caching_html"; if (HttpContext.Cache[key] != null) HttpContext.Cache.Remove(key); }
public void Update(WidgetInstance wi) { RemoveWidgetInstanceCacheEntries(wi.Id); _database.Update <WidgetInstance>(wi); }
public void Delete(WidgetInstance wi) { RemoveWidgetInstanceCacheEntries(wi.Id); RemoveWidgetZoneCacheEntries(wi.WidgetZone.ID); _database.Delete <WidgetInstance>(wi); }
public IResult Render(WidgetInstance component) { return(component.RenderingInstructions.AnnotateComponentPaths ? new AnnotatedResult(this.inner.Render(component), component.Path) : this.inner.Render(component)); }
public void NewWidgetAdded(WidgetInstance newWidget) { this.WidgetTabHost.AddNewWidget(newWidget); }
/// <summary> /// Copies the widget by first loading back state data and then resetting id. /// </summary> /// <param name="widget"></param> public static void CopyWidget(WidgetInstance widget) { // Reset the id so it's not marked as persistant and load back state. widget.LoadState(); widget.ToNewCopy(); }
public void Delete(WidgetInstance wi) { RemoveWidgetInstanceCacheEntries(wi.Id); RemoveWidgetZoneCacheEntries(wi.WidgetZone.ID); _database.Delete<WidgetInstance>(wi); }
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { List<Widget> defaultWidgets = null; if (System.Web.Security.Roles.Enabled && !string.IsNullOrEmpty(UserName)) { defaultWidgets = DatabaseHelper.GetList<Widget, string, Dropthings.DataAccess.Enumerations.WidgetTypeEnum, bool>(DatabaseHelper.SubsystemEnum.Widget, UserName, Dropthings.DataAccess.Enumerations.WidgetTypeEnum.PersonalPage, true, LinqQueries.CompiledQuery_GetDefaultWidgetsByRole).Distinct().ToList(); ; } else { defaultWidgets = DatabaseHelper.GetList<Widget, bool>(DatabaseHelper.SubsystemEnum.Widget, true, LinqQueries.CompiledQuery_GetWidgetByIsDefault); } var widgetsPerColumn = (int)Math.Ceiling((float)defaultWidgets.Count / 3.0); var row = 0; var col = 0; DatabaseHelper.InsertList<WidgetInstance, Widget>(DatabaseHelper.SubsystemEnum.WidgetInstance, defaultWidgets, (widget) => { var newWidget = new WidgetInstance(); var widgetZone = DatabaseHelper.GetSingle<WidgetZone, int, int>(DatabaseHelper.SubsystemEnum.WidgetInstance, this.PageId, col, LinqQueries.CompiledQuery_GetWidgetZoneByPageId_ColumnNo); newWidget.WidgetZoneId = widgetZone.ID; newWidget.OrderNo = row; newWidget.CreatedDate = DateTime.Now; newWidget.Expanded = true; newWidget.Title = widget.Name; newWidget.VersionNo = 1; newWidget.WidgetId = widget.ID; newWidget.State = widget.DefaultState; row++; if (row >= widgetsPerColumn) { row = 0; col++; } return newWidget; }); return ActivityExecutionStatus.Closed; }
/// <summary> /// Initialize the WidgetHelper instance by specified WidgetInstance object. /// </summary> /// <param name="widget"></param> public WidgetHelper(WidgetInstance widget) { this.instance = widget; }
private IWidgetHost CreateWidgetContainerFromWidgetInstance(EventBrokerService eventBroker, WidgetInstance instance) { var widget = LoadControl(this.WidgetContainerPath) as Control; widget.ID = "WidgetContainer" + instance.Id.ToString(); var widgetHost = widget as IWidgetHost; widgetHost.WidgetInstance = instance; widgetHost.IsLocked = this.IsLocked; widgetHost.EventBroker = eventBroker; widgetHost.Deleted += new Action <WidgetInstance, IWidgetHost>(Widget_Deleted); return(widgetHost); }
private void ClearCache(WidgetInstance widget) { var key = "page" + widget.PageID.ToString() + "_widgets"; if (HttpContext.Cache[key] != null) HttpContext.Cache.Remove(key); }
public IResult Render(WidgetInstance widget) { throw new NotImplementedException(); }
public IResult Render(WidgetInstance component) { return component.RenderingInstructions.AnnotateComponentPaths ? new AnnotatedResult(this.inner.Render(component), component.Path) : this.inner.Render(component); }
public void AddNewWidget(WidgetInstance wi) { var widgetZoneControl = this.FindControl(GetWidgetZoneControlId(wi.WidgetZone.ID)) as WidgetInstanceZone; widgetZoneControl.AddNewWidget(_EventBroker, wi); }
/* * == given specifications == * Widget specification 1 * ├─ Atom A * ├─ Placeholder * └─ Container A * └─ Placeholder * * Widget specification 2 * ├─ Placeholder * └─ Widget (widget specification 1) * ├─ Area * │ └─ Placeholder * └─ Area * └─ Atom B * * == and widget template == * Widget (widget specification 2) * ├─ Area * │ └─ Atom C * └─ Area * └─ Atom D * * == should build to == * WidgetInstance (widget specification 2) 0 * ├─ PlaceholderInstance 0.0 * │ └─ AtomInstance C 0.0.0 * └─ WidgetInstance (widget specification 1) 1 * ├─ AtomInstance A 1.0 * ├─ PlaceholderInstance 1.1 * │ └─ PlaceholderInstance 1.1.0 * │ └─ AtomInstance D 1.1.0.0 * └─ ContainerInstance A 1.2 * └─ PlaceholderInstance 1.2.0 * └─ AtomInstance B 1.2.0.0 */ public void SetUp() { var specification1 = new WidgetSpecification( "widget 1", Enumerable.Empty <PropertySpecification>(), new IComponent[] { new Atom("atom a", Enumerable.Empty <Property>()), new Placeholder("area 1"), new Container( "container a", Enumerable.Empty <Property>(), new[] { new Placeholder("area 2") }) }); var specification2 = new WidgetSpecification( "widget 2", Enumerable.Empty <PropertySpecification>(), new IComponent[] { new Placeholder("area 1"), new Widget( "widget 1", new[] { new Area( "area 1", new[] { new Placeholder("area 2") }), new Area( "area 2", new[] { new Atom("atom b", Enumerable.Empty <Property>()) }) }) }); var widget = new Widget( "widget 2", new[] { new Area( "area 1", new IComponent[] { new Atom("atom c", Enumerable.Empty <Property>()) }), new Area( "area 2", new IComponent[] { new Atom("atom d", Enumerable.Empty <Property>()), }) }); var buildContext = new BuildData(Enumerable.Empty <IContextItem>()); var builder = new Builder(RenderingInstructions.BuildForPreview(), n => n == "widget 1" ? specification1 : specification2, null); this.instance = (WidgetInstance)widget.Build(builder, new[] { 0 }, buildContext); }
public WidgetInstance Insert(WidgetInstance wi) { var zone = wi.WidgetZone; var widget = wi.Widget; wi.WidgetZone = null; wi.Widget = null; var widgetInstance = _database.Insert<WidgetZone, Widget, WidgetInstance>( zone, widget, (z, me) => me.WidgetZone = z, (w, me) => me.Widget = w, wi); wi.WidgetZone = zone; wi.Widget = widget; RemoveWidgetZoneCacheEntries(widgetInstance.WidgetZone.ID); return widgetInstance; }