예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }