Exemplo n.º 1
0
 public void CancelStoporders(string login)
 {
     using (var db = new InsideDBEntities())
     {
         Clients.Client(db.Users.Find(login)?.ConnectionID).CancelStoporders();
     }
 }
Exemplo n.º 2
0
 public void RealtimeBalance(string login, double totalBalance)
 {
     Clients.Clients(Admins).UpdateUserBalance(new [] { login, totalBalance.ToString("F2") });
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         //risk control
         if (user.AutoSleep && totalBalance <= user.SleepThreshold)
         {
             ExecAutoSleep(user.Login);
         }
         //profit control - fix profit and exec protocol
         if (user.ProfitControl && !user.ProfitFixed && totalBalance >= user.ProfitLimit)
         {
             FixProfit(login, totalBalance);
             ExecProfitControl(login);
         }
         //if profits keep rising - adjust profitlimit and profitloss limit
         if (user.ProfitControl && user.ProfitFixed && totalBalance >= user.ProfitLimit * 1.01)
         {
             AdjustProfitControl(login, totalBalance);
         }
         //if profit control is active and losses reach a limit - exec protocol
         if (user.ProfitControl && user.ProfitFixed && user.TotalBalance < user.ProfitLossLimit)
         {
             ExecProfitControl(login);
             user.ProfitControl = false;
             user.ProfitFixed   = false;
             db.SaveChanges();
             Clients.Clients(Admins).UpdateUser(user);
         }
     }
 }
Exemplo n.º 3
0
 public void CloseBalance(string login)
 {
     using (var db = new InsideDBEntities())
     {
         Clients.Client(db.Users.Find(login)?.ConnectionID).CloseBalance();
     }
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            var url = @"http://194.87.232.14:999";

#if DEBUG
            url = @"http://localhost:8080";
#endif
            using (WebApp.Start <Startup>(url))
            {
                Console.WriteLine($"Server running at {url}");
                using (var db = new InsideDBEntities())
                {
                    foreach (var user in db.Users)
                    {
                        user.Status       = "offline";
                        user.ConnectionID = "-";
                        user.Sleep        = "-";
                    }
                    db.SaveChanges();
                }
                while (true)
                {
                    if (Console.ReadLine() == "init")
                    {
                        CreateAdmin();
                    }
                }
            }
        }
Exemplo n.º 5
0
 public void CheckCredentials(string login, string password)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.FirstOrDefault(u => u.Login == login);
         if (user == null || !PassHashing.CheckPasssword(user.Password, password))
         {
             Clients.Caller.ServerReply("notFound");
         }
         else if (user.LicenseExpDate < DateTime.Today)
         {
             Clients.Caller.ServerReply("licenseExpired");
         }
         else if (user.Status == "online")
         {
             Clients.Caller.ServerReply("online");
         }
         else if (user.LicenseExpDate > DateTime.Today || (user.Role == "demo" && user.LicenseExpDate == null))
         {
             if (user.Role == "demo" && user.LicenseExpDate == null)
             {
                 user.LicenseExpDate = DateTime.Today.AddDays(7);
             }
             Clients.Caller.ServerReply(user);
             user.ConnectionID = Context.ConnectionId;
             user.Status       = "online";
             db.SaveChanges();
             if (user.Role == "admin")
             {
                 Admins.Add(Context.ConnectionId);
             }
             GetUsers();
         }
     }
 }
Exemplo n.º 6
0
 public void GetLicense()
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.First(u => u.ConnectionID == Context.ConnectionId);
         Clients.Caller.License(user.LicenseExpDate);
     }
 }
Exemplo n.º 7
0
 public void GetUsers()
 {
     using (var db = new InsideDBEntities())
     {
         var users = db.Users.ToList();
         Clients.Clients(Admins).UserList(users);
     }
 }
Exemplo n.º 8
0
 public void DeleteUser(string login)
 {
     using (var db = new InsideDBEntities())
     {
         db.Users.Remove(db.Users.Find(login));
         db.SaveChanges();
     }
     GetUsers();
 }
Exemplo n.º 9
0
 private void FixProfit(string login, double totalBalance)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         user.ProfitFixed     = true;
         user.ProfitLossLimit = totalBalance * 0.8;
         db.SaveChanges();
         Clients.Clients(Admins).UpdateUser(user);
     }
 }
Exemplo n.º 10
0
 public void EditAutoSleep(string login, bool autoSleep)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         if (user != null)
         {
             user.AutoSleep = autoSleep;
         }
         db.SaveChanges();
     }
 }
Exemplo n.º 11
0
 public void EditProfitLimit(string login, double profitLimit)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         if (user != null)
         {
             user.ProfitLimit = profitLimit;
         }
         db.SaveChanges();
         Clients.Clients(Admins).UpdateUser(user);
     }
 }
Exemplo n.º 12
0
 public void EditProfitControl(string login, bool profitControl)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         if (user != null)
         {
             user.ProfitControl = profitControl;
         }
         db.SaveChanges();
         Clients.Clients(Admins).UpdateUser(user);
     }
 }
Exemplo n.º 13
0
 public void EditSleepThreshold(string login, int sleepThreshold)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         if (user != null)
         {
             user.SleepThreshold = sleepThreshold;
         }
         db.SaveChanges();
     }
     GetUsers();
 }
Exemplo n.º 14
0
        public async void RequestBalance(string login, DateTime from, DateTime to)
        {
            using (var db = new InsideDBEntities())
            {
                var    tradesDb = db.Trades.Where(t => t.Login == login && t.Time >= from && t.Time <= to);
                double balance  = 0;
                await tradesDb.ForEachAsync(trade =>
                                            balance += trade.Price *trade.Quantity *trade.Lotsize *(trade.Buysell == "S" ? 1 : -1)
                                            );

                Clients.Caller.Balance(balance);
            }
        }
Exemplo n.º 15
0
 public void Unsleep(string login)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         user.Sleep = "-";
         db.SaveChanges();
         Clients.Client(user.ConnectionID).Unsleep();
         Timers.Find(x => x.Login == login.ToString()).Timer.Dispose();
         Timers.RemoveAll(t => t.Login == login.ToString());
     }
     GetUsers();
 }
Exemplo n.º 16
0
 public void Disconnect(string connectionId, string message)
 {
     Clients.Client(connectionId).Disconnect(message);
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.First(u => u.ConnectionID == connectionId);
         user.Status       = "offline";
         user.ConnectionID = "-";
         db.SaveChanges();
     }
     Admins.RemoveAll(x => x == connectionId);
     GetUsers();
 }
Exemplo n.º 17
0
 private static void CreateAdmin()
 {
     using (var db = new InsideDBEntities())
     {
         db.Users.Add(new User
         {
             Login          = "******",
             Password       = PassHashing.GetPasswordHashWithSalt("admin"),
             Role           = "admin",
             LicenseExpDate = DateTime.Parse("01.01.2050"),
         });
         db.SaveChanges();
     }
 }
Exemplo n.º 18
0
 public override Task OnDisconnected(bool stopCalled)
 {
     Console.WriteLine("Client disconnected: " + Context.ConnectionId);
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.First(u => u.ConnectionID == Context.ConnectionId);
         user.Status       = "offline";
         user.ConnectionID = "-";
         db.SaveChanges();
     }
     Admins.Remove(Context.ConnectionId);
     GetUsers();
     return(base.OnDisconnected(true));
 }
Exemplo n.º 19
0
 public void ExecAutoSleep(string login)
 {
     CancelOrders(login);
     CancelStoporders(login);
     CloseBalance(login);
     SleepUser(login, (12 * 60).ToString());
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         user.AutoSleep = false;
         db.SaveChanges();
     }
     GetUsers();
 }
Exemplo n.º 20
0
 public void SleepUser(string login, string time)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         user.Sleep = time;
         db.SaveChanges();
         Clients.Client(user.ConnectionID).Sleep();
         Timers.RemoveAll(x => x.Login == login);
         Timers.Add(new UserSleepTimer(login,
                                       new Timer(TimerCallback, login, int.Parse(time) * 60000, int.MaxValue)));
     }
     GetUsers();
 }
Exemplo n.º 21
0
 public void NewTrades(string login, List <Trade> trades)
 {
     using (var db = new InsideDBEntities())
     {
         var tradesDb = db.Trades;
         foreach (var t in trades)
         {
             if (tradesDb.Find(t.Tradeno) == null)
             {
                 tradesDb.Add(t);
             }
         }
         db.SaveChanges();
     }
 }
Exemplo n.º 22
0
 public void EditUser(string login, string password, string role, string license, string email)
 {
     using (var db = new InsideDBEntities())
     {
         var user = db.Users.Find(login);
         //keep old pass if parameter is empty
         if (password != "")
         {
             user.Password = PassHashing.GetPasswordHashWithSalt(password);
         }
         user.Role           = role;
         user.Email          = email;
         user.LicenseExpDate = DateTime.Parse(license);
         db.SaveChanges();
     }
     GetUsers();
 }
Exemplo n.º 23
0
 public void SelectWindows(UserWindows userWindows)
 {
     using (var db = new InsideDBEntities())
     {
         var selectedUser = db.Users.Find(userWindows.Login);
         selectedUser.Alerts       = userWindows.Alerts;
         selectedUser.AllTrades    = userWindows.AllTrades;
         selectedUser.AllTradesPro = userWindows.AllTradesPro;
         selectedUser.Chart        = userWindows.Chart;
         selectedUser.Counter      = userWindows.Counter;
         selectedUser.L2           = userWindows.L2;
         selectedUser.Logbook      = userWindows.Logbook;
         selectedUser.Trading      = userWindows.Trading;
         selectedUser.FastOrder    = userWindows.FastOrder;
         db.SaveChanges();
         Clients.Client(selectedUser.ConnectionID).SelectWindows(userWindows);
     }
     GetUsers();
 }
Exemplo n.º 24
0
 public void AddUser(string login, string password, string role, string license, string email)
 {
     using (var db = new InsideDBEntities())
     {
         var user = new User
         {
             Login    = login,
             Password = PassHashing.GetPasswordHashWithSalt(password),
             Role     = role,
             Email    = email
         };
         if (role != "demo")
         {
             user.LicenseExpDate = DateTime.Parse(license);
         }
         db.Users.Add(user);
         db.SaveChanges();
     }
     GetUsers();
 }