Example #1
0
        /// <summary>
        /// Банка, содержащая ртуть и воду
        /// </summary>
        /// <param name="jarInstance">банка,</param>
        /// <param name="month">месяц,</param>
        /// <param name="year">год,</param>
        /// <param name="state">состояние на момент окончания месяца,</param>
        /// <param name="method">метод заливки,</param>
        /// <param name="mercuryProduction">добыча ртути,</param>
        /// <param name="waterProduction">добыча воды,</param>
        /// <param name="minutes">время заливки в минутах.</param>
        public JarHistory(Jar jarInstance, int month, int year, JarType type, JarState state, FillingMethod method, int mercuryProduction, int waterProduction, int minutes)
            : this(jarInstance,month,year,JarType.WaterMercury, state,method)
        {
            Method = method;
              Minutes = minutes;

              MercuryProduction = mercuryProduction;
              WaterProduction = waterProduction;
        }
Example #2
0
        //внешний ключ(при необходимости)
        //public int JarId { get; set; }
        /// <summary>
        /// Пустая или запланированная банка
        /// </summary>
        /// <param name="jarInstance">банка,</param>
        /// <param name="month">месяц,</param>
        /// <param name="year">год,</param>
        /// <param name="type">вид хранимого вещества,</param>
        /// <param name="state">состояние на момент окончания месяца,</param>
        /// <param name="method">метод заливки,</param>
        public JarHistory(Jar jarInstance, int month, int year, JarType type, JarState state, FillingMethod method=FillingMethod.NoFilling)
        {
            if (jarInstance == null)
            throw new Exception("Невозможно хранить состояние несуществующей банки");
              else
            _jarInstance = jarInstance;

              Type = type;
              Month = month;
              Year = year;

              State = state;
              Method = method;
        }
Example #3
0
        static string CreateSingleJar(string jdkFolder, string originFolder, string pathName, JarType type, string destinationFolder, int timeout, string manifestFile = null)
        {
            string filter        = string.Empty;
            string patternName   = string.Empty;
            string fileWithNames = string.Empty;

            switch (type)
            {
            case JarType.Compiled:
                filter        = Const.FileNameAndDirectory.CompiledFilter;
                patternName   = Const.FileNameAndDirectory.CompiledPattern;
                fileWithNames = Const.FileNameAndDirectory.CompiledFile;
                break;

            case JarType.Source:
                filter        = Const.FileNameAndDirectory.SourceFilter;
                patternName   = Const.FileNameAndDirectory.SourcePattern;
                fileWithNames = Const.FileNameAndDirectory.SourceFile;
                break;

            default: throw new InvalidOperationException();
            }

#if NET_CORE
            var assemblyName = pathName.Replace(Const.Framework.NETCoreFolder, string.Empty);
#else
            var assemblyName = pathName.Replace(Const.Framework.NETFrameworkFolder, string.Empty);
#endif
            assemblyName = assemblyName.Replace("\\", string.Empty);
            var destinationJar = string.Format(patternName, assemblyName);
            destinationJar = Path.Combine(destinationFolder, destinationJar);
            var searchPath = Path.Combine(originFolder, pathName);
            searchPath = Path.GetFullPath(searchPath);
            StringBuilder sb = new StringBuilder();
            foreach (var item in Directory.EnumerateFiles(searchPath, filter, SearchOption.AllDirectories))
            {
                var fileName = Path.GetFullPath(item);
                fileName = fileName.Replace(searchPath, ".");
                sb.AppendLine(fileName);
            }

            var outputStr = sb.ToString();
            if (string.IsNullOrEmpty(outputStr))
            {
                return(string.Empty);                                 // discard empty folders
            }
            File.WriteAllText(Path.Combine(searchPath, fileWithNames), sb.ToString());
            if (string.IsNullOrEmpty(manifestFile))
            {
                launchProcess(searchPath, Path.Combine(jdkFolder, JarCompiler), "cvf " + destinationJar + " @" + fileWithNames, timeout);
            }
            else
            {
                launchProcess(searchPath, Path.Combine(jdkFolder, JarCompiler), "cvfm " + destinationJar + " " + manifestFile + " @" + fileWithNames, timeout);
            }
            return(assemblyName);
        }
Example #4
0
        /// <summary>
        /// Банка, содержащая воду
        /// </summary>
        /// <param name="jarInstance">банка,</param>
        /// <param name="month">месяц,</param>
        /// <param name="year">год,</param>
        /// <param name="state">состояние на момент окончания месяца,</param>
        /// <param name="method">метод заливки,</param>
        /// <param name="waterLoading">добыча воды,</param>
        /// <param name="minutes">время заливки в минутах.</param>
        public JarHistory(Jar jarInstance, int month, int year, JarType type, JarState state, FillingMethod method, int waterLoading, int minutes)
            : this(jarInstance, month, year, JarType.WaterMercury, state,method)
        {
            Method = method;
              Minutes = minutes;

              WaterLoading = waterLoading;
        }
        static string CreateSingleJar(string jdkFolder, string rootFolder, string originFolder, string pathName, JarType type, string destinationFolder, int timeout, bool withEmbedding, string manifestFile = null)
        {
            string filter        = string.Empty;
            string patternName   = string.Empty;
            string fileWithNames = string.Empty;

            switch (type)
            {
            case JarType.Compiled:
                filter        = Const.FileNameAndDirectory.CompiledFilter;
                patternName   = Const.FileNameAndDirectory.CompiledPattern;
                fileWithNames = Const.FileNameAndDirectory.CompiledFile;
                break;

            case JarType.Source:
                filter        = Const.FileNameAndDirectory.SourceFilter;
                patternName   = Const.FileNameAndDirectory.SourcePattern;
                fileWithNames = Const.FileNameAndDirectory.SourceFile;
                break;

            default: throw new InvalidOperationException();
            }

            var assemblyName = pathName.Replace(Const.Framework.RuntimeFolder, string.Empty);

            assemblyName = assemblyName.Replace("\\", string.Empty);
            assemblyName = assemblyName.Replace("/", string.Empty);
            var destinationJar = string.Format(patternName, assemblyName);

            destinationJar = Path.Combine(destinationFolder, destinationJar);
            var searchPath = Path.Combine(originFolder, pathName);

            searchPath = Path.GetFullPath(searchPath);
            StringBuilder sb = new StringBuilder();

            foreach (var item in Directory.EnumerateFiles(searchPath, filter, SearchOption.AllDirectories))
            {
                var fileName = Path.GetFullPath(item);
                fileName = fileName.Replace(searchPath, ".");
                sb.AppendLine(fileName);
            }

            if (withEmbedding && !string.IsNullOrEmpty(manifestFile)) // we are making JCOReflector.jar
            {
                var jcoBridgeEmbeddedFile = Path.Combine(searchPath, Const.FileNameAndDirectory.OrgSubDirectory,
                                                         Const.FileNameAndDirectory.MasesSubDirectory,
                                                         Const.FileNameAndDirectory.JCOBridgeSubDirectory,
                                                         Const.FileNameAndDirectory.NetreflectionSubDirectory,
                                                         Const.FileNameAndDirectory.JCOBridgeEmbeddedFile);

                var localArchive = Const.FileNameAndDirectory.CreateJCOBridgeZip(rootFolder);

                if (File.Exists(jcoBridgeEmbeddedFile))
                {
                    File.Delete(jcoBridgeEmbeddedFile);
                }
                File.Move(localArchive, jcoBridgeEmbeddedFile);

                if (!File.Exists(jcoBridgeEmbeddedFile))
                {
                    throw new InvalidOperationException(string.Format("Unable to find {0}", jcoBridgeEmbeddedFile));
                }

                var fileName = Path.GetFullPath(jcoBridgeEmbeddedFile);
                fileName = fileName.Replace(searchPath, ".");
                sb.AppendLine(fileName);
            }

            var outputStr = sb.ToString();

            if (string.IsNullOrEmpty(outputStr))
            {
                return(string.Empty);                                 // discard empty folders
            }
            File.WriteAllText(Path.Combine(searchPath, fileWithNames), sb.ToString());

            string jarParam = (logLevel > LogLevel.Info) ? "cvf" : "cf";

            if (string.IsNullOrEmpty(manifestFile))
            {
                launchProcess(searchPath, Path.Combine(jdkFolder, JarCompiler), jarParam + " " + destinationJar + " @" + fileWithNames, timeout);
            }
            else
            {
                launchProcess(searchPath, Path.Combine(jdkFolder, JarCompiler), jarParam + "m " + destinationJar + " " + manifestFile + " @" + fileWithNames, timeout);
            }
            return(assemblyName);
        }