Example #1
0
        /// <summary>
        /// Update position data in Position table and add journal entry at changed status bit
        /// </summary>
        /// <param name="positionNode"></param>
        /// <param name="statusBit"></param>
        private void OnPositionNodeStatusChanged(PositionNode positionNode, PositionStatusBit statusBit)
        {
            _positionsRepository.Update(positionNode.PositionData);

            JournalEntry jEntry = new JournalEntry()
            {
                DateTime              = DateTime.Now,
                Description           = "",
                Position              = positionNode.PositionData,
                PositionStatusBitInfo = statusBit.StatusBitInfo,
                IsIncoming            = statusBit.Value
            };

            JournalEntryCreatedEv?.Invoke(jEntry);
        }
Example #2
0
        /// <summary>
        /// Constructor without children filling.
        /// Creating StatusBits from Status.
        /// </summary>
        public PositionNode(Position position, IEnumerable <PositionStatusBitInfo> positionStatusBitsInfo)
        {
            PositionData = position;
            Nodes        = new ObservableCollection <PositionNode>();

            StatusBits = new ObservableCollection <PositionStatusBit>();
            foreach (PositionStatusBitInfo statusBitInfo in positionStatusBitsInfo)
            {
                if (statusBitInfo.Enable)
                {
                    var statusBit = new PositionStatusBit(position.Status, statusBitInfo);
                    statusBit.BitChanged += OnStatusBitChanged;
                    StatusBits.Add(statusBit);
                }
            }
        }
Example #3
0
 /// <summary>
 /// Invoke PositionStatusChanged event on StatusBit changed.
 /// </summary>
 /// <param name="statusBit"></param>
 private void OnStatusBitChanged(PositionStatusBit statusBit)
 {
     PositionData.Status = (PositionData.Status & ~(1 << statusBit.StatusBitInfo.BitNumber)) | (Convert.ToInt64(statusBit.Value) << statusBit.StatusBitInfo.BitNumber);
     PositionStatusChanged?.Invoke(this, statusBit);
 }
Example #4
0
 /// <summary>
 /// Invoke PositionStatusChanged event on child StatusBit changed.
 /// </summary>
 /// <param name="node"></param>
 /// <param name="statusBit"></param>
 private void OnChildPositionStatusChanged(PositionNode node, PositionStatusBit statusBit)
 {
     PositionStatusChanged?.Invoke(node, statusBit);
 }