Beispiel #1
0
        public static MonthlySettings Random(string name, string clf, DateTime date, bool interval = false)
        {
            MonthlySettings result = new MonthlySettings();

            result.Wiring  = Wiring.Random(interval);
            Wiring.Current = result.Wiring;

            result.Name             = name;
            result.Classification   = clf;
            result.Date             = new DateTime(date.Year, date.Month, 1);
            result.Indicator        = RandomUtil.GetRandomAlpha(GROUP_SIZE);
            result.NumericIndicator = RandomUtil.GetRandomNumeric(GROUP_SIZE);

            for (int d = 1; d <= DateTime.DaysInMonth(date.Year, date.Month); d++)
            {
                result.DailySettings.Add(Settings.Random());

                result.DailySettings.Last().Date = new DateTime(date.Year, date.Month, d);
            }

            result.DailySettings.ForEach(s =>
            {
                s.ParentSettings = result;
                s.ParentId       = result.Id;
            });

            IndicatorUtil.FixDuplicateIndicators(result.DailySettings);

            return(result);
        }
Beispiel #2
0
        public static Settings Random()
        {
            Settings result = new Settings();

            result.Date             = DateTime.Now.Date;
            result.Indicator        = RandomUtil.GetRandomAlpha(5);
            result.NumericIndicator = RandomUtil.GetRandomNumeric(5);
            result.StartPosition    = RandomUtil.GetRandomAlpha(8);

            List <RotorName>     rotors  = RandomUtil.GetRandomEnumSequence <RotorName>(8);
            List <NotchRingName> notches = RandomUtil.GetRandomEnumSequence <NotchRingName>(8);

            for (int i = 0; i < 8; i++)
            {
                result.Rotors.Add(new RotorSetting
                {
                    RotorName            = rotors[i],
                    NotchRingName        = notches[i],
                    AlphabetRingPosition = RandomUtil._rand.Next(36),
                    NotchRingPosition    = RandomUtil._rand.Next(36),
                    ParentId             = result.Id,
                    ParentSettings       = result
                });
            }

            Machine m = new Machine(result);

            result.Check = m.Encipher(new string('L', 45)).Substring(35, 10);

            return(result);
        }
Beispiel #3
0
        public static YearlySettings Random(string title, string classification, DateTime date, bool interval = false)
        {
            YearlySettings result = new YearlySettings
            {
                Date             = date,
                Classification   = classification,
                Name             = title,
                Indicator        = RandomUtil.GetRandomAlpha(5),
                NumericIndicator = RandomUtil.GetRandomNumeric(5)
            };

            for (int i = 1; i <= 12; i++)
            {
                result.MonthlySettings.Add(KL7A.Configuration.MonthlySettings.Random(title, classification, new DateTime(date.Year, i, 1), interval));
            }

            result.MonthlySettings.ForEach(m =>
            {
                m.ParentId       = result.Id;
                m.ParentSettings = result;
            });

            IndicatorUtil.FixDuplicateIndicators(result.MonthlySettings);
            IndicatorUtil.FixDuplicateIndicators(result.MonthlySettings.SelectMany(m => m.DailySettings));

            return(result);
        }
Beispiel #4
0
        public Message(string fileName)
        {
            _mode = ConstructorMode.FileName;

            YearlySettings ys = YearlySettings.Open(fileName);

            _settings      = ys.Today;
            Wiring.Current = _settings.ParentSettings.Wiring;

            _machine = new Machine(_settings);

            MessageKey = RandomUtil.GetRandomAlpha(5);

            _fileName = fileName;
        }
Beispiel #5
0
        public Message(int id)
        {
            _mode = ConstructorMode.Id;

            YearlySettings ys = YearlySettings.ReadFromDb(id);

            _settings      = ys.Today;
            Wiring.Current = _settings.ParentSettings.Wiring;

            _machine = new Machine(_settings);

            MessageKey = RandomUtil.GetRandomAlpha(5);

            _id = id;
        }
Beispiel #6
0
        public Message(Settings s)
        {
            _mode = ConstructorMode.Settings;

            _settings = s;
            _machine  = new Machine(_settings);

            Wiring.Current = Wiring.Default();

            if (_settings.ParentSettings != null)
            {
                if (_settings.ParentSettings.Wiring != null)
                {
                    Wiring.Current = _settings.ParentSettings.Wiring;
                }
            }

            MessageKey = RandomUtil.GetRandomAlpha(5);
        }
Beispiel #7
0
        public KeySheet(int year)
        {
            Year = year;

            Sheets           = new List <DailySheet>();
            SheetDefinitions = new List <Sheet>();

            List <Tuple <DailySheet, int> > values = new List <Tuple <DailySheet, int> >();

            for (int m = 1; m <= 12; m++)
            {
                for (int d = 1; d <= DateTime.DaysInMonth(year, m); d++)
                {
                    DailySheet ds = new DailySheet {
                        Month = m, Day = d
                    };
                    values.Add(new Tuple <DailySheet, int>(ds, RandomUtil._rand.Next()));
                }
            }

            DailySheet[] ary = values.OrderBy(v => v.Item2).Select(v => v.Item1).ToArray();

            int pointer = 0;

            foreach (var ss in ary)
            {
                ss.SheetName = SHEET_NAMES[pointer].ToString();
                pointer++;
                if (pointer == SHEET_NAMES.Length)
                {
                    pointer = 0;
                }
            }

            Sheets.AddRange(values.Select(v => v.Item1));

            foreach (char c in SHEET_NAMES)
            {
                Sheet s = new Sheet();

                s.Name = c.ToString();

                for (int x = 1; x <= 6; x++)
                {
                    for (int y = 1; y <= 6; y++)
                    {
                        for (int z = 1; z <= 6; z++)
                        {
                            s.Values.Add(new SheetEntry {
                                Value = RandomUtil.GetRandomAlpha(5)
                            });
                        }
                    }
                }

                SheetEntry[] entries = s.Values.OrderBy(v => v.Value).ToArray();
                pointer = 0;

                for (int x = 1; x <= 6; x++)
                {
                    for (int y = 1; y <= 6; y++)
                    {
                        for (int z = 1; z <= 6; z++)
                        {
                            entries[pointer].Key = string.Format("{0}{1}{2}", x, y, z);
                            pointer++;
                        }
                    }
                }

                SheetDefinitions.Add(s);
            }
        }