public async Task <ActionResult> GetAllRiskScoreList([FromBody] RiskDetailScoreView model)
        {
            RiskDetailScoreView[] riskDetailScore = (await _riskAssessmentRepository.GetRiskDetailScoreRecordsByRiskId(model.RiskAssessmentID)).ToArray();
            ContactPerson[]       contactPerson   = (await _contactPersonRepository.GetContactPersonById(model.RiskAssessmentID.ToString())).ToArray();
            Document[]            fileDocument    = (await _documentRepository.GetDocumentById(model.RiskAssessmentID.ToString())).ToArray();

            foreach (var iDetailScore in riskDetailScore)
            {
                List <int> ids = new List <int>();

                RiskSectionScoreView[] riskSectionScore = (await _riskAssessmentRepository.GetRiskSectionScoreRecordsByRiskId(model.RiskAssessmentID, iDetailScore.RiskDetailsID)).ToArray();
                iDetailScore.ListRiskSectionScore = riskSectionScore;
                iDetailScore.SectionDataCount     = riskSectionScore.Length;

                iDetailScore.MinRecordNo = 0;
                iDetailScore.MaxRecordNo = 0;

                if (riskSectionScore.Any())
                {
                    ids.AddRange(riskSectionScore.Select(iData => iData.RiskSectionScoreID));

                    iDetailScore.MinRecordNo = ids.Min();
                    iDetailScore.MaxRecordNo = ids.Max();
                }
            }

            RiskDetailSectionScoreListView data = new RiskDetailSectionScoreListView
            {
                ListRiskDetailScoreViews = riskDetailScore,
                ListContactPersons       = contactPerson,
                ListDocuments            = fileDocument
            };

            return(PartialView("GetDetailSectionScore", data));
        }
        public async Task <ActionResult> GetDocumentList([FromBody] RiskDetailScoreView model)
        {
            Document[] fileDocument = (await _documentRepository.GetDocumentById(model.RiskAssessmentID.ToString())).ToArray();

            RiskDetailSectionScoreListView data = new RiskDetailSectionScoreListView {
                RiskAssessmentID = model.RiskAssessmentID.ToString(), ListDocuments = fileDocument
            };

            return(PartialView("GetDocument", data));
        }
        public async Task <ActionResult> GetContactPersonList([FromBody] RiskDetailScoreView model)
        {
            ContactPerson[] contactPerson = (await _contactPersonRepository.GetContactPersonById(model.RiskAssessmentID.ToString())).ToArray();

            RiskDetailSectionScoreListView data = new RiskDetailSectionScoreListView {
                RiskAssessmentID = model.RiskAssessmentID.ToString(), ListContactPersons = contactPerson
            };

            return(PartialView("GetContactPerson", data));
        }
        public async Task <JsonResult> UpdateRiskDetailScore([FromBody] RiskDetailScoreView model)
        {
            if (string.IsNullOrEmpty(model.RiskDetailsID.ToString()))
            {
                return(Json("Fail"));
            }

            var dataResult = await _riskAssessmentRepository.UpdateRiskDetailScoreAsync(model);

            return(Json("success"));
        }
        public async Task <ActionResult> DeleteRiskDeitailScore(string RiskDetailsID, string RiskAssessmentID)
        {
            if (string.IsNullOrEmpty(RiskAssessmentID))
            {
                return(PartialView("DeleteRiskDetailScore"));
            }

            RiskDetailScoreView riskDetailScore = await _riskAssessmentRepository.FindByIdRiskDetailScoreAsync(RiskDetailsID, RiskAssessmentID);

            if (riskDetailScore != null)
            {
                return(PartialView("DeleteRiskDetailScore", riskDetailScore));
            }
            return(PartialView("DeleteRiskDetailScore"));
        }
        public async Task <JsonResult> DeleteRiskDeitailScore([FromBody] RiskDetailScoreView model)
        {
            if (!string.IsNullOrEmpty(model.RiskDetailsID.ToString()))
            {
                RiskDetailScoreView riskDetailScore = await _riskAssessmentRepository.FindByIdRiskDetailScoreAsync(model.RiskDetailsID.ToString(), model.RiskAssessmentID.ToString());

                if (riskDetailScore != null)
                {
                    OperationResult result = await _riskAssessmentRepository.DeleteRiskDetailScoreAsync(riskDetailScore);

                    if (result.Succeeded)
                    {
                        return(Json("Success"));
                    }
                }
            }
            return(Json("Failed"));
        }
        public Task <OperationResult> UpdateRiskDetailScoreAsync(RiskDetailScoreView data)
        {
            const string command = "Update RiskDetailScore set Maturity = @Maturity, Efficiency = @Efficiency, RiskLevel = @RiskLevel "
                                   + "Where RiskDetailsID = @RiskDetailsID";

            int rowsUpdated = Task.Run(() => _sqlConnection.ExecuteAsync(command, new
            {
                data.Maturity,
                data.Efficiency,
                data.RiskLevel,
                data.RiskDetailsID
            })).Result;

            return(Task.FromResult(rowsUpdated.Equals(1) ? OperationResult.Success : OperationResult.Failed(new OperationResultError
            {
                Code = string.Empty,
                Description = $"The Maturity, Efficiency and RiskLevel with ID {data.RiskDetailsID} could not be updated in the dbo.RiskDetailScore table."
            })));
        }
        public Task <OperationResult> DeleteRiskDetailScoreAsync(RiskDetailScoreView data)
        {
            DynamicParameters param = new DynamicParameters();

            param.Add("RiskAssessmentID", data.RiskAssessmentID);
            param.Add("RiskDetailsID", data.RiskDetailsID);

            param.Add("RetVal", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);

            _sqlConnection.Execute("DeleteRiskDetailScore", param, commandType: CommandType.StoredProcedure);
            int rowsAdded = param.Get <int>("RetVal");

            return(Task.FromResult(rowsAdded.Equals(1)
                ? OperationResult.Success
                : OperationResult.Failed(new OperationResultError
            {
                Code = string.Empty,
                Description = $"The data your trying to delete have an error please try again."
            })));
        }
        public async Task <ActionResult> GetRiskGuidelinesScoreList([FromBody] RiskDetailScoreView model)
        {
            RiskDetailSectionScoreListView data = new RiskDetailSectionScoreListView();

            RiskDetailScoreView[] riskDetailScore = (await _riskAssessmentRepository.GetRiskDetailScoreRecordsByRiskId(model.RiskAssessmentID)).ToArray();

            foreach (var iDetailScore in riskDetailScore.Where(a => a.RiskDetailsID == model.RiskDetailsID))
            {
                RiskSectionScoreView[] riskSectionScore = (await _riskAssessmentRepository.GetRiskSectionScoreRecordsByRiskId(model.RiskAssessmentID, iDetailScore.RiskDetailsID)).ToArray();
                data.ListRiskSectionScoreViews = riskSectionScore;
                data.ParticipantsNo            = iDetailScore.ParticipantsNo;

                foreach (RiskSectionScoreView scoreView in data.ListRiskSectionScoreViews)
                {
                    RiskGuidelinesScoreView[] riskGuidelinesScore = (await _riskAssessmentRepository.GetRiskGuidelinesScoreViewByRiskId(model.RiskAssessmentID, iDetailScore.RiskDetailsID, scoreView.RiskSectionScoreID)).ToArray();
                    scoreView.ListRiskGuidelinesScore = riskGuidelinesScore;
                    scoreView.TotalRecordNo           = riskGuidelinesScore.Length;
                    List <int> ids = new List <int>();

                    foreach (RiskGuidelinesScoreView guidelinesScoreView in riskGuidelinesScore)
                    {
                        RiskParticipantsScoreView[] riskParticipantsScore = (await _riskAssessmentRepository.GetRiskParticipantsScoreRecordsById(guidelinesScoreView.RiskGuidelinesScoreID, scoreView.RiskSectionScoreID, iDetailScore.RiskDetailsID)).ToArray();
                        guidelinesScoreView.ListRiskParticipantsScore = riskParticipantsScore;
                    }

                    scoreView.MinRecordNo = 0;
                    scoreView.MaxRecordNo = 0;

                    if (riskGuidelinesScore.Any())
                    {
                        ids.AddRange(riskGuidelinesScore.Select(iData => iData.RiskGuidelinesScoreID));

                        scoreView.MinRecordNo = ids.Min();
                        scoreView.MaxRecordNo = ids.Max();
                    }
                }
            }

            return(PartialView("EditRiskGuidelinesScore", data));
        }
 public JsonResult AddRiskDeitailScore([FromBody] RiskDetailScoreView model)
 {
     _riskAssessmentRepository.AddRiskDetailScoreAsync(model);
     return(Json("success"));
 }