Пример #1
0
        public async static Task <InspectionManageViewModel> ToInspectionManageViewModel(
            IEnumerable <Inspection> inspections
            )
        {
            var inspectionManageViewModel = new InspectionManageViewModel();
            var inspectionsFiltered       = new List <Inspection>();
            var userPools = await LicenseMapper.GetUserPools();

            inspectionsFiltered = inspections.Where(u => u.EndDate != null).OrderByDescending(s => s.EndDate).ToList();
            inspectionManageViewModel.Inspections = inspectionsFiltered.Select(u => new InspectionViewModel
            {
                InspectionId      = u.InspectionId,
                StartDate         = u.StartDate,
                EndDate           = u.EndDate,
                Date              = u.EndDate.Value,
                PublicationId     = u.PublicationId,
                ProcessName       = $"{u.Publication.Process.Label} (v{u.Publication.Version})",
                IsOK              = !u.InspectionSteps.Any(s => s.IsOk == false),
                AnomalyNumber     = u.InspectionSteps.Count(s => s.IsOk.HasValue && !s.IsOk.Value),
                Teams             = u.InspectionSteps.SelectMany(s => s.Inspector.Teams.Select(t => t.Name)).Distinct().ToList(),
                Inspectors        = u.InspectionSteps.Select(s => s.Inspector.FullName).Distinct().ToList(),
                DoneByDeactivated = !u.InspectionSteps.Select(s => s.Inspector.UserId).Distinct().ToList().Any(i => userPools.Any(p => p == i)),
                Steps             = u.InspectionSteps.Select(s => new InspectionStepViewModel
                {
                    Id             = s.InspectionStepId,
                    Wbs            = s.PublishedAction.WBS,
                    Date           = s.Date,
                    InspectionDate = s.Date.ToShortDateString(),
                    InspectorId    = s.InspectorId,
                    Inspector      = s.Inspector.FullName,
                    ActionLabel    = s.PublishedAction.Label,
                    Teams          = s.Inspector.Teams.Select(t => t.Name).ToList(),
                    IsOK           = s.IsOk,
                    ThumbnailHash  = s.PublishedAction.Thumbnail?.Hash,
                    ThumbnailExt   = s.PublishedAction.Thumbnail?.Extension,
                    Action         = new Models.Action.GenericActionViewModel
                    {
                        ActionId = s.PublishedAction.PublishedActionId,
                        Label    = s.PublishedAction.Label
                    }
                }).ToList()
            });
            return(inspectionManageViewModel);
        }
Пример #2
0
        public async static Task <QualificationManageViewModel> ToQualificationManageViewModel(
            IEnumerable <Publication> lastTrainingPublications,
            IEnumerable <Publication> lastEvaluationPublications,
            List <User> users,
            int?userId)
        {
            var qualificationManageViewModel = new QualificationManageViewModel();
            List <QualificationViewModel> qualificationViewModel = new List <QualificationViewModel>();

            foreach (var evaluationPublication in lastEvaluationPublications)
            {
                List <Qualification> qualifications = new List <Qualification>();
                if (userId.HasValue)
                {
                    qualifications = evaluationPublication.Qualifications
                                     .Where(q => q.UserId == userId)
                                     .ToList();
                }
                else
                {
                    qualifications = (await LicenseMapper.FilterByActivatedUser(evaluationPublication.Qualifications, q => q.UserId)).ToList();
                }

                foreach (var qualification in qualifications.Where(q => q.IsQualified != null && !q.IsDeleted && q.EndDate != null))
                {
                    // Previous qualification not null means that the qualification has been done on a previous publication
                    // In that case, no need to display the qualification
                    if (qualification.PreviousVersionQualification != null)
                    {
                        continue;
                    }

                    qualificationViewModel.Add(new QualificationViewModel
                    {
                        QualificationId   = qualification.QualificationId,
                        Folder            = evaluationPublication.GetFolder(),
                        FolderPath        = evaluationPublication.GetFolderPath(),
                        ProcessName       = $"{evaluationPublication.Process.Label} (v{evaluationPublication.Version})",
                        Qualifier         = qualification.GetQualifier(users),
                        Trainer           = qualification.GetTrainer(users, lastTrainingPublications),
                        Operator          = qualification.User.FullName,
                        TrainingStartDate = qualification.GetTrainingStartDate(lastTrainingPublications),
                        TrainingEndDate   = qualification.GetTrainingEndDate(lastTrainingPublications),
                        PublicationName   = evaluationPublication.Label,
                        Result            = qualification.IsQualified ?? false,
                        QualificationDate = qualification.EndDate != null ? qualification.EndDate.Value : qualification.EndDate.Value,
                        Notes             = qualification.Comment,
                        Teams             = qualification.User.Teams.Select(t => t.Name).Distinct().ToList(),
                        PercentageResult  = qualification.Result ?? 0,
                        Steps             = qualification.QualificationSteps.Select(s => new QualificationStepViewModel
                        {
                            QualificationStepId = s.QualificationStepId,
                            Date              = s.Date.ToShortDateString(),
                            Comment           = s.Comment,
                            QualificationId   = s.QualificationId,
                            Wbs               = s.PublishedAction.WBS,
                            PublishedActionId = s.PublishedActionId,
                            QualifierId       = s.QualifierId,
                            ActionLabel       = s.PublishedAction.Label,
                            IsQualified       = s.IsQualified,
                            QualifierName     = s.User.FullName
                        }).ToList()
                    });
                }
            }
            qualificationManageViewModel.Qualifications = qualificationViewModel;
            return(qualificationManageViewModel);
        }