Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
        }