/// <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()); }
/// <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; }