public async Task <IList <ContentItemIndex <T> > > GetContentItemListAsync <T>( string contentType, DateTime?dateFrom, bool?published, bool?isDeleted) { using (var dbContext = _databaseContextFactory.CreateDatabaseContext()) { var result = await dbContext.GetContentItemListAsync(contentType, dateFrom, published, isDeleted); return(result .Select(item => item.ToInterface <T>()) .ToArray()); } }
private void EnsureThreadSafeDatabaseContextInstance() { if (!_contextInstantiated) { lock (_instanceInstantiateLockObj) { if (!_contextInstantiated) { _databaseContext = _databaseContextFactory.CreateDatabaseContext(); _contextInstantiated = true; } } } if (_localContextInitialised) { return; } if (!_globalContextInitialised) { lock (GlobalInitialiseLockObj) { if (!_globalContextInitialised) { // http://msdn.microsoft.com/en-us/library/cc853327(v=vs.100).aspx // Execute a query to ensure View Generation occurs //var count = _databaseContext.EntitySet<EntityAudit>().Count(); _globalContextInitialised = true; } } } _localContextInitialised = true; }
/// <inheritdoc /> public async Task AddRequestResultAsync(RequestResultModel requestResult, ResponseModel responseModel) { using var ctx = _databaseContextFactory.CreateDatabaseContext(); var hasResponse = responseModel != null; requestResult.HasResponse = hasResponse; var json = JsonConvert.SerializeObject(requestResult); await ctx.ExecuteAsync(_queryStore.AddRequestQuery, new { requestResult.CorrelationId, requestResult.ExecutingStubId, requestResult.RequestBeginTime, requestResult.RequestEndTime, Json = json, HasResponse = hasResponse }); if (hasResponse) { await ctx.ExecuteAsync(_queryStore.AddResponseQuery, new { requestResult.CorrelationId, responseModel.StatusCode, Headers = JsonConvert.SerializeObject(responseModel.Headers), Body = responseModel.Body != null ? Convert.ToBase64String(responseModel.Body) : string.Empty, responseModel.BodyIsBinary }); } }