Saturday, May 1, 2010

Reading CustomFolderContentType metadata in ItemUpdated Event



public override void ItemUpdated(SPItemEventProperties properties)


{


f = new FileInfo(@"c:\testdir2\Mytext3.txt");


w = f.CreateText();


try


{



//int counter = 0;


//while (counter != 6)


//{


// // sleep for 2 seconds and try again


// System.Threading.Thread.Sleep(2000);


// counter++;


// w.WriteLine("entering while");


//}


string CTname = properties.ListItem.Folder.Name;


SPListItem item = properties.ListItem.Folder.Item;


//Hashtable h = new Hashtable();


OleDbDataReader dr = GetAssetMetaFields(CTname);


ArrayList oAttrs = new ArrayList();


while (dr.Read())


{



if (Convert.ToChar(dr[6].ToString()) == 'M')


{



SPFieldLookupValueCollection itemValues = item[dr[0].ToString()] as SPFieldLookupValueCollection;


foreach (SPFieldLookupValue itemValue in itemValues)


{


int id = itemValue.LookupId;


string value = itemValue.LookupValue;


AssetAttr oAssetAttr = new AssetAttr();


oAssetAttr.sFormatid = dr[5].ToString();


oAssetAttr.sIsci = dr[3].ToString();


oAssetAttr.sImageid = dr[4].ToString();


oAssetAttr.sType = dr[6].ToString();


oAssetAttr.sName = "Lookup_"+dr[1].ToString();


oAssetAttr.sValue = value;


oAssetAttr.sLabel = dr[0].ToString();


oAttrs.Add(oAssetAttr);


metaData += dr[0].ToString() + ":" + value + ",";


//h.Add(dr[0].ToString(), value);



}


}



else


{


//h.Add(dr[0].ToString(), item[dr[0].ToString()].ToString());


AssetAttr oAssetAttr = new AssetAttr();


oAssetAttr.sFormatid = dr[5].ToString();


oAssetAttr.sIsci = dr[3].ToString();


oAssetAttr.sImageid = dr[4].ToString();


oAssetAttr.sType = dr[6].ToString();


oAssetAttr.sName = "Lookup_" + dr[1].ToString();


oAssetAttr.sValue = item[dr[0].ToString()].ToString();


oAssetAttr.sLabel = dr[0].ToString();


oAttrs.Add(oAssetAttr);


metaData += dr[0].ToString() + ":" + item[dr[0].ToString()].ToString() + ",";


}



}


bool result= UpdateMetadata(oAttrs);


w.WriteLine("the Asset name is");


w.WriteLine(CTname);


w.WriteLine(metaData);


w.WriteLine(result.ToString());


w.Close();


}


catch (Exception ex)


{


w.WriteLine(ex.Message);


w.Close();


}




}

No comments:

Post a Comment