Пример #1
0
        private void cmdValidateMainTask_Click(object sender, System.EventArgs e)
        {
            try
            {
                Tools.Tools.ThrowExceptionIfCurrentUserIsNotAdmin(_Group);

                if (_IsLoading.Value)
                {
                    return;
                }
                using (var locker = new BoolLocker(ref _IsLoading))
                {
                    var selectedMainTask = GetSelectedMainTask();
                    if (selectedMainTask == null)
                    {
                        return;
                    }
                    using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                    {
                        releaseService.AcceptMainTaskRequest(selectedMainTask.MainTaskId);
                        InternalReLoadControl();
                    }
                }
            }
            catch (Exception ex)
            {
                ex.ShowInMessageBox();
            }
        }
        private void cmdDeleteProjectTask_Click(object sender, System.EventArgs e)
        {
            try
            {
                if (_IsLoading.Value)
                {
                    return;
                }
                using (var locker = new BoolLocker(ref _IsLoading))
                {
                    using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                    {
                        var selectedProjectTask = GetSelectedSubTask();

                        if (selectedProjectTask == null)
                        {
                            return;
                        }

                        //suppression project task
                        releaseService.DeleteProjectTask(selectedProjectTask);
                    }

                    //Applications des droits sur dev
                    Tools.Tools.ReleaseProjectsRights(_Group);
                }

                //Doit être à l'extérieur du boollocker pour permettre le reload.
                DeletedProjectTask(sender, e);
            }
            catch (Exception ex)
            {
                ex.ShowInMessageBox();
            }
        }
        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);
                    }
                }
            }
        }
Пример #4
0
 private void LoadPackageCombo()
 {
     using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
     {
         cboPackage.DisplayMember = PropertyObserver.GetPropertyName <EquinoxeExtend.Shared.Object.Release.Package>(x => x.PackageIdStatusString);
         cboPackage.ValueMember   = PropertyObserver.GetPropertyName <EquinoxeExtend.Shared.Object.Release.Package>(x => x.PackageId);
         cboPackage.DataSource    = releaseService.GetAllowedPackagesForMainTask(_MainTask);
     }
 }
Пример #5
0
        public static void ReleaseProjectsRights(Group iGroup)
        {
            using (var releaseService = new Service.Release.Front.ReleaseService(EnvironmentEnum.Developpement.GetSQLExtendConnectionString()))
            {
                var devSubTasks = releaseService.GetDevSubTasks();

                var devProjects = devSubTasks.Enum().Where(x => x.ProjectGUID != null).Enum().Select(x => (Guid)x.ProjectGUID).Enum().ToList();

                //Supprime les doublons
                devProjects = devProjects.Enum().GroupBy(x => x).Enum().Select(x => x.First()).Enum().ToList();

                //Applique les droits seulement sur ces projets ouverts
                iGroup.SetExclusitivelyPermissionToTeam(iGroup.Security.GetTeams().Single(x => x.DisplayName == iGroup.GetEnvironment().GetDevelopperTeam()), devProjects);
            }
        }
Пример #6
0
        private void cmdUpPriority_Click(object sender, System.EventArgs e)
        {
            try
            {
                if (_IsLoading.Value)
                {
                    return;
                }
                using (var locker = new BoolLocker(ref _IsLoading))
                {
                    Tools.Tools.ThrowExceptionIfCurrentUserIsNotAdmin(_Group);

                    var selectedMainTask = GetSelectedMainTask();
                    if (selectedMainTask == null)
                    {
                        return;
                    }

                    using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                    {
                        if (selectedMainTask.Priority == null)
                        {
                            if (MessageBox.Show("Etes-vous sûr de vouloir placer cette tâche en priorité 1 et de décaler tous les autres ?", "Confirmation", MessageBoxButtons.YesNo) != DialogResult.Yes)
                            {
                                return;
                            }
                        }
                        releaseService.MoveUpMainTaskPriority(selectedMainTask);
                        InternalReLoadControl();
                        dgvMain.Refresh();
                        dgvMain.SelectRowByPropertyValue <MainTaskView>(x => x.MainTaskId.ToString(), selectedMainTask.MainTaskIdString);

                        var reSelectedMainTask = GetSelectedMainTask();
                        if (reSelectedMainTask != null)
                        {
                            MainTaskSelectionChanged(reSelectedMainTask);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ex.ShowInMessageBox();
            }
        }
Пример #7
0
        private void cmdSetTaskPriority_Click(object sender, EventArgs e)
        {
            try
            {
                var selectedTask = GetSelectedMainTask();

                if (_IsLoading.Value)
                {
                    return;
                }
                using (var locker = new BoolLocker(ref _IsLoading))
                {
                    Tools.Tools.ThrowExceptionIfCurrentUserIsNotAdmin(_Group);

                    if (selectedTask == null)
                    {
                        return;
                    }

                    var priorityInputBoxUC = new Library.Control.UserControls.ucInputBox("Saisir la nouvelle priorité : ", InputTypeAllowEnum.Numeric);

                    using (var inProgressForm = new frmUserControl(priorityInputBoxUC, "Priorité", false, false))
                    {
                        inProgressForm.ShowDialog();

                        if (priorityInputBoxUC.DialogResult != DialogResult.OK)
                        {
                            return;
                        }

                        using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                        {
                            releaseService.SetTaskPriority(selectedTask, priorityInputBoxUC.AnswerString.ToInt32());
                        }
                    }
                }
                InternalReLoadControl();
            }
            catch (Exception ex)
            {
                ex.ShowInMessageBox();
            }
        }
Пример #8
0
        public ucWhereUsedGroup(IApplication iApplication, Group iGroup)
        {
            InitializeComponent();
            _Application = iApplication;

            //image list
            trvProjectTable.ShowNodeToolTips = true;
            trvProjectTable.ImageList        = _ImageList;
            _ImageList.Images.Add(Properties.Resources.blank);
            _ImageList.Images.Add(Properties.Resources.Warning16);

            using (var releaseService = new Service.Release.Front.ReleaseService(iGroup.GetEnvironment().GetSQLExtendConnectionString()))
            {
                //Package
                cboPackage.DisplayMember = PropertyObserver.GetPropertyName <EquinoxeExtend.Shared.Object.Release.Package>(x => x.PackageIdStatusString);
                cboPackage.ValueMember   = PropertyObserver.GetPropertyName <EquinoxeExtend.Shared.Object.Release.Package>(x => x.PackageId);
                cboPackage.DataSource    = releaseService.GetPackageList(PackageStatusSearchEnum.All, PackageOrderByEnum.PackageId);
                cboPackage.SelectedIndex = -1;
            }
        }
Пример #9
0
        private void cmdDownPriority_Click(object sender, System.EventArgs e)
        {
            try
            {
                if (_IsLoading.Value)
                {
                    return;
                }
                using (var locker = new BoolLocker(ref _IsLoading))
                {
                    Tools.Tools.ThrowExceptionIfCurrentUserIsNotAdmin(_Group);

                    var selectedMainTask = GetSelectedMainTask();
                    if (selectedMainTask == null)
                    {
                        return;
                    }

                    using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                    {
                        releaseService.MoveDownMainTaskPriority(selectedMainTask);
                        InternalReLoadControl();
                        dgvMain.Refresh();
                        dgvMain.SelectRowByPropertyValue <MainTaskView>(x => x.MainTaskId.ToString(), selectedMainTask.MainTaskIdString);

                        var reSelectedMainTask = GetSelectedMainTask();
                        if (reSelectedMainTask != null)
                        {
                            MainTaskSelectionChanged(reSelectedMainTask);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ex.ShowInMessageBox();
            }
        }
Пример #10
0
        private void cmdCancelTask_Click(object sender, System.EventArgs e)
        {
            try
            {
                if (_IsLoading.Value)
                {
                    return;
                }
                using (var locker = new BoolLocker(ref _IsLoading))
                {
                    Tools.Tools.ThrowExceptionIfCurrentUserIsNotAdmin(_Group);

                    var selectedMainTask = GetSelectedMainTask();
                    if (selectedMainTask == null)
                    {
                        return;
                    }

                    if (MessageBox.Show("Etes-vous sûr de vouloir annuler cette tâche ?", "Annulation tâche", MessageBoxButtons.YesNo) != DialogResult.Yes)
                    {
                        return;
                    }

                    using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                    {
                        releaseService.CancelMainTask(selectedMainTask.MainTaskId);
                        InternalReLoadControl();
                    }

                    //Applications des droits sur dev
                    Tools.Tools.ReleaseProjectsRights(_Group);
                }
            }
            catch (Exception ex)
            {
                ex.ShowInMessageBox();
            }
        }
Пример #11
0
        public void Initialize(DriveWorks.Group iGroup)
        {
            _Group = iGroup;
            if (_IsLoading.Value)
            {
                return;
            }
            using (var locker = new BoolLocker(ref _IsLoading))
            {
                cboTaskType = cboTaskType.FillByDictionary(new MainTaskTypeEnum().ToDictionary("FR"));

                using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                {
                    _ProductLineList = releaseService.GetProductLineList().Enum().OrderBy(x => x.Name).Enum().ToList();
                    foreach (var item in _ProductLineList.Enum())
                    {
                        chlProductLines.Items.Add(item.Name, false);
                    }

                    cboProjectNumber.DisplayMember = PropertyObserver.GetPropertyName <ExternalProject>(x => x.ProjectNumber);
                    cboProjectNumber.ValueMember   = PropertyObserver.GetPropertyName <ExternalProject>(x => x.ExternalProjectId);
                    cboProjectNumber.DataSource    = releaseService.GetExternalProjectList(ExternalProjectStatusSearchEnum.All).Enum().OrderBy(x => x.ProjectNumber).Enum().ToList();
                }

                var userList  = _Group.GetUserList().Enum().OrderBy(x => x.DisplayName).Enum().ToList();
                var userList2 = _Group.GetUserList().Enum().OrderBy(x => x.DisplayName).Enum().ToList();

                cboRequestUser.DisplayMember = PropertyObserver.GetPropertyName <UserDetails>(x => x.DisplayName);
                cboRequestUser.ValueMember   = PropertyObserver.GetPropertyName <UserDetails>(x => x.Id);
                cboRequestUser.DataSource    = userList;

                cboCreationUser.DisplayMember = PropertyObserver.GetPropertyName <UserDetails>(x => x.DisplayName);
                cboCreationUser.ValueMember   = PropertyObserver.GetPropertyName <UserDetails>(x => x.Id);
                cboCreationUser.DataSource    = userList2;
            }
        }
 private void cmdOk_Click(object sender, System.EventArgs e)
 {
     try
     {
         if (_IsLoading.Value)
         {
             return;
         }
         using (var locker = new BoolLocker(ref _IsLoading))
         {
             DialogResult = System.Windows.Forms.DialogResult.OK;
             _Package     = FillFromControl();
             using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
             {
                 releaseService.UpdatePackage(_Package);
             }
         }
         Close(null, null);
     }
     catch (Exception ex)
     {
         ex.ShowInMessageBox();
     }
 }
        protected void ValidateEdit()
        {
            long projectTaskId = 0;

            using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
            {
                if (!ControlValidator())
                {
                    MessageBox.Show("Données invalides");
                    return;
                }

                if (_StatusEnum == StatusEnum.New)
                {
                    var newProjectTask = FillFromControl();
                    projectTaskId = releaseService.AddSubTask(newProjectTask);

                    //Applications des droits sur dev
                    Tools.Tools.ReleaseProjectsRights(_Group);
                }
                else if (_StatusEnum == StatusEnum.Modified)
                {
                    var theProjectTask = FillFromControl();
                    theProjectTask.SubTaskId = _SubTask.SubTaskId;
                    releaseService.UpdateSubTask(theProjectTask);
                }
                else
                {
                    throw new NotSupportedException(_StatusEnum.ToStringWithEnumName());
                }

                DialogResult = System.Windows.Forms.DialogResult.OK;
            }

            Close(null, null);
        }
Пример #14
0
        private void cmdOk_Click(object sender, System.EventArgs e)
        {
            try
            {
                long mainTaskId = 0;

                if (_IsLoading.Value)
                {
                    return;
                }
                using (var locker = new BoolLocker(ref _IsLoading))
                {
                    using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                    {
                        if (!ControlValidator())
                        {
                            MessageBox.Show("Données invalides");
                            return;
                        }

                        if (_StatusEnum == StatusEnum.New)
                        {
                            var newMaintask = FillFromControl();
                            mainTaskId = releaseService.AddMainTask(newMaintask);
                        }
                        else if (_StatusEnum == StatusEnum.Modified)
                        {
                            var theMainTask = FillFromControl();
                            mainTaskId = theMainTask.MainTaskId;
                            releaseService.UpdateMainTask(theMainTask);
                        }
                        else
                        {
                            throw new NotSupportedException(_StatusEnum.ToStringWithEnumName());
                        }

                        DialogResult = System.Windows.Forms.DialogResult.OK;
                    }

                    //Applications des droits sur dev
                    Tools.Tools.ReleaseProjectsRights(_Group);
                }
                EditionEventArgs.StatusEnum status;
                if (_StatusEnum == StatusEnum.New)
                {
                    status = EditionEventArgs.StatusEnum.New;
                }
                else if (_StatusEnum == StatusEnum.Modified)
                {
                    status = EditionEventArgs.StatusEnum.Update;
                }
                else
                {
                    throw new NotSupportedException(_StatusEnum.ToStringWithEnumName());
                }

                Close(this, new EditionEventArgs(mainTaskId, status));
            }
            catch (Exception ex)
            {
                ex.ShowInMessageBox();
            }
        }
Пример #15
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();
        }
        public void Initialize(Group iGroup)
        {
            if (_IsLoading.Value)
            {
                return;
            }
            using (new BoolLocker(ref _IsLoading))
            {
                _Group = iGroup;

                //init
                this.ucMainTaskManager.Initialize(_Group);
                this.ucMainTaskManager.CreateMainTask           += CreateMainTask;
                this.ucMainTaskManager.UpdateMainTask           += UpdateMainTask;
                this.ucMainTaskManager.NothingSelected          += NoMainTaskSelected;
                this.ucMainTaskManager.MainTaskSelectionChanged += MainTaskSelected;

                this.ucMainTaskEdit.Initialize(_Group);
                this.ucMainTaskEdit.Close += MainTaskEditClosed;

                using (var timer = new Library.Tools.Debug.MyTimer(true, "status"))
                {
                    //Status
                    cboMainTaskStatusSearch = cboMainTaskStatusSearch.FillByDictionary(new MainTaskStatusSearchEnum().ToDictionary("FR"));
                    cboMainTaskStatusSearch.SelectedValue = MainTaskStatusSearchEnum.NotCompleted;
                }

                //Order
                cboOrderBy = cboOrderBy.FillByDictionary(new MainTaskOrderByEnum().ToDictionary("FR"));
                cboOrderBy.SelectedValue = MainTaskOrderByEnum.TaskPriority;

                //Project
                cboProject.DisplayMember = PropertyObserver.GetPropertyName <ProjectDetails>(x => x.Name);
                cboProject.ValueMember   = PropertyObserver.GetPropertyName <ProjectDetails>(x => x.Id);
                cboProject.DataSource    = _Group.Projects.GetProjects().ToList().Enum().OrderBy(x => x.Name).ToList();
                cboProject.SelectedIndex = -1;

                using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString()))
                {
                    //Gamme
                    cboProductLine.DisplayMember = PropertyObserver.GetPropertyName <ProductLine>(x => x.Name);
                    cboProductLine.ValueMember   = PropertyObserver.GetPropertyName <ProductLine>(x => x.ProductLineId);
                    cboProductLine.DataSource    = releaseService.GetProductLineList().Enum().OrderBy(x => x.Name).Enum().ToList();
                    cboProductLine.SelectedIndex = -1;

                    //Package
                    cboPackage.DisplayMember = PropertyObserver.GetPropertyName <EquinoxeExtend.Shared.Object.Release.Package>(x => x.PackageIdStatusString);
                    cboPackage.ValueMember   = PropertyObserver.GetPropertyName <EquinoxeExtend.Shared.Object.Release.Package>(x => x.PackageId);
                    cboPackage.DataSource    = releaseService.GetPackageList(PackageStatusSearchEnum.All, PackageOrderByEnum.PackageId);
                    cboPackage.SelectedIndex = -1;

                    //Numéro de projet
                    cboProjectNumber.DisplayMember = PropertyObserver.GetPropertyName <ExternalProject>(x => x.ProjectNumber);
                    cboProjectNumber.ValueMember   = PropertyObserver.GetPropertyName <ExternalProject>(x => x.ExternalProjectId);
                    cboProjectNumber.DataSource    = releaseService.GetExternalProjectList(ExternalProjectStatusSearchEnum.All);
                    cboProjectNumber.SelectedIndex = -1;
                }

                //Type
                cboMainTaskType = cboMainTaskType.FillByDictionary(new MainTaskTypeEnum().ToDictionary("FR"));
                cboMainTaskType.SelectedIndex = -1;

                //Développeur
                cboDevelopper.DisplayMember = PropertyObserver.GetPropertyName <DriveWorks.Security.UserDetails>(x => x.DisplayName);
                cboDevelopper.ValueMember   = PropertyObserver.GetPropertyName <DriveWorks.Security.UserDetails>(x => x.Id);
                cboDevelopper.DataSource    = _Group.GetUserAllowedCaptureList();
                cboDevelopper.SelectedIndex = -1;

                this.ucSubTaskManager.Initialize(_Group);
                this.ucSubTaskManager.CreateProjectTask       += CreateSubTask;
                this.ucSubTaskManager.UpdateProjectTask       += UpdateSubTask;
                this.ucSubTaskManager.DeletedProjectTask      += SubTaskDeleted;
                this.ucSubTaskManager.NothingSelected         += NoSubTaskSelected;
                this.ucSubTaskManager.SubTaskSelectionChanged += ProjectTaskSelected;

                this.ucSubTaskEdit.Initialize(_Group);
                this.ucSubTaskEdit.Close += SubTaskEditClosed;

                LoadCriteria();
            }
        }