コード例 #1
0
ファイル: MAController.cs プロジェクト: khoppenworth/pdx-be
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: MAController.cs プロジェクト: khoppenworth/pdx-be
        public async Task <bool> DeleteMA([FromBody] MAStatusLogModel maStatusLog)
        {
            var result = await _maService.DeleteMAAsync(maStatusLog);

            return(result);
        }