Friday, May 14, 2010

Reading Values from a registry


RegistryKey RegKey = Registry.LocalMachine;


RegKey = RegKey.OpenSubKey("SOFTWARE\\Comapny1\\Project1");


string connstring = Convert.ToString(RegKey.GetValue("MyConnection"));

Monday, May 10, 2010

Delete a List Item from a List for a given Title



private bool DeleteAttributeListValue(string AttributeLabelName, string SearchValue)


{


try


{


using (SPSite p_site = new SPSite(SharePointURL))


{


using (SPWeb p_web = p_site.OpenWeb())


{


SPList targetList = p_web.Lists[AttributeLabelName];


//targetList.Fields["aa"].d


string camlquery = @"<Where><Eq><FieldRef Name='Title'/><Value Type='Text'>" + SearchValue + "</Value></Eq></Where>";


SPQuery spQuery = new SPQuery();


spQuery.Query = camlquery;


SPListItemCollection items = targetList.GetItems(spQuery);


if (items != null)


{


if (items.Count > 0)


{


items[0].Delete();


}


}


}


}


return true;


}


catch (Exception ex)


{


return false;


}


}

Deleting a Field from Content Type and its list



private bool DeleteAttributeLabel(string AttributeLabelName)


{


try


{


using (SPSite p_site = new SPSite(SharePointURL))


{


using (SPWeb p_web = p_site.OpenWeb())


{


SPContentType ct = p_web.ContentTypes["VideoBankContentType"];


SPField fld = p_web.Fields[AttributeLabelName];


DeleteFieldRefFromContentType(ct, fld);


fld.Delete();


SPList list = p_web.Lists[AttributeLabelName];


list.Delete();


}


}


return true;


}


catch (Exception ex)


{


return false;


}


}





private bool DeleteFieldRefFromContentType(SPContentType contentType, SPField field)


{


try


{


//Check if the Field reference exists


if (contentType.Fields.ContainsField(field.Title))


{


contentType.FieldLinks.Delete(field.Title);


contentType.Update(true);


}


else


{


//Do Nothing


}


return true;


}


catch (Exception ex)


{


return false;


}


}


}

Monday, May 3, 2010

Adding EventHandlers to a List



list.EventReceivers.Add(SPEventReceiverType.ItemDeleting, "MyEventHandler, Version=1.1.17.0, Culture=neutral, PublicKeyToken=06c1d930d49413f4", "MyEventHandler.MyEventHandler");


list.EventReceivers.Add(SPEventReceiverType.ItemUpdated, "MyEventHandler, Version=1.1.17.0, Culture=neutral, PublicKeyToken=06c1d930d49413f4", "MyEventHandler.MyEventHandler");


list.Update();

Deleting EventHandlers from a list



SPList list = web.Lists[SharePointLibrary];


SPEventReceiverDefinition receiverDefinition = null;


for (int i = list.EventReceivers.Count - 1; i >= 0; i--)


{


receiverDefinition = list.EventReceivers[i];


receiverDefinition.Delete();


}


list.Update();

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();


}




}

Monday, April 19, 2010

Creating List/Library Folders Programmatically

Very useful link to create folders programmatically:

I am calling createCT method just after the folder has created:



public static SPFolder GetFolder(SPList targetList, string folderUrl)


{


if (string.IsNullOrEmpty(folderUrl))


return targetList.RootFolder;


SPFolder folder = targetList.ParentWeb.GetFolder(targetList.RootFolder.Url + "/" + folderUrl);


if (!folder.Exists)


{


if (!targetList.EnableFolderCreation)


{


targetList.EnableFolderCreation = true;


targetList.Update();


}


// We couldn't find the folder so create it


string[] folders = folderUrl.Trim('/').Split('/');


string folderPath = string.Empty;


for (int i = 0; i < folders.Length; i++)


{


folderPath += "/" + folders[i];


folder = targetList.ParentWeb.GetFolder(targetList.RootFolder.Url + folderPath);


if (!folder.Exists)


{


SPListItem newFolder = targetList.Items.Add("", SPFileSystemObjectType.Folder, folderPath.Trim('/'));


newFolder.Update();


folder = newFolder.Folder;


}


}


createCT(folderUrl, folder, targetList);


}


// Still no folder so error out


if (folder == null)


throw new SPException(string.Format("The folder '{0}' could not be found.", folderUrl));


return folder;


}