예제 #1
0
        public Attribute Post(AttributeCopy request)
        {
            Attribute ret = null;

            using (Execute)
            {
                Execute.Run(ssn =>
                {
                    var entity = DocEntityAttribute.Get(request?.Id);
                    if (null == entity)
                    {
                        throw new HttpError(HttpStatusCode.NoContent, "The COPY request did not succeed.");
                    }
                    if (!DocPermissionFactory.HasPermission(entity, currentUser, DocConstantPermission.ADD))
                    {
                        throw new HttpError(HttpStatusCode.Forbidden, "You do not have ADD permission for this route.");
                    }

                    var pAttributeName    = entity.AttributeName;
                    var pAttributeType    = entity.AttributeType;
                    var pInterval         = entity.Interval;
                    var pIsCharacteristic = entity.IsCharacteristic;
                    var pIsOutcome        = entity.IsOutcome;
                    var pIsPositive       = entity.IsPositive;
                    var pUniqueKey        = entity.UniqueKey;
                    if (!DocTools.IsNullOrEmpty(pUniqueKey))
                    {
                        pUniqueKey += " (Copy)";
                    }
                    var pValueType = entity.ValueType;
                    var copy       = new DocEntityAttribute(ssn)
                    {
                        Hash               = Guid.NewGuid()
                        , AttributeName    = pAttributeName
                        , AttributeType    = pAttributeType
                        , Interval         = pInterval
                        , IsCharacteristic = pIsCharacteristic
                        , IsOutcome        = pIsOutcome
                        , IsPositive       = pIsPositive
                        , UniqueKey        = pUniqueKey
                        , ValueType        = pValueType
                    };

                    copy.SaveChanges(DocConstantPermission.ADD);
                    ret = copy.ToDto();
                });
            }
            return(ret);
        }
예제 #2
0
        /// <summary>
        /// 属性复制
        /// </summary>
        public static void GetAttributeCopy()
        {
            MessageBox.Show("请选择设备", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
            var objectId = PublicMethod.Instance.GetEntity("请选择设备\n");
            //复制源数据的属性
            var attribute = AttributeCopy.GetAttribute(objectId);

            if (attribute != null)
            {
                MessageBox.Show("请选择需要复制的设备", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
                var objIds = PublicMethod.Instance.GetObjectIds("请选择需要复制的设备\n");
                if (objIds != null)
                {
                    if (MessageBox.Show(string.Format("确定要将属性复制到这{0}个设备吗?", objIds.Count()), "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                    {
                        //复制属性到选择的设备
                        var count = AttributeCopy.CopyAttribute(objIds, attribute);
                        MessageBox.Show(string.Format("{0}个设备复制成功!", count), "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }