コード例 #1
0
ファイル: EntityManager.cs プロジェクト: fabrimaciel/colosoft
        /// <summary>
        /// Recupera a instancia do descritor da entidade pelo uid informador.
        /// </summary>
        /// <param name="uid">Identificador unico da instancia.</param>
        /// <param name="sourceContext">Contexto de origem.</param>
        /// <param name="uiContext">Contexto visual.</param>
        /// <returns></returns>
        public IEntityDescriptor GetDescriptorByUid <TEntity>(int uid, Colosoft.Query.ISourceContext sourceContext, string uiContext = null) where TEntity : class, IEntity
        {
            sourceContext.Require("sourceContext").NotNull();
            var loader = _entityTypeManager.GetLoader(typeof(TEntity));

            if (!loader.HasUid)
            {
                throw new InvalidOperationException("Entity has not uid.");
            }
            var query = sourceContext.CreateQuery().From(new Query.EntityInfo(loader.DataModelType.FullName)).Where(string.Format("{0} = ?entityuid", loader.UidPropertyName)).Add("?entityuid", uid);

            return(ProcessResultDescriptor <TEntity>(query, sourceContext, uiContext).FirstOrDefault());
        }
コード例 #2
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="sourceContext">Contexto de origem que será usado para fazer as consulta no banco de dados.</param>
 /// <param name="typeSchema"></param>
 /// <param name="dataEntryDownloader">Instancia do downloader da entradas de dados.</param>
 /// <param name="dataEntriesRepository">Instancia do repositório das entradas de dados.</param>
 /// <param name="cacheLoaderObverser">Observer o loader.</param>
 /// <param name="logger"></param>
 public DataCacheManager(Colosoft.Query.ISourceContext sourceContext, ITypeSchema typeSchema, IDataEntryDownloader dataEntryDownloader, IDataEntriesRepository dataEntriesRepository, ICacheLoaderObserver cacheLoaderObverser, Colosoft.Logging.ILogger logger)
 {
     sourceContext.Require("sourceContext").NotNull();
     typeSchema.Require("typeSchema").NotNull();
     dataEntryDownloader.Require("dataEntryDownloader").NotNull();
     dataEntriesRepository.Require("dataEntriesRepository").NotNull();
     cacheLoaderObverser.Require("cacheLoaderObserver").NotNull();
     logger.Require("logger").NotNull();
     _sourceContext         = sourceContext;
     _typeSchema            = typeSchema;
     _dataEntryDownloader   = dataEntryDownloader;
     _dataEntriesRepository = dataEntriesRepository;
     _cacheLoaderObserver   = cacheLoaderObverser;
     _logger = logger;
 }