Ejemplo n.º 1
0
        public XElement GetValueElement(SqlQueryReader reader, SqlQueryField field)
        {
            var name = GetFieldElementName(field);

            if (reader.IsDbNull(field.Index))
            {
                return(new XElement(name, ""));
            }

            if (field.AttrDef != null)
            {
                switch (field.AttrDef.Type.Id)
                {
                case (short)CissaDataType.Enum:
                    if (field.AttrDef.EnumDefType == null)
                    {
                        break;
                    }
                    var enumDef  = _enumRepo.Get(field.AttrDef.EnumDefType.Id);
                    var enumItem = enumDef.EnumItems.FirstOrDefault(i => i.Id == reader.GetGuid(field.Index));
                    if (enumItem != null)
                    {
                        return(new XElement(name, new XElement("Id", enumItem.Id),
                                            new XElement("Value", enumItem.Value)));
                    }
                    break;

                case (short)CissaDataType.Doc:
                    if (PublicDocAttribute(field.AttrDef))
                    {
                        var doc = _docRepo.LoadById(reader.GetGuid(field.Index));
                        return(new XElement(name, GetDocElement(doc)));
                    }
                    break;

/*
 *                          case (short) CissaDataType.DocList:
 *                              if (PublicDocAttribute(field.AttrDef))
 *                              {
 *                                  DocRepo.Ge
 *                                  var docList = new DocList(DataContext);
 *                                  return new XElement(name, GetDocListElement(doc));
 *                              }
 *                              break;
 */
                }
            }
            return(new XElement(name, reader.GetValue(field.Index)));
        }
Ejemplo n.º 2
0
 public EnumDef GetEnumDef(Guid enumDefId)
 {
     return(_enumRepo.Get(enumDefId));
 }