public void AddBalanceUpdate(string @delegate, int type, int level, long amount, int slots) { RunIsolatedDb(db => { var d = db.Delegates.FirstOrDefault(o => o.Address == @delegate); if (d == null) { d = new Delegate { Address = @delegate }; db.Delegates.Add(d); } var d_id = d.Id; var q = db.BalanceUpdates.Where(o => o.DelegateId == d_id && o.Type == type && o.Level == level); //var sqlQuery = q.ToSql(); if (q.Any()) { return; } db.BalanceUpdates.Add(new BalanceUpdate { Delegate = d, Type = type, Amount = amount, Level = level, Slots = slots }); db.SaveChanges(); }); }
public Proposal AddProposal(string hash, string addr, int votingPeriod) { return(RunIsolatedDb(db => { var d = db.Delegates.FirstOrDefault(o => o.Address == addr); if (d == null) { d = new Delegate { Address = addr }; db.Delegates.Add(d); } var p = new Proposal { Delegate = d, Period = votingPeriod, Hash = hash, Name = hash.Substring(0, 7) + "…" + hash.Substring(hash.Length - 5) }; db.Proposals.Add(p); db.SaveChanges(); return p; })); }
public void UpdateDelegateAccured(string addr, int cycle, long accured) { RunIsolatedDb(db => { var d = db.Delegates.FirstOrDefault(o => o.Address == addr); if (d == null) { d = new Delegate { Address = addr }; db.Delegates.Add(d); } var dr = db.DelegateRewards.FirstOrDefault(o => o.Cycle == cycle && o.DelegateId == d.Id); if (dr == null) { dr = new DelegateRewards { Cycle = cycle }; dr.Delegate = d; db.DelegateRewards.Add(dr); } dr.Accured = accured; db.SaveChanges(); }); }
internal void AddDelegate(string addr, string name) { var d = new Delegate { Address = addr, Name = name }; lock (_dbLock) { _db.Add(d); _db.SaveChanges(); } }
internal void SetDelegateName(string addr, string name) { lock (_dbLock) { var d = _db.Delegates.FirstOrDefault(o => o.Address == addr); if (d == null) { d = new Delegate { Address = addr }; _db.Delegates.Add(d); } d.Name = name; _db.SaveChanges(); } }
public Delegate GetOrCreateDelegate(string addr) { lock (_dbLock) { var d = _db.Delegates.FirstOrDefault(o => o.Address == addr); if (d == null) { d = new Delegate { Address = addr }; _db.Delegates.Add(d); _db.SaveChanges(); } return(d); } }
public void SaveBakingEndorsingRights(BakingRights[] br, EndorsingRights[] er) { RunIsolatedDb(db => { if (db.BakingRights.Any(o => o.Level == br[0].level)) { return; } var delegates = db.Delegates.Where(o => o.Address != null).ToList() .ToDictionary(o => o.Address, o => o); Func <string, Delegate> getDelegate = addr => { if (delegates.ContainsKey(addr)) { return(delegates[addr]); } var d = new Delegate { Address = addr }; db.Delegates.Add(d); delegates[addr] = d; return(d); }; foreach (var b in br) { db.BakingRights.Add(new Domain.BakingRights { Delegate = getDelegate(b.@delegate), Level = b.level }); } foreach (var e in er) { db.EndorsingRights.Add(new Domain.EndorsingRights { Delegate = getDelegate(e.@delegate), Level = e.level, SlotCount = e.slots.Count }); } db.SaveChanges(); }); }
internal void UpdateDelegate(Delegate d) { lock (_dbLock) _db.SaveChanges(); }