Ejemplo n.º 1
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new ApplicationUser()
            {
                UserName = model.Email, Email = model.Email
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            var accountservice = new AccountService();
            var userId         = Guid.Parse(accountservice.GetGuid(user.Email));
            var walletService  = new WalletService(userId);

            var wallet = new WalletCreate
            {
                WalletBalance = 50000
            };

            if (!walletService.CreateWallet(wallet))
            {
                return(InternalServerError(new Exception("Error creating Wallet.")));
            }

            var currencyService = new CurrencyService();
            var currencies      = currencyService.GetCurrencies();

            foreach (var currency in currencies)
            {
                var holdingService = new HoldingService(userId);

                var holding =
                    new HoldingCreate()
                {
                    CryptoHoldingBalance = 0,
                    CurrencyId           = currency.CurrencyId,
                    WalletId             = walletService.GetWalletId()
                };

                if (!holdingService.CreateHolding(holding))
                {
                    return(InternalServerError(new Exception($"Error creating entry for Holding: {holding.CurrencyId}")));
                }
            }

            return(Ok());
        }
Ejemplo n.º 2
0
        public bool CreateWallet(WalletCreate model)
        {
            var entity =
                new Wallet()
            {
                UserId        = _userId,
                WalletBalance = model.WalletBalance,
                CreatedUtc    = DateTimeOffset.UtcNow
            };

            using (var ctx = new ApplicationDbContext())
            {
                ctx.Wallets.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }
        //POST /api/wallet
        public IHttpActionResult Post(WalletCreate wallet)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var service = CreateWalletService();

            if (service.HasWallet())
            {
                return(BadRequest());
            }

            if (!service.CreateWallet(wallet))
            {
                return(InternalServerError());
            }

            return(Ok());
        }
Ejemplo n.º 4
0
 public async Task <iBanFirstApiResponse <WalletDetail> > Create(WalletCreate wallet)
 {
     return(await _client.MakeApiRequest <WalletDetail>("wallets/", RequestMethod.POST, wallet));
 }