Gets values of all properties or selected properties for this item.
null to get all properties. New array must be created and returned through this parameter.
public WebDAVResponse GetProperties(ref Property[] props)
{
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd;
SqlDataReader reader = null;
conn.Open();
try
{
cmd = conn.CreateCommand();
cmd.CommandText = "SELECT Name, Namespace, PropVal"
+" FROM Properties"
+" WHERE ItemID = @ItemID";
cmd.Parameters.Add("@ItemID", SqlDbType.Int).Value = ID;
reader = cmd.ExecuteReader();
if(props == null) // get all properties
{
ArrayList l = new ArrayList();
while(reader.Read())
{
Property p = new Property();
p.Name = reader.GetString(reader.GetOrdinal("Name"));
p.Namespace = reader.GetString(reader.GetOrdinal("Namespace"));
p.Value = reader.GetString(reader.GetOrdinal("PropVal"));
l.Add(p);
}
props = (Property[])l.ToArray(typeof(Property));
}
else // get selected properties
{
Property p = new Property();
while(reader.Read())
{
p.Name = reader.GetString(reader.GetOrdinal("Name"));
p.Namespace = reader.GetString(reader.GetOrdinal("Namespace"));
for(int i=0; i<props.Length; i++)
if(p.Name == props[i].Name && p.Namespace == props[i].Namespace)
{
props[i].Value = reader.GetString(reader.GetOrdinal("PropVal"));
break;
}
}
}
}
finally
{
if(reader != null) reader.Close();
conn.Close();
}
return new OkResponse();
}
IHierarchyItem Interface | ITHit.WebDAV.Server Namespace