public void SetDeviceStats(string inpId, string inpStats, string inpMeter)  // изменение показаний => снятие денег
        {
            DateTime currentDate = DateTime.Today;
            int      id, stats, meter, prevStats;

            Int32.TryParse(inpId, out id);
            Int32.TryParse(inpStats, out stats);
            Int32.TryParse(inpMeter, out meter);
            Device prevDevice = GetLastDevice(id, meter);

            if (prevDevice == null)
            {
                prevStats = 0;
            }
            else
            {
                prevStats = prevDevice.PreviousStats;
            }
            using (PSWContext db = new PSWContext())
            {
                Device device = new Device {
                    PersonalAccount = id, Meter = meter, PreviousStats = stats + prevStats, Date = currentDate
                };
                db.Devices.Add(device);
                db.SaveChanges();
            }
            SetBalanceStats(id, meter, -stats);
        }
 public Meter GetMeter(int id)
 {
     using (PSWContext db = new PSWContext())
     {
         Meter meter = db.Meters.Find(id);
         return(meter);
     }
 }
 public Balance GetLastBalance(int id)
 {
     using (PSWContext db = new PSWContext())
     {
         int reqId = db.Balances.Where(b => b.PersonalAccount == id)
                     .Max(b => b.BalanceId);
         Balance reqBalance = db.Balances.FirstOrDefault(b => b.BalanceId == reqId);
         return(reqBalance);
     }
 }
 public Device GetLastDevice(int id, int meter)
 {
     using (PSWContext db = new PSWContext())
     {
         int reqId = db.Devices.Where(b => b.PersonalAccount == id && b.Meter == meter)
                     .Max(b => b.DeviceId);
         Device reqDevice = db.Devices.FirstOrDefault(b => b.DeviceId == reqId);
         return(reqDevice);
     }
 }
        public void SetBalanceStats(int id, int meter, int balance) // снятие денег
        {
            DateTime date        = DateTime.Today;
            Balance  prevBalance = GetLastBalance(id);
            Meter    priceMeter  = GetMeter(meter);

            using (PSWContext db = new PSWContext())
            {
                Balance newBalance = new Balance {
                    PersonalAccount = id, BalanceSum = prevBalance.BalanceSum + balance * priceMeter.Price, Date = date, Type = 2
                };
                db.Balances.Add(newBalance);
                db.SaveChanges();
            }
        }
 public void GetUser(int id)
 {
     using (PSWContext db = new PSWContext())
     {
         User user = db.Users.Find(id);
         if (user == null)
         {
             Context.Response.Write("401");
         }
         else
         {
             JavaScriptSerializer js = new JavaScriptSerializer();
             Context.Response.Write("200 " + js.Serialize(user));
         }
     }
 }
        public void SetBalanceRefill(string inpId, string inpBalance)  // пополнение
        {
            DateTime currentDate = DateTime.Today;
            int      id, newBalance;

            Int32.TryParse(inpId, out id);
            Int32.TryParse(inpBalance, out newBalance);
            using (PSWContext db = new PSWContext())
            {
                Balance balance = GetLastBalance(id);
                balance.BalanceSum += newBalance;
                balance.Date        = currentDate;
                balance.Type        = 1;
                db.Balances.Add(balance);
                db.SaveChanges();
            }
        }