コード例 #1
0
        public ResponseModel PostCreateWallet([FromBody] CreateWallet createWallet)
        {
            int    user_Id = createWallet.User_Id;
            float  amount  = createWallet.Amount;
            Wallet insert  = new Wallet();
            var    check   = false;

            insert.Amount_Wallet  = amount;
            insert.User_Id        = user_Id.ToString();
            insert.Name_Wallet    = "Ví tiền mặt";
            insert.Description    = "";
            insert.Id_Type_Wallet = "1";
            User user = _context.Users.Where(x => x.User_Id == user_Id).FirstOrDefault();

            user.Check_Wallet = true;
            try
            {
                _context.Wallets.Add(insert);
                _context.Users.Update(user);
                _context.SaveChanges();
                check = true;
            }
            catch { check = false; }
            if (check == false)
            {
                ResponseModel res = new ResponseModel("Create fail", null, "404");
                return(res);
            }
            else
            {
                ResponseModel res = new ResponseModel("Create success", null, "200");
                return(res);
            }
        }
コード例 #2
0
        public async Task <WalletCreated> CreateWallet(CreateWallet request)
        {
            var walletId       = Guid.NewGuid();
            var privateKey     = new Key();
            var reexPrivateKey = privateKey.GetWif(network);
            var reexPublicKey  = privateKey.PubKey.GetAddress(network);
            var walletLabel    = "Main Wallet";
            var addressLabel   = "Main Address";

            var address   = new Address(Guid.NewGuid(), walletId, reexPublicKey.ToString(), addressLabel);
            var addresses = new List <Address>()
            {
                address
            };

            var wallet = new Wallet(walletId, request.Id, reexPrivateKey.ToString(), string.Empty, true, walletLabel, request.Email, addresses);

            // import new private key
            var rpcImportResult = await rpcClient.SendCommandAsync(new RPCRequest(RPCOperations.importprivkey, new object[] { wallet.PrivateKey, wallet.UserId.ToString(), true }));

            rpcImportResult.ThrowIfError();

            // create an account corresponding to the new address key
            var rpcResult = await rpcClient.SendCommandAsync(new RPCRequest(RPCOperations.setaccount, new object[] { address.MyAddress, wallet.WalletId.ToString() }));

            rpcResult.ThrowIfError();

            // save the data to CosmosDB
            await firebaseDbService.CreateWallet(wallet);

            return(new WalletCreated(wallet.WalletId, reexPublicKey.ToString(), addressLabel));
        }
コード例 #3
0
        public async Task <IActionResult> PutCreateWallet([FromRoute] int id, [FromBody] CreateWallet createWallet)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != createWallet.User_Id)
            {
                return(BadRequest());
            }

            _context.Entry(createWallet).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CreateWalletExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #4
0
        public async Task Handle_returns_true_if_wallet_is_persisted()
        {
            var createWalletCommand = new CreateWallet(It.IsAny <string>());

            _walletRepositoryMock.Setup(walletRepo => walletRepo.UnitOfWork.SaveEntitiesAsync(default(CancellationToken)))
            .Returns(Task.FromResult(true));

            var handler           = new CreateWalletHandler(_mediator.Object, _walletRepositoryMock.Object);
            var cancellationToken = new CancellationToken();
            var result            = await handler.Handle(createWalletCommand, cancellationToken);

            Assert.True(result);
        }
コード例 #5
0
        public void Wallet_Should_Be_Valid_When_Create_Wallet()
        {
            var createWallet = new CreateWallet
            {
                OwnerId = Guid.NewGuid().ToString(),
                Name    = "Wallet Name",
                Moneys  = new[]
                {
                    new MoneyModel
                    {
                        Amount       = 120M,
                        CurrencyCode = "USD"
                    }
                }
            };
            var createWalletValidator = new CreateWalletValidator();
            var validator             = createWalletValidator.Validate(createWallet);

            Assert.True(validator.IsValid);
        }
コード例 #6
0
        public void Wallet_Should_Be_Invalid_When_Name_And_OwnerId_Empty()
        {
            var createWallet = new CreateWallet
            {
                Moneys = new[]
                {
                    new MoneyModel
                    {
                        Amount       = 120M,
                        CurrencyCode = "USD"
                    }
                }
            };
            var createWalletValidator = new CreateWalletValidator();
            var validator             = createWalletValidator.Validate(createWallet);

            Assert.False(validator.IsValid);
            Assert.Contains(validator.Errors, x => x.ErrorMessage == "'Name' boş olmamalı.");
            Assert.Contains(validator.Errors, x => x.ErrorMessage == "'Owner Id' boş olmamalı.");
        }
コード例 #7
0
        public async Task Create_Wallet_Handler()
        {
            var request = new CreateWallet
            {
                Name   = "Name",
                Moneys = new[]
                {
                    new MoneyModel
                    {
                        Amount       = 120M,
                        CurrencyCode = "USD"
                    }
                },
                OwnerId = Guid.NewGuid().ToString()
            };
            var handler  = new CreateWalletHandler(_context);
            var response = await handler.Handle(request, CancellationToken.None);

            Assert.True(Guid.TryParse(response.ToString(), out _));
        }
コード例 #8
0
        public async Task <ActionResult <WalletCreated> > CreateWallet([FromBody] CreateWallet request)
        {
            try
            {
                if (string.IsNullOrEmpty(request.Email))
                {
                    return(BadRequest(new ArgumentNullException(nameof(request.Email)).Message));
                }

                if (User.Identity.Name != request.Email)
                {
                    return(BadRequest(RequestResponse.BadRequest()));
                }

                var result = await walletManagementService.CreateWallet(request);

                return(Ok(result));
            }
            catch (Exception)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, RequestResponse.InternalServerError()));
            }
        }
コード例 #9
0
        private void SetupViews()
        {
            Messenger.Default.Register <string>(this, "OpenAboutView", (string s) => About.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseAboutView", (string s) => About.Close());

            Messenger.Default.Register <string>(this, "OpenCreateWalletView", (string s) => CreateWallet.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseCreateWalletView", (string s) => CreateWallet.Close());

            Messenger.Default.Register <string>(this, "OpenLicenseView", (string s) => License.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseLicenseView", (string s) => License.Close());

            Messenger.Default.Register <string>(this, "OpenManageWalletView", (string s) => ManageWallet.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseManageWalletView", (string s) => ManageWallet.Close());

            Messenger.Default.Register <string>(this, "OpenPromptPasswordView", (string s) => PromptPassword.ShowDialog());
            Messenger.Default.Register <string>(this, "ClosePromptPasswordView", (string s) => PromptPassword.Close());

            Messenger.Default.Register <string>(this, "OpenReceiveView", (string s) => Receive.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseReceiveView", (string s) => Receive.Close());

            Messenger.Default.Register <string>(this, "OpenRecoverWalletView", (string s) => RecoverWallet.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseRecoverWalletView", (string s) => RecoverWallet.Close());

            Messenger.Default.Register <string>(this, "OpenRecoveryPhraseView", (string s) => RecoveryPhrase.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseRecoveryPhraseView", (string s) => RecoveryPhrase.Close());

            Messenger.Default.Register <string>(this, "OpenSendView", (string s) => Send.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseSendView", (string s) => Send.Close());

            Messenger.Default.Register <string>(this, "OpenSetLanguageView", (string s) => SetLanguage.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseSetLanguageView", (string s) => SetLanguage.Close());

            Messenger.Default.Register <string>(this, "OpenSetPasswordView", (string s) => SetPassword.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseSetPasswordView", (string s) => SetPassword.Close());

            Messenger.Default.Register <string>(this, "OpenSimpleDialogView", (string s) => SimpleDialog.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseSimpleDialogView", (string s) => SimpleDialog.Close());

            Messenger.Default.Register <string>(this, "OpenTxInfoView", (string s) => TxInfo.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseTxInfoView", (string s) => TxInfo.Close());

            Messenger.Default.Register <string>(this, "OpenWalletInfoView", (string s) => WalletInfo.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseWalletInfoView", (string s) => WalletInfo.Close());

            Messenger.Default.Register <string>(this, "OpenWelcomeView", (string s) => Welcome.ShowDialog());
            Messenger.Default.Register <string>(this, "CloseWelcomeView", (string s) => Welcome.Close());
        }
コード例 #10
0
        public async Task <IActionResult> Create([FromBody] CreateWallet command)
        {
            var commandResult = await _mediator.Send(command);

            return(commandResult ? Ok() : (IActionResult)BadRequest());
        }
コード例 #11
0
        public async Task <Guid> Post([FromBody] CreateWallet request)
        {
            var response = await _mediator.Send(request);

            return(response);
        }