Example #1
0
        public async Task <string> GenerateCreationScript(NonVisualSetting nonVisualSetting)
        {
            if (nonVisualSetting == null)
            {
                return(string.Empty);
            }

            return(await Task.Run(() =>
            {
                StringBuilder insertsBuilder = new StringBuilder();
                StringBuilder scriptBuilder = new StringBuilder();
                Int32 index = 0;

                foreach (var clientValue in nonVisualSetting.Clients)
                {
                    if (clientValue.Key != NonVisualSetting.Else)
                    {
                        if (index == 0)
                        {
                            insertsBuilder.AppendLine($"    IF ls_client = '{clientValue.Key}' THEN");
                        }
                        else
                        {
                            insertsBuilder.AppendLine($"    ELSIF ls_client = '{clientValue.Key}' THEN");
                        }
                    }
                    else
                    {
                        insertsBuilder.AppendLine($"    ELSE");
                    }
                    insertsBuilder.AppendLine($"      insert_non_visual('{nonVisualSetting.Name}', '{clientValue.Value}');");

                    index++;
                }
                insertsBuilder.AppendLine($"    END IF;");

                scriptBuilder.AppendLine($"DECLARE");
                scriptBuilder.AppendLine($"  ln_exist NUMBER;");
                scriptBuilder.AppendLine($"  ls_client VARCHAR2(250);");
                scriptBuilder.AppendLine($"  PROCEDURE insert_non_visual(ps_name  IN VARCHAR2, ps_value IN VARCHAR2) AS");
                scriptBuilder.AppendLine($"  BEGIN");
                scriptBuilder.AppendLine($"    INSERT INTO SETTINGS.SYST_ATTRIBUTES_T(CODE, VALUE) VALUES(ps_name, ps_value);");
                scriptBuilder.AppendLine($"  END; ");
                scriptBuilder.AppendLine($"BEGIN");
                scriptBuilder.AppendLine($"  SELECT COUNT(1) INTO ln_exist FROM SETTINGS.SYST_ATTRIBUTES_T WHERE CODE = '{nonVisualSetting.Name}';");
                scriptBuilder.AppendLine($"  ls_client := SETTINGS.GET_SYST_ATTR('APT_CLIENT');");
                scriptBuilder.AppendLine($"  IF ln_exist = 0 THEN");
                scriptBuilder.AppendLine($"{insertsBuilder.ToString()}");
                scriptBuilder.AppendLine($"  END IF;");
                scriptBuilder.AppendLine($"END;");
                scriptBuilder.AppendLine($"/");

                return scriptBuilder.ToString();
            }));
        }
        public void ScriptGenerator_GenerateCreationScript_NonVisualSettingNull()
        {
            //Arrange
            IScriptGenerationService scriptGenerator  = new ScriptGenerationService();
            NonVisualSetting         nonVisualSetting = null;

            //Act
            var script = scriptGenerator.GenerateCreationScript(nonVisualSetting).Result;

            //Assert
            Assert.AreEqual(string.Empty, script);
        }
Example #3
0
        private NonVisualSetting TabToModelNonVisualSetting()
        {
            nonVisualSetting = NonVisualSetting.CreateNew(nonVisualCodeTextBox.Text);

            foreach (DataGridViewColumn column in nonVisualClientsGrid.Columns)
            {
                var value = GetCellValue <string>(nonVisualClientsGrid.Rows[0], column.HeaderText);

                if (!String.IsNullOrWhiteSpace(value))
                {
                    nonVisualSetting.Clients.Add(column.HeaderText, value);
                }
            }

            return(nonVisualSetting);
        }
Example #4
0
 public static NonVisualSetting MockNonVisualSetting() => NonVisualSetting.CreateNew(NameNonVisualSetting);