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); }
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); }