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; } }
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); } } }
public SqlQueryConditionOperationBuilder(SqlQueryConditionBuilder parent, ExpressionOperation operation, DocDef docDef, AttrDef attrDef) { Parent = parent; Operation = operation; DocDef = docDef; AttrDef = attrDef; }
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); }
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)); }
public BlobData GetBlobAttrData(Guid docId, AttrDef attrDef) { var repo = TryGetDocRepo(docId); if (repo != null) { return(repo.GetBlobAttrData(docId, attrDef)); } return(null); }
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); }
protected override void ProcessRecord() { if (ParameterSetName == "Volume") { WriteObject(AttrDef.GetInstances(volume, AttrDef.ATTRDEF_INDEX)); } else { WriteObject(AttrDef.GetInstances(path)); } } // ProcessRecord
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); }
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); } } } } }
/// <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; } }
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 }
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; } }
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 }
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); }
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); }
/// <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); }
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)); }
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); } } }
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); } }
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); }
public TensorShapeProto _MakeShape(TensorShape shape, AttrDef attr_def) { return(shape.as_proto()); }
public DataType _MakeType(TF_DataType v, AttrDef attr_def) { return(v.as_base_dtype().as_datatype_enum()); }
public ByteString _MakeStr(string value, AttrDef attr_def) { return(ByteString.CopyFromUtf8(value ?? string.Empty)); }