public void CopyValuesTo(ModuleInstance target) { target.ModuleName = ModuleName; target.ModuleDisplayName = ModuleDisplayName; target.ModuleViewName = ModuleViewName; target.ModuleViewDisplayName = ModuleViewDisplayName; target.TemplateName = TemplateName; target.SettingsData = SettingsData; target.DisplayName = DisplayName; target.IsReusable = IsReusable; }
public HttpResponseMessage PostModuleInstanceData(bool isConfigView, string moduleInstanceId = null) { //Handle Postback for Module Instance Data try { ModuleInstanceModel moduleInstanceModel = null; ModuleInstance moduleInstance = null; var data = string.Empty; using (new IhMonitoredScope("ModuleInstanceApiV1Controller - PostModuleInstanceData")) { var requestData = Request.Content.ReadAsStringAsync().Result; using (new IhMonitoredScope("Deserialize JSON model")) { moduleInstanceModel = JsonConvert.DeserializeObject<ModuleInstanceModel>(requestData); } moduleInstance = new ModuleInstance(moduleInstanceModel.ModuleInstanceId, moduleInstanceModel.ModuleName, null, moduleInstanceModel.ModuleViewName, null, moduleInstanceModel.TemplateName, moduleInstanceModel.SettingsData, moduleInstanceModel.DisplayName, moduleInstanceModel.IsReusable); if (isConfigView) { moduleInstance.Action = moduleInstanceModel.Action; ServiceContext.ModuleRegistry.UpdateModuleInstance(moduleInstance); var module = ServiceContext.ModuleRegistry.GetModule(moduleInstance.ModuleName); moduleInstanceModel.ModuleDisplayName = module.DisplayName; moduleInstanceModel.ModuleViewDisplayName = module.Views.First(v => v.Name == moduleInstance.ModuleViewName).DisplayName; moduleInstanceModel.IsNewRecord = false; } else { var module = ServiceContext.ModuleRegistry.GetModule(moduleInstance.Id); // Send data to data provider to get Settings Data var parameters = CreateCommonParameters("ModuleInstanceView", moduleInstance.ModuleName, moduleInstance.ModuleViewName, isConfigView); var dataProvider = ServiceContext.DataProviderFactory.CreateDataProvider(module.CmsType); moduleInstanceModel.SettingsData = dataProvider.PostModuleData(module, parameters, moduleInstance.SettingsData).Data; } } moduleInstanceModel.DiagnosticOutput = ServiceContext.DiagnosticManager.GetDiagnosticOutput(); data = JsonConvert.SerializeObject(moduleInstanceModel); // Create and return response return CreateResponse(data, HttpStatusCode.OK); } catch (Exception ex) { if (ex is BusinessException) throw ex; else throw new BusinessException("There was an error processing the request. Please see the logs for more details."); } }
public void UpdateModuleInstance(ModuleInstance instance) { var registryData = new ModuleRegistryData(); var module = GetModule(instance.ModuleName); if (instance.Action == RecordActions.Added && registryData.ModuleInstances.ContainsKey(instance.Id)) instance.Action = RecordActions.Edited; if (instance.Action == RecordActions.Edited && !registryData.ModuleInstances.ContainsKey(instance.Id)) instance.Action = RecordActions.Added; // Create view model for added/updated instance var clonedModule = module.Clone(false, false); clonedModule.Instances.Add(instance); var viewModel = new ModuleRegistryViewModel(); viewModel.Modules = new List<ModuleDefinition>() { clonedModule }; var data = JsonConvert.SerializeObject(viewModel); // Post view model to data provider ServiceContext.DataProviderFactory.CreateDataProvider(module.CmsType).PostModuleRegistryData(data); }
private void ValidateInstance(ModuleInstance instance) { // Check if instance display name is already in use var sqlText = "SELECT COUNT(Id) FROM CSF_ModuleInstances " + "WHERE (DisplayName = @DisplayName) AND (Id <> @Id)"; var parameters = new List<SqlParameter>(); parameters.Add(new SqlParameter("@Id", instance.Id)); parameters.Add(new SqlParameter("@DisplayName", GetNullableValue(instance.DisplayName))); var count = ExecuteDbQuery<int>(sqlText, parameters.ToArray()); if (count[0] > 0) throw new BusinessException("A module instance with the specified name already exists"); }