public bool UpdateLeverage(int levergae, int userId)
        {
            using (CovidCoinContext c = new CovidCoinContext())
            {
                var findUser = c.Users.Where(i => i.Id == userId).FirstOrDefault();
                findUser.LeverageId = levergae;

                if (levergae == 1)
                {
                    findUser.LeverageBalance = findUser.Balance * 50;
                }
                else if (levergae == 2)
                {
                    findUser.LeverageBalance = findUser.Balance * 100;
                }
                else if (levergae == 2)
                {
                    findUser.LeverageBalance = findUser.Balance * 500;
                }

                c.Entry(findUser).State = EntityState.Modified;
                c.SaveChanges();
                return(true);
            }
        }
示例#2
0
        public bool BuyDeal(BuyDealModel buyDealModel)
        {
            using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
            {
                var dealBought = covidCoinEntities.UserDeals.Where(x => x.userId == buyDealModel.userId && x.dealId == buyDealModel.userId && x.dealType.Equals("buy") && x.isActive == true).FirstOrDefault();
                if (dealBought != null)
                {
                    return(false);
                }
                else
                {
                    var user = covidCoinEntities.Users.Where(x => x.Id == buyDealModel.userId && x.IsActive == true).FirstOrDefault();
                    user.LeverageBalance = user.LeverageBalance - buyDealModel.dealPrice * buyDealModel.dealShares;
                    covidCoinEntities.Entry(user).State = EntityState.Modified;

                    UserDeal deal = new UserDeal();
                    deal.dealId     = buyDealModel.dealId;
                    deal.userId     = buyDealModel.userId;
                    deal.dealShares = buyDealModel.dealShares;
                    deal.dealPrice  = buyDealModel.dealPrice;
                    deal.dealType   = "buy";
                    deal.isActive   = true;
                    deal.createdAt  = DateTime.Now;

                    covidCoinEntities.UserDeals.Add(deal);
                    covidCoinEntities.SaveChanges();
                    return(true);
                }
            }
        }
 public User GetUserById(int userId)
 {
     using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
     {
         return(covidCoinEntities.Users.Where(x => x.Id == userId && x.IsActive == true).FirstOrDefault());
     }
 }
 public User LoginUser(string userName, string password)
 {
     using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
     {
         return(covidCoinEntities.Users.Where(x => x.Username.Equals(userName) && x.Password.Equals(password) && x.IsActive == true).FirstOrDefault());
     }
 }
        public User EditUser(User user)
        {
            using (CovidCoinContext covid = new CovidCoinContext())
            {
                var findUser = covid.Users.Where(x => x.Id == user.Id && x.IsActive == true).FirstOrDefault();
                if (user.IsActive == false)
                {
                    findUser.IsActive = false;
                }
                if (user.Freeze == true)
                {
                    findUser.Freeze = true;
                }
                else
                {
                    findUser.Freeze = false;
                }

                if (user.IsActive == true && user.Freeze == false)
                {
                    findUser.Name     = user.Name;
                    findUser.Username = user.Username;
                    findUser.Password = user.Password;
                    findUser.Balance  = user.Balance;
                    findUser.Email    = user.Email;
                    findUser.Phone    = user.Phone;
                }

                covid.Entry(findUser).State = EntityState.Modified;
                covid.SaveChanges();
                return(findUser);
            }
        }
 public List <User> GetAllUser()
 {
     using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
     {
         return(covidCoinEntities.Users.Where(x => x.IsActive == true).ToList());
     }
 }
示例#7
0
        public bool CloseDeal(CloseDealInput closeDealInput)
        {
            //profit / loss of the user = (Closing price – buy price) x quantity of the same deal.

            using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
            {
                var user     = covidCoinEntities.Users.Where(x => x.Id == closeDealInput.userId && x.IsActive == true).FirstOrDefault();
                var deal     = covidCoinEntities.Deals.Where(d => d.Id == closeDealInput.dealId && d.IsActive == true).FirstOrDefault();
                var userDeal = covidCoinEntities.UserDeals.Where(ud => ud.dealId == deal.Id && ud.userId == closeDealInput.userId && ud.isActive == true).FirstOrDefault();

                //calculating profit/loss
                deal.ClosingPrice = closeDealInput.closingPrice;
                var profitLoss = (deal.ClosingPrice - userDeal.dealPrice) * userDeal.dealShares;

                //updating wallet
                if (deal.ClosingPrice > userDeal.dealPrice)
                {
                    user.Balance = user.Balance + profitLoss;
                }
                else
                {
                    if (profitLoss < 0)
                    {
                        user.Balance = user.Balance + profitLoss;
                    }
                    else
                    {
                        user.Balance = user.Balance - profitLoss;
                    }
                }

                //updating leverage wallet
                if (user.LeverageId == 1)
                {
                    user.LeverageBalance = user.Balance * 50;
                }
                else if (user.LeverageId == 2)
                {
                    user.LeverageBalance = user.Balance * 100;
                }
                else if (user.LeverageId == 2)
                {
                    user.LeverageBalance = user.Balance * 500;
                }

                userDeal.isActive = false;

                covidCoinEntities.Entry(user).State     = EntityState.Modified;
                covidCoinEntities.Entry(deal).State     = EntityState.Modified;
                covidCoinEntities.Entry(userDeal).State = EntityState.Modified;
                covidCoinEntities.SaveChanges();
                return(true);
            }
        }
示例#8
0
 public bool AddDeal(Deal d)
 {
     d.IsActive  = true;
     d.CreatedAt = DateTime.Now;
     using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
     {
         covidCoinEntities.Deals.Add(d);
         covidCoinEntities.SaveChanges();
         return(true);
     }
 }
 public int CheckCountLeverage(int userId)
 {
     using (CovidCoinContext c = new CovidCoinContext())
     {
         var findUser = c.UserDeals.Where(u => u.userId == userId && u.dealType.Equals("buy") && u.isActive == true).FirstOrDefault();
         if (findUser != null)
         {
             return(1);
         }
         else
         {
             return(0);
         }
     }
 }
示例#10
0
 public List <Deal> GetAllDeals(int userId)
 {
     using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
     {
         var deals = covidCoinEntities.Deals.Where(x => x.IsActive == true).ToList();
         foreach (var deal in deals)
         {
             var d = covidCoinEntities.UserDeals.Where(x => x.userId == userId && x.dealId == deal.Id && x.isActive == true).FirstOrDefault();
             if (d != null)
             {
                 deal.isDealBought = true;
             }
             else
             {
                 deal.isDealBought = false;
             }
         }
         return(deals);
     }
 }
示例#11
0
        public bool AddUser(User user)
        {
            using (CovidCoinContext covidCoinEntities = new CovidCoinContext())
            {
                var getCurrentUser = covidCoinEntities.Users.Where(x => x.Role == 2 &&
                                                                   (x.Username.Equals(user.Username) || x.Email.Equals(user.Email) || x.Phone == user.Phone || x.Address.Equals(user.Address)) &&
                                                                   x.IsActive == true).FirstOrDefault();


                if (getCurrentUser != null)
                {
                    return(false);
                }
                else
                {
                    covidCoinEntities.Users.Add(user);
                    covidCoinEntities.SaveChanges();
                    return(true);
                }
            }
        }