コード例 #1
0
        public TraceableEntityDescriptor(Colosoft.Query.Record record, string idFieldName, string nameFieldName, string descriptionFieldName = null)
        {
            record.Require("record").NotNull();
            idFieldName.Require("idFieldName").NotNull();
            nameFieldName.Require("nameFieldName").NotNull();
            var idFieldIndex          = record.Descriptor.GetFieldPosition(idFieldName);
            var nameFieldIndex        = record.Descriptor.GetFieldPosition(nameFieldName);
            var descriptionFieldIndex = record.Descriptor.GetFieldPosition(descriptionFieldName);

            Initialize(record, idFieldIndex, nameFieldIndex, descriptionFieldIndex);
        }
コード例 #2
0
 /// <summary>
 /// Inicializa a instancia.
 /// </summary>
 /// <param name="record"></param>
 /// <param name="idFieldIndex"></param>
 /// <param name="nameFieldIndex"></param>
 /// <param name="descriptionFieldIndex"></param>
 private void Initialize(Colosoft.Query.Record record, int idFieldIndex, int nameFieldIndex, int descriptionFieldIndex)
 {
     this.Id   = record[idFieldIndex];
     this.Name = record[nameFieldIndex];
     if (descriptionFieldIndex >= 0)
     {
         this.Description = record[descriptionFieldIndex];
     }
     if (record.Descriptor.Contains("ActivatedDate") && record.Descriptor.Contains("ExpiredDate"))
     {
         DateTimeOffset activatedDate = record["ActivatedDate"];
         DateTimeOffset?expiredDate   = record["ExpiredDate"];
         IsExpired = expiredDate.HasValue && (ServerData.GetDateTimeOffSet() > expiredDate);
         IsActive  = activatedDate < ServerData.GetDateTimeOffSet() && !IsExpired;
     }
 }
コード例 #3
0
 /// <summary>
 /// Carrega o próximo conjunto de dados do cache.
 /// </summary>
 /// <param name="data"></param>
 /// <param name="index"></param>
 /// <returns></returns>
 public bool LoadNext(ref System.Collections.Specialized.OrderedDictionary data, ref object index)
 {
     try
     {
         if (!_started)
         {
             Start(null);
         }
         Colosoft.Query.Record record = null;
         Colosoft.Query.IRecordKeyGenerator generator = null;
         while (true)
         {
             if (!_itemsLoader.MoveNext())
             {
                 _itemsLoader.Dispose();
                 _itemsLoader = null;
                 _started     = false;
                 return(false);
             }
             record    = _itemsLoader.Current;
             generator = _itemsLoader.CurrentGenerator;
             if (record == null || generator == null)
             {
                 continue;
             }
             break;
         }
         var key    = generator.GetKey(record);
         var values = new object[record.FieldCount];
         for (var i = 0; i < record.FieldCount; i++)
         {
             values[i] = record.GetValue(i);
         }
         var cacheItem = new ProviderCacheItem(new CacheItemRecord(_itemsLoader.CurrentDataEntry.TypeName, values, record.Descriptor));
         cacheItem.AbsoluteExpiration = DateTime.MaxValue;
         data.Add(key, cacheItem);
         return(true);
     }
     catch
     {
         throw;
     }
 }
コード例 #4
0
 public TraceableEntityDescriptor(Colosoft.Query.Record record, int idFieldIndex, int nameFieldIndex, int descriptionFieldIndex = -1)
 {
     record.Require("record").NotNull();
     Initialize(record, idFieldIndex, nameFieldIndex, descriptionFieldIndex);
 }