Example #1
0
        public void OnGenerate()
        {
            try
            {
                IInfoExtractor extractor = null;

                switch (SelectedAccessorType)
                {
                case "MsSql":
                    extractor = new MsSqlInfoExtractor(CString);
                    break;

                case "SqLite":
                    extractor = new SqLiteInfoExtractor(CString);
                    break;
                }

                if (extractor != null)
                {
                    var writables = (TableFilter ?? "").Split(',')
                                    .Where(f => !String.IsNullOrWhiteSpace(f))
                                    .Select(f => f.Trim())
                                    .ToArray();

                    var readables = (ReadOnlyTableFilter ?? "").Split(',')
                                    .Where(f => !String.IsNullOrWhiteSpace(f))
                                    .Select(f => f.Trim())
                                    .ToArray();

                    var writableInfo = extractor.GetDatabaseMetadata(writables);
                    var readableInfo = extractor.GetDatabaseMetadata(readables);
                    var fileWriter   = new FileWriter();
                    var entityWriter = new EntityWriter();
                    var typeWriter   = new TypeWriter();

                    var output = fileWriter.WriteHeader(Namespace);
                    output += entityWriter.Execute(AppName, Namespace, UseLinq, LessChanges, WriteSchema, ScriptDefaults, UseUnspecified, writableInfo);
                    output += typeWriter.Execute(readableInfo);
                    output += fileWriter.WriteFooter();

                    Output = output;

                    OnPropertyChanged("Output");
                }
            }
            catch (Exception e)
            {
                Output = e.StackTrace;
                OnPropertyChanged("Output");
            }
        }