private void PopulateUser(RigOapChecklist rigOapChecklist) { if (rigOapChecklist == null) { return; } rigOapChecklist.Owner = PeopleRepository.Get(rigOapChecklist.OwnerId); if ((rigOapChecklist.Assessors != null) && rigOapChecklist.Assessors.Any()) { foreach (var a in rigOapChecklist.Assessors) { a.TourId = PobPersonnelRepository.GetTourId(a.UserId); a.User = PeopleRepository.Get(a.UserId); } } if ((rigOapChecklist.VerifiedBy != null) && rigOapChecklist.VerifiedBy.Any()) { foreach (var v in rigOapChecklist.VerifiedBy) { v.User = PeopleRepository.Get(v.UserId); } } }
public RigOapChecklist AddAssessor(RigOapChecklistAssessor assessor) { var checklist = Repository.GetCompleteChecklist(assessor.RigOapChecklistId.Value); if (checklist == null) { throw new Exception("Rig Checklist not found"); } if (checklist.Assessors.Any(a => a.UserId == assessor.UserId)) { throw new Exception("User is already an assessor of this checklist"); } assessor.TourId = PobPersonnelRepository.GetTourId(assessor.UserId); // Add to verifiers if (assessor.IsLead) { if (checklist.OapChecklist.Name.ToLower().Contains("OIM Oversight".ToLower())) // OIM Oversight flows from OIM to Rig Manager { checklist.VerifiedBy.Add(new RigOapChecklistVerifier() { CreatedDateTime = DateTime.UtcNow, Order = 5, Role = VerifierRole.OIM.ToString(), UserId = assessor.UserId }); } else { checklist.VerifiedBy.Add(new RigOapChecklistVerifier() { CreatedDateTime = DateTime.UtcNow, Order = 5, Role = VerifierRole.Assessor.ToString(), UserId = assessor.UserId }); } } // Remove current lead assessor from verifiers if any if (assessor.IsLead && checklist.Assessors.Any(a => a.IsLead)) { var currentLead = checklist.Assessors.FirstOrDefault(a => a.IsLead); currentLead.IsLead = false; var currentLeadVerifier = checklist.VerifiedBy.FirstOrDefault(a => a.UserId == currentLead.UserId); if (currentLeadVerifier != null) { checklist.VerifiedBy.Remove(currentLeadVerifier); } } checklist.Assessors.Add(assessor); return(Repository.Update(checklist)); }
private void AddReviewersToChecklist(RigOapChecklist checklist) { var reviewerPositions = OapChecklistReviewerRepository.GetActiveReviewerPositions(checklist.RigId.ToString(), checklist.OapchecklistId, DateTime.Today); if (!reviewerPositions.Any()) { return; } var reviewers = PobPersonnelRepository.GetReviewers(checklist.RigId.ToString(), 3, reviewerPositions.Select(r => r.ReviewerPositionId).ToList()).ToList(); if (!reviewers.Any()) { return; } var priorVerifiedBy = checklist.VerifiedBy?.Count(); var order = (checklist.VerifiedBy.Any()) ? checklist.VerifiedBy?.Where(v => v.Role != VerifierRole.OIM.ToString()).Max(v => v.Order) ?? 0 : 0; reviewers.ForEach(r => { if (r.PobPerson != null) { if (!checklist.VerifiedBy.Any(v => v.UserId == r.PobPerson.Id)) { checklist.VerifiedBy.Add(new RigOapChecklistVerifier() { RigOapChecklistId = checklist.Id, UserId = r.PobPerson.Id, Role = VerifierRole.Reviewer.ToString(), Order = order + 1 }); order++; } } }); var currentVerifiedBy = checklist.VerifiedBy?.Count() ?? 0; if (priorVerifiedBy != currentVerifiedBy) { Save(checklist); } }
public OapAudit GetAudit(int id) { var result = Repository.GetCompleteAudit(id); foreach (var p in result.OapAuditProtocols) { p.RigOapChecklist.Owner = PeopleRepository.Get(p.RigOapChecklist.OwnerId); if ((p.RigOapChecklist.Assessors != null) && p.RigOapChecklist.Assessors.Any()) { foreach (var a in p.RigOapChecklist.Assessors) { a.TourId = PobPersonnelRepository.GetTourId(a.UserId); a.User = PeopleRepository.Get(a.UserId); } } } return(result); }