public static SubTaskView ConvertTo(SubTask iObj, Group iGroup)
            {
                if (iObj == null)
                {
                    return(null);
                }

                var newView = new SubTaskView();

                newView.Object = iObj;

                //Developper
                if (iObj.DevelopperGUID != null)
                {
                    newView.Developper = iGroup.GetUserById((Guid)iObj.DevelopperGUID).DisplayName;
                }

                //projet
                if (iObj.ProjectGUID != null)
                {
                    var theProjectDetails = iGroup.GetProjectFromGUID((Guid)iObj.ProjectGUID);
                    if (theProjectDetails == null)
                    {
                        newView.DWProject = "!!! Le projet a été supprimé !!!";
                    }
                    else
                    {
                        newView.DWProject = theProjectDetails.Name;
                    }
                }

                //Designation
                newView.Designation = iObj.Designation;

                //Progression
                var imageWidth = (int)typeof(SubTaskView).GetWidthColumn(Library.Tools.Misc.PropertyObserver.GetPropertyName <SubTaskView>(x => x.Progression));

                newView.Progression = Library.Control.Datagridview.ImageHelper.GetProgressionBarImage(iObj.Progression, DATAGRIDVIEWROWHEIGHT, imageWidth, true);

                //Duration
                if (iObj.Duration > Consts.Consts.WORKINGHOURSADAY)
                {
                    newView.Duration = Math.Round((decimal)((decimal)iObj.Duration / (decimal)Consts.Consts.WORKINGHOURSADAY), 1) + " j";
                }
                else
                {
                    newView.Duration = iObj.Duration + " h";
                }

                return(newView);
            }
        private void LoadDataGridViewSubTask(long?iSelectedSubTaskId = null)
        {
            var firstDisplayIndex = dgvSubTasks.FirstDisplayedScrollingRowIndex;

            var subTaskList = (_MainTask != null) ? _MainTask.SubTasks : null;

            if (subTaskList.IsNotNullAndNotEmpty())
            {
                var list = subTaskList.Enum().OrderByDescending(x => x.MainTaskId).Select(x => SubTaskView.ConvertTo(x, _Group)).ToList();
                _SubTaskBindingSource.DataSource = list;
                dgvSubTasks.Refresh();
            }
            else
            {
                _SubTaskBindingSource.Clear();
            }

            dgvSubTasks.SetFirstDisplayedScrollingRowIndex(firstDisplayIndex);

            lblMessage.Text = "{0} sous tâche(s)".FormatString(subTaskList.Enum().Count());

            if (dgvSubTasks.RowCount != 0)
            {
                if (iSelectedSubTaskId != null)
                {
                    dgvSubTasks.Refresh();
                    dgvSubTasks.SelectRowByPropertyValue <SubTaskView>(x => x.Object.SubTaskId.ToString(), iSelectedSubTaskId.ToString());
                }

                var selectedTransaction = GetSelectedSubTask();
                if (selectedTransaction != null)
                {
                    SubTaskSelectionChanged(selectedTransaction);
                }
                else
                {
                    SubTaskSelectionChanged(null);
                }
            }
            else
            {
                NothingSelected(null, null);
            }
            CommandEnableManagement();
        }