示例#1
0
 /// <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());
     }
 }
示例#2
0
        /// <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();
            }
        }
示例#3
0
 /// <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());
     }
 }
示例#4
0
 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);
 }
示例#5
0
 public Dictionary <int, int> GetReplications(ReplObjects ro)
 {
     if (!_obj_repls.ContainsKey(ro))
     {
         _obj_repls.Add(ro, new Dictionary <int, int>());
     }
     return(_obj_repls[ro]);
 }
示例#6
0
 /// <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);
 }
示例#7
0
        /// <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));
        }