예제 #1
0
        public SictAufgaabeParamZerleegungErgeebnis ZerleegeShipAktuelOpenCargoLeereTyp(
            ISictAutomatZuusctand AutomaatZuusctand,
            SictShipCargoTypSictEnum CargoTyp,
            out VonSensor.WindowInventoryPrimary ErgeebnisWindowShipInventory,
            out VonSensor.Inventory ErgeebnisShipInventory)
        {
            ErgeebnisWindowShipInventory = null;
            ErgeebnisShipInventory       = null;

            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis();

            if (null == AutomaatZuusctand)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var NuzerZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var TailInventoryAuswaalZerleegungErgeebnis =
                AufgaabeParamShipAktuelOpenInventoryCargoTyp.ZerleegeShipAktuelOpenInventoryCargoTyp(
                    AutomaatZuusctand,
                    CargoTyp,
                    out ErgeebnisWindowShipInventory,
                    out ErgeebnisShipInventory);

            AufgaabeParamZerleegungErgeebnis.FüügeAn(TailInventoryAuswaalZerleegungErgeebnis);

            if (null == ErgeebnisShipInventory)
            {
                AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();

                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (!(TailInventoryAuswaalZerleegungErgeebnis.ListeKomponenteAufgaabeParam).IsNullOrEmpty())
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (true == ErgeebnisShipInventory.SictwaiseScaintGeseztAufListNict)
            {
                //	!!!!	Meldung Warnung

                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktInventorySezeSictTypAufList(ErgeebnisWindowShipInventory),
                    false);
            }
            else
            {
                var InventoryLinxTreeListeEntry = ErgeebnisWindowShipInventory.LinxTreeListeEntry;

                if (null != InventoryLinxTreeListeEntry)
                {
                    var LinxEntryItemHangar =
                        InventoryLinxTreeListeEntry
                        .FirstOrDefault((Kandidaat) => Regex.Match(Kandidaat.LabelText ?? "", "item hangar", RegexOptions.IgnoreCase).Success);

                    var AuswaalReczListeItem = ErgeebnisShipInventory.ListeItem;

                    if (null != AuswaalReczListeItem &&
                        null != LinxEntryItemHangar)
                    {
                        var AuswaalReczListeItemFrühesteDrai = AuswaalReczListeItem.Take(3).ToArray();

                        if (0 < AuswaalReczListeItemFrühesteDrai.Length)
                        {
                            //	zu klikende Item mit etwas zuufal auswääle
                            var AuswaalItem =
                                AuswaalReczListeItemFrühesteDrai.ElementAtOrDefault((int)((NuzerZaitMili / 100) % AuswaalReczListeItemFrühesteDrai.Length));

                            /*
                             * 2014.03.28
                             *
                             * Tail select all vorersct sctilgeleegt
                             *
                             * if (null != WindowInventoryZuusctand)
                             * {
                             *      if ((!VersuucMenuEntryKlikLezteZait.HasValue ||
                             *              VersuucMenuEntryKlikLezteZait < WindowInventoryZuusctand.BeginZait) &&
                             *              3 < AuswaalReczListeItem.Length)
                             *      {
                             *              //	Saitdeem WindowInventory ersctelt wurde, wurde noc kain Versuuc unternome ain MenuEntry zu aktiviire.
                             *
                             *              //	Versuuce ale Item auszuwääle
                             *
                             *              var AnforderungGbsMenu =
                             *                      new SictAnforderungMenuBescraibung(
                             *                              AuswaalItem,
                             *                              AnforderungLeereCargoWindowInventory,
                             *                              true,
                             *                              new SictAnforderungMenuKaskaadeAstBedingung[]{
                             *                                      new	SictAnforderungMenuKaskaadeAstBedingung("select all"),});
                             *
                             *              return new SictWirkungNaacGbsUndShipSlot(new string[] { ZwekBeginKomponente, "select all items" }, AnforderungGbsMenu);
                             *      }
                             * }
                             * *
                             * */

                            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktInventoryItemTransport(
                                                                         new SictInventoryItemTransport(
                                                                             ErgeebnisWindowShipInventory,
                                                                             LinxEntryItemHangar,
                                                                             new VonSensor.InventoryItem[] { AuswaalItem })));

                            if (AuswaalReczListeItem.Length <= 1)
                            {
                                AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();
                            }
                        }
                    }
                }
            }

            return(AufgaabeParamZerleegungErgeebnis);
        }