/// <summary> /// Delete all object replications /// </summary> /// <param name="replObject">Replication object</param> public void DeleteReplications(ReplObjects replObject) { using (var db = new DaContext(_options)) { db.Database.ExecuteSqlCommand("delete from replication where repl_object = " + ((int)replObject).ToString()); } }
/// <summary> /// Insert replications /// </summary> /// <param name="replObject">Replication object</param> /// <param name="rid_lid">Replications (key=remoteId, val=localId)</param> public void InsertReplications(ReplObjects replObject, Dictionary <int, int> rid_lid) { if (rid_lid == null) { throw new ArgumentNullException(); } if (!rid_lid.Any()) { return; } using (var db = new DaContext(_options)) { foreach (var rid in rid_lid.Keys) { int lid = rid_lid[rid]; var isFound = db.Replication.Any(r => r.ReplObject == replObject && r.LocalID == lid && r.RemoteID == rid); if (!isFound) { db.Replication.Add(new Replication() { LocalID = lid, RemoteID = rid, ReplObject = replObject }); } } db.SaveChanges(); } }
/// <summary> /// Get all replications by objType /// </summary> /// <returns>TestConfigs list</returns> public IEnumerable <Replication> GetReplications(ReplObjects objType) { using (var db = new DaContext(_options)) { return(db.Replication.Where(r => r.ReplObject == objType).ToList()); } }
public void UpdateReplications(ReplObjects ro, Dictionary <int, int> rid_lid) { if (_obj_repls.ContainsKey(ro)) { _obj_repls.Remove(ro); } _obj_repls.Add(ro, rid_lid); }
public Dictionary <int, int> GetReplications(ReplObjects ro) { if (!_obj_repls.ContainsKey(ro)) { _obj_repls.Add(ro, new Dictionary <int, int>()); } return(_obj_repls[ro]); }
/// <summary> /// Обновление данных о репликации. /// (сначала полное удаление старых данных) /// </summary> /// <param name="ro">Объект репликации</param> /// <param name="rid_lid">Словарь соответствия (key=remoteID, val=localID)</param> public void UpdateReplications(ReplObjects ro, Dictionary <int, int> rid_lid) { _replDA.DeleteReplications(ro); _replDA.InsertReplications(ro, rid_lid); }
/// <summary> /// Соответствие идентификаторов /// </summary> /// <param name="ro">Объект репликации</param> /// <returns>Словарь соответствия (key=remoteID, val=localID)</returns> public Dictionary <int, int> GetReplications(ReplObjects ro) { var repls = _replDA.GetReplications(ro); return(repls.ToDictionary(k => k.RemoteID, v => v.LocalID)); }