コード例 #1
0
        /// <summary>
        /// Create a new transaction in repository.
        /// </summary>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public async Task <TransactionDb> AddAsync(TransactionDb transaction)
        {
            _videoDbContext.Transactions.Add(transaction);
            await _videoDbContext.SaveChangesAsync().ConfigureAwait(false);

            return(await Task.FromResult(transaction));
        }
コード例 #2
0
 /// <summary>
 /// Update transaction in repository.
 /// </summary>
 /// <param name="transaction"></param>
 /// <returns></returns>
 public void Update(TransactionDb transaction)
 {
     if (transaction == null)
     {
         throw new ArgumentNullException("transaction");
     }
     _videoDbContext.Entry(transaction).State = EntityState.Modified;
     _videoDbContext.SaveChanges();
 }
コード例 #3
0
 /// <summary>
 /// Remove transaction in repository.
 /// </summary>
 /// <param name="transaction"></param>
 /// <returns></returns>
 public async Task RemoveAsync(TransactionDb transaction)
 {
     if (transaction == null)
     {
         throw new ArgumentNullException("transaction");
     }
     _videoDbContext.Transactions.Remove(transaction);
     await _videoDbContext.SaveChangesAsync().ConfigureAwait(false);
 }
コード例 #4
0
        /// <summary>
        /// Update transaction in repository.
        /// </summary>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public async Task <TransactionDb> UpdateAsync(TransactionDb transaction)
        {
            if (transaction == null)
            {
                throw new ArgumentNullException("transaction");
            }
            _videoDbContext.Entry(transaction).State = EntityState.Modified;
            await _videoDbContext.SaveChangesAsync().ConfigureAwait(false);

            return(await Task.FromResult(transaction));
        }
コード例 #5
0
        /// <summary>
        /// Add Subscription to user.
        /// </summary>
        /// <param name="user"></param>
        /// <param name="subscription"></param>
        /// <returns></returns>
        public Task <Result> BuySubscription(UserInfo user, Subscription subscription)
        {
            double price = 0;

            switch (subscription)
            {
            case (Subscription.Normal):
            {
                price = 3.50;
                break;
            }

            case (Subscription.Premium):
            {
                price = 5.50;
                break;
            }
            }
            if (price > 0)
            {
                var userDb      = _mapper.Map <UserInfo, UserDb>(user);
                var transaction = new TransactionDb()
                {
                    TransactionId     = Guid.NewGuid().ToString(),
                    TransactionDate   = DateTime.Now,
                    TransactionAmount = price,
                    User = userDb
                };

                bool pay = PaiPal(user, price);

                if (pay == true)
                {
                    _userRepository.AddTransaction(transaction);
                }

                return(Task.FromResult(Result.Ok()));
            }
            else
            {
                return(Task.FromResult(Result.Fail("you need to pay for subscription")));
            }
        }
コード例 #6
0
        /// <summary>
        /// Add purchased courses to user.
        /// </summary>
        /// <param name="user"></param>
        /// <param name="course"></param>
        /// <returns></returns>
        public Task <Result> BuySingleCourse(UserInfo user, CourseInfo course)
        {
            double price       = course.Price;
            var    userDb      = _mapper.Map <UserInfo, UserDb>(user);
            var    courseDb    = _mapper.Map <CourseInfo, CourseDb>(course);
            var    transaction = new TransactionDb()
            {
                TransactionId     = Guid.NewGuid().ToString(),
                TransactionDate   = DateTime.Now,
                TransactionAmount = price,
                User = userDb
            };

            bool pay = PaiPal(user, price);

            if (pay == true)
            {
                _userRepository.AddTransaction(transaction);
            }

            return(Task.FromResult(Result.Ok()));
        }
コード例 #7
0
 /// <summary>
 /// Remove transaction in repository.
 /// </summary>
 /// <param name="transaction"></param>
 /// <returns></returns>
 public void Remove(TransactionDb transaction)
 {
     _videoDbContext.Transactions.Remove(transaction);
     _videoDbContext.SaveChanges();
 }
コード例 #8
0
 /// <summary>
 /// Create a new transaction in repository.
 /// </summary>
 /// <param name="transaction"></param>
 /// <returns></returns>
 public void Add(TransactionDb transaction)
 {
     _videoDbContext.Transactions.Add(transaction);
     _videoDbContext.SaveChanges();
 }
コード例 #9
0
 public TransactionsController(TransactionDb transactionDb)
 {
     db = transactionDb;
 }
コード例 #10
0
 public UploadFileController(TransactionDb transactionDb)
 {
     db = transactionDb;
 }
コード例 #11
0
 public void Dispose()
 {
     ConnectionDb?.Dispose();
     TransactionDb?.Dispose();
 }
コード例 #12
0
 public ChainManager()
 {
     blockDb       = new BlockDb();
     transactionDb = new TransactionDb(blockDb);
 }