Esempio n. 1
0
        /// <summary>
        ///     Executes the Use Case.
        /// </summary>
        /// <param name="input">Input Message.</param>
        /// <returns>Task.</returns>
        public async Task Execute(TransferInput input)
        {
            if (input is null)
            {
                this._outputPort.WriteError(Messages.InputIsNull);
                return;
            }

            try
            {
                var originAccount = await this._accountRepository.GetAccount(input.OriginAccountId)
                                    .ConfigureAwait(false);

                var destinationAccount = await this._accountRepository.GetAccount(input.DestinationAccountId)
                                         .ConfigureAwait(false);

                var debit = await this._accountService.Withdraw(originAccount, input.Amount)
                            .ConfigureAwait(false);

                var credit = await this._accountService.Deposit(destinationAccount, input.Amount)
                             .ConfigureAwait(false);

                await this._unitOfWork.Save()
                .ConfigureAwait(false);

                this.BuildOutput(debit, originAccount, destinationAccount);
            }
            catch (AccountNotFoundException ex)
            {
                this._outputPort.NotFound(ex.Message);
            }
        }
Esempio n. 2
0
        public async Task Execute(TransferInput input)
        {
            IAccount originAccount = await _accountRepository.Get(input.OriginAccountId);

            if (originAccount == null)
            {
                _outputHandler.Error($"The account {input.OriginAccountId} does not exist or is already closed.");
                return;
            }

            IAccount destinationAccount = await _accountRepository.Get(input.DestinationAccountId);

            if (destinationAccount == null)
            {
                _outputHandler.Error($"The account {input.DestinationAccountId} does not exist or is already closed.");
                return;
            }

            IDebit  debit  = originAccount.Withdraw(_entityFactory, input.Amount);
            ICredit credit = destinationAccount.Deposit(_entityFactory, input.Amount);

            await _accountRepository.Update(originAccount, debit);

            await _accountRepository.Update(destinationAccount, credit);

            await _unitOfWork.Save();

            TransferOutput output = new TransferOutput(
                debit,
                originAccount.GetCurrentBalance(),
                input.OriginAccountId,
                input.DestinationAccountId);

            _outputHandler.Default(output);
        }
        /// <summary>
        /// Executes the Use Case.
        /// </summary>
        /// <param name="input">Input Message.</param>
        /// <returns>Task.</returns>
        public async Task Execute(TransferInput input)
        {
            try
            {
                if (input is null)
                {
                    throw new ArgumentNullException(nameof(input));
                }

                var originAccount = await this.accountRepository.GetAccount(input.OriginAccountId)
                                    .ConfigureAwait(false);

                var destinationAccount = await this.accountRepository.GetAccount(input.DestinationAccountId)
                                         .ConfigureAwait(false);

                var debit = await this.accountService.Withdraw(originAccount, input.Amount)
                            .ConfigureAwait(false);

                var credit = await this.accountService.Deposit(destinationAccount, input.Amount)
                             .ConfigureAwait(false);

                await this.unitOfWork.Save()
                .ConfigureAwait(false);

                this.BuildOutput(debit, originAccount, destinationAccount);
            }
            catch (AccountNotFoundException ex)
            {
                this.outputPort.NotFound(ex.Message);
                return;
            }
        }
        public async Task Execute(TransferInput input)
        {
            IAccount originAccount;
            IAccount destinationAccount;

            try
            {
                originAccount = await _accountRepository.Get(input.OriginAccountId);

                destinationAccount = await _accountRepository.Get(
                    input.DestinationAccountId);
            }
            catch (AccountNotFoundException ex)
            {
                _outputPort.NotFound(ex.Message);
                return;
            }

            var debit  = originAccount.Withdraw(_entityFactory, input.Amount);
            var credit = destinationAccount.Deposit(_entityFactory, input.Amount);

            await _accountRepository.Update(originAccount, debit);

            await _accountRepository.Update(destinationAccount, credit);

            await _unitOfWork.Save();

            BuildOutput(debit, originAccount, destinationAccount);
        }
Esempio n. 5
0
        public async Task Get_Proposal_Test()
        {
            //failed case
            {
                var proposal = await AssociationAuthContractStub.GetProposal.CallAsync(Hash.FromString("Test"));

                proposal.ShouldBe(new ProposalOutput());
            }

            //normal case
            {
                var organizationAddress = await CreateOrganizationAsync();

                var transferInput = new TransferInput()
                {
                    Symbol = "ELF",
                    Amount = 100,
                    To     = Reviewer1,
                    Memo   = "Transfer"
                };
                var proposalId = await CreateProposalAsync(Reviewer2KeyPair, organizationAddress);

                var getProposal = await AssociationAuthContractStub.GetProposal.SendAsync(proposalId);

                getProposal.Output.Proposer.ShouldBe(Reviewer2);
                getProposal.Output.ContractMethodName.ShouldBe(nameof(TokenContract.Transfer));
                getProposal.Output.ProposalId.ShouldBe(proposalId);
                getProposal.Output.OrganizationAddress.ShouldBe(organizationAddress);
                getProposal.Output.ToAddress.ShouldBe(TokenContractAddress);
                getProposal.Output.Params.ShouldBe(transferInput.ToByteString());
            }
        }
        private async Task <Hash> CreateProposalAsync(ECKeyPair proposalKeyPair, Address organizationAddress)
        {
            var transferInput = new TransferInput()
            {
                Symbol = "ELF",
                Amount = 100,
                To     = Tester,
                Memo   = "Transfer"
            };
            var createProposalInput = new CreateProposalInput
            {
                ContractMethodName  = nameof(TokenContractStub.Transfer),
                ToAddress           = TokenContractAddress,
                Params              = transferInput.ToByteString(),
                ExpiredTime         = BlockTimeProvider.GetBlockTime().AddDays(2),
                OrganizationAddress = organizationAddress
            };

            ParliamentAuthContractStub = GetParliamentAuthContractTester(proposalKeyPair);
            var proposal = await ParliamentAuthContractStub.CreateProposal.SendAsync(createProposalInput);

            proposal.TransactionResult.Status.ShouldBe(TransactionResultStatus.Mined);
            var proposalCreated = ProposalCreated.Parser.ParseFrom(proposal.TransactionResult.Logs[0].NonIndexed).ProposalId;

            proposal.Output.ShouldBe(proposalCreated);

            return(proposal.Output);
        }
        public async Task Get_Proposal_Test()
        {
            await InitializeParliamentContracts();

            var minimalApprovalThreshold   = 6667;
            var maximalAbstentionThreshold = 2000;
            var maximalRejectionThreshold  = 3000;
            var minimalVoteThreshold       = 8000;
            var organizationAddress        = await CreateOrganizationAsync(minimalApprovalThreshold,
                                                                           maximalAbstentionThreshold, maximalRejectionThreshold, minimalVoteThreshold);

            var transferInput = new TransferInput()
            {
                Symbol = "ELF",
                Amount = 100,
                To     = Tester,
                Memo   = "Transfer"
            };
            var proposalId = await CreateProposalAsync(DefaultSenderKeyPair, organizationAddress);

            var getProposal = await ParliamentContractStub.GetProposal.SendAsync(proposalId);

            getProposal.Output.Proposer.ShouldBe(DefaultSender);
            getProposal.Output.ContractMethodName.ShouldBe(nameof(TokenContractStub.Transfer));
            getProposal.Output.ProposalId.ShouldBe(proposalId);
            getProposal.Output.OrganizationAddress.ShouldBe(organizationAddress);
            getProposal.Output.ToAddress.ShouldBe(TokenContractAddress);
            getProposal.Output.Params.ShouldBe(transferInput.ToByteString());
        }
        public override AssetMoveReturnDto MoveAssetFromMainAddress(AssetMoveDto input)
        {
            var holderInfo = GetHolderInfo(input.HolderId);

            CheckMoveFromMainPermission(holderInfo, input.Amount);

            var virtualUserAddress = GetVirtualUserAddress(input);

            var tokenInput = new TransferInput()
            {
                To     = Context.ConvertVirtualAddressToContractAddress(virtualUserAddress),
                Amount = input.Amount,
                Symbol = holderInfo.Symbol
            };

            Context.SendVirtualInline(input.HolderId, State.TokenContract.Value,
                                      nameof(State.TokenContract.Transfer), tokenInput);


            AssetMoveReturnDto result = new AssetMoveReturnDto();

            result.Success = true;

            return(result);
        }
        private void Create(TransferInput transferInput)
        {
            var transferEntity = ObjectMapper.Map <Transfer>(transferInput);

            SetAuditInsert(transferEntity);
            transferRepository.Insert(transferEntity);
            CurrentUnitOfWork.SaveChanges();
        }
Esempio n. 10
0
        public void GivenValidData_InputCreated()
        {
            var actual = new TransferInput(
                new AccountId(Guid.NewGuid()),
                new AccountId(Guid.NewGuid()),
                new PositiveMoney(10));

            Assert.NotNull(actual);
        }
        public async Task<IActionResult> Transfer([FromForm][Required] TransferRequest request)
        {
            var input = new TransferInput(
                new AccountId(request.OriginAccountId),
                new AccountId(request.DestinationAccountId),
                new PositiveMoney(request.Amount));

            await _mediator.PublishAsync(input);
            return _presenter.ViewModel;
        }
        public void GivenValidData_InputCreated()
        {
            var actual = new TransferInput(
                Guid.NewGuid(),
                Guid.NewGuid(),
                new PositiveAmount(10)
                );

            Assert.NotNull(actual);
        }
Esempio n. 13
0
        public IActionResult Post([FromBody] TransferInput input)
        {
            Image image = Image.CurrentImage;

            List <Color> NewPalette = ColorTransfer.FormatPalette(input.NewPalette);

            image.TransferPalette(NewPalette);

            return(Json(image.GetPixelArray()));
        }
 public void CreateOrEditTransfer(TransferInput transferInput)
 {
     if (transferInput.Id == 0)
     {
         Create(transferInput);
     }
     else
     {
         Update(transferInput);
     }
 }
 internal TransferInput TransferInput(Address address)
 {
     var transferInput = new TransferInput
     {
         Symbol = "ELF",
         Amount = 100,
         To = address,
         Memo = "Transfer"
     };
     return transferInput;
 }
        private void Update(TransferInput transferInput)
        {
            var transferEntity = transferRepository.GetAll().Where(x => !x.IsDelete).SingleOrDefault(x => x.Id == transferInput.Id);

            if (transferEntity == null)
            {
            }
            ObjectMapper.Map(transferInput, transferEntity);
            SetAuditEdit(transferEntity);
            transferRepository.Update(transferEntity);
            CurrentUnitOfWork.SaveChanges();
        }
        public async Task <IActionResult> Transfer([FromBody][Required] TransferRequest request)
        {
            var transferInput = new TransferInput(
                request.OriginAccountId,
                request.DestinationAccountId,
                new PositiveMoney(request.Amount)
                );

            await _TransferUseCase.Execute(transferInput);

            return(_presenter.ViewModel);
        }
        public async Task <IActionResult> Transfer(
            [FromServices] IMediator mediator,
            [FromServices] TransferPresenter presenter,
            [FromForm][Required] TransferRequest request)
        {
            var input = new TransferInput(
                request.OriginAccountId,
                request.DestinationAccountId,
                request.Amount);

            await mediator.PublishAsync(input)
            .ConfigureAwait(false);

            return(presenter.ViewModel);
        }
Esempio n. 19
0
        public async Task Execute(TransferInput input)
        {
            var originAccount = await _accountRepository.Get(input.OriginAccountId);

            var destinationAccount = await _accountRepository.Get(input.DestinationAccountId);

            var debit  = originAccount.Withdraw(_entityFactory, input.Amount);
            var credit = destinationAccount.Deposit(_entityFactory, input.Amount);

            await _accountRepository.Update(originAccount, debit);

            await _accountRepository.Update(destinationAccount, credit);

            await _unitOfWork.Save();

            BuildOutput(debit, originAccount, destinationAccount);
        }
Esempio n. 20
0
        public override Empty FailInlineTransfer(TransferInput input)
        {
            State.TokenContract.Transfer.Send(new MultiToken.TransferInput
            {
                Symbol = "ELF",
                Amount = input.Amount,
                To     = input.To,
                Memo   = input.Memo
            });

            Context.SendInline(State.TokenContract.Value, "Burn", new BurnInput
            {
                Symbol = "ELF",
                Amount = input.Amount.Div(10)
            }.ToByteString());

            return(new Empty());
        }
Esempio n. 21
0
        /// <summary>
        ///     Executes the Use Case.
        /// </summary>
        /// <param name="input">Input Message.</param>
        /// <returns>Task.</returns>
        public async Task Execute(TransferInput input)
        {
            if (input is null)
            {
                this._transferOutputPort.WriteError(Messages.InputIsNull);
                return;
            }

            IAccount originAccount = await this._accountRepository
                                     .GetAccount(input.OriginAccountId)
                                     .ConfigureAwait(false);

            if (originAccount == null)
            {
                this._transferOutputPort
                .NotFound(Messages.AccountDoesNotExist);
                return;
            }

            IAccount destinationAccount = await this._accountRepository
                                          .GetAccount(input.DestinationAccountId)
                                          .ConfigureAwait(false);

            if (destinationAccount == null)
            {
                this._transferOutputPort
                .NotFound(Messages.AccountDoesNotExist);
                return;
            }

            IDebit debit = await this._accountService
                           .Withdraw(originAccount, input.Amount)
                           .ConfigureAwait(false);

            await this._accountService
            .Deposit(destinationAccount, input.Amount)
            .ConfigureAwait(false);

            await this._unitOfWork
            .Save()
            .ConfigureAwait(false);

            this.BuildOutput(debit, originAccount, destinationAccount);
        }
        public async Task Execute(TransferInput input)
        {
            IAccount originAccount = await _accountRepository.Get(input.OriginAccountId);

            if (originAccount == null)
            {
                _outputHandler.Error($"The account {input.OriginAccountId} does not exist or is already closed.");
                return;
            }

            IAccount destinationAccount = await _accountRepository.Get(input.DestinationAccountId);

            if (destinationAccount == null)
            {
                _outputHandler.Error($"The account {input.DestinationAccountId} does not exist or is already closed.");
                return;
            }

            IDebit  debit  = originAccount.Withdraw(_entityFactory, input.Amount);
            ICredit credit = destinationAccount.Deposit(_entityFactory, input.Amount);

            await _accountRepository.Update(originAccount, debit);

            await _accountRepository.Update(destinationAccount, credit);

            // Publish the event to the enterprice service bus
            await _serviceBus.PublishEventAsync(new Shared.Events.TransferCompleted()
            {
                OriginalAccountId = originAccount.Id, DestinationAccountId = destinationAccount.Id, Amount = input.Amount.ToMoney().ToDecimal()
            });

            await _unitOfWork.Save();

            TransferOutput output = new TransferOutput(
                debit,
                originAccount.GetCurrentBalance(),
                input.OriginAccountId,
                input.DestinationAccountId);

            _outputHandler.Default(output);
        }
        public async Task Get_Proposal_Test()
        {
            var organizationAddress = await CreateOrganizationAsync();

            var transferInput = new TransferInput()
            {
                Symbol = "ELF",
                Amount = 100,
                To     = Tester,
                Memo   = "Transfer"
            };
            var proposalId = await CreateProposalAsync(DefaultSenderKeyPair, organizationAddress);

            var getProposal = await ParliamentAuthContractStub.GetProposal.SendAsync(proposalId);

            getProposal.Output.Proposer.ShouldBe(DefaultSender);
            getProposal.Output.ContractMethodName.ShouldBe(nameof(TokenContractStub.Transfer));
            getProposal.Output.ProposalId.ShouldBe(proposalId);
            getProposal.Output.OrganizationAddress.ShouldBe(organizationAddress);
            getProposal.Output.ToAddress.ShouldBe(TokenContractAddress);
            getProposal.Output.Params.ShouldBe(transferInput.ToByteString());
        }
        public async Task <Hash> Create_Proposal(Address organizationAddress)
        {
            _transferInput = new TransferInput()
            {
                Symbol = "ELF",
                Amount = 100,
                To     = Tester,
                Memo   = "Transfer"
            };
            _createProposalInput = new CreateProposalInput
            {
                ContractMethodName  = nameof(TokenContract.Transfer),
                ToAddress           = TokenContractAddress,
                Params              = _transferInput.ToByteString(),
                ExpiredTime         = BlockTimeProvider.GetBlockTime().AddDays(2).ToTimestamp(),
                OrganizationAddress = organizationAddress
            };
            var proposal = await ParliamentAuthContractStub.CreateProposal.SendAsync(_createProposalInput);

            proposal.TransactionResult.Status.ShouldBe(TransactionResultStatus.Mined);
            return(proposal.Output);
        }
Esempio n. 25
0
        public async Task Execute(TransferInput input)
        {
            try
            {
                var originAccount = await _accountRepository.Get(input.OriginAccountId);

                var destinationAccount = await _accountRepository.Get(input.DestinationAccountId);

                var debit = await _accountService.Withdraw(originAccount, input.Amount);

                var credit = await _accountService.Deposit(destinationAccount, input.Amount);

                await _unitOfWork.Save();

                BuildOutput(debit, originAccount, destinationAccount);
            }
            catch (AccountNotFoundException ex)
            {
                _outputPort.NotFound(ex.Message);
                return;
            }
        }
Esempio n. 26
0
        private async Task <Hash> CreateProposalAsync(ECKeyPair proposalKeyPair, Address organizationAddress)
        {
            var transferInput = new TransferInput()
            {
                Symbol = "ELF",
                Amount = 100,
                To     = Reviewer1,
                Memo   = "Transfer"
            };

            AssociationAuthContractStub = GetAssociationAuthContractTester(proposalKeyPair);
            var createProposalInput = new CreateProposalInput
            {
                ContractMethodName  = nameof(TokenContract.Transfer),
                ToAddress           = TokenContractAddress,
                Params              = transferInput.ToByteString(),
                ExpiredTime         = BlockTimeProvider.GetBlockTime().AddDays(2),
                OrganizationAddress = organizationAddress
            };
            var proposal = await AssociationAuthContractStub.CreateProposal.SendAsync(createProposalInput);

            return(proposal.Output);
        }
Esempio n. 27
0
        public async Task <Hash> Create_Proposal()
        {
            _organizationAddress = await Create_Organization();

            _transferInput = new TransferInput()
            {
                Symbol = "ELF",
                Amount = 100,
                To     = Reviewer1,
                Memo   = "Transfer"
            };
            AssociationAuthContractStub = GetAssociationAuthContractTester(Reviewer2KeyPair);
            _createProposalInput        = new CreateProposalInput
            {
                ContractMethodName  = nameof(TokenContract.Transfer),
                ToAddress           = TokenContractAddress,
                Params              = _transferInput.ToByteString(),
                ExpiredTime         = BlockTimeProvider.GetBlockTime().AddDays(2).ToTimestamp(),
                OrganizationAddress = _organizationAddress
            };
            var proposal = await AssociationAuthContractStub.CreateProposal.SendAsync(_createProposalInput);

            return(proposal.Output);
        }
Esempio n. 28
0
        /// <summary>
        /// Create a new Layer based on the LayerParameter.
        /// </summary>
        /// <param name="cuda">Specifies the CudaDnn connection to Cuda.</param>
        /// <param name="log">Specifies the Log for output.</param>
        /// <param name="p">Specifies the LayerParameter that contains the LayerType to create.</param>
        /// <param name="evtCancel">Specifies the CancelEvent used by some Layers when created.</param>
        /// <param name="imgDb">Optionally, specifies the CaffeImageDatabase used by data Layers.</param>
        /// <param name="trxinput">Optionally, specifies the transfer input object used by some of the data Layers.</param>
        /// <returns></returns>
        public static Layer <T> Create(CudaDnn <T> cuda, Log log, LayerParameter p, CancelEvent evtCancel, IXImageDatabase imgDb = null, TransferInput trxinput = null)
        {
            switch (p.type)
            {
            case LayerParameter.LayerType.ABSVAL:
                return(new AbsValLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.ACCURACY:
                return(new AccuracyLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.ARGMAX:
                return(new ArgMaxLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.BATCHDATA:
                return(new BatchDataLayer <T>(cuda, log, p, imgDb, evtCancel, (trxinput != null) ? trxinput.Set : null));

            case LayerParameter.LayerType.BATCHNORM:
                return(new BatchNormLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.BATCHREINDEX:
                return(new BatchReindexLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.BNLL:
                return(new BNLLLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.BIAS:
                return(new BiasLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.BINARYHASH:
                return(new BinaryHashLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.CONCAT:
                return(new ConcatLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.CONTRASTIVE_LOSS:
                return(new ContrastiveLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.CONVOLUTION:
                return(new ConvolutionLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.CROP:
                return(new CropLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.DECONVOLUTION:
                return(new DeconvolutionLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.IM2COL:
                return(new Im2colLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.DATA:
                return(new DataLayer <T>(cuda, log, p, imgDb, evtCancel));

            case LayerParameter.LayerType.DEBUG:
                return(new DebugLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.DROPOUT:
                return(new DropoutLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.DUMMYDATA:
                return(new DummyDataLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.ELTWISE:
                return(new EltwiseLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.ELU:
                return(new ELULayer <T>(cuda, log, p));

            case LayerParameter.LayerType.EMBED:
                return(new EmbedLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.EUCLIDEAN_LOSS:
                return(new EuclideanLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.EXP:
                return(new ExpLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.FILTER:
                return(new FilterLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.FLATTEN:
                return(new FlattenLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.GRN:
                return(new GRNLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.GRADIENTSCALER:
                return(new GradientScaleLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.HINGE_LOSS:
                return(new HingeLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.INFOGAIN_LOSS:
                return(new InfogainLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.INNERPRODUCT:
                return(new InnerProductLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.KNN:
                return(new KnnLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.LOG:
                return(new LogLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.LABELMAPPING:
                return(new LabelMappingLayer <T>(cuda, log, p, imgDb));

            case LayerParameter.LayerType.LRN:
                return(new LRNLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.MEMORYDATA:
                return(new MemoryDataLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.MULTINOMIALLOGISTIC_LOSS:
                return(new MultinomialLogisticLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.MVN:
                return(new MVNLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.NORMALIZATION:
                return(new NormalizationLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.POOLING:
                return(new PoolingLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.UNPOOLING1:
                return(new UnPoolingLayer1 <T>(cuda, log, p));

            case LayerParameter.LayerType.UNPOOLING2:
                return(new UnPoolingLayer2 <T>(cuda, log, p));

            case LayerParameter.LayerType.POWER:
                return(new PowerLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.PRELU:
                return(new PReLULayer <T>(cuda, log, p));

            case LayerParameter.LayerType.REDUCTION:
                return(new ReductionLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.REINFORCEMENT_LOSS:
                return(new ReinforcementLossLayer <T>(cuda, log, p, (trxinput != null) ? trxinput.Get : null));

            case LayerParameter.LayerType.RELU:
                return(new ReLULayer <T>(cuda, log, p));

            case LayerParameter.LayerType.RESHAPE:
                return(new ReshapeLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SCALE:
                return(new ScaleLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SIGMOID:
                return(new SigmoidLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SIGMOIDCROSSENTROPY_LOSS:
                return(new SigmoidCrossEntropyLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SILENCE:
                return(new SilenceLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SLICE:
                return(new SliceLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SOFTMAX:
                return(new SoftmaxLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SOFTMAXWITH_LOSS:
                return(new SoftmaxLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SPLIT:
                return(new SplitLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SPP:
                return(new SPPLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.SWISH:
                return(new SwishLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.TANH:
                return(new TanhLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.THRESHOLD:
                return(new ThresholdLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.TRIPLET_LOSS_SIMPLE:
                return(new TripletLossSimpleLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.TRIPLET_LOSS:
                return(new TripletLossLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.TRIPLET_SELECT:
                return(new TripletSelectLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.TRIPLET_DATA:
                return(new TripletDataLayer <T>(cuda, log, p, imgDb, evtCancel));

            case LayerParameter.LayerType.TILE:
                return(new TileLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.LSTM_SIMPLE:
                return(new LSTMSimpleLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.RNN:
                return(new RNNLayer <T>(cuda, log, p, evtCancel));

            case LayerParameter.LayerType.LSTM:
                return(new LSTMLayer <T>(cuda, log, p, evtCancel));

            case LayerParameter.LayerType.LSTM_UNIT:
                return(new LSTMUnitLayer <T>(cuda, log, p));

            case LayerParameter.LayerType.INPUT:
                return(new InputLayer <T>(cuda, log, p));

            default:
                log.FAIL("Unknown layer type: " + p.type.ToString());
                break;
            }

            throw new NotImplementedException("The layer type: " + p.type.ToString() + " is not implemented yet.");
        }
Esempio n. 29
0
 public override Empty Transfer(TransferInput input)
 {
     AssertValidToken(input.Symbol, input.Amount);
     DoTransfer(Context.Sender, input.To, input.Symbol, input.Amount, input.Memo);
     return(new Empty());
 }
Esempio n. 30
0
 private void Transfer(TransferInput input)
 {
     SetContractStateRequired(State.TokenContract, SmartContractConstants.TokenContractSystemName);
     State.TokenContract.Transfer.Send(input);
 }