Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }