/// <summary> /// Initialize the mappings using the configuration and /// the list of types /// </summary> public static void Initialize(IConfigurationSource source, params Type[] types) { lock (lockConfig) { if (isInitialized) { throw new ActiveRecordInitializationException("You can't invoke ActiveRecordStarter.Initialize more than once"); } if (source == null) { throw new ArgumentNullException("source"); } if (types == null) { throw new ArgumentNullException("types"); } foreach (Type type in types) { registeredAssemblies.Add(type.Assembly); } registeredTypes = new Dictionary <Type, string>(); configSource = source; // First initialization ISessionFactoryHolder holder = CreateSessionFactoryHolderImplementation(source); holder.ThreadScopeInfo = CreateThreadScopeInfoImplementation(source); RaiseSessionFactoryHolderCreated(holder); ActiveRecordBase.holder = holder; ActiveRecordModel.type2Model.Clear(); ActiveRecordModel.isDebug = source.Debug; ActiveRecordModel.isLazyByDefault = source.IsLazyByDefault; ActiveRecordModel.pluralizeTableNames = source.PluralizeTableNames; RegisterEventListeners(types); if (configSource.Searchable) { contributors.Add(new NHSearchContributor()); } // Sets up base configuration SetUpConfiguration(source, typeof(ActiveRecordBase), holder); RegisterTypes(holder, source, types, true); // If the configuration uses the AR ByteCode, do not autoinitialize proxies. AutoinitializeProxy = !UseARByteCode(configSource, types); isInitialized = true; } }
/// <summary> /// Добавить этап в конец списка (применяется только для системных этапов) /// </summary> /// <param name="stage"></param> public virtual void AddStage(ProductionOrderBatchLifeCycleTemplateStage stage) { RecalculateOrdinalNumbers(); stages.Add(stage); stage.Template = this; stage.OrdinalNumber = (short)StageCount; CheckStageOrder(); }
public Owner(Language language, Badge badge) : this() { if (badge == null) { throw new ArgumentNullException("badge"); } _language = language; _badges.Add(badge); badge.SetOwner(this); }
/// <summary> /// Установка нового вида распространения и добавление в список одного места хранения /// </summary> public virtual void AddStorage(Storage storage) { ValidationUtils.NotNull(storage, "Место хранения не указано."); CheckPossibilityToAddStorage(); if (storages.Contains(storage)) { throw new Exception("Место хранения уже имеется в списке."); } storages.Add(storage); }
/// <summary> /// Добавление квоты по сделке /// </summary> /// <param name="quota">Квота по сделке</param> public virtual void AddQuota(DealQuota quota) { CheckPossibilityToAddQuota(); ValidationUtils.Assert(quota.IsActive, "Невозможно добавить недействующую квоту."); quotas.Add(quota); }
/// <summary> /// Добавление пользователя в аккаунт клиента /// </summary> /// <param name="clientUser"></param> public virtual void AddUser(ClientUser clientUser) { ValidationUtils.Assert(!Users.Any(x => x.Login == clientUser.Login), "Пользователь с данным логином уже принадлежит аккаунту клиента."); users.Add(clientUser); clientUser.Client = this; }
public virtual void addTakmicenjeDescription(RezultatskoTakmicenjeDescription desc) { if (TakmicenjeDescriptions.Add(desc)) { desc.RedBroj = (byte)(TakmicenjeDescriptions.Count - 1); } }
/// <summary> /// Добавление оплаты /// </summary> /// <param name="payment">Оплата</param> public virtual void AddPayment(ProductionOrderPayment payment) { ValidationUtils.NotNull(payment, "Необходимо указать платеж."); ValidationUtils.Assert(!payments.Contains(payment), "Данная оплата уже связана с этим транспортным листом."); payment.ProductionOrderPlannedPayment = this; payments.Add(payment); }
public IDbCommand Generate(string commandText, CommandType type, DbParameter[] parameters) { IDbCommand cmd = factory.ConnectionProvider.Driver.GenerateCommand(commandText, type, parameters); LogOpenPreparedCommand(); commandsToClose.Add(cmd); return(cmd); }
/// <summary> /// Добавление связанной фабрики-изготовителя /// </summary> /// <param name="manufacturer"></param> public virtual void AddManufacturer(Manufacturer manufacturer) { if (manufacturers.Contains(manufacturer)) { throw new Exception(String.Format("Фабрика-изготовитель «{0}» уже связана с данным производителем.", manufacturer.Name)); } manufacturers.Add(manufacturer); }
/// <summary> /// Добавление оплаты /// </summary> /// <param name="payment">Оплата</param> protected internal virtual void AddPayment(ProductionOrderCustomsDeclarationPayment payment) { if (payments.Contains(payment)) { throw new Exception("Данная оплата уже связана с этим таможенным листом."); } payments.Add(payment); }
public virtual void initPoredakSpravaFinaleKupa(Gimnastika gimnastika) { foreach (Sprava s in Sprave.getSprave(gimnastika)) { PoredakSpravaFinaleKupa poredak = new PoredakSpravaFinaleKupa(); poredak.Sprava = s; _poredakSpravaFinaleKupa.Add(poredak); } }
/// <summary> /// Добавление заказа на производство в команду /// </summary> /// <param name="deal">Заказ на производство</param> public virtual void AddProductionOrder(ProductionOrder order) { if (productionOrders.Any(x => x.Id == order.Id)) { throw new Exception("Заказ на производство уже входит в область видимости данной команды."); } productionOrders.Add(order); }
/// <summary> /// Добавление места хранения в команду /// </summary> /// <param name="deal">Место хранения</param> public virtual void AddStorage(Storage storage) { if (storages.Any(x => x.Id == storage.Id)) { throw new Exception("Место хранения уже входит в область видимости данной команды."); } storages.Add(storage); }
/// <summary> /// Добавление сделки в команду /// </summary> /// <param name="deal">Сделка</param> public virtual void AddDeal(Deal deal) { if (deals.Any(x => x.Id == deal.Id)) { throw new Exception("Сделка уже входит в область видимости данной команды."); } deals.Add(deal); }
/// <summary> /// Добавление планируемой оплаты /// </summary> /// <param name="payment">Оплата</param> protected internal virtual void AddPlannedPayment(ProductionOrderPlannedPayment payment) { if (plannedPayments.Contains(payment)) { throw new Exception("Данная оплата уже связана с этим заказом."); } plannedPayments.Add(payment); }
/// <summary> /// Добавление оплаты /// </summary> /// <param name="payment">Оплата</param> protected internal virtual void AddPayment(ProductionOrderExtraExpensesSheetPayment payment) { if (payments.Contains(payment)) { throw new Exception("Данная оплата уже связана с этим листом дополнительных расходов."); } payments.Add(payment); }
protected internal virtual void AddContractor(Contractor contractor) { if (contractors.Contains(contractor)) { throw new Exception("Данный контрагент уже связан с этим договором."); } contractors.Add(contractor); }
/// <summary> /// Добавление оплаты /// </summary> /// <param name="payment">Оплата</param> protected internal virtual void AddPayment(ProductionOrderTransportSheetPayment payment) { if (payments.Contains(payment)) { throw new Exception("Данная оплата уже связана с этим транспортным листом."); } payments.Add(payment); }
protected internal virtual void AddContract(Contract contract) { if (contracts.Contains(contract)) { throw new Exception("Данный договор уже связан с этой организацией."); } contracts.Add(contract); }
// NOTE: Metodi addKategorija i removeKategorija upravljaju dvosmernom // asocijacijom izmedju Takmicenja i TakmicarskeKategorije public virtual bool addKategorija(TakmicarskaKategorija kat) { if (Kategorije.Add(kat)) { kat.setTakmicenjeInternal(this); kat.RedBroj = (byte)(Kategorije.Count - 1); return(true); } return(false); }
/// <summary> /// Добавление позиции РЦ /// </summary> public virtual void AddArticleAccountingPrice(ArticleAccountingPrice price) { if (IsAlreadyAddedArticle(price)) { throw new Exception("Товар уже имеется в списке."); } articlePrices.Add(price); price.AccountingPriceList = this; }
/// <summary> /// Добавление договора /// </summary> /// <param name="newContract">Добавляемый договор</param> public virtual void AddContract(Contract contract) { if (contracts.Contains(contract)) { throw new Exception("Данный договор уже связан с этой организацией."); } contracts.Add(contract); contract.AccountOrganization = this; }
public virtual void AddModelo(Modelo modelo) { if (modelo.Marca != null && !Equals(modelo.Marca, this)) { modelo.Marca.RemoveModelo(modelo); } modelo.Marca = this; _modelos.Add(modelo); }
/// <summary> /// Добавление распространения права роли /// </summary> public virtual void AddPermissionDistribution(PermissionDistribution permissionDistribution) { if (PermissionDistributions.Any(x => x.Permission == permissionDistribution.Permission)) { throw new Exception(String.Format("Роль «{0}» уже обладает правом «{1}».", Name, permissionDistribution.Permission.GetDisplayName())); } permissionDistributions.Add(permissionDistribution); permissionDistribution.Role = this; }
/// <summary> /// Добавление новой услуги в набор /// </summary> /// <param name="service"></param> public virtual void AddNewService(DateTime currentDateTime) { ValidationUtils.Assert(IsCurrent, "Невозможно добавить услугу не в текущий набор."); ValidationUtils.Assert(!Services.Any(x => x.IsCurrent), "Невозможно добавить услугу в набор, в котором уже есть активная услуга."); var service = new Service(currentDateTime); services.Add(service); service.ServiceSet = this; }
// NOTE: Za takmicenja sa vise kola ne proveravam kod, zato sto se cesto desi situacija da se npr imena ekipa // ne poklapaju (npr. razlikuju se u par slova), a kodovi su isti, pa onda prijavljuje gresku. public virtual bool addEkipa(Ekipa ekipa, bool proveriKod) { if (proveriKod && existsEkipaKod(ekipa.Kod)) { string msg = "Ekipa sa datim kodom vec postoji.\n\n"; msg += "Ekipa: " + ekipa.Naziv; msg += "\nKod: " + ekipa.Kod; throw new BusinessException("Kod", msg); } return(Ekipe.Add(ekipa)); }
public Takmicenje3(Gimnastika gimnastika) { foreach (Sprava s in Sprave.getSprave(gimnastika)) { if (s != Sprava.Preskok) { _poredak.Add(new PoredakSprava(DeoTakmicenjaKod.Takmicenje3, s)); } } _poredakPreskok = new PoredakPreskok(DeoTakmicenjaKod.Takmicenje3); }
/// <summary> /// Добавление пользователя в команду /// </summary> /// <param name="team"></param> public virtual void AddTeam(Team team) { if (teams.Any(x => x.Id == team.Id)) { throw new Exception("Пользователь уже входит в состав данной команды."); } teams.Add(team); if (!team.Users.Any(x => x.Id == Id)) { team.AddUser(this); } }
/// <summary> /// Добавление роли пользователю /// </summary> /// <param name="role"></param> public virtual void AddRole(Role role) { if (roles.Any(x => x.Id == role.Id)) { throw new Exception("Пользователь уже обладает данной ролью."); } roles.Add(role); if (!role.Users.Any(x => x.Id == Id)) { role.AddUser(this); } }
protected AbstractEntityPersister(PersistentClass persistentClass, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor factory) { this.factory = factory; this.cache = cache; isLazyPropertiesCacheable = persistentClass.IsLazyPropertiesCacheable; cacheEntryStructure = factory.Settings.IsStructuredCacheEntriesEnabled ? (ICacheEntryStructure) new StructuredCacheEntry(this) : (ICacheEntryStructure) new UnstructuredCacheEntry(); entityMetamodel = new EntityMetamodel(persistentClass, factory); if (persistentClass.HasPocoRepresentation) { //TODO: this is currently specific to pojos, but need to be available for all entity-modes foreach (Subclass subclass in persistentClass.SubclassIterator) { entityNameBySubclass[subclass.MappedClass] = subclass.EntityName; } } int batch = persistentClass.BatchSize; if (batch == -1) batch = factory.Settings.DefaultBatchFetchSize; batchSize = batch; hasSubselectLoadableCollections = persistentClass.HasSubselectLoadableCollections; propertyMapping = new BasicEntityPropertyMapping(this); #region IDENTIFIER identifierColumnSpan = persistentClass.Identifier.ColumnSpan; rootTableKeyColumnNames = new string[identifierColumnSpan]; identifierAliases = new string[identifierColumnSpan]; rowIdName = persistentClass.RootTable.RowId; loaderName = persistentClass.LoaderName; // TODO NH: Not safe cast to Column int i = 0; foreach (Column col in persistentClass.Identifier.ColumnIterator) { rootTableKeyColumnNames[i] = col.GetQuotedName(factory.Dialect); identifierAliases[i] = col.GetAlias(factory.Dialect, persistentClass.RootTable); i++; } #endregion #region VERSION if (persistentClass.IsVersioned) { foreach (Column col in persistentClass.Version.ColumnIterator) { versionColumnName = col.GetQuotedName(factory.Dialect); break; //only happens once } } else { versionColumnName = null; } #endregion #region WHERE STRING sqlWhereString = !string.IsNullOrEmpty(persistentClass.Where) ? "( " + persistentClass.Where + ") " : null; sqlWhereStringTemplate = sqlWhereString == null ? null : Template.RenderWhereStringTemplate(sqlWhereString, factory.Dialect, factory.SQLFunctionRegistry); #endregion #region PROPERTIES bool lazyAvailable = IsInstrumented(EntityMode.Poco); int hydrateSpan = entityMetamodel.PropertySpan; propertyColumnSpans = new int[hydrateSpan]; propertySubclassNames = new string[hydrateSpan]; propertyColumnAliases = new string[hydrateSpan][]; propertyColumnNames = new string[hydrateSpan][]; propertyColumnFormulaTemplates = new string[hydrateSpan][]; propertyUniqueness = new bool[hydrateSpan]; propertySelectable = new bool[hydrateSpan]; propertyColumnUpdateable = new bool[hydrateSpan][]; propertyColumnInsertable = new bool[hydrateSpan][]; ISet thisClassProperties = new HashedSet(); lazyProperties = new HashedSet<string>(); List<string> lazyNames = new List<string>(); List<int> lazyNumbers = new List<int>(); List<IType> lazyTypes = new List<IType>(); List<string[]> lazyColAliases = new List<string[]>(); i = 0; bool foundFormula = false; foreach (Property prop in persistentClass.PropertyClosureIterator) { thisClassProperties.Add(prop); int span = prop.ColumnSpan; propertyColumnSpans[i] = span; propertySubclassNames[i] = prop.PersistentClass.EntityName; string[] colNames = new string[span]; string[] colAliases = new string[span]; string[] templates = new string[span]; int k = 0; foreach (ISelectable thing in prop.ColumnIterator) { colAliases[k] = thing.GetAlias(factory.Dialect, prop.Value.Table); if (thing.IsFormula) { foundFormula = true; templates[k] = thing.GetTemplate(factory.Dialect, factory.SQLFunctionRegistry); } else { colNames[k] = thing.GetTemplate(factory.Dialect, factory.SQLFunctionRegistry); } k++; } propertyColumnNames[i] = colNames; propertyColumnFormulaTemplates[i] = templates; propertyColumnAliases[i] = colAliases; if (lazyAvailable && prop.IsLazy) { lazyProperties.Add(prop.Name); lazyNames.Add(prop.Name); lazyNumbers.Add(i); lazyTypes.Add(prop.Value.Type); lazyColAliases.Add(colAliases); } propertyColumnUpdateable[i] = prop.Value.ColumnUpdateability; propertyColumnInsertable[i] = prop.Value.ColumnInsertability; propertySelectable[i] = prop.IsSelectable; propertyUniqueness[i] = prop.Value.IsAlternateUniqueKey; i++; } hasFormulaProperties = foundFormula; lazyPropertyColumnAliases = lazyColAliases.ToArray(); lazyPropertyNames = lazyNames.ToArray(); lazyPropertyNumbers = lazyNumbers.ToArray(); lazyPropertyTypes = lazyTypes.ToArray(); #endregion #region SUBCLASS PROPERTY CLOSURE List<string> columns = new List<string>(); List<bool> columnsLazy = new List<bool>(); List<string> aliases = new List<string>(); List<string> formulas = new List<string>(); List<string> formulaAliases = new List<string>(); List<string> formulaTemplates = new List<string>(); List<bool> formulasLazy = new List<bool>(); List<IType> types = new List<IType>(); List<string> names = new List<string>(); List<string> classes = new List<string>(); List<string[]> templates2 = new List<string[]>(); List<string[]> propColumns = new List<string[]>(); List<FetchMode> joinedFetchesList = new List<FetchMode>(); List<CascadeStyle> cascades = new List<CascadeStyle>(); List<bool> definedBySubclass = new List<bool>(); List<int[]> propColumnNumbers = new List<int[]>(); List<int[]> propFormulaNumbers = new List<int[]>(); List<bool> columnSelectables = new List<bool>(); List<bool> propNullables = new List<bool>(); foreach (Property prop in persistentClass.SubclassPropertyClosureIterator) { names.Add(prop.Name); classes.Add(prop.PersistentClass.EntityName); bool isDefinedBySubclass = !thisClassProperties.Contains(prop); definedBySubclass.Add(isDefinedBySubclass); propNullables.Add(prop.IsOptional || isDefinedBySubclass); //TODO: is this completely correct? types.Add(prop.Type); string[] cols = new string[prop.ColumnSpan]; string[] forms = new string[prop.ColumnSpan]; int[] colnos = new int[prop.ColumnSpan]; int[] formnos = new int[prop.ColumnSpan]; int l = 0; bool lazy = prop.IsLazy && lazyAvailable; foreach (ISelectable thing in prop.ColumnIterator) { if (thing.IsFormula) { string template = thing.GetTemplate(factory.Dialect, factory.SQLFunctionRegistry); formnos[l] = formulaTemplates.Count; colnos[l] = -1; formulaTemplates.Add(template); forms[l] = template; formulas.Add(thing.GetText(factory.Dialect)); formulaAliases.Add(thing.GetAlias(factory.Dialect)); formulasLazy.Add(lazy); } else { string colName = thing.GetTemplate(factory.Dialect, factory.SQLFunctionRegistry); colnos[l] = columns.Count; //before add :-) formnos[l] = -1; columns.Add(colName); cols[l] = colName; aliases.Add(thing.GetAlias(factory.Dialect, prop.Value.Table)); columnsLazy.Add(lazy); columnSelectables.Add(prop.IsSelectable); } l++; } propColumns.Add(cols); templates2.Add(forms); propColumnNumbers.Add(colnos); propFormulaNumbers.Add(formnos); joinedFetchesList.Add(prop.Value.FetchMode); cascades.Add(prop.CascadeStyle); } subclassColumnClosure = columns.ToArray(); subclassColumnAliasClosure = aliases.ToArray(); subclassColumnLazyClosure = columnsLazy.ToArray(); subclassColumnSelectableClosure = columnSelectables.ToArray(); subclassFormulaClosure = formulas.ToArray(); subclassFormulaTemplateClosure = formulaTemplates.ToArray(); subclassFormulaAliasClosure = formulaAliases.ToArray(); subclassFormulaLazyClosure = formulasLazy.ToArray(); subclassPropertyNameClosure = names.ToArray(); subclassPropertySubclassNameClosure = classes.ToArray(); subclassPropertyTypeClosure = types.ToArray(); subclassPropertyNullabilityClosure = propNullables.ToArray(); subclassPropertyFormulaTemplateClosure = templates2.ToArray(); subclassPropertyColumnNameClosure = propColumns.ToArray(); subclassPropertyColumnNumberClosure = propColumnNumbers.ToArray(); subclassPropertyFormulaNumberClosure = propFormulaNumbers.ToArray(); subclassPropertyCascadeStyleClosure = cascades.ToArray(); subclassPropertyFetchModeClosure = joinedFetchesList.ToArray(); propertyDefinedOnSubclass = definedBySubclass.ToArray(); #endregion // Handle any filters applied to the class level filterHelper = new FilterHelper(persistentClass.FilterMap, factory.Dialect, factory.SQLFunctionRegistry); temporaryIdTableName = persistentClass.TemporaryIdTableName; temporaryIdTableDDL = persistentClass.TemporaryIdTableDDL; }
static PreprocessingParser() { operators = new HashedSet<string>(); operators.Add("<="); operators.Add(">="); operators.Add("=>"); operators.Add("=<"); operators.Add("!="); operators.Add("<>"); operators.Add("!#"); operators.Add("!~"); operators.Add("!<"); operators.Add("!>"); operators.Add("is not"); operators.Add("not like"); operators.Add("not in"); operators.Add("not between"); operators.Add("not exists"); collectionProps = new Dictionary<string, string>(); collectionProps.Add("elements", "elements"); collectionProps.Add("indices", "indices"); collectionProps.Add("size", "size"); collectionProps.Add("maxindex", "maxIndex"); collectionProps.Add("minindex", "minIndex"); collectionProps.Add("maxelement", "maxElement"); collectionProps.Add("minelement", "minElement"); collectionProps.Add("index", "index"); }