public static Hashtable CreateSite(SPUserCodeWorkflowContext context, string siteName)
        {
            Hashtable results = new Hashtable();
            try
            {
                using (SPSite site = new SPSite(context.SiteUrl))
                {
                    SPWeb web = site.OpenWeb(context.WebUrl);
                        web.Webs.Add(
                            siteName,
                            "Trip Report: " + siteName,
                            string.Empty,
                            1033,
                            "STS",
                            false,
                            false);
                }
                //results["success"] = true;
                results["exception"] = string.Empty;
            }
            catch (Exception e)
            {
                results = new Hashtable();
                results["exception"] = e.Message;
                //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 #3
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);
        }
        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);
        }
Example #5
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);
        }
Example #6
0
        public Hashtable SetItemPermissionsWhenReassignTask(SPUserCodeWorkflowContext context, string id, string sourceList, string assignedTo)
        {
            Hashtable results = new Hashtable();

            try
            {
                using (SPSite site = new SPSite(context.CurrentWebUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList source = web.Lists[sourceList];
                        if (source != null)
                        {
                            if (!string.IsNullOrEmpty(assignedTo))
                            {
                                int    itemId;
                                string username = string.Empty;

                                if (int.TryParse(id, out itemId))
                                {
                                    SPListItem item = source.GetItemById(itemId);
                                    if (item != null)
                                    {
                                        isUserAdded = false;

                                        if (!item.HasUniqueRoleAssignments)
                                        {
                                            item.BreakRoleInheritance(true);
                                        }

                                        result += assignedTo;

                                        foreach (SPRoleAssignment assignment in item.RoleAssignments)
                                        {
                                            if (assignment.Member.LoginName == assignedTo && assignment.RoleDefinitionBindings.Contains(web.RoleDefinitions.GetByType(SPRoleType.Contributor)))
                                            {
                                                isUserAdded = true;
                                                result     += "isUserAdded = true";
                                            }
                                        }
                                        SPPrincipal spPrincipal = GetPrincipal(site, assignedTo);
                                        result += "SPPrincipal: " + spPrincipal.Name;
                                        if (spPrincipal != null)
                                        {
                                            UpdateItemPermissions(web, item, spPrincipal);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                results            = new Hashtable();
                result            += e.ToString();
                results["success"] = false;
            }
            results["result"] = result;
            return(results);
        }
Example #7
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);
        }
        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);
        }
Example #9
0
        public Hashtable CheckOOBBreakdown(SPUserCodeWorkflowContext context, double breakdownValue, string breakdownType, string breakdownsListName, string annualBreakdownsListName, double annualPercent)
        {
            string    res                 = string.Empty;
            string    debugInfo           = string.Empty;
            string    s                   = string.Empty;
            Hashtable results             = new Hashtable();
            int       oobYear             = DateTime.Now.Year;
            bool      success             = true;
            string    breakdownColumnName = OOBColumnIdentifier.GetColumnInternalNameByBreakdownType(breakdownType);

            if (breakdownValue != 0)
            {
                try
                {
                    using (SPSite site = new SPSite(context.CurrentWebUrl))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            double sumBefore    = 0;
                            double sumAfter     = 0;
                            double percent      = 0.05;
                            double budget       = 0;
                            double percentTotal = annualPercent / 100;
                            double budgetTotal  = 0;

                            SPList oobList = web.Lists[breakdownsListName];
                            if (oobList != null)
                            {
                                SPQuery oobQuery = new SPQuery();
                                oobQuery.Query = "";

                                /*
                                 * oobQuery.ViewXml = "<View>" +
                                 * "<ViewFields>" +
                                 * "<FieldRef Name='" + breakdownColumnName + "'/>" +
                                 * "</ViewFields>" +
                                 * "<Query>" +
                                 * "<Where><Eq><FieldRef Name='OOBAppro0'/><Value Type='WorkflowStatus'>16</Value></Eq></Where>" +
                                 * "</Query>" +
                                 * "</View>";
                                 *
                                 */

                                oobQuery.ViewXml = "<View>" +
                                                   "<ViewFields>" +
                                                   "<FieldRef Name='" + breakdownColumnName + "'/>" +
                                                   "</ViewFields>" +
                                                   "<Query>" +
                                                   "<Where>" +
                                                   "<And>" +
                                                   "<Eq>" +
                                                   "<FieldRef Name='OOBAppro0' />" +
                                                   "<Value Type='WorkflowStatus'>16</Value>" +
                                                   "</Eq>" +
                                                   "<And>" +
                                                   "<Eq>" +
                                                   "<FieldRef Name='Date_x0020_of_x0020_request' />" +
                                                   "<Value IncludeTimeValue='FALSE' Type='DateTime'>" + oobYear.ToString() + "-01-01</Value>" +
                                                   "</Eq>" +
                                                   "<Eq>" +
                                                   "<FieldRef Name='Date_x0020_of_x0020_request' />" +
                                                   "<Value IncludeTimeValue='FALSE' Type='DateTime'>" + oobYear.ToString() + "-12-31</Value>" +
                                                   "</Eq>" +
                                                   "</And>" +
                                                   "</And>" +
                                                   "</Where>" +
                                                   "</Query>" +
                                                   "</View>";


                                SPListItemCollection items = oobList.GetItems(oobQuery);
                                if (items != null)
                                {
                                    //debugInfo += string.Format("Items({0}) count: {1}{2}", breakdownColumnName, items.Count, Environment.NewLine);
                                    s += "1";
                                    foreach (SPListItem item in items)
                                    {
                                        sumBefore += item[breakdownColumnName] == null ? 0 : Convert.ToDouble(item[breakdownColumnName]);
                                    }
                                }

                                sumAfter = sumBefore + breakdownValue;
                                //debugInfo += string.Format("Sum before: {0} Sum after: {1}{2}", sumBefore, sumAfter, Environment.NewLine);
                                s += "2";
                            }
                            else
                            {
                                res     = "List(" + breakdownsListName + ") not found.";
                                success = false;
                                //debugInfo += "List(" + breakdownsListName + ") not found.";
                                s += "3";
                            }


                            SPList breakdownList  = web.Lists[annualBreakdownsListName];
                            var    breakdownQuery = new SPQuery();
                            breakdownQuery.ViewXml =
                                "<View>" +
                                "<Query>" +

                                "</Query>" +
                                "</View>";
                            SPListItemCollection breakdowns = breakdownList.GetItems(breakdownQuery);
                            if (breakdowns != null)
                            {
                                //debugInfo += string.Format("Items(breakdowns types) count: {0}{1}", breakdowns.Count, Environment.NewLine);
                                s += "4";
                                foreach (SPListItem breakdown in breakdowns)
                                {
                                    s += "5";
                                    string fl = (string)breakdown["Expense_x0020_Estimate_x0020_Bre"];
                                    //debugInfo += fl;
                                    //debugInfo += "!"+new SPFieldLookupValue(fl).LookupValue+"!";
                                    var flv = new SPFieldLookupValue(fl).LookupValue;
                                    s += "6";
                                    if (breakdownType == flv)
                                    {
                                        percent = breakdown["Board_x0020_Major_x0020_Action_x"] == null ? 0 : Convert.ToDouble(breakdown["Board_x0020_Major_x0020_Action_x"]);
                                        budget  = breakdown["Budget"] == null ? 0 : Convert.ToDouble(breakdown["Budget"]);

                                        //debugInfo += string.Format("Breakdown({0}) Percent: {1} Budget: {2}{3}", breakdownType, percent, budget, Environment.NewLine);
                                        s += "7";
                                    }
                                    budgetTotal += breakdown["Budget"] == null ? 0 : Convert.ToDouble(breakdown["Budget"]);
                                }
                                //debugInfo += string.Format("Breakdown({0}) BudgetTotal: {1}{2}", breakdownType, budgetTotal, Environment.NewLine);
                                s += "8";
                            }
                            else
                            {
                                res     = "List(" + annualBreakdownsListName + ") not found.";
                                success = false;
                                //debugInfo += "List(" + annualBreakdownsListName + ") not found.";
                                s += "9";
                            }
                            if (string.IsNullOrEmpty(res))
                            {
                                if (Math.Round(sumAfter, 2, MidpointRounding.ToEven) > Math.Round(percent * budget, 2, MidpointRounding.ToEven) ||
                                    Math.Round(sumAfter, 2, MidpointRounding.ToEven) > Math.Round(percentTotal * budgetTotal, 2, MidpointRounding.ToEven))
                                {
                                    res = "Exceed";
                                }
                                else
                                {
                                    res = "OK";
                                }
                                //debugInfo += string.Format("Percent/Percent Total: {0}/{1}, {2}", percent, percentTotal, Environment.NewLine);
                                //debugInfo += string.Format("Treshhold1: {0}, {1}", Math.Round(percent * budget, 2, MidpointRounding.ToEven), Environment.NewLine);
                                //debugInfo += string.Format("Treshhold2: {0}, {1}", Math.Round(percentTotal * budgetTotal, 2, MidpointRounding.ToEven), Environment.NewLine);
                                //debugInfo += res;
                                s += "10";
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    results            = new Hashtable();
                    results["result"]  = s + e.ToString() + debugInfo;
                    results["success"] = false;
                    //results["debugInfo"] =  string.Format("{0} - {1}",debugInfo,e.Message);

                    return(results);
                }
            }
            else
            {
                res = "OK-Zero";//no breakdown requested
            }

            results["result"] = res;
            //results["debugInfo"] = debugInfo;
            results["success"] = success;

            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 #11
0
        public Hashtable CreateSite(SPUserCodeWorkflowContext context, string url, string title, string description, string template,
                                    int language, bool uniquePerm, bool inheritNav, bool topNav, bool quickNav)
        {
            Hashtable result = new Hashtable();

            SPSite currentSite = null;
            SPWeb  currentWeb  = null;
            SPWeb  newWeb      = null;

            try
            {
                currentSite = new SPSite(context.CurrentWebUrl);
                currentWeb  = currentSite.OpenWeb();

                if (language == Int32.MinValue || language == -1)
                {
                    language = currentWeb.Locale.LCID;
                }

                if (String.IsNullOrEmpty(template))
                {
                    template = "STS#0";
                }

                var spTemplate = currentWeb.GetAvailableWebTemplates((uint)language).OfType <SPWebTemplate>().Where(t => t.Name == template).FirstOrDefault();
                if (spTemplate == null)
                {
                    spTemplate = currentWeb.GetAvailableWebTemplates((uint)language).OfType <SPWebTemplate>().Where(t => t.Title == template).FirstOrDefault();
                }


                newWeb = currentWeb.Webs.Add(url, title, description, (uint)language, spTemplate, uniquePerm, false);
                newWeb.Navigation.UseShared = inheritNav;
                newWeb.Update();

                if (topNav)
                {
                    currentWeb.Navigation.TopNavigationBar.AddAsLast(new SPNavigationNode(title, newWeb.Url, false));
                }

                if (quickNav)
                {
                    currentWeb.Navigation.AddToQuickLaunch(new SPNavigationNode(title, newWeb.Url, false), SPQuickLaunchHeading.Sites);
                }

                result["output"] = newWeb.Url;
                result["error"]  = String.Empty;
            }
            catch (Exception ex)
            {
                result["output"] = String.Empty;
                result["error"]  = ex.Message;
            }
            finally
            {
                if (newWeb != null)
                {
                    newWeb.Dispose();
                }
                if (currentWeb != null)
                {
                    currentWeb.Dispose();
                }
                if (currentSite != null)
                {
                    currentSite.Dispose();
                }
            }

            return(result);
        }
Example #12
0
        private Hashtable DevMethod(SPUserCodeWorkflowContext context, string daysBefore, bool isDev)
        {
            Hashtable results = new Hashtable();

            try
            {
                using (SPSite site = new SPSite(context.CurrentWebUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        int days;
                        if (int.TryParse(daysBefore, out days))
                        {
                            SPList requirementsList = web.Lists["Requirements" + (isDev ? " Dev" : string.Empty)];
                            SPList emailList        = web.Lists["Send Email" + (isDev ? " Dev" : string.Empty)];

                            if (requirementsList != null && emailList != null)
                            {
                                //using (DisabledItemEventsScope scope = new DisabledItemEventsScope())
                                //{
                                SPListItemCollection items = requirementsList.Items;

                                foreach (SPListItem item in items)
                                {
                                    //if (item["ID"].ToString() == "189" || item["ID"].ToString() == "190" || item["ID"].ToString() == "191")     //temporary for tests only
                                    //{
                                    if (item["Type of Due Date"] != null)
                                    {
                                        if (item["Type of Due Date"].ToString().Contains(";#Monthly;#"))
                                        {
                                            CheckDateDev(item, "January", days, emailList, isDev);
                                            CheckDateDev(item, "February", days, emailList, isDev);
                                            CheckDateDev(item, "March", days, emailList, isDev);
                                            CheckDateDev(item, "April", days, emailList, isDev);
                                            CheckDateDev(item, "May", days, emailList, isDev);
                                            CheckDateDev(item, "June", days, emailList, isDev);
                                            CheckDateDev(item, "July", days, emailList, isDev);
                                            CheckDateDev(item, "August", days, emailList, isDev);
                                            CheckDateDev(item, "September", days, emailList, isDev);
                                            CheckDateDev(item, "October", days, emailList, isDev);
                                            CheckDateDev(item, "November", days, emailList, isDev);
                                            CheckDateDev(item, "December", days, emailList, isDev);
                                        }

                                        if (item["Type of Due Date"].ToString().Contains(";#Quarterly;#"))
                                        {
                                            CheckDateDev(item, "1st Quarter", days, emailList, isDev);
                                            CheckDateDev(item, "2nd Quarter", days, emailList, isDev);
                                            CheckDateDev(item, "3rd Quarter", days, emailList, isDev);
                                            CheckDateDev(item, "4th Quarter", days, emailList, isDev);
                                        }

                                        if (item["Type of Due Date"].ToString().Contains(";#Semi-Annual;#"))
                                        {
                                            CheckDateDev(item, "1st Semi-Annual", days, emailList, isDev);
                                            CheckDateDev(item, "2nd Semi-Annual", days, emailList, isDev);
                                        }

                                        if (item["Type of Due Date"].ToString().Contains(";#Annual;#"))
                                        {
                                            CheckDateDev(item, "Annual", days, emailList, isDev);
                                        }
                                    }
                                    //}
                                }
                                //}
                            }
                        }
                    }
                }

                results["result"]  = result;
                results["success"] = true;
            }
            catch (Exception e)
            {
                results            = new Hashtable();
                results["result"]  = e.ToString();
                results["success"] = false;
            }
            return(results);
        }
Example #13
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);
        }
        private Hashtable ProductionMethod(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[GetStatusFieldProd(typeDueDate) + " Status"] = historyItem["Completion Status"];
                                    bool shouldUpdateLoanStatus = false;

                                    if (historyItem["Completion Status"] != null && historyItem["Completion Status"].ToString() == "Final")
                                    {
                                        DateTime oldDate;
                                        if (sourceItem[GetStatusFieldProd(typeDueDate)] != null && DateTime.TryParse((sourceItem[GetStatusFieldProd(typeDueDate)].ToString()), out oldDate))
                                        {
                                            sourceItem[GetStatusFieldProd(typeDueDate)] = oldDate.AddYears(1);
                                        }
                                        sourceItem[GetStatusFieldProd(typeDueDate) + " Status"] = string.Empty;

                                        sourceItem["Due Date Compliance Status"] = GetReqStatusProd(sourceItem);
                                        shouldUpdateLoanStatus = true;

                                        sourceItem[GetStatusFieldProd(typeDueDate) + " Status Covenant"] = "Compliant";
                                        historyItem["CovStatus"] = "Approved";
                                        historyItem.Update();
                                        UpdateDraftHistoryStatusProd(web, historyItem, isDev);
                                    }

                                    if (shouldUpdateLoanStatus)
                                    {
                                        GetIsCureProd(sourceItem);
                                    }
                                    sourceItem["Covenant Compliance Status"] = GetReqCovenantStatusProd(sourceItem);
                                    sourceItem.Update();
                                    results["result"] = "ReqUpd - " + GetStatusFieldProd(typeDueDate) + " Status - " + historyItem["Completion Status"];

                                    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 = GetLoanStatusProd(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 = GetLoanCovenantStatusProd(loanItem, requirementsList);
                                            if (oldLoanStatus != newLoanStatus)
                                            {
                                                loanItem["Covenant Compliance Status"] = newLoanStatus;
                                                shouldUpdateLoanStatus = true;
                                            }

                                            oldLoanStatus = loanItem["IsInCurePeriod"] == null ? "" : loanItem["IsInCurePeriod"].ToString();
                                            newLoanStatus = GetLoanCureStatusProd(loanItem, requirementsList);
                                            if (oldLoanStatus != newLoanStatus)
                                            {
                                                loanItem["IsInCurePeriod"] = 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 #15
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 GetAssistantEmails(SPUserCodeWorkflowContext context, string signatories, string signatoriesEmails, string listName, string id, string sourceList)
        {
            Hashtable results = new Hashtable();

            results["result"] = string.Empty;
            //debug += string.Format("Signatories: {0} SignatoriesEmails: {1} ListName: {2} Id: {3} SourceList: {4}", signatories, signatoriesEmails, listName, id, sourceList);

            List <string> processedUsers = new List <string>();

            try
            {
                if (!string.IsNullOrEmpty(signatories) && !string.IsNullOrEmpty(signatoriesEmails))
                {
                    string[] arrSignatories       = signatories.Split(new char[] { ';' });
                    string[] arrSignatoriesEmails = signatoriesEmails.Split(new char[] { ';' });
                    SPQuery  camlQuery            = new SPQuery();
                    camlQuery.Query = "<Where>" + ToCamlIn(arrSignatories, "Signatory", "User") + "</Where>";

                    SPListItemCollection items = SPListHelper.GetListItemsByQuery(listName, camlQuery, context.CurrentWebUrl);

                    /*
                     * if (items == null)
                     * {
                     *  debug += string.Format("List with name {0} not found", listName);
                     * }
                     */
                    foreach (SPListItem item in items)
                    {
                        List <SPUser> users = GetSPUserObject(item, "Assistant");
                        foreach (SPUser user in users)
                        {
                            res += user.Email + ";";
                            SetPermissionsForAssistant(context, user.LoginName, id, sourceList);
                        }

                        List <SPUser> procUsers = GetSPUserObject(item, "Signatory");
                        foreach (SPUser processedUser in procUsers)
                        {
                            processedUsers.Add(processedUser.Email);
                        }
                    }

                    foreach (string signatoryEmail in arrSignatoriesEmails)
                    {
                        if (!processedUsers.Contains(signatoryEmail))
                        {
                            res += signatoryEmail + ";";
                        }
                    }

                    res = res.TrimEnd(new char[] { ';' });
                }
                results["success"] = true;
            }
            catch (Exception e)
            {
                results = new Hashtable();
                res    += e.ToString();
                //debug += string.Format("Error: {0}", e.ToString());
                results["success"] = false;
            }

            //results["debug"] = debug;
            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);
        }