private IQueryOver <UDSRepository, UDSRepository> ActiveRepositories(string name) { UDSSchemaRepository udsSchemaRepository = null; DateTimeOffset now = DateTimeOffset.UtcNow; IQueryOver <UDSRepository, UDSRepository> query = NHibernateSession.QueryOver <UDSRepository>() .JoinAlias(x => x.UDSSchemaRepository, () => udsSchemaRepository) .Where(x => now >= x.ActiveDate && (x.ExpiredDate == null || now < x.ExpiredDate) && x.Status == UDSRepositoryState.Confirmed); if (!string.IsNullOrEmpty(name)) { query.Where(x => x.Name == name); } return(query.OrderBy(o => o.Name).Asc); }
private async Task SaveUDSRepositoryAsync(UDSBuildModel model, string idContainer) { try { if (model.UDSRepository != null) { if (!model.UDSRepository.ActiveDate.HasValue) { _logger.WriteError(new LogMessage("Active date is empty"), LogCategories); throw new ArgumentNullException("Active date is empty"); } UDSRepository udsRepository = new UDSRepository(model.UDSRepository.Id); UDSSchemaRepository lastSchemaRepository = CurrentUDSSchemaRepository; _logger.WriteInfo(new LogMessage(string.Concat("Last valid Repository : ", lastSchemaRepository.UniqueId)), LogCategories); udsRepository.ActiveDate = model.UDSRepository.ActiveDate.Value; udsRepository.ExpiredDate = null; udsRepository.LastChangedDate = DateTimeOffset.UtcNow; udsRepository.Version = 1; udsRepository.ModuleXML = model.XMLContent; udsRepository.Name = model.UDSRepository.Name; udsRepository.SchemaRepository = lastSchemaRepository; udsRepository.SequenceCurrentYear = (short)model.UDSRepository.ActiveDate.Value.Year; udsRepository.Alias = model.UDSRepository.Alias; udsRepository.DSWEnvironment = model.UDSRepository.DSWEnvironment; udsRepository.Status = DocSuiteWeb.Entity.UDS.UDSRepositoryStatus.Confirmed; udsRepository.Container = new DocSuiteWeb.Entity.Commons.Container() { EntityShortId = Convert.ToInt16(idContainer) }; udsRepository = await UpdateUDSRepositoryAsync(udsRepository); _logger.WriteInfo(new LogMessage(string.Concat("Repository is updated: ", udsRepository.UniqueId)), LogCategories); } } catch (Exception ex) { _logger.WriteError(ex, LogCategories); throw ex; } }