private RigOapChecklist CreateFSOChecklist(int OwnerId, string Title, DateTime ChecklistDateTime) { OapChecklist oapChecklist = OapChecklistClient.GetByNameAsync("FSO Checklist").Result?.Result?.Data; if (oapChecklist == null) { ViewData["UpdateError"] = true; return(null); } RigOapChecklist checklist = new RigOapChecklist(); checklist.CreatedBy = UtilitySystem.CurrentUserName; checklist.OwnerId = OwnerId; //UtilitySystem.CurrentUserId; checklist.CreatedDateTime = DateTime.UtcNow; checklist.ChecklistDateTime = ChecklistDateTime; //DateTime.UtcNow; checklist.Title = Title; checklist.UpdatedDateTime = DateTime.UtcNow; checklist.Status = "Open"; checklist.OapchecklistId = oapChecklist.Id; var newChecklist = RigOapChecklistClient.AddRigChecklistAsync(checklist).Result?.Result?.Data; return(newChecklist); }
public ActionResult UpdateRigChecklist(RigOapChecklist model) { // TODO: Add update logic here var response = RigOapChecklistClient.UpdateRigChecklistAsync(model).Result; return(RedirectToAction("Index")); }
public static IList <OIMBehavioralBasedSafetyFlatModel> ToBBSFlattenedModel(RigOapChecklistClient rigOapChecklistClient, string checklistType, string checklistSubType, string status, string verifierRole) { var checklist = rigOapChecklistClient.GetAllInWorkflowByTypeSubTypeCodeStatusAsync(checklistType, checklistSubType, status, verifierRole).Result?.Result?.Data; var bbsFSOFlatModelList = new List <OIMBehavioralBasedSafetyFlatModel>(); checklist.ToList().ForEach((c) => { var group = c.OapChecklist.Groups?.FirstOrDefault(g => g.OapChecklistId == c.OapChecklist.Id); var questions = c.Questions; var nonConformityCount = 0; if (questions.Any()) { nonConformityCount = questions.Count(f => f.Answers.FirstOrDefault()?.Value == "N"); } var flatList = new OIMBehavioralBasedSafetyFlatModel(c.Id, c.OapChecklist.Id, c.PositionId, c.OwnerId, c.LocationId, c.ChecklistDateTime, nonConformityCount); bbsFSOFlatModelList.Add(flatList); }); return(bbsFSOFlatModelList); }
public async Task <ActionResult> AddScheduledChecklist(int numberOfDays, DateTime StartingAt, string title, string description) { if (StartingAt != null && numberOfDays > 0) { var lifeSaverChecklist = OapChecklistClient.GetByNameAsync("Life Savers").Result?.Result?.Data; if (lifeSaverChecklist == null) { throw new Exception("The life savers checklist was not found. Please contact the development support team"); } for (int i = 0; i < numberOfDays; i++) { var checklistDate = StartingAt.AddDays(i); RigOapChecklist checklist = new RigOapChecklist() { Status = "Open", ChecklistDateTime = checklistDate, OapchecklistId = lifeSaverChecklist.Id, IsAutoScheduled = true, //RigId = UtilitySystem.Settings.RigId.ToString(), Title = title, Description = description, CreatedDateTime = DateTime.UtcNow }; await RigOapChecklistClient.AddRigChecklistAsync(checklist); } } return(DisplayLifeSaverScheduleAbdJobs()); }
protected virtual ObservableCollection <RigOapChecklist> GetRigChecklistData(bool useTypeSubTypeCode = false) { var rigChecklistData = (useTypeSubTypeCode) ? RigOapChecklistClient.GetAllByTypeSubTypeCodeStatusAsync(ChecklistType, ChecklistSubType, ChecklistStatus).Result?.Result?.Data : RigOapChecklistClient.GetAllByTypeSubTypeStatusAsync(ChecklistType, ChecklistSubType, ChecklistStatus).Result?.Result?.Data; return(rigChecklistData); }
public async Task <ActionResult> DeleteRigChecklist(RigOapChecklist model) { if (model.Id != Guid.Empty) { var response = await RigOapChecklistClient.DeleteRigOapChecklistAsync(model.Id); } return(RedirectToAction("Index")); }
public async Task <ActionResult> AddChecklist(RigOapChecklist model) { //model.RigId = OapUtilities.GetRigId(); model.CreatedDateTime = DateTime.UtcNow; var response = await RigOapChecklistClient.AddRigChecklistAsync(model); return(RigChecklists()); }
public IEnumerable <LifesaverComplianceViewModel> GetLifesaverCompliance() { var singleRowList = new List <LifesaverComplianceViewModel>(); var lifesaverViewModel = PrepareComplianceViewModel(RigOapChecklistClient.GetLifesaverComplianceAsync().Result?.Result?.Data); singleRowList.Add(lifesaverViewModel); return(singleRowList); }
// GET: IRMA/Checklist/1 public ActionResult Checklist(int id) { RigOapChecklist checklist = RigOapChecklistClient.GetByUniqueIdAsync(id).Result?.Result?.Data; if (checklist == null) { return(RedirectToAction("Index")); } return(View(checklist)); }
public ActionResult FSOPendingReviewPartial() { ViewBag.GridName = "FSOPendingGrid"; ViewBag.GridTitle = "Formal Safety Observations Pending Review"; ViewBag.GridLinkController = "FSO"; ViewBag.GridControllerCallBackAction = "FSOPendingReviewPartial"; var fsoList = RigOapChecklistClient.GetAllByTypeStatusAsync("Formal Safety Observation", "Pending").Result?.Result.Data; var viewModelList = GenerateChecklistViewModelList(fsoList); return(PartialView("ChecklistPendingReviewPartial", viewModelList)); }
public ActionResult LifeSaversPendingReviewPartial() { ViewBag.GridName = "LSPendingGrid"; ViewBag.GridTitle = "Ensco Life Savers Pending Review"; ViewBag.GridLinkController = "LifeSaver"; ViewBag.GridControllerCallBackAction = "LifeSaversPendingReviewPartial"; var lifeSaversList = RigOapChecklistClient.GetAllByTypeStatusAsync("Life Savers", "Pending").Result?.Result.Data; var viewModelList = GenerateChecklistViewModelList(lifeSaversList); return(PartialView("ChecklistPendingReviewPartial", viewModelList)); }
public ActionResult CAVPendingReviewPartial() { ViewBag.GridName = "CAVPendingGrid"; ViewBag.GridTitle = "Critical Area Verifications Pending Review"; ViewBag.GridLinkController = "CriticalAreaVerification"; ViewBag.GridControllerCallBackAction = "CAVPendingReviewPartial"; var cavList = RigOapChecklistClient.GetAllByTypeStatusAsync("Critical Area Verification", "Pending").Result?.Result.Data; var viewModelList = GenerateChecklistViewModelList(cavList); return(PartialView("ChecklistPendingReviewPartial", viewModelList)); }
public virtual async Task <ActionResult> CreateRigChecklist(RigOapChecklist model) { // TODO: Add insert logic here model.RigId = "0"; var response = await RigOapChecklistClient.AddRigChecklistAsync(model); if (ModelState.ContainsKey("RigChecklistUniqueId")) // Handled in the API { ModelState["RigChecklistUniqueId"].Errors.Clear(); } return(RigChecklists()); }
public GenericDashboardController() : base() { RigOapChecklistClient = new RigOapChecklistClient(GetApiBaseUrl(), Client); OapChecklistClient = new OapChecklistClient(GetApiBaseUrl(), Client); PeopleClient = new PeopleClient(GetApiBaseUrl(), Client); Owner = CommonUtilities.GetUsers(PeopleClient); ChecklistType = "BRC"; ChecklistSubType = "All"; ChecklistStatus = "Open"; FormType = "All"; }
public static RigOapChecklist UpdateChecklist(RigOapChecklistClient client, RigOapChecklist checklist, GridRouteTypes type, int originalHasCode, string gridErrorKey, ViewDataDictionary viewData) { if (client == null) { viewData[gridErrorKey] = "Rig Oap client is null. Refresh Page and try again. Contact system administrator if the error persists"; return(checklist); } var currentHashCode = checklist.GetHashCode(); if (currentHashCode != originalHasCode) { try { switch (type) { case GridRouteTypes.Add: case GridRouteTypes.Update: case GridRouteTypes.Delete: var updateResponse = client.UpdateRigChecklistAsync(checklist).Result; if (updateResponse.Result.Errors.Any()) { DisplayGridErrors(updateResponse.Result.Errors, gridErrorKey, viewData); } else { checklist = updateResponse.Result.Data; } break; } } catch (Exception ex) { viewData[gridErrorKey] = ex.Message; } return(checklist); } return(checklist); }
public ActionResult BACPendingReviewPartial() { ViewBag.GridName = "BACPendingGrid"; ViewBag.GridTitle = "Barrier Authority Checklists Pending Review"; ViewBag.GridLinkController = "BarrierAuthority"; var bacList = RigOapChecklistClient.GetAllByTypeStatusAsync("Barrier Authority Checklist", "Pending").Result?.Result.Data; IList <OIMDashboardBACGridViewModel> viewModelList = new List <OIMDashboardBACGridViewModel>(); foreach (var bacChecklist in bacList) { var leadAssessor = bacChecklist.Assessors.FirstOrDefault(a => a.IsLead); UserModel assessor = null; PositionModel leadAssessorPosition = null; if (leadAssessor != null && leadAssessor.UserId != 0) { assessor = ServiceSystem.GetUser(leadAssessor.UserId); leadAssessorPosition = ServiceSystem.GetUserPosition(leadAssessor.UserId); } OIMDashboardBACGridViewModel viewModel = new OIMDashboardBACGridViewModel() { ChecklistGuid = bacChecklist.Id, Id = bacChecklist.RigChecklistUniqueId, Location = bacChecklist.LocationName, Title = bacChecklist.Title, Assessor = assessor?.DisplayName, Position = leadAssessorPosition?.Name }; foreach (var question in bacChecklist.Questions) { foreach (var answer in question.Answers) { if (answer.Value == "N") { switch (answer.Ordinal) { case 0: viewModel.Day1.ConformityCount++; break; case 1: viewModel.Day2.ConformityCount++; break; case 2: viewModel.Day3.ConformityCount++; break; case 3: viewModel.Day4.ConformityCount++; break; case 4: viewModel.Day5.ConformityCount++; break; case 5: viewModel.Day6.ConformityCount++; break; case 6: viewModel.Day7.ConformityCount++; break; default: break; } } } } viewModelList.Add(viewModel); } return(PartialView("BarrierAuthorityPendingReviewPartial", viewModelList)); }
private List <TrainedObserversViewModel> GetTrainedObservers(OapChecklist corpFSOChecklist) { IIrmaServiceDataModel pobDataModel = IrmaServiceSystem.GetServiceModel(IrmaConstants.IrmaPobModels.RigPersonnel); //.RigPersonnelHistory); IEnumerable <RigPersonnelModel> currentPob = pobDataModel.GetItems("Status = 1", "Id").Cast <RigPersonnelModel>(); IEnumerable <RigOapChecklist> fsoChecklistsLast40Days = RigOapChecklistClient.GetFsoChecklistByMinDateAsync(DateTime.Now.AddDays(-40).Date, corpFSOChecklist.Id).Result?.Result?.Data; List <TrainedObserversViewModel> trainedObservers = new List <TrainedObserversViewModel>(); foreach (RigPersonnelModel person in currentPob) { UserModel userRecord = ServiceSystem.GetUser(person.PassportId); if (userRecord == null || !person.DateStart.HasValue) { continue; } PositionModel position = ServiceSystem.GetUserPosition(person.PassportId); TimeSpan timeOnBoard = DateTime.Now.Subtract(person.DateStart.Value); TrainedObserversViewModel observer = new TrainedObserversViewModel() { Name = userRecord?.DisplayName, Position = position?.Name, DaysOnboard = timeOnBoard.Days }; int numberOfObservations = 0; IEnumerable <RigOapChecklist> checklistsWhileOnboard = fsoChecklistsLast40Days.Where(c => c.ChecklistDateTime >= person.DateStart); DateTime?lastObservationDate = null; foreach (RigOapChecklist fsoChecklist in checklistsWhileOnboard) { if (fsoChecklist.Assessors == null) { continue; } IEnumerable <RigOapChecklistAssessor> checklistParticipations = fsoChecklist.Assessors.Where(a => a.UserId == userRecord.Id); numberOfObservations += checklistParticipations.Count(); if (checklistParticipations.Count() > 0 && (lastObservationDate == null || fsoChecklist.ChecklistDateTime > lastObservationDate)) { lastObservationDate = fsoChecklist.ChecklistDateTime; } } observer.LastObservation = lastObservationDate; int weeksOnBoard = timeOnBoard.Days / 7; bool isInCompliance = true; if (timeOnBoard.Days > 7) { isInCompliance = numberOfObservations > 0 ? (numberOfObservations / weeksOnBoard >= 1) : false; } observer.Observations = numberOfObservations; observer.IsInCompliance = isInCompliance; trainedObservers.Add(observer); } return(trainedObservers); }
private IEnumerable <RigOapChecklist> GetOpenFsoChecklists(OapChecklist corpFSOChecklist) { return(RigOapChecklistClient.GetOpenFsoChecklistsAsync(corpFSOChecklist.Id).Result?.Result?.Data); }
public static IList <OapSearchCheckListQuestionFlatModel> ToRelatedQuestionFlattenedModel(this IEnumerable <RigOapChecklistQuestion> rigRelatedQuestionList, int questionId, RigOapChecklistClient checklistClient, OapChecklistFindingClient checklistFindingClient) { var layoutList = new List <OapSearchCheckListQuestionFlatModel>(); foreach (var item in rigRelatedQuestionList) { var checklist = checklistClient.GetCompleteChecklistAsync(item.RigOapChecklistId).Result.Result.Data; if (checklist == null) { continue; } var rigQuestion = checklist.Questions.FirstOrDefault(rq => rq.Id == item.Id); var qFindings = checklistFindingClient.GetAllFindingsForQuestionAsync(rigQuestion.Id).Result.Result.Data; var rigQuestionAnswers = rigQuestion?.Answers?.ToList(); StringBuilder sb = new StringBuilder(); sb.Append("{ "); foreach (var questionAnswer in rigQuestionAnswers) { var answer = questionAnswer.Value; answer = (answer == "Y") ? "YES".Translate() : ((answer == "N") ? "NO".Translate() : " "); sb.Append(answer); if (rigQuestionAnswers.Count > 1) { sb.Append(", "); } } sb.Append(" }"); var answers = sb.ToString(); var gst = (from g in checklist.OapChecklist.Groups from sg in g.SubGroups from t in sg.Topics from q in t.Questions where q.Id == rigQuestion.OapChecklistQuestionId select new { Group = g, SubGroup = sg, Topic = t }).FirstOrDefault(); var relatedQuestion = new OapSearchCheckListQuestionFlatModel(checklist.Id, checklist.RigId.ToString(), checklist.RigChecklistUniqueId, checklist.OapchecklistId, checklist.ChecklistDateTime, checklist.Title, gst?.Group?.Name, gst?.SubGroup?.Name, gst?.Topic?.Topic, item.OapChecklistQuestionId ?? 0, rigQuestion?.Question, answers, qFindings.FirstOrDefault()?.FindingType?.Name); if (!layoutList.Any(l => l.RigOapChecklistId == relatedQuestion.RigOapChecklistId && l.QuestionId == relatedQuestion.QuestionId)) { layoutList.Add(relatedQuestion); } } return(layoutList); }