Пример #1
0
        void Sorting(RevisionCl rowL, int newEtap, int oldEtap)
        {
            try
            {
                if (revL != null)
                {
                    if (revL.All(r => r.Etap != newEtap))   // чтобы не было дублирующих этапов
                    {
                        var removeRows = revL.Where(r => r.Etap == oldEtap).OrderByDescending(r => r).ToList();

                        int removeRowsCount = removeRows.Count();
                        if (removeRows != null)
                        {
                            foreach (var rem in removeRows)
                            {
                                revL.Remove(rem);
                            }

                            List <int> ind = new List <int>();
                            var        devidedByRevicion = revL.GroupBy(g => g.Revision);

                            if (devidedByRevicion != null && devidedByRevicion.Count() > 0)
                            {
                                foreach (var devR in devidedByRevicion)
                                {
                                    var lastEt = devR.LastOrDefault(r => r.Etap <= newEtap);
                                    if (lastEt == null)
                                    {
                                        lastEt = devR.Last();
                                    }
                                    ind.Add(revL.IndexOf(lastEt));
                                }
                            }
                            else
                            {
                                ind = Enumerable.Repeat(-1, removeRowsCount).ToList();
                            }

                            if (ind != null && ind.Count == removeRowsCount)
                            {
                                int chet = ind.Count - 1;

                                foreach (var rem in removeRows)
                                {
                                    var rev = (rem as RevisionCl).Copy();
                                    rev.Etap = newEtap;
                                    revL.Insert(ind[chet] + 1, new RevisionClWithEvent(rev));
                                    chet -= 1;
                                }
                            }
                        }
                    }
                }
            }
            catch
            {
                throw;
            }
        }
Пример #2
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            var formats = GetOutputFormats().ToArray();

            if (formats.Length == 0)
            {
                MessageBox.Show("Please select at least one output formats (Folder, Cbz...)");
                return;
            }
            var items = (from DataGridViewRow row in dgvChapter.Rows where row.Selected select row.DataBoundItem as Chapter).ToList();

            items.Reverse();
            foreach (var item in items.Where(item => _downloadQueue.All(r => r.Chapter.Url != item.Url)))
            {
                _downloadQueue.Add(new DownloadChapterTask(item, txtSaveTo.Text, formats));
            }
        }
Пример #3
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            var formats = GetOutputFormats().ToArray();

            if (formats.Length == 0)
            {
                MessageBox.Show("Please select at least one output format (Folder, Cbz...)");
                return;
            }
            var items = (from DataGridViewRow row in dgvChapter.Rows where row.Selected select row.DataBoundItem as Chapter).ToList();

            items = ApplicationConfiguration.DeepClone <IEnumerable <Chapter> >(items).ToList();
            items.Reverse();
            foreach (var item in items.Where(item => _downloadQueue.All(r => r.Chapter.Url != item.Url)))
            {
                var savePath = GetSavePath(item);
                _downloadQueue.Add(new DownloadChapterTask(item, savePath, formats));
            }
        }
Пример #4
0
        internal IEnumerable <string> TestPackage()
        {
            if (Code.Length != 3)
            {
                yield return("**CRITICAL** Package code must have exactly 3 chars.");
            }
            if (string.IsNullOrWhiteSpace(SourceCodeFile))
            {
                yield return("Source code file path cannot be empty.");
            }
            if (string.IsNullOrWhiteSpace(Docs))
            {
                yield return("Docs file path cannot be empty.");
            }

            var    processed = new HashSet <string>();
            ushort counter   = 0;

            foreach (var test in Tests)
            {
                if (!test.ValidateTest())
                {
                    yield return($"Test {(test.TestName.Length == 0 ? "(unnamed)" : test.TestCodeName)} failed tests.");
                }
                else
                {
                    if (test.IsInSubGroup())
                    {
                        if (processed.Contains(test.SubGroupName()))
                        {
                            continue;
                        }
                        processed.Add(test.SubGroupName());
                        counter++;
                    }
                    else if (processed.Contains(test.TestCodeName))
                    {
                        yield return($"Test name {test.TestCodeName} duplicate found.");
                    }
                    else if (test.Type == "Normal")
                    {
                        counter++;
                    }
                }
            }

            for (var i = 0; i < counter; i++)
            {
                if (Tests.All(test => test.SubGroupName() != i.ToString()))
                {
                    yield return($"Test group {i} is missing.");
                }
            }
        }
Пример #5
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            var items = new List <Chapter>();

            foreach (DataGridViewRow row in dgvChapter.Rows)
            {
                if (row.Selected)
                {
                    items.Add((Chapter)row.DataBoundItem);
                }
            }

            items.Reverse();
            foreach (Chapter item in items)
            {
                if (_downloadQueue.All(r => r.Chapter.Url != item.Url))
                {
                    _downloadQueue.Add(new DownloadChapterTask(item, txtSaveTo.Text, GetOutputFormats()));
                }
            }
        }
Пример #6
0
        private void AdicionarProcesso(Processo processo)
        {
            if (_processos.All(p => p.Id != processo.Id))
            {
                _processos.Add(new ProcessProduction
                {
                    Descricao = processo.Descricao,
                    Id        = (int)processo.Id,
                    Ordem     = _processos.Count == 0 ? 1 : _processos.Max(p => p.Ordem) + 1
                });

                CarregarProcessos();
            }
        }
Пример #7
0
        private void ActiveTasksForm_Load(object sender, EventArgs e)
        {
            Text = ResourceManager.GetString("ActiveTasks");
            ActiveTasks.AddRange(TaskManager.Tasks);
            TaskManager.TaskCompleted        += TaskCompleted;
            TaskManager.TaskManagerCompleted += TaskManagerCompleted;
            if (!ActiveTasks.Any() || ActiveTasks.All(x => x.InnerTask.IsCompleted))
            {
                AllTasksCompleted?.Invoke();
            }

            ActiveTasksGridView.AutoGenerateColumns = false;
            ActiveTasksGridView.DataSource          = ActiveTasks;
            ActiveTasksGridView.Refresh();
        }
Пример #8
0
        /// <summary>
        /// Hooks up event handlers for <see cref="DesktopIntegration.AccessPoints.DefaultAccessPoint"/>s.
        /// </summary>
        /// <typeparam name="T">The specific kind of <see cref="DesktopIntegration.AccessPoints.DefaultAccessPoint"/> to handle.</typeparam>
        /// <param name="checkBoxSimple">The simple mode checkbox for this type of <see cref="DesktopIntegration.AccessPoints.CommandAccessPoint"/>.</param>
        /// <param name="labelSimple">A simple mode description for this type of <see cref="DesktopIntegration.AccessPoints.CommandAccessPoint"/>.</param>
        /// <param name="checkBoxSelectAll">The "select all" checkbox for this type of <see cref="DesktopIntegration.AccessPoints.CommandAccessPoint"/>.</param>
        /// <param name="model">A model represeting the underlying <see cref="Store.Model.Capabilities.DefaultCapability"/>s and their selection states.</param>
        private void SetupDefaultAccessPoint <T>(CheckBox checkBoxSimple, Label labelSimple, CheckBox checkBoxSelectAll, BindingList <T> model)
            where T : CapabilityModel
        {
            bool suppressEvent = false;

            checkBoxSelectAll.CheckedChanged += delegate { if (!suppressEvent)
                                                           {
                                                               model.SetAllUse(checkBoxSelectAll.Checked);
                                                           }
            };

            _switchToBasicMode    += () => SetDefaultAccessPointCheckBox(checkBoxSimple, labelSimple, model);
            _switchToAdvancedMode += () =>
            {
                SetDefaultAccessPointCheckBox(checkBoxSimple, model);

                suppressEvent             = true;
                checkBoxSelectAll.Checked = model.All(element => element.Use);
                suppressEvent             = false;
            };
        }
Пример #9
0
 protected override bool CanAccept()
 {
     return(mItems.Count > 0 && mItems.All(i => i.SelectedItem != null));
 }
Пример #10
0
        public FreeCellGame()
        {
            Width = DefaultWidth;
            Height = DefaultHeight;


            var Margin = (DefaultWidth - CardInfo.Width * 8) / 9;

            var GameOverBox = new TextBox
            {
                Width = DefaultWidth,
                TextAlignment = System.Windows.TextAlignment.Center,
                Foreground = Brushes.White,
                Background = Brushes.Transparent,
                BorderThickness = new Thickness(0),
                IsReadOnly = true,
                FontSize = 24,
            }.MoveTo(0, DefaultHeight / 2).AttachTo(this);

            GameOver += delegate
            {
                GameOverBox.Text = "Congratulations! You Won!";
            };

            #region king
            var KingCanvas = new Canvas
            {
                Width = 96,
                Height = 96
            }.AttachTo(this).MoveTo(
                (DefaultWidth - 32) / 2,
                Margin * 2 + (CardInfo.Height - 32) / 2
            );

            var KingRight = new kingbitm().AttachTo(KingCanvas);

            var KingLeft = new kingleft().AttachTo(KingCanvas);

            var KingSmile = new kingsmil().AttachTo(KingCanvas);

            KingSmile.Hide();

            #endregion

            this.MyDeck.Overlay.MouseMove +=
                (sender, args) =>
                {
                    var p = args.GetPosition(this.MyDeck.Overlay);

                    if (p.X < DefaultWidth / 2)
                    {
                        KingLeft.Show();
                        KingRight.Hide();
                    }
                    else
                    {
                        KingLeft.Hide();
                        KingRight.Show();
                    }
                };

            this.MyStatus = new StatusControl().AttachContainerTo(this).MoveContainerTo(
                (DefaultWidth - StatusControl.Width) / 2,
                (DefaultHeight - StatusControl.Height)
            );



            //this.MyStatus.Container.Hide();

            // add autoscroll ?
            this.MyDeck.SizeTo(DefaultWidth, DefaultHeight);
            this.MyDeck.AttachContainerTo(this);
            this.MyDeck.GetRank = e => (int)RankMapping[e];

            System.Console.WriteLine("--- freecell ---");

            System.Console.WriteLine("adding card infos... ");

            MyDeck.UnusedCards.AddRange(CardInfo.FullDeck());

            this.MyStatus.CardsLeft = MyDeck.UnusedCards.Count;
            this.MyStatus.Score = -1;
            this.MyStatus.Update();

            System.Console.WriteLine("creating stacklists... ");

            PlayStacks = MyDeck.CreateStackList();
            PlayStacks.ForEachNewItem(
                k =>
                {
                    k.CardMargin = new Vector { Y = 20 };
                    k.Update();
                }
            );

            TempStacks = MyDeck.CreateStackList();

            Func<bool> Rule_WinConditionMet =
                delegate
                {
                    if (PlayStacks.All(s => s.Cards.Count > 0))
                        return false;

                    if (TempStacks.All(s => s.Cards.Count == 0))
                        return false;

                    return true;
                };

            Action MyStatus_UpdateCardsLeft =
                delegate
                {

                    MyStatus.CardsLeft = 0;

                    PlayStacks.ForEach(q => MyStatus.CardsLeft += q.Cards.Count);
                    TempStacks.ForEach(q => MyStatus.CardsLeft += q.Cards.Count);
                };

            GoalStacks = MyDeck.CreateStackList();
            GoalStacks.ForEachNewItem(
                k =>
                {

                    k.CardMargin.Y = 0;

                    k.Cards.ForEachNewItem(
                        card =>
                        {
                            Console.WriteLine("GoalStacks ForEachNewItem " + new { k.CardMargin.Y });

                            if (card.Info.Rank == CardInfo.RankEnum.RankKing)
                            {
                                KingSmile.Show();

                                card.VisibleSide = Card.SideEnum.BackSide;


                                if (Rule_WinConditionMet())
                                {
                                    // winner!
                                    MyDeck.Sounds.win();

                                    if (this.GameOver != null)
                                        this.GameOver();
                                }
                                else
                                {
                                    600.AtDelay(KingSmile.Hide);
                                }
                            }


                            MyStatus_UpdateCardsLeft();
                            MyStatus.Update();
                        }
                    );
                }
            );

            Func<Card, Card, bool> RuleForStackingCardsInGoalStack =
                (Previous, Current) =>
                {
                    if (Cheat)
                        return true;

                    if (Previous == null)
                        return Current.Info.Rank == CardInfo.RankEnum.RankAce;

                    if (Previous.Info.Suit != Current.Info.Suit)
                        return false;

                    if (Previous.Rank != Current.Rank + 1)
                        return false;

                    return true;
                };

            Func<Card, Card, bool> RuleForStackingCardsInPlayStack =
                (Previous, Current) =>
                {
                    if (Cheat)
                        return true;

                    if (Previous.Info.SuitColor == Current.Info.SuitColor)
                        return false;

                    if (Previous.Rank + 1 != Current.Rank)
                        return false;

                    return true;
                };


            #region rules
            MyDeck.ApplyCardRules += delegate(Card card)
            {

                #region MovedByLocalPlayer
                card.MovedByLocalPlayer +=
                    delegate
                    {
                        var FrozenTokens = new
                        {
                            card.CurrentStack,
                            card.PreviousStack
                        };

                        Console.WriteLine(new { HistoryMove = card, StackedCards = card.StackedCards.Length, Previous = card.PreviousStack, Current = card.CurrentStack }.ToString());

                        History.History.Add(
                            delegate
                            {


                                // we already are at the state we want to be
                                if (card.CurrentStack == FrozenTokens.PreviousStack)
                                    return;

                                card.VisibleSide = Card.SideEnum.TopSide;
                                card.AnimatedMoveToStack(FrozenTokens.PreviousStack, null);


                                this.MyDeck.Sounds.deal();

                                MyStatus.Moves--;
                                MyStatus_UpdateCardsLeft();
                                MyStatus.Update();
                            },
                            delegate
                            {
                                MyStatus.Moves++;
                                MyStatus.Update();

                                // we already are at the state we want to be
                                if (card.CurrentStack == FrozenTokens.CurrentStack)
                                    return;



                                card.AnimatedMoveToStack(FrozenTokens.CurrentStack, null);
                                this.MyDeck.Sounds.deal();



                            }
                        );
                    };
                #endregion


                card.VisibleSide = Card.SideEnum.TopSide;

                card.ValidateDragStart =
                    delegate
                    {
                        if (Cheat)
                            return true;

                        // cannot remove cards from goal stack
                        if (GoalStacks.Contains(card))
                            return false;

                        // cannot drag a pile of cards unless alternate colors and descending numbers
                        return card.SelectedCards.AllWithPrevious(RuleForStackingCardsInPlayStack);
                    };

                card.ValidateDragStop =
                    CandidateStack =>
                    {
                        if (Cheat)
                            return true;

                        if (TempStacks.Contains(CandidateStack))
                        {
                            // temp only holds one card
                            if (CandidateStack.Cards.Count > 0)
                                return false;

                            // and only one card can be inserted
                            if (card.StackedCards.Length > 0)
                                return false;

                            return true;
                        }

                        if (PlayStacks.Contains(CandidateStack))
                        {
                            if (CandidateStack.Cards.Count == 0)
                                return true;


                            return (RuleForStackingCardsInPlayStack(CandidateStack.Cards.Last(), card));
                        }

                        if (GoalStacks.Contains(CandidateStack))
                        {
                            if (CandidateStack.Cards.Count == 0)
                            {

                                return (RuleForStackingCardsInGoalStack(null, card));
                            }

                            return (RuleForStackingCardsInGoalStack(CandidateStack.Cards.Last(), card));

                        }

                        return false;
                    };
            };
            #endregion


            System.Console.WriteLine("creating goalstack... ");


            GoalStacks.AddRange(
                Enumerable.Range(0, 4).ToArray(
                    i =>
                        new CardStack
                        {
                            Name = "GoalStack " + i
                        }.MoveTo(
                            DefaultWidth - Margin / 2 - ((CardInfo.Width + Margin / 2) * 4) + i * (CardInfo.Width + Margin / 2),
                            Margin * 2
                        )
                )
            );

            System.Console.WriteLine("creating tempstack... ");


            TempStacks.AddRange(
                Enumerable.Range(0, 4).ToArray(
                    i => new CardStack
                    {
                        Name = "TempStack " + i
                    }.MoveTo(
                        Margin + i * (CardInfo.Width + Margin / 2),
                        Margin * 2
                    )
                )
            );

            System.Console.WriteLine("creating playstack... ");

            PlayStacks.AddRange(
                Enumerable.Range(0, 8).ToArray(
                    i => new CardStack
                    {
                        Name = "PlayStack " + i
                    }.MoveTo(
                        Margin + (i) * (CardInfo.Width + Margin),
                        Margin * 4 + CardInfo.Height
                    ).Apply(
                        s =>
                        {
                            var Count = 6;

                            if (i < 4)
                                Count = 7;

                            s.Cards.AddRange(MyDeck.FetchCards(Count));
                        }
                    )
                )
            );

        }
Пример #11
0
        public SolitaireGame()
        {
            Width = DefaultWidth;
            Height = DefaultHeight;

            System.Console.WriteLine("--- solitare ---");

            this.MyStatus = new StatusControl().AttachContainerTo(this).MoveContainerTo(
                (DefaultWidth - StatusControl.Width) / 2,
                (DefaultHeight - StatusControl.Height)
            );


            var GameOverBox = new TextBox
            {
                Width = DefaultWidth,
                TextAlignment = System.Windows.TextAlignment.Center,
                Foreground = Brushes.White,
                Background = Brushes.Transparent,
                BorderThickness = new Thickness(0),
                IsReadOnly = true,
                FontSize = 24,
            }.MoveTo(0, DefaultHeight / 2).AttachTo(this);


            // add autoscroll ?
            this.MyDeck.SizeTo(DefaultWidth, DefaultHeight);
            this.MyDeck.AttachContainerTo(this);
            this.MyDeck.GetRank = e => (int)RankMapping[e];


            System.Console.WriteLine("adding card infos... ");

            MyDeck.UnusedCards.AddRange(CardInfo.FullDeck());

            this.MyStatus.Score = -1;
            this.MyStatus.CardsLeft = this.MyDeck.UnusedCards.Count;
            this.MyStatus.Update();


            MyDeck.Stacks.ListChanged +=
                (sender, args) =>
                {
                    if (args.ListChangedType == ListChangedType.ItemAdded)
                    {
                        // fixme: dynamically set backside for this card

                        //var s = MyDeck.Stacks[args.NewIndex];
                        //s.SetBackground(MyDeck.GfxPath + "/spider.empty.png");
                    }
                };


            System.Console.WriteLine("creating stacklists... ");

            PlayStacks = MyDeck.CreateStackList();
            TempStacks = MyDeck.CreateStackList();
            GoalStacks = MyDeck.CreateStackList();

            PlayStacks.ForEachNewItem(
                delegate(CardStack s)
                {
                    s.CardMargin = new Vector { Y = 20 };
                    s.Update();

                    s.Cards.ListChanged +=
                        (sender, args) =>
                        {
                            if (args.ListChangedType == ListChangedType.ItemDeleted)
                                s.RevealLastCard();
                        };

                }
            );



            GameOver += delegate
            {
                GameOverBox.Text = "Congratulations! You Won!";
            };


            System.Console.WriteLine("creating goalstack... ");

            var Margin = (DefaultWidth - CardInfo.Width * 7) / 8;

            var ReserveStack = new CardStack().MoveTo(Margin, Margin);
            var UsedChoiceStack = new CardStack().MoveTo(Margin + CardInfo.Width + Margin, Margin);
            var ChoiceStack = new CardStack().MoveTo(Margin + CardInfo.Width + Margin, Margin);


            TempStacks.AddRange(
                ReserveStack,
                UsedChoiceStack,
                ChoiceStack
            );


            ReserveStack.CardMargin.X = 0;
            ReserveStack.CardMargin.Y = 0;

            UsedChoiceStack.CardMargin.X = 0;
            UsedChoiceStack.CardMargin.Y = 0;

            ChoiceStack.CardMargin.X = 20;
            ChoiceStack.CardMargin.Y = 0;



            #region rules
            Func<bool> Rule_WinConditionMet =
                delegate
                {
                    if (PlayStacks.All(s => s.Cards.Count > 0))
                        return false;

                    if (TempStacks.All(s => s.Cards.Count == 0))
                        return false;

                    return true;
                };

            Func<Card, Card, bool> RuleForStackingCardsInGoalStack =
                (Previous, Current) =>
                {
                    if (Cheat)
                        return true;

                    if (Previous == null)
                        return Current.Info.Rank == CardInfo.RankEnum.RankAce;

                    if (Previous.Info.Suit != Current.Info.Suit)
                        return false;

                    if (Previous.Rank != Current.Rank + 1)
                        return false;

                    return true;
                };

            Func<Card, Card, bool> RuleForStackingCardsInPlayStack =
                (Previous, Current) =>
                {
                    if (Cheat)
                        return true;

                    if (Previous.Info.SuitColor == Current.Info.SuitColor)
                        return false;

                    if (Previous.Rank + 1 != Current.Rank)
                        return false;

                    return true;
                };

            #endregion

            MyDeck.ApplyCardRules += delegate(Card card)
            {
                card.MovedByLocalPlayer +=
                    delegate
                    {
                        MyStatus.Moves++;
                        MyStatus.Update();

                    };

                card.ValidateDragStart =
                    delegate
                    {
                        if (Cheat)
                            return true;

                        // cannot remove cards from goal stack
                        if (GoalStacks.Contains(card))
                            return false;

                        if (TempStacks.Contains(card))
                        {
                            return (card == ChoiceStack.LastOrDefault());
                        }

                        // cannot drag a pile of cards unless alternate colors and descending numbers
                        return card.SelectedCards.AllWithPrevious(RuleForStackingCardsInPlayStack);
                    };


                card.ValidateDragStop =
                    CandidateStack =>
                    {
                        if (Cheat)
                            return true;

                        if (TempStacks.Contains(CandidateStack))
                        {
                            return false;
                        }

                        if (PlayStacks.Contains(CandidateStack))
                        {
                            if (CandidateStack.Cards.Count == 0)
                                return card.Info.Rank == CardInfo.RankEnum.RankKing;


                            return (RuleForStackingCardsInPlayStack(CandidateStack.Cards.Last(), card));
                        }

                        if (GoalStacks.Contains(CandidateStack))
                        {
                            if (card.StackedCards.Length > 0)
                                return false;

                            return (RuleForStackingCardsInGoalStack(CandidateStack.Cards.LastOrDefault(), card));

                        }

                        return false;
                    };
            };



            GoalStacks.ForEachNewItem(
                s =>
                {
                    s.CardMargin.X = 0;
                    s.CardMargin.Y = 0;

                    s.Cards.ForEachNewItem(
                        card =>
                        {
                            this.MyStatus.CardsLeft--;
                            this.MyStatus.Update();

                            if (card.Info.Rank == CardInfo.RankEnum.RankKing)
                            {

                                card.VisibleSide = Card.SideEnum.BackSide;


                                if (Rule_WinConditionMet())
                                {
                                    // winner!
                                    MyDeck.Sounds.win();

                                    if (this.GameOver != null)
                                        this.GameOver();
                                }
                            }
                        }
                    );
                }
            );
            GoalStacks.AddRange(
                Enumerable.Range(0, 4).ToArray(
                    i => new CardStack().MoveTo(DefaultWidth - ((CardInfo.Width + Margin) * 4) + i * (CardInfo.Width + Margin), Margin)
                )
            );

            System.Console.WriteLine("creating playstack... ");

            PlayStacks.AddRange(
                Enumerable.Range(0, 7).ToArray(
                    i => new CardStack().MoveTo(Margin + i * (CardInfo.Width + Margin), Margin * 3 + CardInfo.Height).Apply(s => s.Cards.AddRange(MyDeck.FetchCards(i + 1)))
                )
            );

            ReserveStack.Cards.AddRange(MyDeck.FetchCards(MyDeck.UnusedCards.Count));
            ReserveStack.Update();

            PlayStacks.ForEach(k => k.Last().VisibleSide = Card.SideEnum.TopSide);


            UsedChoiceStack.Cards.ForEachNewItem(
                card => card.VisibleSide = Card.SideEnum.BackSide
            );

            ChoiceStack.Cards.ForEachNewItem(
                card => card.VisibleSide = Card.SideEnum.TopSide
            );

            ChoiceStack.Click +=
                delegate
                {
                    ChoiceStack.Update();
                }
            ;

            ReserveStack.Overlay.Cursor = Cursors.Hand;
            ReserveStack.Cards.ForEachNewItem(
                card => card.VisibleSide = Card.SideEnum.BackSide
            );





            var ReserveStackEnabled = true;

            ReserveStack.Click +=
                delegate
                {
                    if (!ReserveStackEnabled)
                        return;

                    if (ReserveStack.Cards.Count == 0)
                    {
                        MyDeck.Sounds.deal();

                        ChoiceStack.FirstOrDefault().Apply(
                            card =>
                            {

                                card.AnimatedMoveToStack(ReserveStack, null, null);
                            }
                        );

                        UsedChoiceStack.FirstOrDefault().Apply(
                            card =>
                            {

                                card.AnimatedMoveToStack(ReserveStack, null, null);
                            }
                        );
                    }
                    else
                    {
                        ReserveStackEnabled = false;


                        ChoiceStack.Cards.ToArray().ForEach(
                            card =>
                            {
                                card.AttachToStack(UsedChoiceStack);
                            }
                        );
                        UsedChoiceStack.Update();

                        3.Times(
                            SignalNext =>
                                ReserveStack.LastOrDefault().Apply(
                                    card =>
                                    {
                                        card.BringToFront();

                                        Console.WriteLine(card.ToString());

                                        card.AnimatedMoveToStack(ChoiceStack, null, null);

                                        MyDeck.Sounds.deal();

                                        200.AtDelay(SignalNext);
                                    }
                                )
                        );

                    }


                    // a timepoint when movements are done.. this should ba an event actually
                    2000.AtDelay(() => ReserveStackEnabled = true);

                };
        }
Пример #12
0
        private void GetLocalDisk(BindingList <ChiaDirectory> directories, BindingList <ChiaDirectory> temp1Directories, BindingList <ChiaDirectory> temp2Directories)
        {
            try
            {
                var drivers = DriveInfo.GetDrives().Where(c => c.DriveType != DriveType.CDRom);
                //移除
                for (int i = directories.Count - 1; i >= 0; i--)
                {
                    ChiaDirectory chiaDirectory = directories[i];
                    if (drivers.All(c => c.Name != chiaDirectory.DriveName))
                    {
                        directories.Remove(chiaDirectory);
                    }
                }
                for (int i = temp1Directories.Count - 1; i >= 0; i--)
                {
                    ChiaDirectory chiaDirectory = temp1Directories[i];
                    if (drivers.All(c => c.Name != chiaDirectory.DriveName))
                    {
                        temp1Directories.Remove(chiaDirectory);
                    }
                }
                for (int i = temp2Directories.Count - 1; i >= 0; i--)
                {
                    ChiaDirectory chiaDirectory = temp2Directories[i];
                    if (drivers.All(c => c.Name != chiaDirectory.DriveName))
                    {
                        temp2Directories.Remove(chiaDirectory);
                    }
                }
                //添加
                foreach (DriveInfo driveInfo in drivers)
                {
                    if (directories.All(c => c.DriveName != driveInfo.Name))
                    {
                        ChiaDirectory chiaDirectory = new ChiaDirectory();
                        chiaDirectory.DriveName = driveInfo.Name;
                        chiaDirectory.Checked   = true;
                        directories.Add(chiaDirectory);
                    }

                    if (temp1Directories.All(c => c.DriveName != driveInfo.Name))
                    {
                        ChiaDirectory tempDirectory = new ChiaDirectory();
                        tempDirectory.DriveName = driveInfo.Name;
                        temp1Directories.Add(tempDirectory);
                    }

                    if (temp2Directories.All(c => c.DriveName != driveInfo.Name))
                    {
                        ChiaDirectory tempDirectory = new ChiaDirectory();
                        tempDirectory.DriveName = driveInfo.Name;
                        temp2Directories.Add(tempDirectory);
                    }
                }
                //设置最终目录选定状态
                for (int i = 0; i < directories.Count; i++)
                {
                    cblD.SetItemChecked(i, directories[i].Checked);
                }
            }
            catch (Exception exception)
            {
                SetMessage(exception.Message + exception.StackTrace, MessageType.Error);
            }
        }
Пример #13
0
 void Invariant()
 {
     Contract.Invariant(AvailableDevices != null);
     Contract.Invariant(AvailableDevices.All(d => d.Path.Contains(SearchPattern)));
     Contract.Invariant(AvailableDevices.SequenceEqual(AvailableDevices.OrderBy(d => d.Path)));
 }
Пример #14
0
        public BindingList <Product> GetProductsRequisitionsOrder(int ordemProducao,
                                                                  out BindingList <int> requisicoesSelecionadas)
        {
            requisicoesSelecionadas = new BindingList <int>();
            try
            {
                _getIgdData.Open();

                var returnList = new BindingList <Product>();

                using (
                    var myCommand =
                        new SqlCommand(
                            @"SELECT  tblprodutos.Id,
                                    tblprodutos.Codigo ,
                                    tblprodutos.Descricao ,
                                    CASE WHEN tblrequisicaodemateriais.Devolucao = 1
                                         THEN tblprodutosmovimento.Quantidade * -1
                                         ELSE tblprodutosmovimento.Quantidade
                                    END AS Quantidade,
                                    tblrequisicaodemateriais.Id AS IdRequisicao
                            FROM    dbo.tblordemproducao
                                    INNER JOIN [DevDive.Yerbalatina].dbo.tblordemdeproducaorequisicoes ON tblordemdeproducaorequisicoes.IdOrdemProducao = tblordemproducao.Id
                                    INNER JOIN dbo.tblrequisicaodemateriais ON tblrequisicaodemateriais.Id = tblordemdeproducaorequisicoes.IdRequisicaoDeMateriais
                                    INNER JOIN dbo.tblrequisicaodemateriaisprodutos ON tblrequisicaodemateriaisprodutos.IdRequisicao = tblrequisicaodemateriais.Id
                                    INNER JOIN dbo.tblprodutosmovimento ON tblprodutosmovimento.Id = tblrequisicaodemateriaisprodutos.IdProdutoMovimento
                                    INNER JOIN dbo.tblprodutos ON tblprodutos.Id = tblprodutosmovimento.IdProduto
                            WHERE   tblordemproducao.Id =@OrdemProducao", _getIgdData)
                    )
                {
                    var pIdProduto = new SqlParameter("@OrdemProducao", SqlDbType.Int)
                    {
                        Value = ordemProducao
                    };

                    myCommand.Parameters.Add(pIdProduto);

                    var myReader = myCommand.ExecuteReader();

                    while (myReader.Read())
                    {
                        returnList.Add(new Product
                        {
                            Id         = Convert.ToInt32(myReader["Id"]),
                            Codigo     = myReader["Codigo"].ToString(),
                            Descricao  = myReader["Descricao"].ToString(),
                            Quantidade = Convert.ToDecimal(myReader["Quantidade"])
                        });

                        var idRequisicao = Convert.ToInt32(myReader["IdRequisicao"]);

                        if (requisicoesSelecionadas.All(p => p != idRequisicao))
                        {
                            requisicoesSelecionadas.Add(idRequisicao);
                        }
                    }
                }

                return(returnList);
            }
            catch (Exception ex)
            {
                _getIgdData.Close();
            }
            finally
            {
                _getIgdData.Close();
            }

            return(null);
        }
Пример #15
0
        private bool GetDOMeetings()
        {
            Console.WriteLine(DateTime.Now.ToString("yy-MM-dd HH:mm:ss.fff") + " DO Meetings");
            CheckDynamicOdds();
            BindingList <Meeting> newDynOdds = null;

            try {
                int type = (racingToolStripMenuItem.Checked ? (int)Meeting.MeetingTypes.Racing : 0)
                           + (harnessToolStripMenuItem.Checked ? (int)Meeting.MeetingTypes.Harness : 0)
                           + (greyhoundToolStripMenuItem.Checked ? (int)Meeting.MeetingTypes.Greyhound : 0);

                DateTime date = DateTime.UtcNow.Add(Zone.GetUtcOffset(DateTime.UtcNow));

                Console.WriteLine(DateTime.Now.ToString("yy-MM-dd HH:mm:ss.fff") + " Get DO Meetings");
                newDynOdds      = dynOdds.GetMeetingsAll(date, type);
                mf.EventTypeIds = new HashSet <string>(bfEventTypeIds.Where(evt => Meeting.getBFMeetingTypesStrings(type).Contains(evt.Key)).Select(evt => evt.Value));
            } catch (HttpRequestException e) {
                MessageBox.Show("Error updating meetings:" + Environment.NewLine + e.Message,
                                "API Error",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return(false);
            } catch (System.Exception e) {
                logger.Error("Error updating meetings", e);
                MessageBox.Show("Error updating meetings:" + Environment.NewLine + e.Message,
                                "API Error",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return(false);
            }

            if (newDynOdds == null)
            {
                logger.Error("Meetings list is null");
                MessageBox.Show("Error updating meetings:" + Environment.NewLine + "Meetings list is null",
                                "API Error",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return(false);
            }

            Console.WriteLine(DateTime.Now.ToString("yy-MM-dd HH:mm:ss.fff") + " Add/Remove Meetings");
            List <Meeting> toRemove = meetings.Where(o1 => newDynOdds.All(o2 => o2.ID != o1.ID)).ToList();

            dgvMeetings.SelectionChanged -= dgvMeetings_SelectionChanged;
            foreach (Meeting m in toRemove)   // meeting not in tmp
            {
                meetings.Remove(meetings.First(o1 => o1.ID == m.ID));
            }

            foreach (Meeting m in newDynOdds.Where(o1 => meetings.Any(o2 => o2.ID == o1.ID)))   // meeting in both
            {
                Meeting old = meetings.First(o1 => o1.ID == m.ID);
                int     i   = meetings.IndexOf(old);
                meetings[i] = old.MergeWith(m);
                meetings.ResetItem(i);
            }

            foreach (Meeting m in newDynOdds.Where(o1 => meetings.All(o2 => o2.ID != o1.ID)))   // meeting only in tmp
            {
                meetings.Add(m);
            }

            dgvMeetings.SelectionChanged += dgvMeetings_SelectionChanged;
            if (dgvMeetings.Rows.Count > 0)
            {
                dgvMeetings.Rows[0].Selected = true;
                dgvMeetings_SelectionChanged(dgvMeetings, null);
            }

            return(true);
        }
Пример #16
0
        public static void Test(Form form)
        {
            bool AutomaticTests = true;
            bool showCloneForm  = !AutomaticTests;

#if !DEBUG
            if (!AutomaticTests)
            {
                MessageBox.Show("The application should be compiled in DEBUG mode");
            }
#endif

            // - - - -

            TestResults.Clear();

            {
                string title = "ToolStrip contains a FlowLayoutSetting that builds using an inherited private field.";
                var    data  = new ToolStrip();
                data.LayoutStyle = ToolStripLayoutStyle.Flow;

                var  data2 = EasySerializeThenDeserializeWinForm(data);
                bool ok    = (data2 != null) && data2.LayoutStyle == ToolStripLayoutStyle.Flow;
                AddTestResult(title + " {" + data.GetType().Name + "}", ok);
                if (!AutomaticTests)
                {
                    Debugger.Break();
                }
            }

            {
                string title = "ControlBindingsCollection";
                var    data  = new Form();
                data.DataBindings.Add("Width", data, "Height");

                var  data2 = EasySerializeThenDeserializeWinForm(data.DataBindings);
                bool ok    = (data2 != null) && data2.Count == 1;
                AddTestResult(title + " {" + data.GetType().Name + "}", ok);
                if (!AutomaticTests)
                {
                    Debugger.Break();
                }
            }

            {
                string title = "Main Form";
                var    data  = new Form();
                var    t     = data.Text;
                data.Text = "fen2";
                data.Controls.Add(new Label()
                {
                    Text = "Hello"
                });
                var  data2 = EasySerializeThenDeserializeWinForm(data);
                bool ok    = (data2 != null);
                AddTestResult(title + " {" + data.GetType().Name + "}", ok);
                data.Text     = t;
                data2.Visible = false;
                if (showCloneForm)
                {
                    data2.ShowDialog();
                }
                else
                {
                    data2.WindowState = FormWindowState.Minimized;
                    data2.Show();
                }
                data2.Close();
                if (!AutomaticTests)
                {
                    Debugger.Break();
                }
            }

            {
                string title = "ControlBindingsCollection + simple Form";
                var    data  = new Form();
                data.DataBindings.Add("Width", data, "Height");
                var  data2 = EasySerializeThenDeserializeWinForm(data);
                bool ok    = (data2 != null);
                AddTestResult(title + " {" + data.GetType().Name + "}", ok);
                if (!AutomaticTests)
                {
                    Debugger.Break();
                }
            }

            {
                string title = "BindingContext";
                var    data  = new BindingContext();
                var    data2 = EasySerializeThenDeserializeWinForm(data);
                bool   ok    = (data2 != null);
                AddTestResult(title + " {" + data.GetType().Name + "}", ok);
                if (!AutomaticTests)
                {
                    Debugger.Break();
                }
            }



            if (!AutomaticTests)
            {
                bool AllOK =
                    TestResults.All(p => p.Success);
                Debugger.Break();
            }
        }