public void GetColumnsFromDefaultLayout(string processSystemName, Action<ColumnCollection> callback) { var filter = GetLayoutFilter(processSystemName); TheDynamicTypeManager.BeginGetList<ILayoutList<ILayoutInfo>>(Constants.LayoutProcessName, (o, r) => { if (r.Error != null) { return; } var defaultLayout = (ILayoutInfo)r.Object[0]; var layoutViewModel = new NewLayoutViewModel { Id = defaultLayout.Id, AccountId = defaultLayout.AccountId, LayoutString = defaultLayout.LayoutDefinition, IsAdminLayout = defaultLayout.IsAdminLayout ?? false, IsDefault = defaultLayout.IsDefault ?? false, Name = defaultLayout.Name, }; layoutViewModel.Parse(layoutViewModel.LayoutString); var type = TheDynamicTypeManager.GetListType(processSystemName).BaseType.GetGenericArguments()[1]; var columnCollection = new ColumnCollection(); for (int i = 0; i < layoutViewModel.LayoutColumns.Count; i++) { var layoutColumn = layoutViewModel.LayoutColumns[i]; var property = type.GetProperty(layoutColumn.SystemName); var column = new ColumnItem(null, null) { Header = layoutColumn.Header, ColumnName = layoutColumn.SystemName, Width = layoutColumn.Width.HasValue ? layoutColumn.Width.Value : 0, Order = i, Property = property }; columnCollection.Add(column); } callback(columnCollection); }, filterExpression: filter.ToJSON(), pageSize: 1); }
public IActionResult CreateNewLayout([FromForm] NewLayoutViewModel input) { if (string.IsNullOrEmpty(input.Name)) { return(BadRequest("Name cannot be empty.")); } var layout = new CameraLayout { Name = input.Name }; _context.Add(layout); _context.SaveChanges(); layout.CameraTiles = new List <CameraTile>(); var model = new LayoutViewModel { CameraLayout = layout }; return(PartialView("DashboardLayout", model)); }