public static MainTaskView ConvertTo(MainTask iObj)
            {
                if (iObj == null)
                {
                    return(null);
                }

                var newView = new MainTaskView();

                newView.Object     = iObj;
                newView.TaskName   = iObj.Name;
                newView.MainTaskId = iObj.MainTaskIdString;

                return(newView);
            }
Exemplo n.º 2
0
        private void LoadDataGridViewMainTask(bool iShowFirstPage, long?iSelectedMainTaskId = null)
        {
            var firstDisplayIndex = dgvMain.FirstDisplayedScrollingRowIndex;

            using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
            {
                var skip = (iShowFirstPage) ? 0 : ucNavigator.Skip;

                if (iShowFirstPage)
                {
                    ucNavigator.PageNumber = 1;
                }

                Tuple <List <MainTask>, int> maintaskTuple;

                if (_LoadingType == LoadingType.Criteria)
                {
                    maintaskTuple = releaseService.GetMainTaskList(_MainTaskStatusSearchEnum, _MainTaskOrderBy, _ProjectId, _ProductLineId, _MainTaskType, _DevelopperId, _PackageId, skip, ucNavigator.Take, GranularityEnum.Full, _ExternalProjectId);
                }
                else if (_LoadingType == LoadingType.MainTaskId)
                {
                    var mainTask = releaseService.GetMainTaskById(_MainTaskId, GranularityEnum.Full);
                    if (mainTask != null)
                    {
                        maintaskTuple = new Tuple <List <MainTask>, int>(new List <MainTask>()
                        {
                            mainTask
                        }, 1);
                    }
                    else
                    {
                        maintaskTuple = new Tuple <List <MainTask>, int>(null, 0);
                    }
                }
                else
                {
                    throw new NotSupportedException(_LoadingType.ToStringWithEnumName());
                }

                ucNavigator.Count = (maintaskTuple != null) ? maintaskTuple.Item2 : 0;
                var mainTaskList = (maintaskTuple != null) ? maintaskTuple.Item1 : null;

                if (mainTaskList.IsNotNullAndNotEmpty())
                {
                    lblMessage.Text = "{0} tâche(s) sur {1}".FormatString(maintaskTuple.Item1.Count(), maintaskTuple.Item2);

                    //commande
                    var list = mainTaskList.Enum().Select(x => MainTaskView.ConvertTo(x)).ToList();
                    _MainTaskBindingSource.DataSource = list;
                    dgvMain.Refresh();
                }
                else
                {
                    lblMessage.Text = "Aucune tâche.";
                    _MainTaskBindingSource.Clear();
                }
            }
            //dgvMain.SetFirstDisplayedScrollingRowIndex(firstDisplayIndex);

            if (dgvMain.RowCount != 0)
            {
                if (iSelectedMainTaskId != null)
                {
                    dgvMain.Refresh();
                    if (!dgvMain.SelectRowByPropertyValue <MainTaskView>(x => x.Object.MainTaskId.ToString(), iSelectedMainTaskId.ToString()))
                    {
                        MessageBox.Show("La nouvelle tâche n'a pas pu être sélectionnée car absente. Veuillez changer de page ou modifier les filtres");
                    }
                }

                var selectedTransaction = GetSelectedMainTask();
                if (selectedTransaction != null)
                {
                    MainTaskSelectionChanged(selectedTransaction);
                }
                else
                {
                    MainTaskSelectionChanged(null);
                }
            }
            else
            {
                NothingSelected(null, null);
            }
            CommandEnableManagement();
            dgvMain.PerformLayout();
        }
Exemplo n.º 3
0
            public static MainTaskView ConvertTo(MainTask iObj)
            {
                if (iObj == null)
                {
                    return(null);
                }

                var newView = new MainTaskView();

                newView.Object = iObj;

                newView.MainTaskId = iObj.MainTaskIdString;

                if (iObj.Status == MainTaskStatusEnum.Canceled)
                {
                    newView.Status = Properties.Resources.delete_icone;
                }
                else if (iObj.Status == MainTaskStatusEnum.Requested)
                {
                    newView.Status = Properties.Resources.Button_Help_icon24;
                }
                else if (iObj.Status == MainTaskStatusEnum.Completed)
                {
                    newView.Status = Properties.Resources.accept;
                }
                else if (iObj.Status == MainTaskStatusEnum.Dev)
                {
                    newView.Status = Properties.Resources.Gear_icon24;
                }
                else if (iObj.Status == MainTaskStatusEnum.Waiting)
                {
                    newView.Status = Properties.Resources.hourglass_icon24;
                }
                else if (iObj.Status == MainTaskStatusEnum.Staging)
                {
                    newView.Status = Properties.Resources.Science_Test_Tube_icon_24;
                }
                else
                {
                    throw new NotSupportedException(iObj.Status.ToStringWithEnumName());
                }

                newView.Name = iObj.Name;

                //Progression
                int progressionAverage = iObj.SubTasks.IsNotNullAndNotEmpty() ? (int)(Math.Truncate(iObj.SubTasks.Enum().Average(x => x.Progression))) : 0;
                var imageWidth         = (int)typeof(MainTaskView).GetWidthColumn(Library.Tools.Misc.PropertyObserver.GetPropertyName <MainTaskView>(x => x.Progression));

                newView.Progression = Library.Control.Datagridview.ImageHelper.GetProgressionBarImage(progressionAverage, DATAGRIDVIEWROWHEIGTH, imageWidth, true);

                newView.Priority = iObj.Priority;
                if (iObj.ObjectifCloseDate != null)
                {
                    newView.Objectif = ((DateTime)iObj.ObjectifCloseDate).ToShortDateString();
                }
                else
                {
                    newView.Objectif = null;
                }

                //Duration
                int durationSum  = iObj.DurationSum;
                int doneDuration = iObj.DoneDuration;

                if (durationSum != 0 || doneDuration != 0)
                {
                    //Jours
                    if (iObj.DurationSum > Consts.Consts.WORKINGHOURSADAY)
                    {
                        var durationSumFormated     = Math.Round((decimal)((decimal)iObj.DurationSum / (decimal)Consts.Consts.WORKINGHOURSADAY), 1);
                        var doneDurationSumFormated = Math.Round((decimal)((decimal)iObj.DoneDuration / (decimal)Consts.Consts.WORKINGHOURSADAY), 1);

                        newView.Duration = doneDurationSumFormated + "/" + durationSumFormated + " j";
                    }
                    //Heures
                    else
                    {
                        newView.Duration = doneDuration + "/" + durationSum + " h";
                    }
                }
                else
                {
                    newView.Duration = null;
                }


                //SubTasks
                if (iObj.SubTasks.Any())
                {
                    var completSubTaskCount = iObj.SubTasks.Count(x => x.Progression == 100);
                    newView.SubTasks = completSubTaskCount + "/" + iObj.SubTasks.Count();
                }
                else
                {
                    newView.SubTasks = null;
                }

                //Package
                if (iObj.Package != null)
                {
                    newView.Package = iObj.Package.PackageIdString;
                }

                //ProductLine
                if (iObj.ProductLines.IsNotNullAndNotEmpty())
                {
                    newView.ProductLine = iObj.ProductLines.Select(x => x.Name).Concat("--");
                }

                if (iObj.ExternalProject != null)
                {
                    newView.ProjectNumber = iObj.ExternalProject.ProjectNumber;
                }

                //LastDeploy
                if (iObj.Package != null)
                {
                    var deploys = iObj.Package.Deployements.Enum().OrderByDescending(x => x.DeployementDate);
                    if (deploys.IsNotNullAndNotEmpty())
                    {
                        var lastDeploy = deploys.First();
                        newView.LastDeploy = lastDeploy.DeployementDate.ToShortDateString();
                    }
                }

                return(newView);
            }
        public bool RunCheckup()
        {
            DialogResult = OpenModeEnum.NotAllowed;

            using (var releaseService = new Service.Release.Front.ReleaseService(_Project.Group.GetEnvironment().GetSQLExtendConnectionString()))
            {
                var openedTask       = releaseService.GetDevMainTasks(Library.Tools.Enums.GranularityEnum.Full);
                var concerneTaskList = openedTask.Enum().Where(x => x.SubTasks.Enum().Any(y => y.ProjectGUID == _Project.Id)).Enum().ToList();

                if (concerneTaskList.Any())
                {
                    _MainBindingSource.DataSource = concerneTaskList.Enum().Select(x => MainTaskView.ConvertTo(x)).Enum().ToList();
                    return(true);
                }
                else
                {
                    var answer = MessageBox.Show("Ce projet n'est dans aucune tâche. Une sous-tâche est nécessaire. L'ouverture en modification n'est pas possible. Voulez-vous ouvrir un lecture seule le projet ?", "Information", MessageBoxButtons.YesNo);

                    if (answer == System.Windows.Forms.DialogResult.Yes)
                    {
                        DialogResult = OpenModeEnum.ReadOnly;
                        return(false);
                    }
                    else
                    {
                        DialogResult = OpenModeEnum.NotAllowed;
                        return(false);
                    }
                }
            }
        }