コード例 #1
0
ファイル: ModuleInstance.cs プロジェクト: rickeygalloway/Test
 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;
 }
コード例 #2
0
        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.");
            }
        }
コード例 #3
0
ファイル: ModuleRegistry.cs プロジェクト: rickeygalloway/Test
        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);
        }
コード例 #4
0
        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");
        }