Beispiel #1
0
        public PendingTransfer[] GetPendingTransfers()
        {
            Recordset recordset = null;

            PendingTransfer[]           pendingTransfers = null;
            Dictionary <string, string> paramaters       = new Dictionary <string, string>();

            try {
                // paramaters.Add("Whs", GetUserDefaultWarehouse());
                paramaters.Add("Whs", "CRHE");

                var query = this.GetSQL("GetPendingTransfers").Inject(paramaters);

                recordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
                recordset.DoQuery(query);

                if (recordset.RecordCount > 0)
                {
                    pendingTransfers = new PendingTransfer[recordset.RecordCount];
                    for (int i = 0; i < recordset.RecordCount; i++)
                    {
                        var pendingTransfer = new PendingTransfer();
                        Parallel.ForEach(recordset.Fields.OfType <Field>(), field => {
                            pendingTransfer.GetType().GetProperty(field.Name).SetValue(pendingTransfer, field.Value);
                        });
                        pendingTransfers[i] = pendingTransfer;
                        recordset.MoveNext();
                    }
                }
            }
            catch (Exception ex) {
                HandleException(ex, "GetPendingTransfers");
            }
            return(pendingTransfers);
        }
Beispiel #2
0
        public ClientSession(string identity, GenericEnums.RoomType roomType)
        {
            try
            {
                _identity = identity;
                _peers = new PeerStates();

                switch (roomType)
                {
                    case GenericEnums.RoomType.Audio:
                        AudioSessionState = GenericEnums.SessionState.Pending;
                        break;
                    case GenericEnums.RoomType.Video:
                        AudioSessionState = GenericEnums.SessionState.Pending;
                        VideoSessionState = GenericEnums.SessionState.Pending;
                        break;
                    case GenericEnums.RoomType.Remoting:
                        RemotingSessionState = GenericEnums.SessionState.Pending;
                        break;
                }

                _pendingTransfer = new PendingTransfer();
                _pendingTransfer.Audio = false;
                _pendingTransfer.Video = false;
                _pendingTransfer.Remoting = false;
                _transferUpdating = new ConferenceStatus();
                _transferUpdating.IsAudioStatusUpdating = false;
                _transferUpdating.IsVideoStatusUpdating = false;
                _transferUpdating.IsRemotingStatusUpdating = false;
            }
            catch (Exception ex)
            {
                Tools.Instance.Logger.LogError(ex.ToString());
            }
        }
        protected override bool Receive(object message)
        {
            var handled = base.Receive(message);
            if (!handled)
            {
                if (message is AccountCommands.Transfer)
                {
                    var transfer = message as AccountCommands.Transfer;
                    var sender = Retrieve(transfer.FromAccountId);
                    var recipient = Retrieve(transfer.ToAccountId);

                    var transactionId = Guid.NewGuid();
                    var transaction = Context.ActorOf(Props.Create(() => new TransactionCoordinator()), "transfer-" + transactionId.ToString("N"));
                    var payload = new PendingTransfer(transactionId, sender, recipient, transfer.Amount);
                    transaction.Tell(new TransactionCoordinator.BeginTransaction(transactionId, new[] { sender, recipient }, payload));
                    //TODO: what if AccountCoordinator will harvest transaction participants before transaction ends?
                }
                else if (message is AccountCommands.CreateAccount)
                {
                    var userId = Guid.NewGuid();
                    ForwardCommand(userId, message as AccountCommands.CreateAccount);
                }
                else if (message is GetState)
                {
                    var getState = message as GetState;
                    ForwardCommand(getState.Id, getState);
                }
                else if (message is IAddressed && message is IAccountCommand)
                {
                    var addressed = message as IAddressed;
                    ForwardCommand(addressed.RecipientId, message as IAccountCommand);
                }
                else return false;
                return true;
            }

            return true;
        }