示例#1
0
        public static IList<TaskItemGroup> GetTaskGroups()
        {
            IList<TaskItemGroup> retVal = new List<TaskItemGroup>();

            SPWeb web;
            if (SPContext.Current != null)
                web = SPContext.Current.Web;
            else
                web = new SPSite("http://finweb.contoso.com/sites/PMM").OpenWeb();

            var list = web.Lists.TryGetList(Constants.LIST_NAME_PROJECT_TASKS);
            if (list != null)
            {

                var dPathsField = list.Fields[Constants.FieldId_DrivingPath] as SPFieldMultiChoice;
                var dPaths = dPathsField.Choices;
                var chartTypesField = list.Fields[Constants.FieldId_ShowOn] as SPFieldMultiChoice;

                var chartTypes = chartTypesField.Choices;
                dPaths = dPathsField.Choices;
                foreach (string dPath in dPaths)
                {

                    var q = new SPQuery();
                    q.Query += "<Where>" +
                                    "<Eq>" +
                                        "<FieldRef ID='" + dPathsField.Id + "' />" +
                                        "<Value Type='MultiChoice'>" + dPath + "</Value>" +
                                    "</Eq>" +
                        //"<OrderBy>" +
                        //    "<FieldRef ID='" + startField.Id + "' Ascending='True' />" +
                        //"</OrderBy>" +
                                "</Where>";

                    int taskCount = -1;
                    var taskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };
                    string previousTitle = string.Empty;
                    Dictionary<string, string> dictTitle = new Dictionary<string, string>();
                    int totalUnCompletedtaskCount = 0, totalCompletedTaskCount = 0;

                    List<TaskItem> chartItems = new List<TaskItem>();
                    List<TaskItemGroup> completedTasks = new List<TaskItemGroup>();
                    SPListItemCollection collection = list.GetItems(q);
                    int completedTaskCount = -1;
                    DateTime? lastUpdate = GetLastUpdateDate();
                    TaskItemGroup completedTaskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };
                    foreach (SPListItem item in collection)
                    {
                        if (item[Constants.FieldId_Deadline] != null)
                        {
                            if (!dictTitle.ContainsKey(dPath.Split(",".ToCharArray())[0]))
                            {
                                dictTitle.Add(dPath.Split(",".ToCharArray())[0], item[Constants.FieldId_Task].ToString());
                            }
                        }

                        if (item[Constants.FieldId_ShowOn] != null)
                        {
                            chartItems.Add(BuildTaskItem(dPath, item));
                        }

                        if (item[Constants.FieldId_PercentComplete] != null && (Convert.ToInt32(item[Constants.FieldId_PercentComplete].ToString().Trim().Trim("%".ToCharArray()).Trim()) < 100))
                        {
                                totalUnCompletedtaskCount++;
                                taskCount++;
                                if (taskCount == 10)
                                {
                                    retVal.Add(taskItemGroup);
                                    taskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };

                                    taskItemGroup.Title = previousTitle;
                                    taskCount = 0;
                                    taskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item));

                                }
                                else
                                {
                                    taskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item));
                                }
                        }
                        else
                        {
                            if (!lastUpdate.HasValue || Convert.ToDateTime(item["ModifiedOn"].ToString()) == lastUpdate.Value)
                            {
                                totalCompletedTaskCount++;
                                completedTaskCount++;
                                if (completedTaskCount == 10)
                                {
                                    completedTasks.Add(completedTaskItemGroup);
                                    completedTaskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };
                                    completedTaskCount = 0;
                                    completedTaskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item));
                                }
                                else
                                {
                                    completedTaskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item));
                                }
                            }
                        }
                    }

                    if (totalUnCompletedtaskCount % 10 != 0)
                    {
                        retVal.Add(taskItemGroup);

                    }

                    if (totalCompletedTaskCount % 10 != 0)
                    {
                        completedTasks.Add(completedTaskItemGroup);
                        if (totalUnCompletedtaskCount == 0)
                        {
                            retVal.Add(taskItemGroup);
                        }
                    }

                    if (taskItemGroup.TaskItems.Count > 0 || (completedTasks.Count > 0 && completedTasks[0].TaskItems != null && completedTasks[0].TaskItems.Count > 0))
                    {
                        taskItemGroup.CompletedTaskgroups = completedTasks;
                        taskItemGroup.ChartTaskItems = chartItems;
                        taskItemGroup.Charts = new string[chartTypes.Count];
                        chartTypes.CopyTo(taskItemGroup.Charts, 0);
                        taskItemGroup.Title = dictTitle.ContainsKey(dPath) ? dictTitle[dPath] : "Driving Path template";
                    }

                    if (dPath != null && dictTitle.ContainsKey(dPath.Split(",".ToCharArray())[0]))
                    {
                        foreach (TaskItemGroup group in retVal)
                        {
                            if (group.DrivingPath == dPath)
                            {
                                group.Title = dictTitle[dPath.Split(",".ToCharArray())[0]];
                            }

                            if (group.CompletedTaskgroups != null)
                            {
                                foreach (TaskItemGroup completedGroup in group.CompletedTaskgroups)
                                {
                                    completedGroup.Title = dictTitle[dPath.Split(",".ToCharArray())[0]];
                                }
                            }

                        }
                    }

                }
            }

            if (SPContext.Current == null)
                web.Dispose();

            return retVal;
        }
示例#2
0
        private void CreateGridSlide(PresentationPart oPPart, int gridSlideIndex, int i, TaskItemGroup group)
        {
            Repository.Utility.WriteLog("CreateGridSlide started", System.Diagnostics.EventLogEntryType.Information);
            try
            {
                if (DPSlidePart == null)
                    return;
                SlidePart gridSlidePart = oPPart.GetSlidePartsInOrder().ToList()[gridSlideIndex + i];

                var dataTable = group.TaskItemsDataTable;
                var table = gridSlidePart.Slide.Descendants<DocumentFormat.OpenXml.Drawing.Table>().FirstOrDefault();

                if (table != null && group.TaskItems != null && group.TaskItems.Count > 0)
                {
                    TableUtilities.PopulateTable(table, group.TaskItems);
                }
                //else
                //{
                //    DocumentFormat.OpenXml.OpenXmlElement parent = table.Parent;
                //    parent.ReplaceChild(new DocumentFormat.OpenXml.Presentation.Text("No Data Avialable"), table);
                //    //table.Remove();
                //}

                var titleShape = gridSlidePart.Slide.Descendants<DocumentFormat.OpenXml.Presentation.Shape>().ToList();
                if (titleShape.Count > 0)
                {
                    titleShape[0].TextBody = new DocumentFormat.OpenXml.Presentation.TextBody(
                                          new DocumentFormat.OpenXml.Drawing.BodyProperties(),
                                          new DocumentFormat.OpenXml.Drawing.ListStyle(),
                                          new DocumentFormat.OpenXml.Drawing.Paragraph(
                                          new DocumentFormat.OpenXml.Drawing.Run(
                                          new DocumentFormat.OpenXml.Drawing.RunProperties() { FontSize = 3600 },
                                          new DocumentFormat.OpenXml.Drawing.Text { Text = group.Title })));
                }
            }
            catch (Exception ex)
            {
                Repository.Utility.WriteLog(string.Format("CreateGridSlide had an error and the error message={0}", ex.Message), System.Diagnostics.EventLogEntryType.Information);
            }
            Repository.Utility.WriteLog("CreateGridSlide completed", System.Diagnostics.EventLogEntryType.Information);
        }
示例#3
0
        private void CreateCompletedSlides(TaskItemGroup group, int completedSlideIndex, PresentationPart oPPart)
        {
            Repository.Utility.WriteLog("CreateCompletedSlides started", System.Diagnostics.EventLogEntryType.Information);
            try
            {
                if (CPSlidePart == null)
                    return;
                if (group.CompletedTaskgroups != null)
                {
                    IList<TaskItemGroup> CompletedTasks = group.CompletedTaskgroups;
                    if (CompletedTasks != null && CompletedTasks.Count() > 0)
                    {
                        foreach (TaskItemGroup completedTaskgroup in CompletedTasks)
                        {
                            SlidePart completedSlidePart = oPPart.GetSlidePartsInOrder().ToList()[completedSlideIndex];
                            DocumentFormat.OpenXml.Presentation.TextBody numberPart = (DocumentFormat.OpenXml.Presentation.TextBody)completedSlidePart.Slide.CommonSlideData.ShapeTree.Elements().ToList()[3].Elements().ToList()[2];
                            int bulletCount = numberPart.Elements<DocumentFormat.OpenXml.Drawing.Paragraph>().Count();
                            foreach (string task in completedTaskgroup.TaskItems.Select(t => t.Task))
                            {

                                DocumentFormat.OpenXml.Drawing.Paragraph paragraph = (DocumentFormat.OpenXml.Drawing.Paragraph)numberPart.Elements().ToList()[3].Clone();
                                for (int i = paragraph.Elements().Count() - 1; i >=1; i--)
                                {
                                    if (paragraph.ElementAt(i).GetType() == typeof(DocumentFormat.OpenXml.Drawing.Run))
                                    {
                                        paragraph.ElementAt(i).Remove();
                                    }
                                }
                                (paragraph.Elements().ToList()[0] as DocumentFormat.OpenXml.Drawing.Run).Text = new DocumentFormat.OpenXml.Drawing.Text(task);
                                numberPart.Append(paragraph);
                            }

                            //var titleShape = completedSlidePart.Slide.Descendants<DocumentFormat.OpenXml.Presentation.Shape>().ToList();
                            //if (titleShape.Count > 0)
                            //{
                            //    titleShape[0].TextBody = new DocumentFormat.OpenXml.Presentation.TextBody(
                            //                          new DocumentFormat.OpenXml.Drawing.BodyProperties(),
                            //                          new DocumentFormat.OpenXml.Drawing.ListStyle(),
                            //                          new DocumentFormat.OpenXml.Drawing.Paragraph(
                            //                          new DocumentFormat.OpenXml.Drawing.Run(
                            //                          new DocumentFormat.OpenXml.Drawing.RunProperties() { FontSize = 3600 },
                            //                          new DocumentFormat.OpenXml.Drawing.Text { Text = group.Title })));
                            //}

                            DocumentFormat.OpenXml.Presentation.TextBody numPart = (DocumentFormat.OpenXml.Presentation.TextBody)completedSlidePart.Slide.CommonSlideData.ShapeTree.Elements().ToList()[3].Elements().ToList()[2];
                            for (int i = bulletCount - 2; i >= 0; i--)
                            {
                                ((DocumentFormat.OpenXml.Drawing.Paragraph)numPart.Elements().ToList()[3]).Remove();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Repository.Utility.WriteLog(string.Format("CreateCompletedSlides had an error and the error message={0}", ex.Message), System.Diagnostics.EventLogEntryType.Information);
            }
            Repository.Utility.WriteLog("CreateCompletedSlides completed", System.Diagnostics.EventLogEntryType.Information);
        }
示例#4
0
        private void CreateChartSlides(TaskGroupData taskData, int lowestSLideIndex, ref int createdCount, PresentationPart oPPart)
        {
            Repository.Utility.WriteLog("CreateChartSlides started", System.Diagnostics.EventLogEntryType.Information);
            try
            {
                if (ChartSlidePart == null)
                    return;
                if (taskData.ChartsData == null || taskData.ChartsData.Keys.Count == 0 || !taskData.ChartsData.Keys.Any(t=>t.StartsWith("Show On")))
                {
                    createdCount++;
                    return;
                }

                if (taskData.ChartsData != null)
                {
                    foreach (string key in taskData.ChartsData.Keys)
                    {
                        try
                        {
                            if (key.StartsWith("Show On"))
                            {
                                //Get all Tasks related to  Driving path
                                TaskItemGroup newGroup = new TaskItemGroup() { ChartTaskItems = taskData.ChartsData[key] };
                                var chartDataTable = newGroup.GetChartDataTable(key);

                                #region Charts
                                if (chartDataTable != null)
                                {

                                    SlidePart chartSlidePart = oPPart.GetSlidePartsInOrder().ToList()[lowestSLideIndex + createdCount];

                                    if (chartSlidePart.ChartParts.ToList().Count > 0)
                                    {
                                        createdCount++;
                                        var chartPart = chartSlidePart.ChartParts.ToList()[0];

                                        foreach (IdPartPair part in chartPart.Parts)
                                        {
                                            var spreadsheet = chartPart.GetPartById(part.RelationshipId) as EmbeddedPackagePart;

                                            if (spreadsheet != null)
                                            {
                                                OpenSettings settings  = new OpenSettings();
                                                settings.AutoSave = true;
                                                using (var oSDoc = SpreadsheetDocument.Open(spreadsheet.GetStream(FileMode.OpenOrCreate, FileAccess.ReadWrite), true,settings))
                                                {
                                                    var workSheetPart = oSDoc.WorkbookPart.GetPartsOfType<WorksheetPart>().FirstOrDefault();
                                                    var sheetData = workSheetPart.Worksheet.Elements<SheetData>().FirstOrDefault();
                                                    for (int i = sheetData.Elements().Count() - 1; i >= 2; i--)
                                                    {
                                                        sheetData.ElementAt(i).Remove();
                                                    }
                                                    string reference = workSheetPart.TableDefinitionParts.ElementAt(0).Table.Reference.Value;
                                                    string length = reference.Split(":".ToCharArray())[1].Replace("I","");
                                                    WorkbookUtilities.ReplicateRow(sheetData, 2, chartDataTable.Rows.Count - 1);
                                                    WorkbookUtilities.LoadSheetData(sheetData, chartDataTable, 1, 0);
                                                    workSheetPart.TableDefinitionParts.ElementAt(0).Table.Reference.Value = reference.Replace(length, (chartDataTable.Rows.Count + 1).ToString());
                                                    BarChartUtilities.LoadChartData(chartPart, chartDataTable);
                                                    workSheetPart.TableDefinitionParts.ElementAt(0).Table.Save();
                                                    workSheetPart.Worksheet.Save();

                                                }

                                                break;
                                            }
                                        }

                                        var titleShape = chartSlidePart.Slide.Descendants<DocumentFormat.OpenXml.Presentation.Shape>().ToList();
                                        if (titleShape.Count > 0)
                                        {
                                            titleShape[0].TextBody = new DocumentFormat.OpenXml.Presentation.TextBody(
                                                                  new DocumentFormat.OpenXml.Drawing.BodyProperties(),
                                                                  new DocumentFormat.OpenXml.Drawing.ListStyle(),
                                                                  new DocumentFormat.OpenXml.Drawing.Paragraph(
                                                                  new DocumentFormat.OpenXml.Drawing.Run(
                                                                  new DocumentFormat.OpenXml.Drawing.RunProperties() { FontSize = 3600 },
                                                                  new DocumentFormat.OpenXml.Drawing.Text { Text = key.Replace("Show On_", "") })));
                                        }

                                    }
                                #endregion
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Repository.Utility.WriteLog(string.Format("CreateChartSlides had an error and the error message={0}", ex.Message), System.Diagnostics.EventLogEntryType.Information);
                            continue;
                        }

                    }

                }
            }
            catch (Exception ex)
            {
                Repository.Utility.WriteLog(string.Format("CreateChartSlides had an error and the error message={0}", ex.Message), System.Diagnostics.EventLogEntryType.Information);
            }

            Repository.Utility.WriteLog("CreateChartSlides completed", System.Diagnostics.EventLogEntryType.Information);
        }
示例#5
0
        private static IList<TaskItemGroup> GetupComingTasksData(DataTable tasksDataTable, FiscalUnit month, CustomFieldDataSet dataSet)
        {
            if (month.From == DateTime.MinValue && month.To == DateTime.MaxValue)
                return new List<TaskItemGroup>();

            FiscalUnit fiscalUnit = new FiscalUnit() { From = month.From, To = month.To.AddMonths(1) };

            Repository.Utility.WriteLog("GetupComingTasksData started", System.Diagnostics.EventLogEntryType.Information);
            int count = -1;
            int upComingTaskCount = 0;
            IList<TaskItemGroup> retVal = new List<TaskItemGroup>();

            TaskItemGroup taskData = new TaskItemGroup() { TaskItems = new List<TaskItem>() };
            IList<TaskItem> items = new List<TaskItem>();
            EnumerableRowCollection<DataRow> collection =

                tasksDataTable.AsEnumerable()
                .Where((t => t.Field<bool>("TASK_IS_SUMMARY") == false && t.Field<int>("TASK_PCT_COMP") < 100
                    && t.Field<DateTime?>("TASK_FINISH_DATE").HasValue && t.Field<DateTime?>("TASK_FINISH_DATE").Value.InCurrentFiscalMonth(fiscalUnit)
                       )).OrderBy(t => t.Field<int>("TASK_ID"));

            foreach (DataRow item in collection)
            {
                count++;
                upComingTaskCount++;
                TaskItem taskItem = BuildTaskItem("", item, dataSet);
                if (count == 10)
                {
                    retVal.Add(taskData);
                    taskData = new TaskItemGroup { TaskItems = new List<TaskItem>() };
                    count = -1;
                    taskData.TaskItems.Add(BuildTaskItem("", item, dataSet));
                }
                else
                {
                    taskData.TaskItems.Add(BuildTaskItem("", item, dataSet));
                }
            }

            if (count % 10 != 0)
            {
                retVal.Add(taskData);

            }
            Repository.Utility.WriteLog("GetupComingTasksData completed successfully", System.Diagnostics.EventLogEntryType.Information);
            return retVal;
        }
示例#6
0
        public static TaskGroupData GetTaskGroups(string projectUID)
        {
            Repository.Utility.WriteLog("GetTaskGroups started", System.Diagnostics.EventLogEntryType.Information);

            IList<TaskItemGroup> retVal = new List<TaskItemGroup>();
            CustomFieldDataSet customFieldDataSet = DataRepository.ReadCustomFields();

            DataAccess dataAccess = new Repository.DataAccess(new Guid(projectUID));
            DataSet dataset = dataAccess.ReadProject(null);
            ProjectDataSet ds = DataRepository.ReadProject(new Guid(projectUID));
            DataTable tasksDataTable = dataset.Tables["Task"];
            Dictionary<string, IList<TaskItem>> ChartsData = GetChartsData(tasksDataTable, customFieldDataSet);
            TaskGroupData taskData = new TaskGroupData();
            DateTime? projectStatusDate = GetProjectCurrentDate(new Guid(projectUID), ds);
            FiscalUnit fiscalPeriod = DataRepository.GetFiscalMonth(projectStatusDate);
            taskData.FiscalPeriod = fiscalPeriod;
            IList<TaskItemGroup> LateTasksData = GetLateTasksData(tasksDataTable, fiscalPeriod, customFieldDataSet);
            IList<TaskItemGroup> UpComingTasksData = GetupComingTasksData(tasksDataTable, fiscalPeriod, customFieldDataSet);
            taskData.TaskItemGroups = retVal;
            taskData.ChartsData = ChartsData;
            taskData.LateTaskGroups = LateTasksData;
            taskData.UpComingTaskGroups = UpComingTasksData;

            taskData.SPDLSTartToBL = GetSPDLSTartToBLData(new Guid(projectUID), ds);
            taskData.SPDLFinishToBL = GetSPDLFinishToBLData(new Guid(projectUID), ds);
            taskData.BEIData = GetBEIData(new Guid(projectUID), ds);
            if (tasksDataTable != null)
            {
                var dPaths = tasksDataTable.AsEnumerable().Where(t => !string.IsNullOrEmpty(t.Field<string>("TASK_DRIVINGPATH_ID"))).Select(t => t.Field<string>("TASK_DRIVINGPATH_ID")).Distinct();
                var chartTypes = tasksDataTable.AsEnumerable().Select(t => t.Field<string>("CUSTOMFIELD_DESC")).Distinct(); ;

                foreach (string dPath in dPaths)
                {
                    int taskCount = -1;
                    var taskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };
                    string previousTitle = string.Empty;
                    Dictionary<string, string> dictTitle = new Dictionary<string, string>();
                    int totalUnCompletedtaskCount = 0, totalCompletedTaskCount = 0;

                    List<TaskItem> chartItems = new List<TaskItem>();
                    List<TaskItemGroup> completedTasks = new List<TaskItemGroup>();
                    EnumerableRowCollection<DataRow> collection = tasksDataTable.AsEnumerable().Where(t => t.Field<string>("TASK_DRIVINGPATH_ID") != null && t.Field<string>("TASK_DRIVINGPATH_ID").Split(",".ToCharArray()).Contains(dPath));
                    int completedTaskCount = -1;
                    //DateTime? lastUpdate = GetLastUpdateDate();
                    TaskItemGroup completedTaskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };
                    foreach (DataRow item in collection)
                    {
                        if (item["TASK_DEADLINE"] != System.DBNull.Value && !string.IsNullOrEmpty(item["TASK_DEADLINE"].ToString()))
                        {
                            if (!dictTitle.ContainsKey(dPath.Split(",".ToCharArray())[0]))
                            {
                                dictTitle.Add(dPath.Split(",".ToCharArray())[0], item["TASK_NAME"].ToString());
                            }
                        }

                        if (item["CUSTOMFIELD_DESC"] != null)
                        {
                            chartItems.Add(BuildTaskItem(dPath, item, customFieldDataSet));
                        }

                        if (!string.IsNullOrEmpty(item["TASK_ACT_FINISH"].ToString()) && (Convert.ToDateTime(item["TASK_ACT_FINISH"].ToString())).InCurrentFiscalMonth(fiscalPeriod))
                        {
                            totalCompletedTaskCount++;
                            completedTaskCount++;
                            if (completedTaskCount == 10)
                            {
                                completedTasks.Add(completedTaskItemGroup);
                                completedTaskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };
                                completedTaskCount = 0;
                                completedTaskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item, customFieldDataSet));
                            }
                            else
                            {
                                completedTaskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item, customFieldDataSet));
                            }

                        }
                        else
                        {

                            if (item["TASK_PCT_COMP"] != null && (Convert.ToInt32(item["TASK_PCT_COMP"].ToString().Trim().Trim("%".ToCharArray()).Trim()) < 100))
                            {
                                totalUnCompletedtaskCount++;
                                taskCount++;
                                if (taskCount == 10)
                                {
                                    retVal.Add(taskItemGroup);
                                    taskItemGroup = new TaskItemGroup { DrivingPath = dPath, TaskItems = new List<TaskItem>() };

                                    taskItemGroup.Title = previousTitle;
                                    taskCount = 0;
                                    taskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item, customFieldDataSet));

                                }
                                else
                                {
                                    taskItemGroup.TaskItems.Add(BuildTaskItem(dPath, item, customFieldDataSet));
                                }
                            }

                        }
                    }

                    if (totalUnCompletedtaskCount % 10 != 0)
                    {
                        retVal.Add(taskItemGroup);

                    }

                    if (totalCompletedTaskCount % 10 != 0)
                    {
                        completedTasks.Add(completedTaskItemGroup);
                        if (totalUnCompletedtaskCount == 0)
                        {
                            retVal.Add(taskItemGroup);
                        }
                    }

                    if (taskItemGroup.TaskItems.Count > 0 || (completedTasks.Count > 0 && completedTasks[0].TaskItems != null && completedTasks[0].TaskItems.Count > 0))
                    {
                        taskItemGroup.CompletedTaskgroups = completedTasks;
                        taskItemGroup.ChartTaskItems = chartItems;
                        taskItemGroup.Charts = new string[chartTypes.Count()];
                        chartTypes.ToList().CopyTo(taskItemGroup.Charts, 0);
                        taskItemGroup.Title = dictTitle.ContainsKey(dPath) ? dictTitle[dPath] : "Driving Path template";
                    }

                    if (dPath != null && dictTitle.ContainsKey(dPath.Split(",".ToCharArray())[0]))
                    {
                        foreach (TaskItemGroup group in retVal)
                        {
                            if (group.DrivingPath == dPath)
                            {
                                group.Title = dictTitle[dPath.Split(",".ToCharArray())[0]];
                            }

                            if (group.CompletedTaskgroups != null)
                            {
                                foreach (TaskItemGroup completedGroup in group.CompletedTaskgroups)
                                {
                                    completedGroup.Title = dictTitle[dPath.Split(",".ToCharArray())[0]];
                                }
                            }

                        }
                    }

                }
            }
            Repository.Utility.WriteLog("GetTaskGroups completed successfully", System.Diagnostics.EventLogEntryType.Information);
            return taskData;
        }