public Hashtable UpdateChildrenPermissionsInCGPR(SPUserCodeWorkflowContext context, string id, string sourceList, string relatedList) { Hashtable results = new Hashtable(); try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList list = web.Lists[sourceList]; SPList related = web.Lists[relatedList]; if (list != null && related != null) { SPListItem listItem = list.GetItemById(currentId); if (listItem != null) { SPListItemCollection relatedListItems = GetChildren(related, listItem); string region = string.Empty; if (listItem["Region"] != null) { region = listItem["Region"].ToString(); } LoadManagers(listItem); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { BreakInheritenceAndUpdateItemPermissions(web, region, listItem); foreach (SPListItem relatedListItem in relatedListItems) { BreakInheritenceAndUpdateItemPermissions(web, region, relatedListItem); } } } } } } } } catch (Exception e) { results = new Hashtable(); result += e.ToString(); results["success"] = false; } results["result"] = result; return(results); }
private Hashtable DevMethod(SPUserCodeWorkflowContext context, string id, string dueDate, bool isDev) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList requirementsList = web.Lists["Requirements" + (isDev ? " Dev" : string.Empty)]; if (requirementsList != null) { SPListItem item = requirementsList.GetItemById(currentId); if (item != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { DateTime oldDate; if (item[GetStatusFieldDev(dueDate)] != null && DateTime.TryParse((item[GetStatusFieldDev(dueDate)].ToString()), out oldDate)) { item[GetStatusFieldDev(dueDate)] = oldDate.AddYears(1); } item[GetStatusFieldDev(dueDate) + " Status"] = ""; item["Due Date Compliance Status"] = GetReqStatusDev(item); item.Update(); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
public Hashtable UpdateSustainabilityMilestoneTitles(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; SPList target = web.Lists[targetList]; if (source != null && target != null) { SPListItem sourceItem = source.GetItemById(currentId); if (sourceItem != null && sourceItem["Proposed Project Name"] != null) { SPListItemCollection items = GetMilestones(sourceItem["Proposed Project Name"], target); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { foreach (SPListItem item in items) { item["Project Name"] = new SPFieldLookupValue(int.Parse(sourceItem["ID"].ToString()), sourceItem["Proposed Project Name"].ToString()); item["Project Name Temp"] = string.Empty; item.Update(); } } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
private Hashtable DevMethod(SPUserCodeWorkflowContext context, string id, string historyId, bool isDev) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; int currentHistoryId; if (int.TryParse(id, out currentId) && int.TryParse(historyId, out currentHistoryId)) { SPList requirementsList = web.Lists["Requirements" + (isDev ? " Dev" : string.Empty)]; SPList historyList = web.Lists["CG Debts History" + (isDev ? " Dev" : string.Empty)]; if (requirementsList != null && historyList != null) { SPListItem sourceItem = requirementsList.GetItemById(currentId); SPListItem historyItem = historyList.GetItemById(currentHistoryId); if (sourceItem != null && historyItem != null && historyItem["Type of Due Date completed"] != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { string typeDueDate = historyItem["Type of Due Date completed"].ToString(); sourceItem[GetStatusFieldDev(typeDueDate) + " Status"] = string.Empty; sourceItem[GetStatusFieldDev(typeDueDate) + " Status Covenant"] = string.Empty; sourceItem.Update(); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
public Hashtable DeleteAttachments(SPUserCodeWorkflowContext context, string id, string sourceList) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; if (source != null) { SPListItem sourceItem = source.GetItemById(currentId); if (sourceItem != null) { for (int i = sourceItem.Attachments.Count; i > 0; i--) { sourceItem.Attachments.Delete(sourceItem.Attachments[i - 1]); } using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { sourceItem.Update(); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
public Hashtable UpdateRequirementName(SPUserCodeWorkflowContext context) { Hashtable results = new Hashtable(); try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { SPList historyList = web.Lists["CG Debts History"]; if (historyList != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { SPListItemCollection items = historyList.Items; foreach (SPListItem item in items) { //if (item["ID"].ToString() == "382" || item["ID"].ToString() == "384" || item["ID"].ToString() == "385") //temporary for tests only { if (item["Requirement Id"] != null && (item["Requirement Name"] == null || item["Requirement Name"].ToString() != string.Empty)) { item["Requirement Name"] = GetRequirementName(web, item["Requirement Id"].ToString()); item.Update(); } } } } } } } results["result"] = result; results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
public Hashtable UpdateActionTitles(SPUserCodeWorkflowContext context, string lookupField, string id, string title, string targetList) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList target = web.Lists[targetList]; if (target != null) { SPListItemCollection items = GetActions(title, target); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { foreach (SPListItem item in items) { item[lookupField] = new SPFieldLookupValue(currentId, title); item["Temp Title"] = string.Empty; item.Update(); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
public Hashtable UpdateItems(SPUserCodeWorkflowContext context, string tableName, string setField, string setValue, string whereField, string whereValue) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { SPList table = web.Lists[tableName]; if (table != null) { SPListItemCollection items = GetItems(table, whereField, whereValue); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { foreach (SPListItem item in items) { item[setField] = setValue; item.Update(); } } } } results["success"] = true; } } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
private Hashtable DevMethod(SPUserCodeWorkflowContext context, string id, string historyId, bool isDev) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; int currentHistoryId; if (int.TryParse(id, out currentId) && int.TryParse(historyId, out currentHistoryId)) { SPList loanList = web.Lists["Loan" + (isDev ? " Dev" : string.Empty)]; SPList requirementsList = web.Lists["Requirements" + (isDev ? " Dev" : string.Empty)]; SPList historyList = web.Lists["CG Debts History" + (isDev ? " Dev" : string.Empty)]; if (loanList != null && requirementsList != null && historyList != null) { SPListItem sourceItem = requirementsList.GetItemById(currentId); SPListItem historyItem = historyList.GetItemById(currentHistoryId); if (sourceItem != null && historyItem != null && historyItem["Type of Due Date completed"] != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { string typeDueDate = historyItem["Type of Due Date completed"].ToString(); sourceItem[GetStatusFieldDev(typeDueDate) + " Status"] = historyItem["Completion Status"]; bool shouldUpdateLoanStatus = false; if (historyItem["Completion Status"] != null && historyItem["Completion Status"].ToString() == "Final") { DateTime oldDate; if (sourceItem[GetStatusFieldDev(typeDueDate)] != null && DateTime.TryParse((sourceItem[GetStatusFieldDev(typeDueDate)].ToString()), out oldDate)) { sourceItem[GetStatusFieldDev(typeDueDate)] = oldDate.AddYears(1); } sourceItem[GetStatusFieldDev(typeDueDate) + " Status"] = string.Empty; sourceItem["Due Date Compliance Status"] = GetReqStatusDev(sourceItem); shouldUpdateLoanStatus = true; sourceItem[GetStatusFieldDev(typeDueDate) + " Status Covenant"] = "Compliant"; historyItem["CovStatus"] = "Approved"; historyItem.Update(); UpdateDraftHistoryStatusDev(web, historyItem, isDev); } sourceItem["Covenant Compliance Status"] = GetReqCovenantStatusDev(sourceItem); sourceItem.Update(); int projId; if (shouldUpdateLoanStatus && sourceItem["Project Id"] != null && int.TryParse(sourceItem["Project Id"].ToString(), out projId)) { SPListItem loanItem = loanList.GetItemById(projId); if (loanItem != null) { shouldUpdateLoanStatus = false; string oldLoanStatus = loanItem["Due Date Compliance Status"] == null ? "" : loanItem["Due Date Compliance Status"].ToString(); string newLoanStatus = GetLoanStatusDev(loanItem, requirementsList); if (oldLoanStatus != newLoanStatus) { loanItem["Due Date Compliance Status"] = newLoanStatus; shouldUpdateLoanStatus = true; } oldLoanStatus = loanItem["Covenant Compliance Status"] == null ? "" : loanItem["Covenant Compliance Status"].ToString(); newLoanStatus = GetLoanCovenantStatusDev(loanItem, requirementsList); if (oldLoanStatus != newLoanStatus) { loanItem["Covenant Compliance Status"] = newLoanStatus; shouldUpdateLoanStatus = true; } if (shouldUpdateLoanStatus) { loanItem.Update(); } } } } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] += e.ToString(); results["success"] = false; } return(results); }
private Hashtable ProductionMethod(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; if (source != null /* && target != null*/) { SPListItem sourceItem = source.GetItemById(currentId); if (sourceItem != null) { //string region = string.Empty; //if (sourceItem["Region"] != null) //{ // region = sourceItem["Region"].ToString(); //} string finance = string.Empty; if (sourceItem["Finance Organization"] != null) { finance = sourceItem["Finance Organization"].ToString(); } LoadManagersProd(sourceItem); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { isFinanceGroupAddedProd = false; isCorporateGroupAddedProd = false; if (!sourceItem.HasUniqueRoleAssignments) { sourceItem.BreakRoleInheritance(true); } foreach (SPRoleAssignment assignment in sourceItem.RoleAssignments) { bool shouldRemove = true; if (managersProd.ContainsKey(assignment.Member.LoginName) && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) { managersProd[assignment.Member.LoginName].IsAdded = true; shouldRemove = false; } if (assignment.Member.LoginName == "CG Debts " + finance + " Admins" && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) { isFinanceGroupAddedProd = true; shouldRemove = false; } if (assignment.Member.LoginName == "CG Debts Corporate Level" && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) { isCorporateGroupAddedProd = true; shouldRemove = false; } if (shouldRemove) { assignment.RoleDefinitionBindings.RemoveAll(); assignment.Update(); } } UpdateItemPermissionsProd(web, sourceItem, finance); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); resultProd += e.ToString(); results["success"] = false; } results["result"] = resultProd; return(results); }
public Hashtable UpdateChildrenPermissionsInAmortizationSchedules(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; SPList target = web.Lists[targetList]; if (source != null && target != null) { SPListItem sourceListItem = source.GetItemById(currentId); if (sourceListItem != null) { string finance = string.Empty; string scheduleField = string.Empty; string fnFinance = "Finance Organization"; string fnSchedule = "Amortization Schedule"; if (sourceListItem[fnFinance] != null) { finance = sourceListItem[fnFinance].ToString(); } if (sourceListItem[fnSchedule] != null) { scheduleField = sourceListItem[fnSchedule].ToString(); string scheduleWebAddress = GetWebAddressFromUrlField(scheduleField); string documentName = GetDocumentName(scheduleWebAddress); if (!string.IsNullOrEmpty(documentName)) { SPListItemCollection relatedListItems = GetChildren(target, documentName); res += "Document name is: " + documentName + ". "; res += "The count of found files is: " + relatedListItems.Count + ". "; if (relatedListItems.Count > 0) { LoadManagers(sourceListItem); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { foreach (SPListItem relatedListItem in relatedListItems) { BreakInheritenceAndUpdateItemPermissions(web, finance, relatedListItem); } } } } } } } else { res += "Lists or one of them are null. "; } } } } } catch (Exception e) { results = new Hashtable(); res += e.ToString(); results["success"] = false; } results["result"] = res; return(results); }
public Hashtable SetItemFullPermissionsQoBC(SPUserCodeWorkflowContext context, string id, string sourceList) { Hashtable results = new Hashtable(); results["result"] = string.Empty; string result = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList list = web.Lists[sourceList]; if (list != null) { SPListItem item = list.GetItemById(currentId); if (item != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { if (!item.HasUniqueRoleAssignments) { item.BreakRoleInheritance(true); } foreach (SPRoleAssignment assignment in item.RoleAssignments) { assignment.RoleDefinitionBindings.RemoveAll(); assignment.Update(); } SPRoleDefinition roleDefinition = web.RoleDefinitions["Full Control"]; GetSPUserObject(item, "Created By", roleDefinition); SPGroup group = web.Groups["QoBCAdmins"]; if (group != null) { AddPermissions(item, group, roleDefinition); } //SPRoleDefinition roleDefinitionContribute = web.RoleDefinitions["Contribute"]; SPRoleDefinition roleDefinitionContribute = web.RoleDefinitions.GetByType(SPRoleType.Contributor); // For Contribute SPGroup groupResponders = web.Groups["QoBCResponders"]; if (groupResponders != null) { AddPermissions(item, groupResponders, roleDefinitionContribute); } } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); result += e.ToString(); results["success"] = false; } results["result"] = result; return(results); }
public Hashtable UpdateDueDates(SPUserCodeWorkflowContext context, string calendarName) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { SPList requirementsList = web.Lists["Requirements"]; SPList calendarList = web.Lists[calendarName]; if (requirementsList != null && calendarList != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { SPListItemCollection items = requirementsList.Items; foreach (SPListItem item in items) { int id = int.Parse(item["ID"].ToString()); if (id > 170 && id < 191) //temporary for tests only { if (item["Type of Due Date"] != null) { if (item["Type of Due Date"].ToString().Contains("Monthly")) { UpdateDate(item, "January", calendarList); UpdateDate(item, "February", calendarList); UpdateDate(item, "March", calendarList); UpdateDate(item, "April", calendarList); UpdateDate(item, "May", calendarList); UpdateDate(item, "June", calendarList); UpdateDate(item, "July", calendarList); UpdateDate(item, "August", calendarList); UpdateDate(item, "September", calendarList); UpdateDate(item, "October", calendarList); UpdateDate(item, "November", calendarList); UpdateDate(item, "December", calendarList); } else if (item["Type of Due Date"].ToString().Contains("Quarterly")) { UpdateDate(item, "1st Quarter", calendarList); UpdateDate(item, "2nd Quarter", calendarList); UpdateDate(item, "3rd Quarter", calendarList); UpdateDate(item, "4th Quarter", calendarList); } else if (item["Type of Due Date"].ToString().Contains("Semi-Annual")) { UpdateDate(item, "1st Semi-Annual", calendarList); UpdateDate(item, "2nd Semi-Annual", calendarList); } else if (item["Type of Due Date"].ToString().Contains("Annual")) { UpdateDate(item, "Annual", calendarList); } } } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
//Not used public Hashtable SetItemPermissions(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); string result = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList target = web.Lists[targetList]; SPList source = web.Lists[sourceList]; if (target != null && source != null) { SPListItem targetItem = target.GetItemById(currentId); if (targetItem != null) { SPListItem listItem = GetParent(source, targetItem); //commented out as not used //string region = string.Empty; //if (listItem["Region"] != null) //{ // region = listItem["Region"].ToString(); //} string finance = string.Empty; if (listItem["Finance Organization"] != null) { finance = listItem["Finance Organization"].ToString(); } using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { if (!targetItem.HasUniqueRoleAssignments) { targetItem.BreakRoleInheritance(true); } foreach (SPRoleAssignment assignment in targetItem.RoleAssignments) { assignment.RoleDefinitionBindings.RemoveAll(); assignment.Update(); } if (targetItem["Created By"] != null) { GetSPUserObject(targetItem, "Created By", targetItem, web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } if (listItem["Responsible"] != null) { GetSPUserObject(listItem, "Responsible", targetItem, web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } if (listItem["Responsible 2"] != null) { GetSPUserObject(listItem, "Responsible 2", targetItem, web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } if (listItem["Person in charge"] != null) { GetSPUserObject(listItem, "Person in charge", targetItem, web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } if (listItem["Approver"] != null) { GetSPUserObject(listItem, "Approver", targetItem, web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } AddSecondApprover(listItem, targetItem, web.RoleDefinitions.GetByType(SPRoleType.Contributor)); if (finance != string.Empty) { AddPermissions(targetItem, web.Groups.GetByName("CG Debts " + finance + " Admins"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } AddPermissions(targetItem, web.Groups.GetByName("CG Debts Corporate Level"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); result += e.ToString(); results["success"] = false; } results["result"] = result; return(results); }
//Not used public Hashtable Delete(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; SPList target = web.Lists[targetList]; if (source != null && target != null) { SPListItem sourceItem = source.GetItemById(currentId); if (sourceItem != null) { Dictionary <int, DateTime> dict = new Dictionary <int, DateTime>(); foreach (SPListItem item in target.Items) { if (item["Project Id"] != null && sourceItem["ID"] != null && item["Project Id"].ToString() == sourceItem["ID"].ToString()) { dict.Add((int)item["ID"], (DateTime)item["Created"]); } } if (dict.Count > 0) { DateTime max = dict.Values.Max(); int lastTargetId = dict.Where(pair => max.Equals(pair.Value)).Select(pair => pair.Key).FirstOrDefault(); SPListItem targetItem = target.GetItemById(lastTargetId); if (targetItem != null && sourceItem["Reporting frequency"] != null) { switch (sourceItem["Reporting frequency"].ToString()) { case "Annual": sourceItem["Next Due Date"] = ((DateTime)sourceItem["Next Due Date"]).AddYears(-1); break; case "Bi-annual": sourceItem["Next Due Date"] = ((DateTime)sourceItem["Next Due Date"]).AddMonths(-6); break; case "Quarterly": sourceItem["Next Due Date"] = ((DateTime)sourceItem["Next Due Date"]).AddMonths(-3); break; } using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { sourceItem.Update(); } targetItem.Delete(); } } } } } } } results["success"] = true; results["exception"] = string.Empty; } catch (Exception e) { results = new Hashtable(); results["exception"] = e.ToString(); results["success"] = false; } return(results); }
public Hashtable RevertPermissions(SPUserCodeWorkflowContext context, string fromId, string toId) { Hashtable results = new Hashtable(); string result = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int fId; int tId; if (int.TryParse(fromId, out fId) && int.TryParse(toId, out tId)) { SPList requirementsList = web.Lists["Requirements"]; if (requirementsList != null) { for (int i = fId; i <= tId; i++) { try { SPListItem item = requirementsList.GetItemById(i); if (item != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { if (!item.HasUniqueRoleAssignments) { item.BreakRoleInheritance(true); } foreach (SPRoleAssignment assignment in item.RoleAssignments) { assignment.RoleDefinitionBindings.RemoveAll(); assignment.Update(); } AddPermissions(item, web.Groups.GetByName("CG Debts Corporate Level"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); AddPermissions(item, web.Groups.GetByName("CG Debts Africa Admins"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); AddPermissions(item, web.Groups.GetByName("CG Debts Europe Admins"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); AddPermissions(item, web.Groups.GetByName("CG Debts Latam Admins"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); AddPermissions(item, web.Groups.GetByName("CG Debts Members"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); AddPermissions(item, web.Groups.GetByName("CG Debts NAM Admins"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); AddPermissions(item, web.Groups.GetByName("CG Debts Solutions Admins"), web.RoleDefinitions.GetByType(SPRoleType.Contributor)); } } } catch (Exception ex) { } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); result += e.ToString(); results["success"] = false; } results["result"] = result; return(results); }
private Hashtable DevMethod(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; SPList target = web.Lists[targetList]; if (source != null && target != null) { SPListItem item = target.GetItemById(currentId); if (item != null) { SPListItemCollection listItems = GetParentDev(source, item); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { if (listItems.Count > 0) { SPListItem listItem = listItems[0]; item["Responsible"] = listItem["Responsible"]; item["Responsible 2"] = listItem["Responsible 2"]; item["Person in charge"] = listItem["Person in charge"]; item["Legal"] = listItem["Legal"]; item["Operational"] = listItem["Operational"]; item["HS"] = listItem["HS"]; item["Tax"] = listItem["Tax"]; item["Approver"] = listItem["Approver"]; item["Insurance"] = listItem["Insurance"]; item["Compliance"] = listItem["Compliance"]; item["Environment"] = listItem["Environment"]; item["Construction"] = listItem["Construction"]; item["Controller"] = listItem["Controller"]; item.Update(); } } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
private Hashtable DevMethod(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; //SPList target = web.Lists[targetList]; if (source != null /* && target != null*/) { SPListItem sourceItem = source.GetItemById(currentId); if (sourceItem != null) { //SPListItemCollection listItems = GetChildren(target, sourceItem); //commented out as not used //string region = string.Empty; //if (sourceItem["Region"] != null){ // region = sourceItem["Region"].ToString(); //} string finance = string.Empty; if (sourceItem["Finance Organization"] != null) { finance = sourceItem["Finance Organization"].ToString(); } LoadManagersDev(sourceItem); using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { #region Old //foreach (SPListItem listItem in listItems) //{ // LoadSecondApprover(sourceItem, listItem["Category"]); // isRegionGroupAdded = false; // isCorporateGroupAdded = false; // if (!listItem.HasUniqueRoleAssignments) // { // listItem.BreakRoleInheritance(true); // } // foreach (SPRoleAssignment assignment in listItem.RoleAssignments) // { // bool shouldRemove = true; // if (assignment.Member.LoginName == secondApprover && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) // { // secondApprover = string.Empty; // shouldRemove = false; // } // if (managers.ContainsKey(assignment.Member.LoginName) && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) // { // managers[assignment.Member.LoginName] = true; // shouldRemove = false; // } // if (assignment.Member.LoginName == "CG Debts " + region + " Admins" && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) // { // isRegionGroupAdded = true; // shouldRemove = false; // } // if (assignment.Member.LoginName == "CG Debts Corporate Level" && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) // { // isCorporateGroupAdded = true; // shouldRemove = false; // } // if (shouldRemove) // { // assignment.RoleDefinitionBindings.RemoveAll(); // assignment.Update(); // } // } // UpdateItemPermissions(web, listItem, region); //} #endregion isFinanceGroupAddedDev = false; isCorporateGroupAddedDev = false; if (!sourceItem.HasUniqueRoleAssignments) { sourceItem.BreakRoleInheritance(true); } foreach (SPRoleAssignment assignment in sourceItem.RoleAssignments) { bool shouldRemove = true; if (managersDev.ContainsKey(assignment.Member.LoginName) && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) { managersDev[assignment.Member.LoginName].IsAdded = true; shouldRemove = false; } if (assignment.Member.LoginName == "CG Debts " + finance + " Admins" && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) { isFinanceGroupAddedDev = true; shouldRemove = false; } if (assignment.Member.LoginName == "CG Debts Corporate Level" && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor))) { isCorporateGroupAddedDev = true; shouldRemove = false; } if (shouldRemove) { assignment.RoleDefinitionBindings.RemoveAll(); assignment.Update(); } } UpdateItemPermissionsDev(web, sourceItem, finance); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); resultDev += e.ToString(); results["success"] = false; } results["result"] = resultDev; return(results); }
private Hashtable ProductionMethod(SPUserCodeWorkflowContext context, bool isDev) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { SPList loanList = web.Lists["Loan" + (isDev ? " Dev" : string.Empty)]; SPList requirementsList = web.Lists["Requirements" + (isDev ? " Dev" : string.Empty)]; if (loanList != null && requirementsList != null) { using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { SPListItemCollection items = requirementsList.Items; string oldStatus; string newStatus; foreach (SPListItem item in items) { oldStatus = item["Due Date Compliance Status"] == null ? "" : item["Due Date Compliance Status"].ToString(); newStatus = GetReqStatusProd(item); if (oldStatus != newStatus) { item["Due Date Compliance Status"] = newStatus; item.Update(); } oldStatus = item["Covenant Compliance Status"] == null ? "" : item["Covenant Compliance Status"].ToString(); newStatus = GetReqCovenantStatusProd(item); if (oldStatus != newStatus) { item["Covenant Compliance Status"] = newStatus; item.Update(); } } SPListItemCollection loanItems = loanList.Items; string oldLoanStatus; string newLoanStatus; foreach (SPListItem item in loanItems) { bool shouldUpdateLoanStatus = false; oldLoanStatus = item["Due Date Compliance Status"] == null ? "" : item["Due Date Compliance Status"].ToString(); newLoanStatus = GetLoanStatusProd(item, requirementsList); if (oldLoanStatus != newLoanStatus) { item["Due Date Compliance Status"] = newLoanStatus; shouldUpdateLoanStatus = true; } oldLoanStatus = item["Covenant Compliance Status"] == null ? "" : item["Covenant Compliance Status"].ToString(); newLoanStatus = GetLoanCovenantStatusProd(item, requirementsList); if (oldLoanStatus != newLoanStatus) { item["Covenant Compliance Status"] = newLoanStatus; shouldUpdateLoanStatus = true; } if (shouldUpdateLoanStatus) { item.Update(); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }
private Hashtable DevMethod(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList) { Hashtable results = new Hashtable(); try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; SPList target = web.Lists[targetList]; if (source != null && target != null) { SPListItem sourceItem = source.GetItemById(currentId); if (sourceItem != null) { SPListItem targetItem = target.AddItem(); foreach (string fileName in sourceItem.Attachments) { SPFile file = sourceItem.ParentList.ParentWeb.GetFile(sourceItem.Attachments.UrlPrefix + fileName); byte[] imageData = file.OpenBinary(); targetItem.Attachments.Add(fileName, imageData); } targetItem["Title"] = sourceItem["Project"]; targetItem["Project"] = sourceItem["Project"]; targetItem["Source"] = sourceList; targetItem["Source Id"] = sourceItem["ID"]; if (sourceItem["Type of Attachment"] != null && sourceItem["Type of Attachment"].ToString() != string.Empty) { targetItem["Attachment Type"] = sourceItem["Type of Attachment"]; sourceItem["Type of Attachment"] = string.Empty; } targetItem.Update(); for (int i = sourceItem.Attachments.Count; i > 0; i--) { sourceItem.Attachments.Delete(sourceItem.Attachments[i - 1]); } using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { sourceItem.Update(); } } } } } } results["success"] = true; results["exception"] = string.Empty; } catch (Exception e) { results = new Hashtable(); results["exception"] = e.ToString(); results["success"] = false; } return(results); }
private Hashtable ProductionMethod(SPUserCodeWorkflowContext context, string id, string sourceList, string targetList, bool isDev) { Hashtable results = new Hashtable(); results["result"] = string.Empty; try { using (SPSite site = new SPSite(context.CurrentWebUrl)) { using (SPWeb web = site.OpenWeb()) { int currentId; if (int.TryParse(id, out currentId)) { SPList source = web.Lists[sourceList]; SPList target = web.Lists[targetList]; if (source != null && target != null) { SPListItem sourceItem = source.GetItemById(currentId); if (sourceItem != null) { SPListItem targetItem = target.AddItem(); foreach (string fileName in sourceItem.Attachments) { SPFile file = sourceItem.ParentList.ParentWeb.GetFile(sourceItem.Attachments.UrlPrefix + fileName); byte[] imageData = file.OpenBinary(); targetItem.Attachments.Add(fileName, imageData); } targetItem["Title"] = sourceItem["Project"]; targetItem["Requirement Id"] = sourceItem["ID"]; targetItem["Project"] = sourceItem["Project"]; targetItem["Category"] = sourceItem["Category"]; //targetItem["Requirement fulfilled?"] = sourceItem["Requirement fulfilled?"]; targetItem["Requirement Compliance Status"] = sourceItem["Requirement Compliance Status"]; if (sourceItem["Name"] != null) { targetItem["Requirement Name"] = sourceItem["Name"]; } if (sourceItem["Completed Due Date"] != null && sourceItem["Completed Due Date"].ToString() != string.Empty) { targetItem["Notes on Reporting"] = sourceItem["Notes on Reporting"]; targetItem["Type of Due Date completed"] = sourceItem["Completed Due Date"]; targetItem["Reporting Due Date Closed"] = GetDueDateProd(sourceItem); string completionStatus = GetCompletionStatusProd(web, sourceItem, isDev); targetItem["Completion Status"] = completionStatus; //results["result"] = completionStatus; if (completionStatus == "Final" && sourceItem["Requirement Compliance Status"] != null && (sourceItem["Requirement Compliance Status"].ToString() == "I checked the requirement, the actions described below shall be undertaken" || sourceItem["Requirement Compliance Status"].ToString() == "I confirm the project complies with the requirement" || sourceItem["Requirement Compliance Status"].ToString() == "I confirm the project obtained from the lender appropriate waivers, and now complies with the requirement" || sourceItem["Requirement Compliance Status"].ToString() == "The project does not comply with the requirement, and actions described below should be undertaken")) { AddDraftAttachmentsProd(web, sourceItem, targetItem, isDev); } sourceItem[GetStatusFieldProd(sourceItem["Completed Due Date"].ToString()) + " Status"] = "InProgress"; string covStatus = GetCovenantStatusProd(sourceItem["Requirement Compliance Status"]); sourceItem[GetStatusFieldProd(sourceItem["Completed Due Date"].ToString()) + " Status Covenant"] = covStatus; if (covStatus == "Non-Compliant") { sourceItem["Covenant Compliance Status"] = GetReqCovenantStatusProd(sourceItem); } sourceItem["Completed Due Date"] = string.Empty; sourceItem["Notes on Reporting"] = string.Empty; sourceItem["Requirement Compliance Status"] = string.Empty; sourceItem.Update(); if (covStatus == "Non-Compliant") { GetLoanCovenantStatusProd(web, sourceItem, source, isDev); } } targetItem.Update(); results["result"] = targetItem["ID"]; using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { //CheckStatus(sourceItem, target); //CheckLoanStatus(web, sourceItem); for (int i = sourceItem.Attachments.Count; i > 0; i--) { sourceItem.Attachments.Delete(sourceItem.Attachments[i - 1]); } sourceItem.Update(); } } } } } } results["success"] = true; } catch (Exception e) { results = new Hashtable(); results["result"] = e.ToString(); results["success"] = false; } return(results); }