Removing Association

 

   1: SPSite site = new SPSite("http://localhost");
   2: SPWeb web = site.OpenWeb();
   3: SPList list = web.Lists["Shared Documents"];
   4: SPWorkflowAssociation _association = null;
   5: foreach (SPWorkflowAssociation association in list.WorkflowAssociations)
   6: {
   7: if (association.Name == "Approval")
   8: {
   9: _association = association;
  10: break; 
  11: }
  12: }
  13: if(_association !=null)
  14: list.RemoveWorkflowAssociation(_association);

 

Adding workflow to the library

   1: SPSite site = new SPSite("http://localhost");
   2: SPWeb web = site.OpenWeb();
   3: SPList list = web.Lists["Shared Documents"];
   4: SPList taskList = web.Lists["Tasks"];
   5: SPList historyList = web.Lists["Workflow History"]; 
   6: SPWorkflowTemplate _template = null;
   7: foreach (SPWorkflowTemplate template in web.WorkflowTemplates)
   8: {
   9: if (template.Name == "Approval")
  10: {
  11: _template = template;
  12: break; 
  13: } 
  14: }
  15: SPWorkflowAssociation asso = SPWorkflowAssociation.CreateListAssociation(_template, _template.Name, taskList, historyList); 
  16: list.AddWorkflowAssociation(asso);

Starting workflow

 

   1: SPSite site = new SPSite("http://localhost");
   2: SPWeb web = site.OpenWeb();
   3: SPList list = web.Lists["Shared Documents"];
   4: SPWorkflowAssociation association = AddWorkflow(); // Above function to get the SPWorlflowAssociation object
   5: SPWorkflowManager manager = site.WorkflowManager; 
   6: for (int idx = 0; idx < 10 ; idx++) // I'm assuming there would be atleast 10 items within the library
   7: {
   8: SPListItem item = list.Items[idx];
   9: manager.StartWorkflow(item,association, "you can pass any data here",true);
  10: }