Beispiel #1
0
        public void OnClick(OnClickEventArgs obj)
        {
            var cellsH = Cells.Where(c => c.Cell.HorizontalTarget == obj.Cell.HorizontalTarget);
            var cellsV = Cells.Where(c => c.Cell.VerticalTarget == obj.Cell.VerticalTarget);

            double VRes = 0;
            double HRes = 0;

            foreach (var item in cellsH)
            {
                HRes += int.Parse(item.Cell.Bit) * item.Cell.HorizontalValue;
            }
            foreach (var item in cellsV)
            {
                VRes += int.Parse(item.Cell.Bit) * item.Cell.VerticalValue;
            }
            var HTarget = HorizontalTargets.Single(c => obj.Cell.HorizontalTarget == c.Model);
            var VTarget = VerticalTargets.Single(c => obj.Cell.VerticalTarget == c.Model);

            string HTargetOldStatus = HTarget.Status;
            string VTargetOldStatus = VTarget.Status;

            HTarget.Status = HTarget.Result == HRes ? "#30D1D5" : "#6D4C41";
            VTarget.Status = VTarget.Result == VRes ? "#30D1D5" : "#6D4C41";


            if (HTarget.Status != HTargetOldStatus && HTargetOldStatus != "#30D1D5")
            {
                NbGoodRes++;
            }
            else if (HTarget.Status != HTargetOldStatus && HTargetOldStatus == "#30D1D5")
            {
                NbGoodRes--;
            }

            if (VTarget.Status != VTargetOldStatus && VTargetOldStatus != "#30D1D5")
            {
                NbGoodRes++;
            }
            else if (VTarget.Status != VTargetOldStatus && VTargetOldStatus == "#30D1D5")
            {
                NbGoodRes--;
            }



            if (NbGoodRes == GridSize * 2)
            {
                _eventAggregator.GetEvent <OnStopTimerEvent>().Publish(new OnStopTimerEventArgs());
            }
        }