예제 #1
0
        public IHttpActionResult UpdateAssessment(AocaAssessmentViewModel model)
        {
            var response = _aocaService.UpdateAocaAssessment(model.ToServiceRequestModel());

            return(Ok(response));
        }
예제 #2
0
        public AocaAssessmentViewModel GetAocaByAgentId(Guid agentId)
        {
            var model = new AocaAssessmentViewModel();

            var gradingCriteria        = GradingCriteriaRepository.GetAll().ToList();
            var gradingCriteriaAocaMap = _genericUnitOfWork.GetRepository <GradingCriteriaAocaMap, int>().GetAll().ToList();

            gradingCriteria =
                gradingCriteria.Join(gradingCriteriaAocaMap, gc => gc.Id, gcm => gcm.Id, (gc, gcm) => gc).ToList();
            var agent = AgentRepository.GetAll().FirstOrDefault(c => c.Id == agentId);

            model.AgentId = agentId;

            var agentwiseObservation = AocaObservationMapRepository.GetAll().Where(c => c.AgentCategoryId == agent.AgentCategoryId && c.AgentServiceId == agent.AgentServiceId && c.AgentTypeId == agent.AgentTypeId).Select(p => p.ObservationId).ToList();
            var observationList      = ObservationRepository.GetAll().Join(agentwiseObservation, ob => ob.Id, ao => ao, (ob, ao) => ob);
            var list = observationList.ToList().OrderBy(x => x.GradingCriteriaId).ThenBy(y => y.DisplayOrder).ToList();

            var aocaChecklist = list.Select(x =>
            {
                var aocaViewModel = _mapper.Map <Observation, AOCAViewModel>(x);
                aocaViewModel.Id  = Guid.NewGuid();
                return(aocaViewModel);
            }).ToList();

            int seqNo = 0, itemNo = 0, gradeCriteria = 0;
            var naScoringGuides = NaScoringGuideRepository.GetAll().ToList();
            var scoringGuides   = _listService.ListScoringGuide();

            foreach (var aoca in aocaChecklist)
            {
                var nascoringIds = naScoringGuides.Where(y => y.ObervationId == aoca.ObservationId).Select(z => z.ScoringGuideId as object).ToList();
                aoca.ApplicableScoringGuides = scoringGuides.Where(x => !nascoringIds.Contains(x.Id)).ToList();

                aoca.Attachments = new List <AocaAttachmentViewModel>()
                {
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                    new AocaAttachmentViewModel()
                    {
                        Id = Guid.NewGuid(), AOCAId = aoca.Id
                    },
                };


                if (gradeCriteria != aoca.GradingCriteriaId)
                {
                    itemNo = 0;
                }

                gradeCriteria = aoca.GradingCriteriaId;
                seqNo++;
                itemNo++;
                aoca.SeqNo  = seqNo;
                aoca.ItemNo = itemNo;
            }

            model.ChecklistCriteria = new List <AOCAChecklistPanelViewModel>();

            gradingCriteria.ForEach(x =>
            {
                var listAoca = aocaChecklist.Where(y => y.GradingCriteriaId == x.Id).ToList();

                if (listAoca.Any())
                {
                    model.ChecklistCriteria.Add(new AOCAChecklistPanelViewModel
                    {
                        GradingCriteriaId   = x.Id,
                        GradingCriteriaName = x.Name,
                        AOCAChecklist       = listAoca,
                        IsCompleted         = listAoca.Count() == listAoca.Count(g => g.ScoringGuideId > 0)
                    });
                }
            }

                                    );


            return(model);
        }