Exemplo n.º 1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            var settings = new WorkSettings
            {
                TargetPath            = TargetPath,
                TargetArgs            = TargetArgs,
                TargetWorkingDir      = TargetWorkingDir,
                FileNameForReport     = FileNameForReport,
                LogLevel              = ((int)LogLevel),
                DisableFlattenDomains = ckbFlattenDomains.Checked
            };

            settings.IncludeRules(IncludeItems);
            settings.ExcludeRules(ExcludeItems);

            dlgSave.Filter = "Settings files (*.xml)|*.xml";
            if (dlgSave.ShowDialog(this) != DialogResult.OK)
            {
                return;
            }

            try
            {
                settings.GenerateSettingsFileName = dlgSave.FileName;
                settings.GenerateSettingsFile();
                ShowInformation("Settings were saved!");
            }
            catch (Exception ex)
            {
                ShowInformation("Cannot save settings (" + ex.Message + ")");
            }
        }
Exemplo n.º 2
0
 public static bool IsDisabledByLabor(IntVec3 pos, Pawn pawn, WorkTypeDef workType)
 {
     if (pos != null && pawn.Map.areaManager.Get <Area_Labor>() != null &&
         !WorkSettings.WorkDisabled(workType))
     {
         return(pawn.Map.areaManager.Get <Area_Labor>()[pos]);
     }
     return(false);
 }
Exemplo n.º 3
0
 public static bool canWorkHere(IntVec3 pos, Pawn pawn, WorkTypeDef workType)
 {
     if (!pawn.IsPrisonerOfColony && pos != null && pawn.Map.areaManager.Get <Area_Labor>() != null &&
         !WorkSettings.WorkDisabled(workType))
     {
         return(!pawn.Map.areaManager.Get <Area_Labor>()[pos]);
     }
     return(true);
 }
Exemplo n.º 4
0
        public void ViewAllCommands(WorkSettings ws)
        {
            Console.WriteLine("Доступные команды:");

            foreach (KeyValuePair <string, Dictionary <string, string> > command in ws.Settings.Commands)
            {
                Console.WriteLine("    " + command.Value["Command"] + " - " + command.Value["Description"] + ".");
            }
            Console.WriteLine();
        }
Exemplo n.º 5
0
        private void btnLoad_Click(object sender, EventArgs e)
        {
            dlgOpen.Filter = "Settings files (*.xml)|*.xml";
            if (dlgOpen.ShowDialog(this) != DialogResult.OK)
            {
                return;
            }

            var settings = new WorkSettings
            {
                SettingsFile = dlgOpen.FileName
            };

            try
            {
                settings.ReadSettingsFile();
            }
            catch (Exception ex)
            {
                ShowInformation("Cannot load settings (" + ex.Message + ")");
                return;
            }

            tbPath.Text       = settings.TargetPath;
            tbWorkingDir.Text = settings.TargetWorkingDir;
            tbArgs.Text       = settings.TargetArgs;

            SetLoggingEnabled(chkLoggingDumpMethod, settings.LogLevel, Logging.DumpMethod);
            SetLoggingEnabled(chkLoggingDumpInstrumentation, settings.LogLevel, Logging.DumpInstrumentation);
            SetLoggingEnabled(chkLoggingInstrumentMessages, settings.LogLevel, Logging.MethodInstrumentation);
            SetLoggingEnabled(chkLoggingMethodInner, settings.LogLevel, Logging.MethodInner);
            SetLoggingEnabled(chkLoggingSkipByRule, settings.LogLevel, Logging.SkipByRules);
            SetLoggingEnabled(chkLoggingSkipByState, settings.LogLevel, Logging.SkipByState);

            ckbFlattenDomains.Checked = settings.DisableFlattenDomains;
            tbRules.Text = string.Empty;

            foreach (var s in settings.IncludeItems)
            {
                if (tbRules.Text.Length > 0)
                {
                    tbRules.Text = tbRules.Text + "\r\n";
                }
                tbRules.Text = tbRules.Text + "+" + s;
            }
            foreach (var s in settings.ExcludeItems)
            {
                if (tbRules.Text.Length > 0)
                {
                    tbRules.Text = tbRules.Text + "\r\n";
                }
                tbRules.Text = tbRules.Text + "-" + s;
            }
        }
Exemplo n.º 6
0
 public string takeCommand(string enterCommand, WorkSettings ws)
 {
     enterCommand = enterCommand.Trim();
     foreach (KeyValuePair <string, Dictionary <string, string> > command in ws.Settings.Commands)
     {
         if (enterCommand == command.Value["Command"])
         {
             return(command.Key);
         }
     }
     return(null);
 }
 private static IReportWriter GetReportWriter(WorkSettings settings)
 {
     IReportWriter reportWriter;
     if (settings.ReportFormat == "ncover")
     {
         reportWriter = new NCoverReportWriter();
     }
     else
     {
         reportWriter = new DefaultReportWriter();
     }
     return reportWriter;
 }
Exemplo n.º 8
0
        public void LoadSettingsFile_FullPath()
        {
            // arrange
            var settings = new WorkSettings();
            settings.SettingsFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FullPath.config");

            // act
            settings.ReadSettingsFile();

            // assert
            Assert.AreEqual(@"C:\TEMP\TARGET.EXE", settings.TargetPath);
            Assert.AreEqual(@"C:\TEMP", settings.TargetWorkingDir);
            Assert.AreEqual(@"C:\TEMP\OUTPUT.TXT", settings.FileNameForReport);
        }
Exemplo n.º 9
0
        private static void CalculateDifficulty()
        {
            var value = 1000;

            if (!enableMotivationMechanics)
            {
                value -= 300;
            }
            if (advancedGrowing)
            {
                value -= 50;
            }
            value -= 500;
            if (!allowAllWorktypes)
            {
                var delta = 500 + 7 * 50 + (DefDatabase <WorkTypeDef> .DefCount - 20) * 25;
                foreach (var wtd in WorkSettings.AvailableWorkTypes)
                {
                    if (!WorkSettings.WorkDisabled(wtd))
                    {
                        delta -= 50;
                    }
                }
                if (delta > 0)
                {
                    value += delta;
                }
            }

            if (value >= 1000)
            {
                difficulty = value / 10 + " (" + "PrisonLabor_DifficultyNormal".Translate() + ")";
            }
            else if (value >= 800)
            {
                difficulty = value / 10 + " (" + "PrisonLabor_DifficultyCasual".Translate() + ")";
            }
            else if (value >= 500)
            {
                difficulty = value / 10 + " (" + "PrisonLabor_DifficultyEasy".Translate() + ")";
            }
            else if (value >= 300)
            {
                difficulty = value / 10 + " (" + "PrisonLabor_DifficultyPeaceful".Translate() + ")";
            }
            else
            {
                difficulty = value / 10 + " (" + "PrisonLabor_DifficultyJoke".Translate() + ")";
            }
        }
Exemplo n.º 10
0
        internal static void Pre_v0_9_4()
        {
            if (WorkSettings.AllowedWorkTypes.Contains(WorkTypeDefOf.Warden))
            {
                WorkSettings.AllowedWorkTypes.Remove(WorkTypeDefOf.Warden);
            }
            if (WorkSettings.AllowedWorkTypes.Contains(PL_DefOf.PrisonLabor_Jailor))
            {
                WorkSettings.AllowedWorkTypes.Remove(PL_DefOf.PrisonLabor_Jailor);
            }

            WorkSettings.Apply();
            PrisonLaborPrefs.Save();
        }
Exemplo n.º 11
0
        public void LoadSettingsFile_RelPath()
        {
            // arrange
            var newPath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\"));
            var settings = new WorkSettings();
            settings.SettingsFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RelPath.config");

            // act
            settings.ReadSettingsFile();

            // assert
            Assert.AreEqual(Path.Combine(newPath, "TARGET.EXE"), Path.GetFullPath(settings.TargetPath));
            Assert.AreEqual(newPath, Path.GetFullPath(settings.TargetWorkingDir));
            Assert.AreEqual(Path.Combine(newPath, "OUTPUT.TXT"), Path.GetFullPath(settings.FileNameForReport));
        }
Exemplo n.º 12
0
        public void LoadSettingsFile_FullPath()
        {
            // arrange
            var settings = new WorkSettings();

            settings.SettingsFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FullPath.config");

            // act
            settings.ReadSettingsFile();

            // assert
            Assert.AreEqual(@"C:\TEMP\TARGET.EXE", settings.TargetPath);
            Assert.AreEqual(@"C:\TEMP", settings.TargetWorkingDir);
            Assert.AreEqual(@"C:\TEMP\OUTPUT.TXT", settings.FileNameForReport);
        }
Exemplo n.º 13
0
        public void LoadSettingsFile_RelPath()
        {
            // arrange
            var newPath  = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\"));
            var settings = new WorkSettings();

            settings.SettingsFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RelPath.config");

            // act
            settings.ReadSettingsFile();

            // assert
            Assert.AreEqual(Path.Combine(newPath, "TARGET.EXE"), Path.GetFullPath(settings.TargetPath));
            Assert.AreEqual(newPath, Path.GetFullPath(settings.TargetWorkingDir));
            Assert.AreEqual(Path.Combine(newPath, "OUTPUT.TXT"), Path.GetFullPath(settings.FileNameForReport));
        }
Exemplo n.º 14
0
 public static bool CanWorkHere(IntVec3 pos, Pawn pawn, WorkTypeDef workType)
 {
     if (!pawn.IsPrisonerOfColony && pos != null && pawn.Map.areaManager.Get <Area_Labor>() != null &&
         !WorkSettings.WorkDisabled(workType))
     {
         bool result = true;
         try
         {
             result = !pawn.Map.areaManager.Get <Area_Labor>()[pos];
         }
         catch (IndexOutOfRangeException e)
         {
             Log.Message($"IndexOutOfRangeException for {workType.label} calling pos {pos}");
         }
         return(result);
     }
     return(true);
 }
Exemplo n.º 15
0
 public static IEnumerable <Pawn> Pawns(MainTabWindow mainTabWindow)
 {
     foreach (var p in Find.VisibleMap.mapPawns.FreeColonists)
     {
         yield return(p);
     }
     if (mainTabWindow is MainTabWindow_Work || mainTabWindow is MainTabWindow_Restrict ||
         mainTabWindow.GetType().ToString().Contains("MainTabWindow_WorkTab"))
     {
         foreach (var pawn in Find.VisibleMap.mapPawns.PrisonersOfColony)
         {
             if (PrisonLaborUtility.LaborEnabled(pawn))
             {
                 WorkSettings.InitWorkSettings(pawn);
                 yield return(pawn);
             }
         }
     }
 }
Exemplo n.º 16
0
        public SelectWorkTypesDialog()
        {
            absorbInputAroundWindow = true;
            doCloseX      = true;
            doCloseButton = true;

            workTypes = new Dictionary <WorkTypeDef, bool>();

            foreach (var workType in WorkSettings.AvailableWorkTypes)
            {
                if (!WorkSettings.WorkDisabled(workType))
                {
                    workTypes.Add(workType, true);
                }
                else
                {
                    workTypes.Add(workType, false);
                }
            }
        }
Exemplo n.º 17
0
        static void Main(string[] args)
        {
            WorkSettings settings = new WorkSettings();
            DataBase     dataBase = new DataBase(settings);

            dataBase.CreateRecordsTable();
            Commands commands = new Commands();

            Console.WriteLine("Начало программы");
            bool workProgram = true;

            while (workProgram)
            {
                Console.WriteLine();
                bool   noCorrectCommandEntry = true;
                string command = null;
                while (noCorrectCommandEntry)
                {
                    Console.Write("Введите команду: ");
                    string enteredCommand = Console.ReadLine();
                    command = commands.takeCommand(enteredCommand, settings);

                    if (command == null)
                    {
                        Text.WriteLineRedText("Ошибка: Такой команды не существует!");
                        commands.ViewAllCommands(settings);
                    }
                    else
                    {
                        noCorrectCommandEntry = false;
                    }
                }
                switch (command)
                {
                case "AddNote":
                    dataBase.AddRecordToTable();
                    break;

                case "ViewAll":
                    dataBase.ViewAllNotes();
                    break;

                case "EditNote":
                    dataBase.EditNote();
                    break;

                case "DeleteNote":
                    dataBase.DeleteNote();
                    break;

                case "TaskCompleted":
                    dataBase.ChangeStatusOnDone();
                    break;

                case "TaskNoComleted":
                    dataBase.ChangeStatusOnNoDone();
                    break;

                case "ViewAllCompleted":
                    dataBase.ViewAllCompleted();
                    break;

                case "ViewAllNoCompleted":
                    dataBase.ViewAllNoCompleted();
                    break;

                case "Exit":
                    Console.WriteLine("Выход.");
                    workProgram = false;
                    break;

                default:
                    Console.WriteLine("Команда в разработке");
                    break;
                }
            }

            /*Console.Write("Введите запись: ");
             * string record = Console.ReadLine();
             *
             *
             * WorkWithDB db = new WorkWithDB();
             *
             * //Вставка записей в тиблицу
             * if(record != ""){
             *  string date = DateTime.Now.ToString();
             *  db.ExecuteQueryNoReturn(
             *      $@"INSERT INTO records (record, date)
             *          VALUES('{record}', '{date}');");
             * }
             * Console.WriteLine("Все записи:");
             * //Вывод всех записей
             *
             * db.ViewAllNotes();*/
        }
Exemplo n.º 18
0
        public override ThinkResult TryIssueJobPackage(Pawn pawn, JobIssueParams jobParams)
        {
            var need = pawn.needs.TryGetNeed <Need_Motivation>();

            if (pawn.timetable == null)
            {
                WorkSettings.InitWorkSettings(pawn);
            }
            if (HealthAIUtility.ShouldHaveSurgeryDoneNow(pawn))
            {
                return(ThinkResult.NoJob);
            }

            if (PrisonLaborPrefs.EnableFullHealRest && (HealthAIUtility.ShouldBeTendedNowByPlayer(pawn) || HealthAIUtility.ShouldSeekMedicalRest(pawn)))
            {
                return(ThinkResult.NoJob);
            }
            //Check medical assistance, fed, and rest if not override
            if (!PrisonLaborUtility.WorkTime(pawn))
            {
                Other.Tutorials.Timetable();
                if (need != null)
                {
                    need.IsPrisonerWorking = false;
                }
                return(ThinkResult.NoJob);
            }
            //Check motivation
            if (PrisonLaborPrefs.EnableMotivationMechanics && (need == null || need.IsLazy))
            {
                return(ThinkResult.NoJob);
            }
            //Work prisoners will do
            WorkSettings.InitWorkSettings(pawn);
            var workList = pawn.workSettings.WorkGiversInOrderNormal;

            //TODO check this
            //workList.RemoveAll(workGiver => workGiver.def.defName == "GrowerSow");
            if (need != null)
            {
                need.IsPrisonerWorking = false;
            }

            var num        = -999;
            var targetInfo = TargetInfo.Invalid;
            WorkGiver_Scanner workGiver_Scanner = null;

            for (var j = 0; j < workList.Count; j++)
            {
                var workGiver = workList[j];
                if (workGiver.def.priorityInType != num && targetInfo.IsValid)
                {
                    break;
                }
                if (PawnCanUseWorkGiver(pawn, workGiver))
                {
                    try
                    {
                        var job2 = workGiver.NonScanJob(pawn);
                        if (job2 != null)
                        {
                            if (need != null)
                            {
                                need.IsPrisonerWorking = true;
                            }
                            return(new ThinkResult(job2, this, workList[j].def.tagToGive));
                        }
                        var scanner = workGiver as WorkGiver_Scanner;
                        if (scanner != null)
                        {
                            if (workGiver.def.scanThings)
                            {
                                Predicate <Thing> predicate = t =>
                                                              !t.IsForbidden(pawn) && scanner.HasJobOnThing(pawn, t, false);
                                var   enumerable = scanner.PotentialWorkThingsGlobal(pawn);
                                Thing thing;
                                if (scanner.Prioritized)
                                {
                                    var enumerable2 = enumerable;
                                    if (enumerable2 == null)
                                    {
                                        enumerable2 =
                                            pawn.Map.listerThings.ThingsMatching(scanner.PotentialWorkThingRequest);
                                    }
                                    var validator = predicate;
                                    thing = GenClosest.ClosestThing_Global_Reachable(pawn.Position, pawn.Map,
                                                                                     enumerable2, scanner.PathEndMode,
                                                                                     TraverseParms.For(pawn, Danger.Deadly, TraverseMode.ByPawn, false), 9999f,
                                                                                     validator, x => scanner.GetPriority(pawn, x));
                                }
                                else
                                {
                                    var validator         = predicate;
                                    var forceGlobalSearch = enumerable != null;
                                    thing = GenClosest.ClosestThingReachable(pawn.Position, pawn.Map,
                                                                             scanner.PotentialWorkThingRequest, scanner.PathEndMode,
                                                                             TraverseParms.For(pawn, Danger.Deadly, TraverseMode.ByPawn, false), 9999f,
                                                                             validator, enumerable, 0, scanner.MaxRegionsToScanBeforeGlobalSearch, forceGlobalSearch,
                                                                             RegionType.Set_Passable, false);
                                }
                                if (thing != null)
                                {
                                    targetInfo        = thing;
                                    workGiver_Scanner = scanner;
                                }
                            }
                            if (workGiver.def.scanCells)
                            {
                                var position    = pawn.Position;
                                var num2        = 99999f;
                                var num3        = -3.40282347E+38f;
                                var prioritized = scanner.Prioritized;
                                foreach (var current in scanner.PotentialWorkCellsGlobal(pawn))
                                {
                                    var   flag = false;
                                    float num4 = (current - position).LengthHorizontalSquared;
                                    if (prioritized)
                                    {
                                        if (!current.IsForbidden(pawn) && scanner.HasJobOnCell(pawn, current))
                                        {
                                            var priority = scanner.GetPriority(pawn, current);
                                            if (priority > num3 || priority == num3 && num4 < num2)
                                            {
                                                flag = true;
                                                num3 = priority;
                                            }
                                        }
                                    }
                                    else if (num4 < num2 && !current.IsForbidden(pawn) &&
                                             scanner.HasJobOnCell(pawn, current))
                                    {
                                        flag = true;
                                    }
                                    if (flag)
                                    {
                                        targetInfo        = new TargetInfo(current, pawn.Map, false);
                                        workGiver_Scanner = scanner;
                                        num2 = num4;
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Error(string.Concat(pawn, " threw exception in WorkGiver ", workGiver.def.defName, ": ",
                                                ex.ToString()));
                    }
                    finally
                    {
                    }
                    if (targetInfo.IsValid)
                    {
                        Job job3;
                        if (targetInfo.HasThing)
                        {
                            job3 = workGiver_Scanner.JobOnThing(pawn, targetInfo.Thing, false);
                        }
                        else
                        {
                            job3 = workGiver_Scanner.JobOnCell(pawn, targetInfo.Cell);
                        }
                        if (job3 != null)
                        {
                            job3.workGiverDef = workGiver.def;
                            if (need != null)
                            {
                                need.IsPrisonerWorking = true;
                            }
                            return(new ThinkResult(job3, this, workList[j].def.tagToGive));
                        }
                        Log.ErrorOnce(
                            string.Concat(workGiver_Scanner, " provided target ", targetInfo,
                                          " but yielded no actual job for pawn ", pawn,
                                          ". The CanGiveJob and JobOnX methods may not be synchronized."), 6112651);
                    }
                    num = workGiver.def.priorityInType;
                }
            }
            return(ThinkResult.NoJob);
        }
Exemplo n.º 19
0
        static int Main(string[] args)
        {
            try
            {
                var settings = new WorkSettings();
                if (!settings.InitializeFromCommandLine(args))
                {
                    return(-1);
                }

                if (settings.ErrorsToStdout)
                {
                    Console.SetError(Console.Out);
                }

                using (Registration.Create(settings.Register ? System.Reflection.Assembly.GetExecutingAssembly().Location : null))
                {
                    //Console.ReadLine();

                    var connector = new Connector();
                    connector.StatusMessageReceived += connector_StatusMessageReceived;
                    connector.LogEntryReceived      += connector_LogEntryReceived;

                    connector.UseFileLogging(true);
                    connector.UsePipeLogging(true);
                    connector.SetLogging((Logging)settings.LogLevel);

                    foreach (var item in settings.IncludeItems)
                    {
                        try
                        {
                            connector.IncludeItem(item);
                        }
                        catch (ArgumentException)
                        {
                            Console.Error.WriteLine("Item '" + item + "' have wrong format");
                        }
                    }

                    foreach (var item in settings.ExcludeItems)
                    {
                        try
                        {
                            connector.ExcludeItem(item);
                        }
                        catch (ArgumentException)
                        {
                            Console.Error.WriteLine("Item '" + item + "' have wrong format");
                        }
                    }

                    var options = new SessionRunOptions
                    {
                        TargetPath      = settings.TargetPath,
                        TargetDirectory = settings.TargetWorkingDir,
                        TargetArguments = settings.TargetArgs,
                        RedirectOutput  = true,
                        DelayClose      = false,
                        FlattenDomains  = !settings.DisableFlattenDomains
                    };

                    connector.Options = options;
                    connector.StartTarget();

                    try
                    {
                        var writer = settings.OutputToFile
                            ? new XmlTextWriter(File.CreateText(settings.FileNameForReport))
                            : new XmlTextWriter(Console.Out);
                        using (writer)
                        {
                            writer.Formatting  = Formatting.Indented;
                            writer.Indentation = 1;
                            writer.IndentChar  = ' ';
                            ReportSerializer.Save(writer, connector.Report);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.Error.WriteLine("Can't save report (" + ex.Message + ")");
                    }

#if DEBUG
                    WriteListOfSkippedItems(connector.Report);
#endif

                    if (connector.TargetExitCode.HasValue)
                    {
                        return(connector.TargetExitCode.Value);
                    }
                } // end using
            }
            catch (SettingsException ex)
            {
                Console.Error.WriteLine(ex.Message);
                return(-1);
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
                Console.Error.WriteLine(ex.StackTrace);
                return(-1);
            }

            return(0);
        }
Exemplo n.º 20
0
 private static void SetupLoggingForConnector(WorkSettings settings, Connector connector)
 {
     connector.UseFileLogging(true);
     connector.UsePipeLogging(false);
     connector.SetLogging((Logging) settings.LogLevel);
 }
Exemplo n.º 21
0
 private static void SetupIncludedItemsForConnector(WorkSettings settings, Connector connector)
 {
     foreach (string item in settings.IncludeItems)
     {
         try
         {
             connector.IncludeItem(item);
         }
         catch (ArgumentException)
         {
             LogError("Item '{0}' has wrong format", item);
         }
     }
 }
Exemplo n.º 22
0
 public WorkQueue(WorkSettings settings)
 {
     Work         = new ObservableCollection <BatchWork>();
     WorkSettings = settings;
 }
Exemplo n.º 23
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            WorkSettings settings = new WorkSettings();
            settings.TargetPath = TargetPath;
            settings.TargetArgs = TargetArgs;
            settings.TargetWorkingDir = TargetWorkingDir;
            settings.FileNameForReport = FileNameForReport;
            settings.LogLevel = (int)LogLevel;

            settings.IncludeRules(IncludeItems);
            settings.ExcludeRules(ExcludeItems);

            dlgSave.Filter = "Settings files (*.xml)|*.xml";
            if (dlgSave.ShowDialog(this) == DialogResult.OK)
            {
                try
                {
                    settings.GenerateSettingsFileName = dlgSave.FileName;
                    settingsWriter.GenerateSettingsFile(settings);
                    ShowInformation("Settings were saved!");
                }
                catch (Exception ex)
                {
                    ShowInformation("Cannot save settings (" + ex.Message + ")");
                }
            }
        }
Exemplo n.º 24
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            Settings = new WorkSettings();  // Создание экземпляра настроек
            startControl.BackgroundColor = Settings.BackgroundColor;

            // Добавление созданных контролов на главную форму
            this.Controls.Add(startControl);
            this.Controls.Add(login);
            this.Controls.Add(customSelect);
            this.Controls.Add(settings);
            this.Controls.Add(payment);
            this.Controls.Add(finish);

            // Настройка контролов и подписка на события от них
            foreach (Control ctrl in this.Controls)
            {
                var ac = ctrl as IActivControl; // Если контрол
                if (ac != null)                 // реализует интерфейс IActivControl
                {
                    ctrl.Visible  = false;
                    ctrl.Location = ctrl.Align(HorizontalAlign.Centre,
                                               VerticalAlign.Centre);
                    // Подписка на событие ActivControl
                    ac.ActivControl += new EventHandler <WorkEventArgs>
                                           (Set_ActivControl);
                }

                var dm = ctrl as IDeadMouse; // Если контрол
                if (dm != null)              // реализует интерфейс IDeadMouse, подписываемся
                                             // на событие DeadMouse
                {
                    dm.DeadMouse += new EventHandler(On_Dead_Mouse);
                }

                if (ctrl is IGoHome)
                {
                    ((IGoHome)ctrl).GoHomeEvent += new EventHandler(startControl.Start);
                }

                var sr = ctrl as ISettingsIsRead;
                if (sr != null)
                {
                    Settings.WorkSettingsIsRead += new EventHandler
                                                       (sr.SettingsIsRead);
                }
            }

            // Подписка на события контролов
            startControl.AdminClick      += new EventHandler(login.Start);
            startControl.UserClick       += new EventHandler(customSelect.Start);
            login.btnCancel.Click        += new EventHandler(startControl.Start);
            login.LogOK                  += new EventHandler(settings.Start);
            settings.btnCancel.Click     += new EventHandler(startControl.Start);
            customSelect.ProductSelected += new EventHandler(payment.Start);
            payment.ProductIsPaid        += new EventHandler(finish.Start);

            // Чтение настроек из файла
            Settings.Read("Settings.dat");

            // Запуск стартового контрола
            startControl.Start(this, new EventArgs());
        }
Exemplo n.º 25
0
 public DataBase(WorkSettings ws)
 {
     db = new WorkWithDB(ws.Settings.LocalDB);
 }