Exemple #1
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            try
            {
                FileOutput     fileOutput = new FileOutput("CardFixer.log");
                AbstractOutput output     = new TeeOutput(_logBox.Output, fileOutput);
                _output = output;
                _output.WriteLine(new string('=', 70));
                _output.WriteLine
                (
                    "{0}: ЗАПУСК ПРОГРАММЫ",
                    DateTime.Now
                );

                _AddVersionToTitle();

                _dal = new DataAccessLevel(_output);

                _output.WriteLine
                (
                    "Всего карточек: {0}",
                    _dal.GetTotalCardCount()
                );
                _output.WriteLine
                (
                    "Списанных номеров: {0}",
                    _dal.GetBadNumberCount()
                );
                _output.WriteLine
                (
                    "Карточек в ИРБИС: {0}",
                    _dal.GetIrbisCardCount()
                );

                int[] numbers = _dal.GetBoxNumbers(CardStatus.AlreadyHave);
                _boxNumberBox.Items.Clear();
                _boxNumberBox.Items.AddRange
                (
                    numbers
                    .Select(i => (object)i)
                    .ToArray()
                );
                if (numbers.Length != 0)
                {
                    _boxNumberBox.SelectedIndex = 0;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show
                (
                    ex.Message,
                    "Ошибка",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                );
                Environment.FailFast("Ошибка");
            }
        }
Exemple #2
0
        public MainForm()
        {
            InitializeComponent();

            _console.Clear();

            _log = new FileOutput("log.txt");

            Output = new TeeOutput
                     (
                _log,
                new ConsoleControlOutput(_console)
                     );
            Connection = new IrbisConnection();
        }
Exemple #3
0
        static int Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("BiblioGrinder <configurationString> <biblioDocument.json>");
                return(1);
            }

            log = new TeeOutput(AbstractOutput.Console);

            configurationString = args[0];
            documentPath        = args[1];

            ReadRecordCommand.ThrowOnVerify = false;

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            try
            {
                AbstractOutput logFile = new FileOutput("grinder.log");
                log.Output.Add(logFile);

                NativeIrbisProvider.Register();

                using (provider = ProviderManager
                                  .GetAndConfigureProvider(configurationString))
                {
                    log.WriteLine
                    (
                        "Connected to database {0}, max MFN={1}",
                        provider.Database,
                        provider.GetMaxMfn()
                    );
                    document = BiblioDocument.LoadFile(documentPath);
                    context  = new BiblioContext(document, provider, log);

                    processor = new BiblioProcessor();
                    processor.Initialize(context);
                    processor.BuildDocument(context);

                    string outputText = processor.Output.Text;

                    // TODO implement properly
                    outputText = Regex.Replace
                                 (
                        outputText,
                        @"\s(-|–|\\u8211.)\sIS[BS]N\s[0-9XxХх-]*\.?",
                        string.Empty
                                 );
                    outputText = Regex.Replace
                                 (
                        outputText,
                        @"([А-Я]\.)\s([А-Я])",
                        "$1\\~$2"
                                 );

                    outputText = Regex.Replace
                                 (
                        outputText,
                        "\\\"([\\w])",
                        "«$1"
                                 );
                    outputText = Regex.Replace
                                 (
                        outputText,
                        "([\\w\\.])\\\"",
                        "$1»"
                                 );

                    outputText = Regex.Replace
                                 (
                        outputText,
                        "\\\"(\\.\\.\\.|\\(|\\[)",
                        "«$1"
                                 );
                    outputText = Regex.Replace
                                 (
                        outputText,
                        "(\\.\\.\\.|\\!|\\?|\\)|\\])\\\"",
                        "$1»"
                                 );

                    outputText = outputText
                                 .Replace(" - ", " \\u8211? ")
                                 .Replace("}- ", "}\\u8211? ")
                                 .Replace(" -}", " \\u8211?}")
                                 .Replace(" -\\", " \\u8211?\\")
                                 .Replace("\\u8470? ", "\u8470?\\~")
                                 .Replace("...", "\\'85")
                                 .Replace("С. ", "С.\\~")
                    ;

                    File.WriteAllText
                    (
                        "output.rtf",
                        outputText,
                        IrbisEncoding.Ansi
                    );

                    stopwatch.Stop();
                    TimeSpan elapsed = stopwatch.Elapsed;
                    log.WriteLine
                    (
                        "Elapsed: {0}",
                        elapsed.ToAutoString()
                    );
                    log.WriteLine
                    (
                        "Finished at: {0}",
                        DateTime.Now
                    );
                }
            }
            catch (Exception exception)
            {
                log.WriteLine
                (
                    "Exception: {0}",
                    exception
                );

                return(1);
            }

            return(0);
        }