private void PrepareField(QueryReaderField field) { if (field.AttrDef != null) { if (field.AttrDef.Type.Id == (short)CissaDataType.Enum && field.AttrDef.EnumDefType != null) { if (_enumRepo == null) { _enumRepo = Provider.Get <IEnumRepository>(); } if (!_enumValues.ContainsKey(field.AttrDef.Id)) { _enumValues.Add(field.AttrDef.Id, _enumRepo.GetEnumItems(field.AttrDef.EnumDefType.Id)); } } else if (field.AttrDef.Type.Id == (short)CissaDataType.Doc) { if (_comboBoxEnumProvider == null) { _comboBoxEnumProvider = Provider.Get <IComboBoxEnumProvider>(); } if (!_enumValues.ContainsKey(field.AttrDef.Id)) { _enumValues.Add(field.AttrDef.Id, _comboBoxEnumProvider.GetEnumDocumentValues(field.AttrDef, "Name")); } } else if (field.AttrDef.Type.Id == (short)CissaDataType.Organization) { if (_comboBoxEnumProvider == null) { _comboBoxEnumProvider = Provider.Get <IComboBoxEnumProvider>(); } if (!_enumValues.ContainsKey(field.AttrDef.Id)) { _enumValues.Add(field.AttrDef.Id, _comboBoxEnumProvider.GetEnumOrganizationValues(field.AttrDef.OrgTypeId)); } } else if (field.AttrDef.Type.Id == (short)CissaDataType.User) { if (_comboBoxEnumProvider == null) { _comboBoxEnumProvider = Provider.Get <IComboBoxEnumProvider>(); } if (!_enumValues.ContainsKey(field.AttrDef.Id)) { _enumValues.Add(field.AttrDef.Id, _comboBoxEnumProvider.GetEnumUserValues()); } } } }
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 IList <EnumValue> GetFormComboBoxValues(BizForm form, 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) { var detailDocDef = _docDefRepo.DocDefById(attrDef.DocDefType.Id); AttrDef detailAttrDef; if (comboBox.DetailAttributeId != null) { detailAttrDef = detailDocDef.Attributes.FirstOrDefault(ad => ad.Id == comboBox.DetailAttributeId); } else { detailAttrDef = detailDocDef.Attributes.FirstOrDefault( ad => String.Equals(ad.Name, comboBox.DetailAttributeName, StringComparison.OrdinalIgnoreCase)) ?? detailDocDef.Attributes.FirstOrDefault(ad => ad.Type.Id == (int)CissaDataType.Text); } if (detailAttrDef == null) { return(list); } var sqlQueryBuilder = _sqlQueryBuilderFactory.Create(); using (var query = sqlQueryBuilder.Build(comboBox, detailDocDef.Id)) { query.AddAttribute("&Id"); query.AddAttribute(detailAttrDef.Id); query.AddOrderAttribute(detailAttrDef.Id); if (form != null) { var helper = new FormHelper(Provider, form); helper.SetQueryParams(query); } 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 }); } } } } else if (attrDef.Type.Id == (short)CissaDataType.Enum && attrDef.EnumDefType != null) { return(new List <EnumValue>(_enumRepo.GetEnumItems(attrDef.EnumDefType.Id))); } else if (attrDef.Type.Id == (short)CissaDataType.Organization) { return(GetEnumOrganizationValues(attrDef.OrgTypeId)); } else if (attrDef.Type.Id == (short)CissaDataType.User) { return(GetEnumUserValues()); } return(list); }
public List <EnumValue> GetEnumItems(Guid enumDefId) { return(new List <EnumValue>(_enumRepo.GetEnumItems(enumDefId))); }