/// <summary> /// Initializes a new instance of the <see cref="TikListBase<TEntity>"/> class with given <paramref name="session"/>. /// </summary> /// <param name="session">The session.</param> protected TikListBase(TikSession session) { Guard.ArgumentNotNull(session, "session"); this.items = new List<TEntity>(); this.session = session; this.logger = TikSession.CreateLogger(GetType()); }
private void SaveAllMoves(TikEntityMetadata metadata, TikSession session) { Logger.DebugFormat("Going to perform {0} moves.", MovesCount); foreach (KeyValuePair <TEntity, TEntity> pair in entityMoves) { Logger.InfoFormat("MOVE: {0} before {1} ({2} before {3})", Items.IndexOf(pair.Key), Items.IndexOf(pair.Value), pair.Key, pair.Value); if (pair.Value != null) { session.Connector.ExecuteMove(metadata.EntityPath, pair.Key.Id, pair.Value.Id); } else { session.Connector.ExecuteMoveToEnd(metadata.EntityPath, pair.Key.Id); } } entityMoves.Clear(); }
/// <summary> /// Initializes a new instance of the <see cref="TikSingleRowList<TEntity>"/> class. /// </summary> /// <param name="session">The session used to access mikrotik.</param> protected TikSingleRowList(TikSession session) : base(session) { }
/// <summary> /// Initializes a new instance of the <see cref="TikUnorderedList<TEntity>"/> class. /// </summary> /// <param name="session">The session used to access mikrotik.</param> protected TikUnorderedList(TikSession session) : base(session) { }
/// <summary> /// See <see cref="TikListBase{TEntity}.AfterSaveAllNew"/>. /// Additionaly save all moves to mikrotik (see <see cref="ITikConnector.ExecuteMove"/>). /// </summary> protected override void AfterSaveAllNew(TikEntityMetadata metadata, TikSession session) { base.AfterSaveAllNew(metadata, session); SaveAllMoves(metadata, session); }
protected virtual void AfterSaveAllDeleted(TikEntityMetadata metadata, TikSession session) { //dummy }
private List<TEntity> LoadItemsInternal(TikConnectorQueryFilterDictionary filter, TikSession session) { List<TEntity> result = new List<TEntity>(); TikEntityMetadata entityMetadata = TikEntityMetadata.Get(typeof(TEntity)); IEnumerable<ITikEntityRow> response; if (filter != null) response = session.Connector.ExecuteReader(entityMetadata.EntityPath, entityMetadata.ReaderBehavior, entityMetadata.PropertyNames, filter); else response = session.Connector.ExecuteReader(entityMetadata.EntityPath, entityMetadata.ReaderBehavior, entityMetadata.PropertyNames); VerifyResponseRows(response); foreach (ITikEntityRow entityRow in response) { TEntity item = new TEntity(); item.LoadFromEntityRow(entityRow); result.Add(item); } logger.DebugFormat("{0} items loaded.", result.Count); return result; }