private void ApplyTenants(TQuery original, DiagnosticsQueryViewModel vm) { if (options.Value.TenantLinkMode == LinkMode.MultiSelect) { vm.Tenants = (from t in original.Tenants select t.TenantId).ToArray(); } else { vm.Tenants = Array.Empty <int>(); } }
public async Task <IActionResult> Create([DataSourceRequest] DataSourceRequest request, DiagnosticsQueryViewModel viewModel) { var model = new TQuery(); if (ModelState.IsValid) { /* Nicht gemergte Änderung aus Projekt "ITVComponents.WebCoreToolkit.Net.TelerikUi (netcoreapp3.1)" * Vor: * await this.TryUpdateModelAsync<DiagnosticsQueryViewModel,DiagnosticsQuery>(model); * Nach: * await this.TryUpdateModelAsync<DiagnosticsQueryViewModel, DiagnosticsQueryDefinition>(model); */ await this.TryUpdateModelAsync <DiagnosticsQueryViewModel, TQuery>(model); db.DiagnosticsQueries.Add(model); SetTenants(viewModel.Tenants, model); await db.SaveChangesAsync(); } return(Json(await new[] { model.ToViewModel <TQuery, DiagnosticsQueryViewModel>(ApplyTenants) }.ToDataSourceResultAsync(request, ModelState))); }
public async Task <IActionResult> Update([DataSourceRequest] DataSourceRequest request, DiagnosticsQueryViewModel viewModel) { var model = db.DiagnosticsQueries.First(n => n.DiagnosticsQueryId == viewModel.DiagnosticsQueryId); if (ModelState.IsValid) { await this.TryUpdateModelAsync <DiagnosticsQueryViewModel, TQuery>(model, "", m => { return(m.ElementType == null); }); SetTenants(viewModel.Tenants, model); await db.SaveChangesAsync(); } return(Json(await new[] { model.ToViewModel <TQuery, DiagnosticsQueryViewModel>(ApplyTenants) }.ToDataSourceResultAsync(request, ModelState))); }
public async Task <IActionResult> Destroy([DataSourceRequest] DataSourceRequest request, DiagnosticsQueryViewModel viewModel) { var model = db.DiagnosticsQueries.First(n => n.DiagnosticsQueryId == viewModel.DiagnosticsQueryId); if (ModelState.IsValid) { db.TenantDiagnosticsQueries.RemoveRange(model.Tenants); db.DiagnosticsQueryParameters.RemoveRange(model.Parameters); db.DiagnosticsQueries.Remove(model); await db.SaveChangesAsync(); } return(Json(await new[] { viewModel }.ToDataSourceResultAsync(request, ModelState))); }