public async Task <bool> ChangeMAStatus([FromBody] MAStatusLogModel maStatusLog) { var result = await _maService.ChangeMAStatusAsync(maStatusLog); if (result) { await _generateDocument.GenerateRegistrationPDFDocument(_nodeServices, maStatusLog.MAID, maStatusLog.ToStatusCode, maStatusLog.ChangedByUserID); } return(result); }
public async Task <bool> AssignMA([FromBody] IList <MAAssignment> maAssignments) { var result = true; foreach (var maAssignment in maAssignments) { result = result && await _maAssignmentService.CreateAsync(maAssignment); } var currentStatus = await _maService.GetMAStatus(maAssignments.FirstOrDefault().MAID); if (result && currentStatus.MAStatusCode == "VER") { var maLogStatus = new MAStatusLogModel { MAID = maAssignments.FirstOrDefault().MAID, ToStatusCode = "ASD", Comment = "Registration Assigned", ChangedByUserID = maAssignments.FirstOrDefault().AssignedByUserID }; await _maService.ChangeMAStatusAsync(maLogStatus); } return(result); }
public async Task <bool> MAReviewCreateOrUpdateAsync(MAReview maReview, bool?changeStatus = false) { if (!string.IsNullOrEmpty(maReview.SuggestedStatusCode)) { var maStatus = await _maStatusService.GetAsync(mas => mas.MAStatusCode == maReview.SuggestedStatusCode); maReview.SuggestedStatusID = maStatus.ID; maReview.SuggestedStatusCode = maStatus.MAStatusCode; } if (maReview.SuggestedStatusCode == "RTAS" || (maReview.SuggestedStatusCode == "FIR" && (bool)changeStatus)) { //make previous assessments inactive var responderTypeCodes = new List <string> { "PRAS", "SCAS", "TLD" }; var assessorsMAReview = await this.FindByAsync(mar => mar.IsActive && !mar.IsDraft && responderTypeCodes.Contains(mar.ResponderType.ResponderTypeCode) && mar.MAID == maReview.MAID); foreach (var mar in assessorsMAReview) { mar.IsActive = false; await base.CreateOrUpdateAsync(mar, true); } ; maReview.IsActive = false; } var result = await base.CreateOrUpdateAsync(maReview, true); if (result && !maReview.IsDraft) { if ((bool)changeStatus) { var maLogStatus = new MAStatusLogModel { MAID = maReview.MAID, ToStatusCode = maReview.SuggestedStatusCode, Comment = maReview.Comment, ChangedByUserID = maReview.ResponderID }; await _maService.ChangeMAStatusAsync(maLogStatus); } else { //Check if all assessors submitted their review; if yes, update ma to 'Submitted to Team Leader' status var responderTypeCodes = new List <string> { "PRAS", "SCAS" }; var assessorsMAAssignments = await _maAssignmentService.FindByAsync(mas => responderTypeCodes.Contains(mas.ResponderType.ResponderTypeCode) && mas.MAID == maReview.MAID && mas.IsActive); var assessorsMAReview = await this.FindByAsync(mar => !mar.IsDraft && responderTypeCodes.Contains(mar.ResponderType.ResponderTypeCode) && mar.MAID == maReview.MAID && mar.IsActive); var grAssessorsMAReview = assessorsMAReview.GroupBy(global => global.ResponderType.ResponderTypeCode); if (assessorsMAAssignments.Count() > 0 && assessorsMAAssignments.Count() == grAssessorsMAReview.Count()) { var maLogStatus = new MAStatusLogModel { MAID = maReview.MAID, ToStatusCode = "STL", Comment = "Application is submitted to Team Leader", ChangedByUserID = maReview.ResponderID }; await _maService.ChangeMAStatusAsync(maLogStatus); } } } return(result); }
public async Task <bool> DeleteMA([FromBody] MAStatusLogModel maStatusLog) { var result = await _maService.DeleteMAAsync(maStatusLog); return(result); }