public PosDetails(SlotMachine objSlotMachine) { try { InitializeComponent(); SlotMachine = objSlotMachine; this.InitCashDispenser(); LogManager.WriteLog("Inside PosDetails Constructor", LogManager.enumLogLevel.Info); if (_SlotMachine.Status == SlotMachineStatus.EmptyPosition || _SlotMachine.Status == SlotMachineStatus.FloatCollection || _SlotMachine.Status == SlotMachineStatus.ForceFinalCollection) { DisableControlsIfNoMeters(); } Timer = new System.Windows.Threading.DispatcherTimer(); Timer.Interval = new TimeSpan(0, 0, Int32.Parse(ConfigManager.Read("RefreshTime").ToString())); Timer.IsEnabled = true; Timer.Tick += Timer_Tick; Timer.Start(); LogManager.WriteLog("PosDetails Timer started from Constructor", LogManager.enumLogLevel.Info); // RefreshSlot(); // RefreshButtons(_SlotMachine.Status); if (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS" && Settings.MachineMaintenance) { rbMachineMaintenance.Visibility = Visibility.Visible; rbMachineMaintenance.Content = FindResource("PosDetails_xaml_rbMachineMaintenance"); } else { rbMachineMaintenance.Visibility = Visibility.Collapsed; } } catch (Exception ex) { ExceptionManager.Publish(ex); } }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.ucPosDetails = ((BMC.Presentation.PosDetails)(target)); return; case 2: this.LayoutRoot = ((System.Windows.Controls.Grid)(target)); return; case 3: this.pnlHeader = ((System.Windows.Controls.Grid)(target)); return; case 4: this.lblPercentagePayout = ((System.Windows.Controls.TextBlock)(target)); return; case 5: this.lblAsset = ((System.Windows.Controls.TextBlock)(target)); return; case 6: this.lblBaseDenom = ((System.Windows.Controls.TextBlock)(target)); return; case 7: this.lblMaxBet = ((System.Windows.Controls.TextBlock)(target)); return; case 8: this.lblCreditValue = ((System.Windows.Controls.TextBlock)(target)); return; case 9: this.lblRoute = ((System.Windows.Controls.TextBlock)(target)); return; case 10: this.txtRoute = ((System.Windows.Controls.TextBlock)(target)); return; case 11: this.lblSerialNo = ((System.Windows.Controls.TextBlock)(target)); return; case 12: this.lblManufacturer = ((System.Windows.Controls.TextBlock)(target)); return; case 13: this.lblActAsset = ((System.Windows.Controls.TextBlock)(target)); return; case 14: this.lblGMU = ((System.Windows.Controls.TextBlock)(target)); return; case 15: this.btnExit = ((System.Windows.Controls.Button)(target)); #line 53 "..\..\..\UserControls\PosDetails.xaml" this.btnExit.Click += new System.Windows.RoutedEventHandler(this.btn_Exit); #line default #line hidden return; case 16: this.ucSlotMachine = ((BMC.Presentation.SlotMachine)(target)); return; case 17: this.lblZoneName = ((System.Windows.Controls.TextBlock)(target)); return; case 18: this.rbHandpay = ((System.Windows.Controls.RadioButton)(target)); #line 68 "..\..\..\UserControls\PosDetails.xaml" this.rbHandpay.Click += new System.Windows.RoutedEventHandler(this.Handpay_Click); #line default #line hidden return; case 19: this.rbPlayerClub = ((System.Windows.Controls.RadioButton)(target)); #line 69 "..\..\..\UserControls\PosDetails.xaml" this.rbPlayerClub.Click += new System.Windows.RoutedEventHandler(this.PlayerClub_Click); #line default #line hidden return; case 20: this.rbFieldService = ((System.Windows.Controls.RadioButton)(target)); #line 70 "..\..\..\UserControls\PosDetails.xaml" this.rbFieldService.Click += new System.Windows.RoutedEventHandler(this.FldService_Click); #line default #line hidden return; case 21: this.rbEvents = ((System.Windows.Controls.RadioButton)(target)); #line 71 "..\..\..\UserControls\PosDetails.xaml" this.rbEvents.Click += new System.Windows.RoutedEventHandler(this.Events_Click); #line default #line hidden return; case 22: this.rbMachineMeters = ((System.Windows.Controls.RadioButton)(target)); #line 73 "..\..\..\UserControls\PosDetails.xaml" this.rbMachineMeters.Click += new System.Windows.RoutedEventHandler(this.MCMeters_Click); #line default #line hidden return; case 23: this.rbCurrentMeters = ((System.Windows.Controls.RadioButton)(target)); #line 74 "..\..\..\UserControls\PosDetails.xaml" this.rbCurrentMeters.Click += new System.Windows.RoutedEventHandler(this.MCCurrentMeters_Click); #line default #line hidden return; case 24: this.rbRemoveMachine = ((System.Windows.Controls.RadioButton)(target)); #line 75 "..\..\..\UserControls\PosDetails.xaml" this.rbRemoveMachine.Click += new System.Windows.RoutedEventHandler(this.RemoveMachine_Click); #line default #line hidden return; case 25: this.rbMachineMaintenance = ((System.Windows.Controls.RadioButton)(target)); #line 76 "..\..\..\UserControls\PosDetails.xaml" this.rbMachineMaintenance.Click += new System.Windows.RoutedEventHandler(this.rbMachineMaintenance_Click); #line default #line hidden return; case 26: this.rbReInstateMachine = ((System.Windows.Controls.RadioButton)(target)); #line 77 "..\..\..\UserControls\PosDetails.xaml" this.rbReInstateMachine.Click += new System.Windows.RoutedEventHandler(this.rbReInstateMachine_Click); #line default #line hidden return; case 27: this.rbSyncTicketExpire = ((System.Windows.Controls.RadioButton)(target)); #line 78 "..\..\..\UserControls\PosDetails.xaml" this.rbSyncTicketExpire.Click += new System.Windows.RoutedEventHandler(this.SyncTicketExpire_Click); #line default #line hidden return; case 28: this.pnlContent = ((System.Windows.Controls.Grid)(target)); #line 83 "..\..\..\UserControls\PosDetails.xaml" this.pnlContent.Loaded += new System.Windows.RoutedEventHandler(this.pnlContent_Loaded); #line default #line hidden return; case 29: this.lblGame = ((System.Windows.Controls.TextBlock)(target)); return; } this._contentLoaded = true; }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.UserControl = ((BMC.Presentation.PositionDetailsComp)(target)); return; case 2: this.OnLoaded1_BeginStoryboard = ((System.Windows.Media.Animation.BeginStoryboard)(target)); return; case 3: this.pnlLayoutRoot = ((System.Windows.Controls.DockPanel)(target)); return; case 4: this.pnlHeader = ((System.Windows.Controls.Grid)(target)); return; case 5: this.lblPosition = ((System.Windows.Controls.Label)(target)); return; case 6: this.lblGame = ((System.Windows.Controls.Label)(target)); return; case 7: this.lblAsset = ((System.Windows.Controls.Label)(target)); return; case 8: this.btnExit = ((System.Windows.Controls.Button)(target)); #line 38 "..\..\..\UserControls\PositionDetailsComp.xaml" this.btnExit.Click += new System.Windows.RoutedEventHandler(this.btn_Exit); #line default #line hidden return; case 9: this.ucSlotMachine = ((BMC.Presentation.SlotMachine)(target)); return; case 10: this.pnlHandpay = ((System.Windows.Controls.Canvas)(target)); return; case 11: this.Path_105 = ((System.Windows.Shapes.Path)(target)); return; case 12: this.Path_106 = ((System.Windows.Shapes.Path)(target)); return; case 13: this.Path_107 = ((System.Windows.Shapes.Path)(target)); return; case 14: this.btnHandPayProcess = ((System.Windows.Controls.Button)(target)); #line 68 "..\..\..\UserControls\PositionDetailsComp.xaml" this.btnHandPayProcess.Click += new System.Windows.RoutedEventHandler(this.btnHandPayProcess_Click); #line default #line hidden return; case 15: this.Path_109 = ((System.Windows.Shapes.Path)(target)); return; case 16: this.Path_110 = ((System.Windows.Shapes.Path)(target)); return; case 17: this.Path_111 = ((System.Windows.Shapes.Path)(target)); return; case 18: this.lblDate = ((System.Windows.Controls.Label)(target)); return; case 19: this.lblTime = ((System.Windows.Controls.Label)(target)); return; case 20: this.lblHandPayType = ((System.Windows.Controls.Label)(target)); return; case 21: this.lblHandPayValue = ((System.Windows.Controls.Label)(target)); return; case 22: this.pnlPlayerClub = ((System.Windows.Controls.Canvas)(target)); return; case 23: this.Path_1 = ((System.Windows.Shapes.Path)(target)); return; case 24: this.Path_3 = ((System.Windows.Shapes.Path)(target)); return; case 25: this.Path_4 = ((System.Windows.Shapes.Path)(target)); return; case 26: this.Path_5 = ((System.Windows.Shapes.Path)(target)); return; case 27: this.Path_6 = ((System.Windows.Shapes.Path)(target)); return; case 28: this.Path_7 = ((System.Windows.Shapes.Path)(target)); return; case 29: this.lblPlayerName = ((System.Windows.Controls.Label)(target)); return; case 30: this.lblPlayerAccount = ((System.Windows.Controls.Label)(target)); return; case 31: this.lblPlayerStatus = ((System.Windows.Controls.Label)(target)); return; case 32: this.lblPlayerTimeOfPlay = ((System.Windows.Controls.Label)(target)); return; case 33: this.pnlActionButtons = ((System.Windows.Controls.Primitives.UniformGrid)(target)); return; case 34: this.btnMeterLife = ((System.Windows.Controls.Button)(target)); #line 154 "..\..\..\UserControls\PositionDetailsComp.xaml" this.btnMeterLife.Click += new System.Windows.RoutedEventHandler(this.btnMeterLife_Click); #line default #line hidden return; case 35: this.btnServiceRequest = ((System.Windows.Controls.Button)(target)); #line 155 "..\..\..\UserControls\PositionDetailsComp.xaml" this.btnServiceRequest.Click += new System.Windows.RoutedEventHandler(this.btnServiceRequest_Click); #line default #line hidden return; case 36: #line 156 "..\..\..\UserControls\PositionDetailsComp.xaml" ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click); #line default #line hidden return; case 37: this.btnEnrol = ((System.Windows.Controls.Button)(target)); #line 159 "..\..\..\UserControls\PositionDetailsComp.xaml" this.btnEnrol.Click += new System.Windows.RoutedEventHandler(this.btnEnrol_Click); #line default #line hidden return; } this._contentLoaded = true; }
public void ClearChild(SlotMachine slotMachine) { slotMachine.MouseLeftButtonUp -= SlotMouseUpEvent; BindingOperations.ClearAllBindings(slotMachine); slotMachine.Dispose(); slotMachine = null; }
/// <summary> /// Clears the slot mouse up event. /// </summary> /// <param name="newMachine">The new machine.</param> internal void ClearSlotMouseUpEvent(SlotMachine newMachine) { try { newMachine.MouseLeftButtonUp -= this.SlotMouseUpEvent; } catch (Exception ex) { ExceptionManager.Publish(ex); } }
/// <summary> /// Sets the slot mouse up event. /// </summary> /// <param name="newMachine">The new machine.</param> internal void SetSlotMouseUpEvent(SlotMachine newMachine) { // unsubscribe the existing event this.ClearSlotMouseUpEvent(newMachine); try { newMachine.MouseLeftButtonUp += this.SlotMouseUpEvent; newMachine.MouseLeftButtonUp += this.txtLegend__MouseDown; } catch (Exception ex) { ExceptionManager.Publish(ex); } }
private void AddSlotMachineToUI(SlotMachinePair slotPair, SlotMachine newMachine) { DragCanvas.SetCanBeDragged(newMachine, _allowDragging); DispatcherObject parent = LogicalTreeHelper.GetParent(newMachine); if (!slotPair.IsAdded || parent == null) { //if (!Monitor.TryEnter(_floorView._clearLock, 5)) //{ // clearMachines = true; // break; //} _canvas.Children.Add(newMachine); slotPair.IsAdded = true; } }
/// <summary> /// Refreshes the data. /// </summary> /// <param name="barPositions">The bar positions.</param> public void RefreshData(List<FloorStatusData> barPositions) { const string PROC = "[RefreshData]"; double widthmargin = 10; double heightmargin = 20; var curPos = 1; bool clearMachines = false; bool groupby = false; _dispatcher.Invoke(new Action( delegate() { groupby = _floorView.GroupByMachines; })); bool hasPositionSaved = false; _floorView._teFloorPositions.Wait(TimeSpan.FromSeconds(30)); // wait for worst case seconds to retrive floor position from exchange server int userId = CDOSettings.Current.LoggedInUser.SecurityUserID; FloorPositionDto savedPositions = null; try { // clear all the slot machine groupings if (_floorView.DisplayGroupMachines) { foreach (var slotMachineGroupItem in _slotMachineGroups.Values) { slotMachineGroupItem.SlotMachineKeys.Clear(); if (!groupby) _dispatcher.Invoke(new Action( delegate() { this.RemoveSlotMachineGroupFromUI(slotMachineGroupItem); })); } } // add or update the slot machines int rowIndex = 1; foreach (FloorStatusData position in barPositions) { string key = position.Bar_Pos_Name; _dispatcher.Invoke(new Action( delegate() { SlotMachine newMachine = null; SlotMachinePair pair = null; if (_slotMachines.ContainsKey(key)) { pair = _slotMachines[key]; newMachine = pair.Machine; } else { newMachine = new SlotMachine() { SlotNumber = Convert.ToInt32(position.Bar_Pos_Name).ToString(), SlotNumberString = position.Bar_Pos_Name.ToString(), SlotID = position.Bar_Pos_No, AssetNumber = position.Asset_No }; pair = new SlotMachinePair { Key = key, PositionName = position.Bar_Pos_Name, AssetNo = position.Asset_No, Machine = newMachine }; _slotMachines.Add(key, pair); } // slot status grouping newMachine.SlotStatusString = position.Slot_Status; SlotMachineGroupPair groupPair = null; IList<string> groupItems = null; if (_floorView.DisplayGroupMachines) { if (!_slotMachineGroups.ContainsKey(position.Slot_Status)) { groupPair = new SlotMachineGroupPair() { Status = _floorView.GetSlotStatus(position.Slot_Status), MachineGroup = new SlotMachineGroup() { Width = _canvas.Width - 10, Height = 30, }, DisplayText = _floorView.GetSlotStatusDecription(position.Slot_Status), }; _slotMachineGroups.Add(position.Slot_Status, groupPair); } else { groupPair = _slotMachineGroups[position.Slot_Status]; } groupItems = groupPair.SlotMachineKeys; groupItems.Add(key); } // display game name instead of asset no string assetNo = position.Asset_No; if (Settings.DisplayGameNameInFloorView) { assetNo = position.Game_Name; } // Fix for Asset Number not displayed after finishing the Enrollment pair.AssetNo = assetNo; newMachine.AssetNumber = assetNo; pair.RowIndex = rowIndex++; newMachine.Top = Convert.ToDouble(position.FLOORTOP); newMachine.Left = Convert.ToDouble(position.FLOORLEFT); _floorView.SetSlotMouseUpEvent(newMachine); if (position.Install_No != 0) { newMachine.InstallationNo = position.Install_No; newMachine.IsEventUnCleared = !(newMachine.IsEventUnCleared); newMachine.IsEventUnCleared = (bool)position.UnClearedEvent; newMachine.Status = (SlotMachineStatus)Enum.Parse(typeof(SlotMachineStatus), position.Slot_Status); newMachine.StackerEventReceived = position.StackerEventReceived.HasValue ? position.StackerEventReceived.Value : false; newMachine.IsCollectable = position.IsCollectable < 1; if (newMachine.StackerEventReceived) { newMachine.OuterRoundColor = Brushes.Goldenrod; newMachine.InnerRoundColor = Brushes.IndianRed; } } else { newMachine.Status = SlotMachineStatus.EmptyPosition; newMachine.InstallationNo = 0; } if (_floorView.DisplayGroupMachines && groupPair.MachineGroup.OuterColor == null) { groupPair.MachineGroup.OuterColor = _floorView._slotMachineGroupBgBrush;// newMachine.OuterRoundColor; groupPair.MachineGroup.OuterForeColor = _floorView._slotMachineGroupFgBrush;// newMachine.ForeColorBrush; } })); } // remove the slot machine List<SlotMachinePair> removedMachines = (from a in _slotMachines join b in barPositions on a.Key equals b.Bar_Pos_Name into matched from c in matched.DefaultIfEmpty() where c == null select new SlotMachinePair { Key = a.Key, Machine = a.Value.Machine }).ToList(); if (removedMachines != null) { foreach (SlotMachinePair removedMachine in removedMachines) { _dispatcher.Invoke(new Action( delegate() { this.ClearMachine(removedMachine.Machine); })); _slotMachines.Remove(removedMachine.Key); } } // finally add the slot machines to the UI _dispatcher.Invoke(new Action( delegate() { #if DEBUG Stopwatch watch = new Stopwatch(); watch.Start(); #endif try { if (groupby) { // draw the headers int slotPerWidth = Convert.ToInt32((_floorView.Width - SlotMachine.SlotMachineGap) / SlotMachine.SlotMachineWidthGap); int gap = SlotMachine.SlotMachineGap; double y = gap; foreach (var group in _slotMachineGroups) { string title = group.Key; SlotMachineGroupPair groupPair = group.Value; SlotMachineGroup machineGroup = groupPair.MachineGroup; int slots = groupPair.SlotMachineKeys.Count; if (slots <= 0) { this.RemoveSlotMachineGroupFromUI(groupPair); continue; } this.AddSlotMachineGroupToUI(groupPair); groupPair.Left = 0; groupPair.Top = y; machineGroup.DisplayText = groupPair.DisplayText + " (" + slots.ToString() + ")"; Canvas.SetLeft(machineGroup, groupPair.Left); Canvas.SetTop(machineGroup, groupPair.Top); _floorView.CalculateGroupedSlotMachines(groupPair, slotPerWidth); int row = 0; int column = 0; double sx = groupPair.Left + gap; double sy = groupPair.Top + machineGroup.Height + gap; foreach (var slotKey in groupPair.SlotMachineKeys) { SlotMachinePair slotPair = _slotMachines[slotKey]; SlotMachine newMachine = slotPair.Machine; if (column >= slotPerWidth) { column = 0; row++; sx = groupPair.Left + gap; sy += SlotMachine.SlotMachineHeightGap; } Canvas.SetLeft(newMachine, sx); Canvas.SetTop(newMachine, sy); this.AddSlotMachineToUI(slotPair, newMachine); sx += SlotMachine.SlotMachineWidthGap; column++; } y += machineGroup.Height + groupPair.SlotsHeight + 5; } _canvas.Height = y + SlotMachine.SlotMachineGap; _floorView.Border_Bottom.Margin = new Thickness(-50, 0, 0, 0); } else { List<string> orderedData = (from o in _slotMachines orderby o.Value.RowIndex select o.Key).ToList(); if (orderedData.Count > 72) { _canvas.Height = (barPositions.Count / 12) * 110; _floorView.Border_Bottom.Width = 780; _floorView.Border_Bottom.Margin = new Thickness(-50, 0, 0, 0); } foreach (string slotKey in orderedData) { SlotMachinePair slotPair = _slotMachines[slotKey]; SlotMachine newMachine = slotPair.Machine; FloorPositionDataDto floorPosition = null; if (_floorView._floorViewUserLocations) { floorPosition = _floorView.GetFloorPosition(newMachine.SlotID); if (floorPosition != null) { newMachine.PositionData = floorPosition; } } UIElement dragging = _canvas.ElementBeingDragged; bool isDragging = false; if (dragging != null && dragging == newMachine) { isDragging = true; } if (!isDragging && _floorView._floorViewUserLocations) { if (floorPosition != null) { newMachine.Left = floorPosition.Left; newMachine.Top = floorPosition.Top; DragCanvas.SetZIndex(newMachine, floorPosition.RowNo); } } if (newMachine != null && !isDragging) { if (newMachine.Left > 0 || newMachine.Top > 0) { if ((_floorView.chkSortPos.IsChecked.Value) || (_floorView.chkSortAsset.IsChecked.Value)) { newMachine.Top = 0; newMachine.Left = 0; // Don't uncomment these lines, we should not reposition the slot machines during loading. // Slot machines position should be saved only during dragging. //if (newMachine.Status != SlotMachineStatus.EmptyPosition) //{ // _floorView.SaveFloorPosition(newMachine, true, ref hasPositionSaved); //} _floorView.CalculatePositionAndPaint(ref widthmargin, ref heightmargin, ref curPos, newMachine); } else { Canvas.SetLeft(newMachine, Convert.ToDouble(newMachine.Left)); Canvas.SetTop(newMachine, Convert.ToDouble(newMachine.Top)); } } else { _floorView.CalculatePositionAndPaint(ref widthmargin, ref heightmargin, ref curPos, newMachine); if (_floorView._floorViewUserLocations) { if (!(_floorView.chkSortPos.IsChecked.Value && _floorView.chkSortAsset.IsChecked.Value)) { if (savedPositions == null) savedPositions = new FloorPositionDto(); savedPositions.Modify(userId, newMachine.SlotID, TypeSystem.GetValueInt(newMachine.Left), TypeSystem.GetValueInt(newMachine.Top), 0); } } } //// save the initial positions //if (CFloorView._FirstDragPosition) //{ // if (savedPositions == null) savedPositions = new FloorPositionDto(); // savedPositions.Modify(userId, newMachine.SlotID, TypeSystem.GetValueInt(newMachine.Left), TypeSystem.GetValueInt(newMachine.Top), 0); //} this.AddSlotMachineToUI(slotPair, newMachine); } } } } catch (ThreadAbortException) { LogManager.WriteLog(PROC + " => Thread was instructed to close.", LogManager.enumLogLevel.Error); } catch (Exception ex) { ExceptionManager.Publish(ex); } finally { #if DEBUG watch.Stop(); LogManager.WriteLog(PROC + string.Format(" => Total time taken [{0}] to load the slot machines into UI.", watch.Elapsed.ToString()), LogManager.enumLogLevel.Info); #endif if (hasPositionSaved) { CDOSettings.Current.Save(); } // notify the initial positions to all the clients logged in with the current user id if (savedPositions != null && savedPositions.Count > 0) { _floorView.NotifyFloorPosition(savedPositions); } //if (CFloorView._FirstDragPosition) //{ // CFloorView._FirstDragPosition = false; //} } })); if (clearMachines) { LogManager.WriteLog(PROC + " => Unable to refresh. Clear machines called instead.", LogManager.enumLogLevel.Error); } } catch (ThreadAbortException) { LogManager.WriteLog(PROC + " => Thread was instructed to close.", LogManager.enumLogLevel.Error); } catch (Exception ex) { LogManager.WriteLog(PROC + " => Exception occured in function.", LogManager.enumLogLevel.Error); ExceptionManager.Publish(ex); } finally { #if DEBUG LogManager.WriteLog(PROC + " => Finished.", LogManager.enumLogLevel.Error); #endif } }
/// <summary> /// Clears the machine. /// </summary> /// <param name="machine">The machine.</param> private void ClearMachine(SlotMachine machine) { try { _floorView.ClearSlotMouseUpEvent(machine); _canvas.Children.Remove(machine); machine.ContextMenu = null; } catch (Exception ex) { ExceptionManager.Publish(ex); } }
internal void SaveFloorPosition(SlotMachine slotMachinePosition, bool isDefault, ref bool isSaved) { if (!isDefault || chkRePosition.IsChecked.Value) { int userID = CDOSettings.Current.LoggedInUser.SecurityUserID; int left = TypeSystem.GetValueInt(Canvas.GetLeft(slotMachinePosition)); int top = TypeSystem.GetValueInt(Canvas.GetTop(slotMachinePosition)); //if (CFloorView._FirstDragPosition) //{ // _analysisBusinessObject.SaveUserBasedFloorPosition(SlotMachineCollectionFactory.ToXml(this), userID); // CFloorView._FirstDragPosition = false; //} _analysisBusinessObject.SaveFloorPosition(slotMachinePosition.SlotID, userID, top, left); int currentZIndex = Canvas.GetZIndex(slotMachinePosition); if (_floorViewUserLocations) { FloorPositionDataDto positionData = slotMachinePosition.PositionData; FloorPositionDto position = new FloorPositionDto() { { new FloorPositionKeyDto(userID, slotMachinePosition.SlotID), new FloorPositionDataDto(slotMachinePosition.SlotID, left, top, currentZIndex) }, }; _clientSubcriber.NotifyFloorPosition(position); } } }
internal void CalculatePositionAndPaint(ref double widthmargin, ref double heightmargin, ref int curPos, SlotMachine newMachine) { var perRow = int.Parse(pnlFloor.Width.ToString()) / (int.Parse(newMachine.Width.ToString()) + 10); if ((perRow / curPos == 1) && (perRow % curPos == 0)) { Canvas.SetLeft(newMachine, widthmargin); Canvas.SetTop(newMachine, heightmargin); newMachine.Left = widthmargin; newMachine.Top = heightmargin; widthmargin = 10; heightmargin = heightmargin + newMachine.Height + 20; curPos = 0; } else { Canvas.SetLeft(newMachine, widthmargin); Canvas.SetTop(newMachine, heightmargin); newMachine.Left = widthmargin; newMachine.Top = heightmargin; widthmargin = widthmargin + newMachine.Width + 10; } curPos += 1; }