private async void SavePositionUpdateTextBox_ClickAsync(object sender, RoutedEventArgs e) { EditPositionProgressRing.IsActive = true; if (await NeptuneDatabase.UpdatePositionRecordAsync(AppShell.Workers.First(x => x.Id == AppShell._loggedInUserId), position, Convert.ToDecimal(PositionSalaryTextBox.Text))) { AppShell.Positions.First(x => x.Id == position.Id).Salary = position.Salary = Convert.ToDecimal(PositionSalaryTextBox.Text); OnPositionUpdated?.Invoke(AppShell.Workers.First(x => x.Id == AppShell._loggedInUserId), position, Convert.ToDecimal(PositionSalaryTextBox.Text)); EditPositionSalaryContentDialog.Hide(); } EditPositionProgressRing.IsActive = false; }
public void Update(bool newTick) { foreach (CameraComponent camera in Cameras) { // Control camera position in real game time Vector3 position = camera.transform.position; if (camera.Velocity.sqrMagnitude != 0) { camera.transform.position = position + camera.Velocity * Time.deltaTime; } // Send updated camera position to simulation every tick if (newTick && camera.LastTickPosition != position) { camera.LastTickPosition = position; OnPositionUpdated?.Invoke(new PositionUpdatedEvent(position)); } } }
public void SetParent(DisplayableEntityModel model, bool stayWorldPosition = true) { if (stayWorldPosition) { Vector3 deltaPos = this.position - (model != null ? model.position : Vector3.zero); this.localPosition = deltaPos; Quaternion deltaRot = (model != null ? Quaternion.Inverse(model.rotation) : Quaternion.identity) * this.rotation; this.localRotation = deltaRot; Vector3 deltaScale = this.lossyScale.Divide(model != null ? model.lossyScale : Vector3.one); this.localScale = deltaScale; } m_parent = model; model?.childrenList.Add(this); OnPositionUpdated?.Invoke(position); // Modify the parent may changed the global position, so invoke the event OnParentUpdated?.Invoke(model); }
public void Compare(double[] noteBins) { DateTime now = DateTime.Now; List <int> heardNotes = new List <int>(); for (int i = 0; i < noteBins.Length; i++) { if (noteBins[i] > 0.01) { heardNotes.Add(i); } } var timeSpanMs = (now - LastSuccessfulRecognition).TotalMilliseconds; var delayMs = MinimumDelay.TotalMilliseconds; for (int i = 1; i < MaximumPositionSkip && i + CurrentPosition < Tab.Count; i++) { if (timeSpanMs < delayMs * i) { return; } StringRelatedChord possibleCurrentChord = TabWithBackground[CurrentPosition + i]; int missing, wrong; (missing, wrong) = StringRelatedChord.CalculateDiff(possibleCurrentChord, Tab[CurrentPosition + i], heardNotes); int notesCount = Tab[CurrentPosition + i].GetFretsCount(); int maximumMissing = (int)Math.Round(notesCount * this.MaximumMissingNotesFraction); if (missing <= maximumMissing && wrong <= MaximumWrongNotes) { CurrentPosition += i; LastSuccessfulRecognition = DateTime.Now; OnPositionUpdated?.Invoke(CurrentPosition); return; } } }
private void UpdatePosition(PBPosition rsp) { lock (PositionVMCollection) { PositionVM positionVM = PositionVMCollection.FirstOrDefault(p => p.Contract == rsp.Contract && (int)p.Direction == rsp.Direction && p.Portfolio == rsp.Portfolio); if (rsp.TdPosition == 0 && rsp.YdPosition == 0) { if (positionVM != null) { PositionVMCollection.Remove(positionVM); } if (!PositionVMCollection.Any(p => p.Contract == rsp.Contract)) { PositionContractSet.Remove(rsp.Contract); } } else { if (positionVM == null) { var contractInfo = ClientDbContext.FindContract(rsp.Contract); positionVM = new PositionVM { Contract = rsp.Contract, Exchange = rsp.Exchange, Portfolio = rsp.Portfolio, Direction = (PositionDirectionType)rsp.Direction, HedgeFlag = (HedgeType)rsp.HedgeFlag, PositionDateFlag = (PositionDateFlagType)rsp.PositionDateFlag, Multiplier = contractInfo == null ? 1 : contractInfo.VolumeMultiple, TodayPosition = rsp.TdPosition, YdPosition = rsp.YdPosition, OpenVolume = rsp.OpenVolume, CloseVolume = rsp.CloseVolume, OpenAmount = rsp.OpenAmount, CloseAmount = rsp.CloseAmount, TdCost = rsp.TdCost, YdCost = rsp.YdCost, OpenCost = rsp.OpenCost, Profit = rsp.Profit, CloseProfit = rsp.CloseProfit, UseMargin = rsp.UseMargin, }; PositionVMCollection.Add(positionVM); PositionContractSet.Add(rsp.Contract); OnPositionUpdated?.Invoke(positionVM); } else { positionVM.OpenVolume = rsp.OpenVolume; positionVM.CloseVolume = rsp.CloseVolume; positionVM.OpenAmount = rsp.OpenAmount; positionVM.CloseAmount = rsp.CloseAmount; positionVM.OpenCost = rsp.OpenCost; if (positionVM.YdPosition != rsp.YdPosition || positionVM.TodayPosition != rsp.TdPosition) { positionVM.TodayPosition = rsp.TdPosition; positionVM.YdPosition = rsp.YdPosition; OnPositionUpdated?.Invoke(positionVM); } } } } }
public void ManuallyChangePosition(int position) { this.CurrentPosition = position; LastSuccessfulRecognition = DateTime.Now; OnPositionUpdated?.Invoke(CurrentPosition); }