private void AddEvidenceChainToList(JToken evidence, List <StandardApplicableEvidence> evidenceList, List <List <StandardApplicableEvidence> > evidenceListList)
        {
            GetEvidencesChain(evidence, evidenceList);

            var enumEvidenceList = StandardApplicableEvidence.OrderLinkedEvidences(evidenceList);

            evidenceListList.Add(enumEvidenceList.ToList());
        }
Exemple #2
0
        public virtual IActionResult ApiStandardsApplicableEvidencePost([FromBody] StandardApplicableEvidence evidenceEntity)
        {
            try
            {
                evidenceEntity = _datastore.Create(evidenceEntity);

                if (evidenceEntity.Id == Guid.Empty)
                {
                    return(StatusCode(404));
                }

                return(new ObjectResult(evidenceEntity));
            }
            catch (Crm.CrmApiException ex)
            {
                return(StatusCode((int)ex.HttpStatus, ex.Message));
            }
        }
        private void GetEvidencesChain(JToken evidenceChainEnd, List <StandardApplicableEvidence> evidenceList)
        {
            // store the end of the chain (with no previous id)
            var evidence = new StandardApplicableEvidence(evidenceChainEnd);

            evidenceList.Add(evidence);
            var id = evidence.Id.ToString();

            // get the chain of evidences linked by previous id
            while (true)
            {
                var filterEvidence = new List <CrmFilterAttribute>
                {
                    new CrmFilterAttribute("ClaimId")
                    {
                        FilterName = "_cc_standardapplicable_value", FilterValue = id
                    },
                    new CrmFilterAttribute("PreviousEvidence")
                    {
                        FilterName = "_cc_previousversion_value", FilterValue = id
                    },
                    new CrmFilterAttribute("StateCode")
                    {
                        FilterName = "statecode", FilterValue = "0"
                    }
                };

                var jsonEvidence = Repository.RetrieveMultiple(new StandardApplicableEvidence().GetQueryString(null, filterEvidence, true, true));
                if (jsonEvidence.HasValues)
                {
                    evidence = new StandardApplicableEvidence(jsonEvidence.FirstOrDefault());
                    evidenceList.Add(evidence);
                    id = evidence.Id.ToString();
                }
                else
                {
                    break;
                }
            }
        }
        public StandardApplicableEvidence Create(StandardApplicableEvidence evidenceEntity)
        {
            Repository.CreateEntity(evidenceEntity.EntityName, evidenceEntity.SerializeToODataPost());

            return(evidenceEntity);
        }