public async Task <IActionResult> CreateActivation([DataSourceRequest] DataSourceRequest request, [FromQuery] int tenantId, [FromQuery] int featureId) { var model = new TenantFeatureActivation(); if (ModelState.IsValid) { await this.TryUpdateModelAsync <FeatureActivationViewModel, TenantFeatureActivation>(model); model.TenantId = tenantId; model.FeatureId = featureId; db.TenantFeatureActivations.Add(model); await db.SaveChangesAsync(); } return(Json(await new[] { model.ToViewModel <TenantFeatureActivation, FeatureActivationViewModel>() }.ToDataSourceResultAsync(request, ModelState))); }
protected virtual TenantFeatureActivation GetFeature(int tenantId, FeatureTemplateMarkup feature, bool addIfMissing) { var nowU = DateTime.UtcNow; var ftu = db.Features.First(n => n.FeatureName == feature.FeatureName); var retVal = db.TenantFeatureActivations.FirstOrDefault(n => n.TenantId == tenantId && (n.ActivationStart ?? nowU) <= nowU && (n.ActivationEnd ?? nowU) >= nowU); if (retVal == null && addIfMissing) { retVal = new TenantFeatureActivation { TenantId = tenantId, FeatureId = ftu.FeatureId }; db.TenantFeatureActivations.Add(retVal); } return(retVal); }
protected virtual void RevokeFeature(int tenantId, TenantFeatureActivation feature) { }