Exemplo n.º 1
0
        public DocDataSetField(DocDataSet dataSet, AttrDef attrDef)
            : base(dataSet)
        {
            AttrDef = attrDef;
            // var dataContext = dataSet.DataContext;
            var provider = dataSet.Provider;
            var prov     = provider.Get <IComboBoxEnumProvider>(); // new ComboBoxEnumProvider(dataContext, null);

            switch (AttrDef.Type.Id)
            {
            case (short)CissaDataType.Enum:
                // using (var enumRepo = new EnumRepository(dataContext))
                var enumRepo = provider.Get <IEnumRepository>();
                _enumValues = new List <EnumValue>(enumRepo.GetEnumItems(AttrDef.EnumDefType.Id));
                break;

            case (short)CissaDataType.Organization:
                _enumValues = prov.GetEnumOrganizationValues(null);
                break;

            case (short)CissaDataType.User:
                _enumValues = prov.GetEnumUserValues();
                break;

            case (short)CissaDataType.Doc:
                _enumValues = prov.GetEnumDocumentValues(AttrDef, "Name");
                break;
            }
        }
Exemplo n.º 2
0
        public List <Guid> LoadDocList(Guid docId, AttrDef attrDef, DateTime forDate, int limit = 0)
        {
            var tableName = GetAttributeTableName(CissaDataType.DocList);

            IDbCommand command;
            var        limitParam = limit > 0 ? "TOP " + limit : String.Empty;

            if (forDate == MaxDate)
            {
                using (command = CreateCommand(String.Format(SelectLastListAttrSql, limitParam, tableName)))
                {
                    AddParamWithValue(command, "@DocId", docId);
                    AddParamWithValue(command, "@DefId", attrDef.Id);

                    return(ReadDocListValues(command));
                }
            }

            using (command = CreateCommand(String.Format(SelectDateListAttrSql, limitParam, tableName)))
            {
                AddParamWithValue(command, "@DocId", docId);
                AddParamWithValue(command, "@DefId", attrDef.Id);
                AddParamWithValue(command, "@ForDate", forDate);

                return(ReadDocListValues(command));
            }
        }
        /// <summary>
        /// This function will set the op attrs required. If an attr has the value of
        /// None, then it will read the AttrDef to get the default value and set that
        /// instead. Any failure in this function will simply fall back to the slow
        /// path.
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="op"></param>
        /// <param name="attr"></param>
        /// <param name="attr_name"></param>
        /// <param name="attr_value"></param>
        /// <param name="attr_list_sizes"></param>
        /// <param name="status"></param>
        void SetOpAttrWithDefaults(Context ctx, SafeEagerOpHandle op, AttrDef attr,
                                   string attr_name, object attr_value,
                                   Dictionary <string, long> attr_list_sizes,
                                   Status status)
        {
            byte is_list = 0;
            var  type    = c_api.TFE_OpGetAttrType(op, attr_name, ref is_list, status.Handle);

            if (status.Code != TF_Code.TF_OK)
            {
                return;
            }

            if (attr_value == null)
            {
            }
            else
            {
                if (is_list != 0)
                {
                    SetOpAttrList(ctx, op, attr_name, attr_value, type, attr_list_sizes, status);
                }
                else
                {
                    SetOpAttrScalar(ctx, op, attr_name, attr_value, type, attr_list_sizes, status);
                }
            }
        }
Exemplo n.º 4
0
 public SqlQueryConditionOperationBuilder(SqlQueryConditionBuilder parent, ExpressionOperation operation,
                                          DocDef docDef, AttrDef attrDef)
 {
     Parent    = parent;
     Operation = operation;
     DocDef    = docDef;
     AttrDef   = attrDef;
 }
Exemplo n.º 5
0
        private /*static*/ List <EnumValue> GetEnumDocumentValues(DocDef detailDocDef, params string[] attrNames)
        {
            var list = new List <EnumValue>();

            if (detailDocDef == null)
            {
                return(list);
            }
            //var defRepo = new DocDefRepository(context);
            var     docDef        = _docDefRepo.DocDefById(detailDocDef.Id);
            AttrDef detailAttrDef = null;

            foreach (var attrName in attrNames)
            {
                detailAttrDef =
                    docDef.Attributes.FirstOrDefault(
                        ad => String.Equals(ad.Name, attrName, StringComparison.OrdinalIgnoreCase));

                if (detailAttrDef != null)
                {
                    break;
                }
            }
            if (detailAttrDef == null)
            {
                detailAttrDef = docDef.Attributes.FirstOrDefault(ad => ad.Type.Id == (int)CissaDataType.Text);
            }

            if (detailAttrDef == null)
            {
                return(list);
            }
            var sqb = _sqlQueryBuilderFactory.Create();

            //using (var query = userId != null ? new SqlQuery(context, docDef, (Guid)userId) : new SqlQuery(context, docDef))
            using (var query = sqb.Build(docDef.Id, null, null))
            {
                query.AddAttribute("&Id");
                query.AddAttribute(detailAttrDef.Id);
                query.AddOrderAttribute(detailAttrDef.Id);
                using (var reader = _sqlQueryReaderFactory.Create(query)) //new SqlQueryReader(context, query))
                {
                    while (reader.Read())
                    {
                        var detail = !reader.IsDbNull(1) ? reader.GetString(1) : String.Empty;

                        list.Add(new EnumValue
                        {
                            Id           = reader.GetGuid(0),
                            Value        = detail,
                            DefaultValue = detail
                        });
                    }
                }
            }

            return(list);
        }
Exemplo n.º 6
0
        public bool IsSame(DocDef docDef, AttrDef attrDef)
        {
            var single = Def as QuerySingleAttributeDef;

            return(single != null && single.Attribute != null &&
                   (single.Attribute.AttributeId == attrDef.Id ||
                    String.CompareOrdinal(single.Attribute.AttributeName, attrDef.Name) == 0) &&
                   new QuerySourceDefHelper(single.Attribute.Source).IsSame(docDef));
        }
Exemplo n.º 7
0
        public BlobData GetBlobAttrData(Guid docId, AttrDef attrDef)
        {
            var repo = TryGetDocRepo(docId);

            if (repo != null)
            {
                return(repo.GetBlobAttrData(docId, attrDef));
            }
            return(null);
        }
Exemplo n.º 8
0
        private void FillDocDefAttributes(DocDef def, DocDef ancestorDef)
        {
            foreach (var attr in ancestorDef.Attributes)
            {
                var attrDef = new AttrDef(attr);

                def.Attributes.Add(attrDef);
                attrDef.Permissions = _permissionRepository.GetObjectDefPermissions(attrDef.Id);
            }
        }
        public List <EnumValue> GetEnumDocumentValues(AttrDef attrDef, params string[] attrNames)
        {
            var result = new List <EnumValue>();

            foreach (var pair in _repositories.Where(pair => pair.Key.DataType.HasFlag(DataContextType.Document)))
            {
                result.AddRange(pair.Value.GetEnumDocumentValues(attrDef, attrNames));
            }
            return(result);
        }
        public List <EnumValue> GetEnumDocumentValues(BizComboBox combo, AttrDef attrDef)
        {
            var result = new List <EnumValue>();

            foreach (var pair in _repositories.Where(pair => pair.Key.DataType.HasFlag(DataContextType.Document)))
            {
                result.AddRange(pair.Value.GetEnumDocumentValues(combo, attrDef));
            }
            return(result);
        }
Exemplo n.º 11
0
 protected override void ProcessRecord()
 {
     if (ParameterSetName == "Volume")
     {
         WriteObject(AttrDef.GetInstances(volume, AttrDef.ATTRDEF_INDEX));
     }
     else
     {
         WriteObject(AttrDef.GetInstances(path));
     }
 } // ProcessRecord
Exemplo n.º 12
0
        public BizDocumentListForm CreateDocumentListForm(DocumentList_Form docListForm, DocDef def)
        {
            AttrDef attrDef = null;

            if (def != null)
            {
                if (docListForm.Attribute_Id != null)
                {
                    attrDef = def.Attributes.FirstOrDefault(a => a.Id == docListForm.Attribute_Id);
                }
                else
                if (!String.IsNullOrEmpty(docListForm.Attribute_Name))
                {
                    attrDef =
                        def.Attributes.FirstOrDefault(
                            a => String.Equals(a.Name, docListForm.Attribute_Name ?? String.Empty, StringComparison.OrdinalIgnoreCase));
                }
            }

            var result = new BizDocumentListForm
            {
                AttributeDefId     = attrDef != null ? attrDef.Id : docListForm.Attribute_Id,
                AttributeName      = attrDef != null ? attrDef.Name : docListForm.Attribute_Name ?? String.Empty,
                FormId             = docListForm.Form_Id,
                FormAttributeDefId = docListForm.Form_Attribute_Id
            };

            DocDef nestDef = null;

            if (attrDef != null && attrDef.DocDefType != null)
            {
                nestDef = _docDefRepo.DocDefById(attrDef.DocDefType.Id);
            }
            if (attrDef == null && result.FormId != null && result.FormAttributeDefId != null)
            {
                var form = DataContext.GetEntityDataContext().Entities.Object_Defs.OfType <Table_Form>().FirstOrDefault(f => f.Id == result.FormId);

                if (form != null && form.Document_Id != null)
                {
                    var docDefId = (Guid)form.Document_Id;

                    nestDef = _docDefRepo.DocDefById(docDefId);
                }
            }

            if (nestDef != null)
            {
                AddChildren(result, docListForm, nestDef);
            }
            InitControl(result, docListForm);

            return(result);
        }
Exemplo n.º 13
0
        private static void IncludeDocControl(IQueryCondition cond, AttrDef attr, BizControl control)
        {
//            var exp = query.And(attr.Name);
            if (attr.DocDefType == null)
            {
                throw new ApplicationException(String.Format("Не могу сформировать запрос! Атрибут \"{0}\" не ссылается на класс документа", attr.Name));
            }

            var docDef = attr.DocDefType;

            foreach (var ctrl in control.Children)
            {
                if (!(ctrl is BizDataControl) || ((BizDataControl)ctrl).AttributeDefId == null)
                {
                    continue;
                }

                var attributeDefId = ((BizDataControl)ctrl).AttributeDefId;
                if (attributeDefId != null)
                {
                    var attrId = (Guid)attributeDefId;

                    var sub = docDef.Attributes.FirstOrDefault(a => a.Id == attrId);
                    if (sub != null)
                    {
                        if (ctrl is BizDocumentControl)
                        {
                            IncludeDocControl(cond, sub, ctrl);
                            continue;
                        }

                        if (((BizDataControl)ctrl).ObjectValue == null)
                        {
                            continue;
                        }

                        if (sub.Type.Id == (short)CissaDataType.Text)
                        {
                            var txt = ((BizDataControl)ctrl).ObjectValue.ToString();
                            if (!String.IsNullOrEmpty(txt))
                            {
                                cond.Include(sub.Name).Contains(txt);
                            }
                        }
                        else
                        {
                            cond.Include(sub.Name).Eq(((BizDataControl)ctrl).ObjectValue);
                        }
                    }
                }
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// The ProcessRecord method calls AttrDef.GetInstances()
        /// method to iterate through each AttrDef object on the specified volume.
        /// </summary>
        protected override void ProcessRecord()
        {
            switch (ParameterSetName)
            {
            case "ByVolume":
                WriteObject(AttrDef.GetInstances(volume));
                break;

            case "ByPath":
                WriteObject(AttrDef.GetInstancesByPath(path));
                break;
            }
        }
Exemplo n.º 15
0
        private void InitComboBox(BizComboBox control, Table_Column controlData, AttrDef attrDef)
        {
            control.Rows    = 0;
            control.IsRadio = false;
            //control.AttributeDefId = controlData.Attribute_Id;

            /*if (control.AttributeDefId != null)
             * {
             *  //if (!controlData.Attribute_DefsReference.IsLoaded) controlData.Attribute_DefsReference.Load();
             *
             *  InitComboBox(control, attrDef /*controlData.Attribute_Defs#1#);
             * }*/
            InitControl(control, controlData);
            // AddQueryItems(control, controlData); // Вызывает ошибку дублирования QueryItems
        }
Exemplo n.º 16
0
        protected void SimpleSave(Guid docId, AttrDef attrDef, object value, Guid userId, DateTime date)
        {
            var tableName = CissaDataTypeHelper.GetTableName(attrDef.Type.Id);

            DataContext.BeginTransaction();
            try
            {
                var emptyText = value != null && attrDef.Type.Id == (short)CissaDataType.Text &&
                                String.IsNullOrEmpty(value.ToString());

                if (value != null && !emptyText)
                {
                    using (var command = CreateCommand(String.Format(SaveAttrSql, tableName)))
                    {
                        AddParamWithValue(command, "@DocId", docId);
                        AddParamWithValue(command, "@DefId", attrDef.Id);
                        AddParamWithValue(command, "@Created", date);
                        if (attrDef.Type.Id == (short)CissaDataType.Text)
                        {
                            AddParamWithValue(command, "@Value", value, SqlDbType.NVarChar);
                        }
                        else
                        {
                            AddParamWithValue(command, "@Value", value);
                        }
                        AddParamWithValue(command, "@UserId", userId);
                        command.ExecuteNonQuery();
                    }
                }
                else
                {
                    using (var command = CreateCommand(String.Format(ExpiryAttrSql, tableName)))
                    {
                        AddParamWithValue(command, "@DocId", docId);
                        AddParamWithValue(command, "@DefId", attrDef.Id);
                        AddParamWithValue(command, "@Expired", date);
                        command.ExecuteNonQuery();
                    }
                }
                DataContext.Commit();
            }
            catch
            {
                DataContext.Rollback();
                throw;
            }
        }
Exemplo n.º 17
0
        private void InitComboBox(BizComboBox control, Combo_Box controlData, DocDef def)
        {
            AttrDef attrDef = null;

            if (def != null)
            {
                if (controlData.Attribute_Id != null)
                {
                    attrDef = def.Attributes.FirstOrDefault(a => a.Id == controlData.Attribute_Id);
                }
                if (attrDef == null && controlData.Attribute_Name != null)
                {
                    attrDef =
                        def.Attributes.FirstOrDefault(a => String.Equals(a.Name, controlData.Attribute_Name, StringComparison.OrdinalIgnoreCase));
                }
            }
            control.Rows    = controlData.Rows ?? 0;
            control.IsRadio = controlData.Is_Radio ?? false;
            if (attrDef != null)
            {
                control.AttributeDefId = attrDef.Id;
                control.AttributeName  = attrDef.Name;
            }
            else
            {
                var         attrName = controlData.Attribute_Name ?? String.Empty;
                SystemIdent attrIdent;
                if (SystemIdentConverter.TryConvert(attrName, out attrIdent))
                {
                    control.Ident         = attrIdent;
                    control.AttributeName = attrName;
                    //InitComboBox(control, attrIdent);
                }
            }
            control.DetailAttributeId   = controlData.Detail_Attribute_Id;
            control.DetailAttributeName = controlData.Detail_Attribute_Name;

            /*if (attrDef != null)
             * {
             *  //if (!controlData.Attribute_DefsReference.IsLoaded) controlData.Attribute_DefsReference.Load();
             *
             *  InitComboBox(control, attrDef /*controlData.Attribute_Defs#1#);
             * } */

            InitControl(control, controlData);
            // AddQueryItems(control, controlData); // Вызывает ошибку дублирования QueryItems
        }
Exemplo n.º 18
0
        private void InitComboBox(BizComboBox control, Editor controlData, AttrDef attrDef)
        {
            control.Rows = controlData.Rows ?? 0;
//            control.AttributeDefId = controlData.Attribute_Id;
//            control.AttributeName = controlData.Attribute_Name ?? String.Empty;

//            if (!controlData.Attribute_DefsReference.IsLoaded) controlData.Attribute_DefsReference.Load();

/*
 *          if (attrDef == null)
 *              InitComboBoxItems(control, null);
 *          else
 *              InitComboBox(control, attrDef /*controlData.Attribute_Defs#1#);*/

            InitControl(control, controlData);
            AddQueryItems(control, controlData);
        }
        public string GetComboBoxDetailValue(BizComboBox comboBox, AttrDef attrDef)
        {
            if (comboBox.Value == null)
            {
                return(null);
            }

            if (attrDef == null)
            {
                switch (comboBox.Ident)
                {
                case SystemIdent.OrgId:
                case SystemIdent.OrgCode:
                case SystemIdent.OrgName:
                    return(GetEnumOrganizationValue((Guid)comboBox.Value));

                case SystemIdent.UserId:
                case SystemIdent.UserName:
                    return(GetEnumUserValue((Guid)comboBox.Value));
                }
                return(null);
            }

            if (attrDef.Type.Id == (short)CissaDataType.Doc && attrDef.DocDefType != null)
            {
                return
                    (_repositories.Where(pair => pair.Key.DataType.HasFlag(DataContextType.Document))
                     .Select(pair => pair.Value.GetComboBoxDetailValue(comboBox, attrDef))
                     .FirstOrDefault());
            }
            if (attrDef.Type.Id == (short)CissaDataType.Enum && attrDef.EnumDefType != null)
            {
                return(_enumRepo.GetEnumValue(attrDef.EnumDefType.Id, (Guid)comboBox.Value));
            }
            if (attrDef.Type.Id == (short)CissaDataType.Organization)
            {
                return(GetEnumOrganizationValue((Guid)comboBox.Value));
            }
            if (attrDef.Type.Id == (short)CissaDataType.User)
            {
                return(GetEnumUserValue((Guid)comboBox.Value));
            }

            return(null);
        }
Exemplo n.º 20
0
        public bool CheckUniqueness(Guid docId, AttrDef attrDef, object value)
        {
            var tableName = GetAttributeTableName((CissaDataType)attrDef.Type.Id);

            using (var command = CreateCommand(String.Format(CheckUniquenessSql, tableName)))
            {
                AddParamWithValue(command, "@DocId", docId);
                AddParamWithValue(command, "@DefId", attrDef.Id);
                AddParamWithValue(command, "@Value", value);

                var result = (int)command.ExecuteScalar();
                if (result == 0)
                {
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 21
0
        /// <summary>
        /// This function will set the op attrs required. If an attr has the value of
        /// None, then it will read the AttrDef to get the default value and set that
        /// instead. Any failure in this function will simply fall back to the slow
        /// path.
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="op"></param>
        /// <param name="attr"></param>
        /// <param name="attr_name"></param>
        /// <param name="attr_value"></param>
        /// <param name="attr_list_sizes"></param>
        /// <param name="status"></param>
        void SetOpAttrWithDefaults(Context ctx, SafeOpHandle op, AttrDef attr,
                                   string attr_name, object attr_value,
                                   Dictionary <string, long> attr_list_sizes,
                                   Status status)
        {
            byte is_list = 0;
            var  type    = c_api.TFE_OpGetAttrType(op, attr_name, ref is_list, status.Handle);

            if (status.Code != TF_Code.TF_OK)
            {
                return;
            }

            if (attr_value == null)
            {
                if (is_list != 0)
#pragma warning disable CS0642 // Possible mistaken empty statement
                {
                    ;
                }
#pragma warning restore CS0642 // Possible mistaken empty statement
                //SetOpAttrListDefault
                else
#pragma warning disable CS0642 // Possible mistaken empty statement
                {
                    ;
                }
#pragma warning restore CS0642 // Possible mistaken empty statement
                //SetOpAttrScalarDefault
            }
            else
            {
                if (is_list != 0)
#pragma warning disable CS0642 // Possible mistaken empty statement
                {
                    ;          //  SetOpAttrList
                }
#pragma warning restore CS0642 // Possible mistaken empty statement
                else
                {
                    SetOpAttrScalar(ctx, op, attr_name, attr_value, type, attr_list_sizes, status);
                }
            }
        }
        public IList <EnumValue> GetFormComboBoxValues(BizComboBox comboBox, AttrDef attrDef)
        {
            var list = new List <EnumValue>();

            if (attrDef == null)
            {
                switch (comboBox.Ident)
                {
                case SystemIdent.OrgId:
                case SystemIdent.OrgCode:
                case SystemIdent.OrgName:
                    return(GetEnumOrganizationValues(comboBox.DetailAttributeId));

                case SystemIdent.UserId:
                case SystemIdent.UserName:
                    return(GetEnumUserValues());
                }
                return(list);
            }

            if (attrDef.Type.Id == (short)CissaDataType.Doc && attrDef.DocDefType != null)
            {
                foreach (var pair in _repositories.Where(pair => pair.Key.DataType.HasFlag(DataContextType.Document)))
                {
                    list.AddRange(pair.Value.GetFormComboBoxValues(comboBox, attrDef));
                }
                return(list);
            }
            if (attrDef.Type.Id == (short)CissaDataType.Enum && attrDef.EnumDefType != null)
            {
                return(new List <EnumValue>(_enumRepo.GetEnumItems(attrDef.EnumDefType.Id)));
            }
            if (attrDef.Type.Id == (short)CissaDataType.Organization)
            {
                return(GetEnumOrganizationValues(attrDef.OrgTypeId));
            }
            if (attrDef.Type.Id == (short)CissaDataType.User)
            {
                return(GetEnumUserValues());
            }

            return(list);
        }
Exemplo n.º 23
0
        public AttributeBase CreateAttribute(AttrDef def)
        {
            switch ((CissaDataType)def.Type.Id)
            {
            case CissaDataType.Int:
                return(new IntAttribute(def));

            case CissaDataType.Text:
                return(new TextAttribute(def));

            case CissaDataType.Float:
                return(new FloatAttribute(def));

            case CissaDataType.Currency:
                return(new CurrencyAttribute(def));

            case CissaDataType.Enum:
                return(new EnumAttribute(def));

            case CissaDataType.DateTime:
                return(new DateTimeAttribute(def));

            case CissaDataType.Bool:
                return(new BoolAttribute(def));

            case CissaDataType.Doc:
                return(new DocAttribute(def));

            case CissaDataType.DocList:
                return(new DocListAttribute(def));

            case CissaDataType.Organization:
                return(new OrganizationAttribute(def));

            case CissaDataType.DocumentState:
                return(new DocumentStateAttribute(def));

            case CissaDataType.DocumentId:
                return(new MetaInfoAttribute(def));
            }
            throw new ApplicationException(String.Format("Неизвестный тип атрибута \"{0}\"", def.Caption));
        }
Exemplo n.º 24
0
        public BizDocumentControl CreateDocumentControl(DocumentControl docControl, DocDef def)
        {
//            if (!docControl.Attribute_DefsReference.IsLoaded) docControl.Attribute_DefsReference.Load();
//            if (docControl.Attribute_Defs == null) return null;

            AttrDef attrDef = null;

            if (def != null)
            {
                if (docControl.Attribute_Id != null)
                {
                    attrDef = def.Attributes.FirstOrDefault(a => a.Id == docControl.Attribute_Id);
                }
                else
                if (!String.IsNullOrEmpty(docControl.Attribute_Name))
                {
                    attrDef =
                        def.Attributes.FirstOrDefault(
                            a => String.Equals(a.Name, docControl.Attribute_Name ?? String.Empty, StringComparison.OrdinalIgnoreCase));
                }
            }

            var result = new BizDocumentControl
            {
                AttributeDefId = attrDef != null ? attrDef.Id : (Guid?)null,                   //docControl.Attribute_Defs.Id,
                AttributeName  = attrDef != null ? attrDef.Name : String.Empty,                // AttributeName = docControl.Attribute_Name,
                FormId         = docControl.Form_Id
            };

            if (attrDef != null && attrDef.DocDefType != null)
            {
                var nestDef = _docDefRepo.DocDefById(attrDef.DocDefType.Id);

                AddChildren(result, docControl, nestDef);
            }
            InitControl(result, docControl);

            return(result);
        }
        /// <summary>
        /// This function will set the op attrs required. If an attr has the value of
        /// None, then it will read the AttrDef to get the default value and set that
        /// instead. Any failure in this function will simply fall back to the slow
        /// path.
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="op"></param>
        /// <param name="attr"></param>
        /// <param name="attr_name"></param>
        /// <param name="attr_value"></param>
        /// <param name="attr_list_sizes"></param>
        /// <param name="status"></param>
        private static void SetOpAttrWithDefaults(Context ctx, IntPtr op, AttrDef attr,
                                                  string attr_name, object attr_value,
                                                  Dictionary <string, long> attr_list_sizes,
                                                  Status status)
        {
            byte is_list = 0;
            var  type    = c_api.TFE_OpGetAttrType(op, attr_name, ref is_list, status);

            if (status.Code != TF_Code.TF_OK)
            {
                return;
            }

            if (attr_value == null)
            {
                if (is_list != 0)
                {
                    ;
                }
                //SetOpAttrListDefault
                else
                {
                    ;
                }
                //SetOpAttrScalarDefault
            }
            else
            {
                if (is_list != 0)
                {
                    ;//  SetOpAttrList
                }
                else
                {
                    SetOpAttrScalar(ctx, op, attr_name, attr_value, type, attr_list_sizes, status);
                }
            }
        }
Exemplo n.º 26
0
 public void DirectSave(Guid docId, AttrDef attrDef, object value, Guid userId, DateTime date, string description)
 {
     if (attrDef.Type.Id == (short)CissaDataType.DocList)
     {
         var doc = value as Doc;
         if (doc != null)
         {
             AddDocListItem(docId, attrDef.Id, doc.Id, userId, date);
         }
         else if (value is Guid)
         {
             AddDocListItem(docId, attrDef.Id, (Guid)value, userId, date);
         }
     }
     else if (attrDef.Type.Id == (short)CissaDataType.Blob)
     {
         SaveBlob(docId, attrDef.Id, (byte[])value, description, userId, date);
     }
     else
     {
         SimpleSave(docId, attrDef, value, userId, date);
     }
 }
Exemplo n.º 27
0
        private AttrValue SetAttrValue(OpDef op_def, AttrDef attr_def, object value)
        {
            var attr_value = new AttrValue();

            if (attr_def.Type.StartsWith("list("))
            {
                if (attr_def.HasMinimum)
                {
                    ;
                }
                attr_value.List = new AttrValue.Types.ListValue();
            }

            switch (attr_def.Type)
            {
            case "string":
                attr_value.S = Google.Protobuf.ByteString.CopyFromUtf8((string)value);
                break;

            case "type":
                attr_value.Type = _MakeType((TF_DataType)value, attr_def);
                break;

            case "list(type)":
                attr_value.List.Type.AddRange((value as IList <TF_DataType>).Select(x => _MakeType(x, attr_def)));
                break;

            case "list(int)":
                attr_value.List.I.AddRange((value as int[]).Select(x => Convert.ToInt64(x)));
                break;

            case "bool":
                attr_value.B = (bool)value;
                break;

            case "float":
                attr_value.F = (float)value;
                break;

            case "int":
                attr_value.I = (int)value;
                if (attr_def.HasMinimum && attr_value.I < attr_def.Minimum)
                {
                    throw new ValueError($"Attr '{attr_def.Name}' of '{op_def.Name}' Op passed {attr_value.I} less than minimum {attr_def.Minimum}.");
                }
                break;

            case "shape":
                if (value == null && attr_def.DefaultValue != null)
                {
                    attr_value.Shape = attr_def.DefaultValue.Shape;
                }

                if (value is TensorShape val1)
                {
                    attr_value.Shape = val1.as_proto();
                }
                else if (value is long[] val2)
                {
                    attr_value.Shape = tensor_util.as_shape(val2);
                }
                else if (value is int[] val3)
                {
                    attr_value.Shape = tensor_util.as_shape(val3);
                }

                break;

            default:
                throw new TypeError($"SetAttrValue: can't not convert attr_def.Type '{attr_def.Type}' to protos.");
            }

            return(attr_value);
        }
Exemplo n.º 28
0
 public TensorShapeProto _MakeShape(TensorShape shape, AttrDef attr_def)
 {
     return(shape.as_proto());
 }
Exemplo n.º 29
0
 public DataType _MakeType(TF_DataType v, AttrDef attr_def)
 {
     return(v.as_base_dtype().as_datatype_enum());
 }
Exemplo n.º 30
0
 public ByteString _MakeStr(string value, AttrDef attr_def)
 {
     return(ByteString.CopyFromUtf8(value ?? string.Empty));
 }