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);
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #14
0
        //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);
        }
Example #15
0
        //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);
        }
Example #17
0
        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);
        }
Example #18
0
        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);
        }
Example #19
0
        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);
        }