Пример #1
0
    private static void Main(string[] args)
    {
      var options = new Options();

      try
      {
        ParseOptions(args, options);

        var analyser = new SourceFileAnalyser(options.RequireMessage, options.UpdateMode);

        if (options.Verbose)
          ShowInfo($"Searching for source files in directory '{options.DirPath}'");

        var sourcePaths = GetSourceFiles(options.DirPath).ToList();
        foreach (var sourcePath in sourcePaths)
        {
          if (options.Verbose)
            ShowInfo($"Analysing source file '{sourcePath}'");

          analyser.Analyse(new SourceFile(sourcePath, options.DirPath));
        }

        if (options.Verbose)
          ShowInfo($"Serialising log call map to '{options.MapPath}'");

        var mapDir = Path.GetDirectoryName(options.MapPath);
        if (string.IsNullOrWhiteSpace(mapDir) == false && Directory.Exists(mapDir) == false)
          Directory.CreateDirectory(mapDir);

        using (var writer = XmlWriter.Create(options.MapPath, new XmlWriterSettings {Indent = true, IndentChars = "  "}))
        {
          writer.WriteStartElement(Resources.LogCallInformationElementName);

          var serialiser = new XmlSerializer(typeof (CallInfo));

          var serialiserNamespaces = new XmlSerializerNamespaces();
          serialiserNamespaces.Add("", "");

          foreach (var info in analyser.LogCallMap.Values)
            serialiser.Serialize(writer, info, serialiserNamespaces);

          writer.WriteEndElement();
        }

        if (options.Verbose)
          ShowInfo($"Complete. {analyser.LogCallMap.Count} call(s) mapped in {sourcePaths.Count} file(s).");

        Environment.Exit(0);
      }
      catch (Exception exception)
      {
        ShowError(options.Verbose ? exception.ToString() : exception.Message);
        Environment.Exit(1);
      }
    }
Пример #2
0
        private static void Main(string[] args)
        {
            var options = new Options();

            try
            {
                ParseOptions(args, options);

                var analyser = new SourceFileAnalyser(options.RequireMessage, options.UpdateMode);

                if (options.Verbose)
                {
                    ShowInfo($"Searching for source files in directory '{options.DirPath}'");
                }

                var sourcePaths = GetSourceFiles(options.DirPath).ToList();
                foreach (var sourcePath in sourcePaths)
                {
                    if (options.Verbose)
                    {
                        ShowInfo($"Analysing source file '{sourcePath}'");
                    }

                    analyser.Analyse(new SourceFile(sourcePath, options.DirPath));
                }

                if (options.Verbose)
                {
                    ShowInfo($"Serialising log call map to '{options.MapPath}'");
                }

                var mapDir = Path.GetDirectoryName(options.MapPath);
                if (string.IsNullOrWhiteSpace(mapDir) == false && Directory.Exists(mapDir) == false)
                {
                    Directory.CreateDirectory(mapDir);
                }

                using (var writer = XmlWriter.Create(options.MapPath, new XmlWriterSettings {
                    Indent = true, IndentChars = "  "
                }))
                {
                    writer.WriteStartElement(Resources.LogCallInformationElementName);

                    var serialiser = new XmlSerializer(typeof(CallInfo));

                    var serialiserNamespaces = new XmlSerializerNamespaces();
                    serialiserNamespaces.Add("", "");

                    foreach (var info in analyser.LogCallMap.Values)
                    {
                        serialiser.Serialize(writer, info, serialiserNamespaces);
                    }

                    writer.WriteEndElement();
                }

                if (options.Verbose)
                {
                    ShowInfo($"Complete. {analyser.LogCallMap.Count} call(s) mapped in {sourcePaths.Count} file(s).");
                }

                Environment.Exit(0);
            }
            catch (Exception exception)
            {
                ShowError(options.Verbose ? exception.ToString() : exception.Message);
                Environment.Exit(1);
            }
        }