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()); } }