/// <summary> /// Persists a simple metadata attribute is the database. /// </summary> /// <param name="entity">is an unsaved simple metadata attribute.</param> /// <returns>The saved attribute.</returns> /// <remarks>The method does not check duplicate names.</remarks> public MetadataSimpleAttribute Create(MetadataSimpleAttribute entity) { Contract.Requires(!string.IsNullOrWhiteSpace(entity.ShortName)); Contract.Requires(entity.DataType != null && entity.DataType.Id >= 0); Contract.Ensures(Contract.Result <MetadataSimpleAttribute>() != null && Contract.Result <MetadataSimpleAttribute>().Id >= 0); using (IUnitOfWork uow = this.GetUnitOfWork()) { IRepository <MetadataSimpleAttribute> repo = uow.GetRepository <MetadataSimpleAttribute>(); repo.Put(entity); uow.Commit(); } return(entity); }
/// <summary> /// Creates a simple metadata attribute and persists it in the database /// </summary> /// <param name="shortName"></param> /// <param name="name"></param> /// <param name="description"></param> /// <param name="isMultiValue">Indicates whether the attribute accepts multiple values.</param> /// <param name="isBuiltIn">If yes, the attribute is created by the system itself and is not delete-able</param> /// <param name="scope">Creates a context of ownership for the attribute so that the modules, or different parts of the system can use it i.e. for filtering.</param> /// <param name="measurementScale"></param> /// <param name="containerType"></param> /// <param name="entitySelectionPredicate"></param> /// <param name="dataType"></param> /// <param name="unit"></param> /// <param name="methodology"></param> /// <param name="functions"></param> /// <param name="globalizationInfos"></param> /// <param name="constraints"></param> /// <returns></returns> public MetadataSimpleAttribute Create(string shortName, string name, string description, bool isMultiValue, bool isBuiltIn, string scope, MeasurementScale measurementScale, DataContainerType containerType, string entitySelectionPredicate, DataType dataType, Unit unit, Methodology methodology, //Classifier classifier, ICollection <AggregateFunction> functions, ICollection <GlobalizationInfo> globalizationInfos, ICollection <Constraint> constraints ) { Contract.Requires(!string.IsNullOrWhiteSpace(shortName)); Contract.Requires(dataType != null && dataType.Id >= 0); //Contract.Requires(unit != null && unit.Id >= 0); Contract.Ensures(Contract.Result <MetadataSimpleAttribute>() != null && Contract.Result <MetadataSimpleAttribute>().Id >= 0); MetadataSimpleAttribute entity = new MetadataSimpleAttribute() { ShortName = shortName, Name = name, Description = description, IsMultiValue = isMultiValue, IsBuiltIn = isBuiltIn, Scope = scope, MeasurementScale = measurementScale, ContainerType = containerType, EntitySelectionPredicate = entitySelectionPredicate, DataType = dataType, Unit = unit, Methodology = methodology, AggregateFunctions = functions, GlobalizationInfos = globalizationInfos, Constraints = constraints, }; //if (classifier != null && classifier.Id > 0) // entity.Classification = classifier; using (IUnitOfWork uow = this.GetUnitOfWork()) { IRepository <MetadataSimpleAttribute> repo = uow.GetRepository <MetadataSimpleAttribute>(); repo.Put(entity); uow.Commit(); } return(entity); }