AIMS_BD_IATI.DAL.AimsDbIatiDAL.GetTransactionMismatchedActivity C# (CSharp) Méthode

GetTransactionMismatchedActivity() public méthode

public GetTransactionMismatchedActivity ( string iatiIdentifier ) : ProjectFieldMapModel
iatiIdentifier string
Résultat ProjectFieldMapModel
        public ProjectFieldMapModel GetTransactionMismatchedActivity(string iatiIdentifier)
        {
            var q = (from a in dbContext.Activities
                     let isMapped = a.ProjectId > 0 || a.MappedProjectId > 0 || a.MappedTrustFundId > 0
                     where a.IatiIdentifier == iatiIdentifier && isMapped
                     select new ActivityModel
                     {
                         IatiActivity = a.IatiActivity,
                         OrgId = a.OrgId,
                         ProjectId = a.ProjectId,
                         MappedProjectId = a.MappedProjectId,
                         MappedTrustFundId = a.MappedTrustFundId,
                         IsInclude = a.IsInclude
                     }).FirstOrDefault();

            if (q == null) return null;

            var iatiActivity = ParseXMLAndResolve(new List<ActivityModel> { q }).FirstOrDefault();

            LoadChildActivities(iatiActivity);

            var aimsProject = new AimsDAL().GetAIMSProjectInIATIFormat(q.ProjectId > 0 ? q.ProjectId :
                                    q.MappedProjectId > 0 ? q.MappedProjectId :
                                    0);

            foreach (var aimsTransaction in aimsProject.transaction)
            {
                var isFoundInIati = iatiActivity.transaction.Any(a => a.transactiontype?.code == aimsTransaction.transactiontype?.code
                    && a.transactiondate?.isodate == aimsTransaction.transactiondate?.isodate
                    && Math.Floor(a.ValUSD) == Math.Floor(aimsTransaction.ValUSD));

                aimsTransaction.IsConflicted = !isFoundInIati;
            }

            return new ProjectFieldMapModel(iatiActivity, aimsProject);
        }