public async Task <IActionResult> UpdateParameter([DataSourceRequest] DataSourceRequest request, DashboardParamViewModel viewModel)
        {
            var model = db.WidgetParams.First(n => n.DashboardParamId == viewModel.DashboardParamId);

            if (ModelState.IsValid)
            {
                await this.TryUpdateModelAsync <DashboardParamViewModel, TWidgetParam>(model, "", m => { return(m.ElementType == null); });

                await db.SaveChangesAsync();
            }

            return(Json(await new[] { model.ToViewModel <TWidgetParam, DashboardParamViewModel>() }.ToDataSourceResultAsync(request, ModelState)));
        }
        public async Task <IActionResult> DestroyParameter([DataSourceRequest] DataSourceRequest request, DashboardParamViewModel viewModel)
        {
            var model = db.WidgetParams.First(n => n.DashboardParamId == viewModel.DashboardParamId);

            if (ModelState.IsValid)
            {
                db.WidgetParams.Remove(model);
                await db.SaveChangesAsync();
            }

            return(Json(await new[] { viewModel }.ToDataSourceResultAsync(request, ModelState)));
        }