private void UpdateTransactions(string Iuser, IQueryable<CurrencyLookupItem> aimsCurrencies, IQueryable<AidCategoryLookupItem> aimsAidCategories, string defaultfinancetype, tblProjectInfo p, iatiactivity MatchedProject) { #region Commitments if (MatchedProject.IsCommitmentIncluded) { foreach (var trn in MatchedProject.CommitmentsThisDPOnly) { var aimsCommitment = new tblProjectFundingCommitment(); p.tblProjectFundingCommitments.Add(aimsCommitment); aimsCommitment.IDate = DateTime.Now; aimsCommitment.IUser = Iuser; aimsCommitment.IsCommitmentTrustFund = false; //ToDo for co-finance projects it may be different aimsCommitment.FundSourceId = MatchedProject.AimsFundSourceId; aimsCommitment.CommitmentAgreementSignDate = trn.transactiondate?.isodate.ToSqlDateTimeNull(); var aimsCurrency = aimsCurrencies.FirstOrDefault(f => f.IATICode == trn.value.currency); aimsCommitment.CommitmentMaidCurrencyId = aimsCurrency == null ? 1 : aimsCurrency.Id; aimsCommitment.CommittedAmount = trn.value.Value; aimsCommitment.CommitmentEffectiveDate = trn.value?.BBexchangeRateDate; aimsCommitment.ExchangeRateToUSD = trn.value?.BBexchangeRateUSD ?? default(decimal); aimsCommitment.CommittedAmountInUSD = trn.value?.ValueInUSD; aimsCommitment.ExchangeRateToBDT = trn.value?.BBexchangeRateBDT ?? default(decimal); aimsCommitment.CommittedAmountInBDT = trn.value?.ValueInBDT; aimsCommitment.Remarks = MatchedProject.IsDataSourceAIMS ? trn.description?.narrative.n(0).Value : "Importerd From IATI: " + trn.description?.narrative.n(0).Value; aimsCommitment.VerificationRemarks = "Importerd From IATI: "; //AidCategory if (trn.financetype != null && trn.financetype.code.Length > 1) defaultfinancetype = trn.financetype.code.StartsWith("4") ? "400" : "100"; var aimsAidCategory = aimsAidCategories.FirstOrDefault(f => f.IATICode == defaultfinancetype); aimsCommitment.AidCategoryId = aimsAidCategory == null ? 1 : aimsAidCategory.Id; } } #endregion #region PlannedDisbursements if (MatchedProject.IsPlannedDisbursmentIncluded) { foreach (var trn in MatchedProject.PlannedDisbursments) { var aimsPlanDisbursment = new tblProjectFundingPlannedDisbursement(); p.tblProjectFundingPlannedDisbursements.Add(aimsPlanDisbursment); aimsPlanDisbursment.IDate = DateTime.Now; aimsPlanDisbursment.IUser = Iuser; aimsPlanDisbursment.IsPlannedDisbursementTrustFund = false; //ToDo for co-finance projects it may be different aimsPlanDisbursment.FundSourceId = MatchedProject.AimsFundSourceId; aimsPlanDisbursment.PlannedDisbursementPeriodFromDate = trn.periodstart?.isodate.ToSqlDateTimeNull(); aimsPlanDisbursment.PlannedDisbursementPeriodToDate = trn.periodend?.isodate.ToSqlDateTimeNull(); var aimsCurrency = aimsCurrencies.FirstOrDefault(f => f.IATICode == trn.value.currency); aimsPlanDisbursment.PlannedDisbursementCurrencyId = aimsCurrency == null ? 1 : aimsCurrency.Id; aimsPlanDisbursment.PlannedDisburseAmount = trn.value.Value; aimsPlanDisbursment.PlannedDisburseExchangeRateToUSD = trn.value?.BBexchangeRateUSD ?? default(decimal); aimsPlanDisbursment.PlannedDisburseAmountInUSD = trn.value?.ValueInUSD; aimsPlanDisbursment.PlannedDisburseExchangeRateToBDT = trn.value?.BBexchangeRateBDT ?? default(decimal); aimsPlanDisbursment.PlannedDisburseAmountInBDT = trn.value?.ValueInBDT; //aimsPlanDisbursment.VerificationRemarks = project.IsDataSourceAIMS ? trn.description?.narrative.n(0).Value : "Importerd From IATI: " + trn.description?.narrative.n(0).Value; aimsPlanDisbursment.VerificationRemarks = "Importerd From IATI: "; //AidCategory var aimsAidCategory = aimsAidCategories.FirstOrDefault(f => f.IATICode.StartsWith(defaultfinancetype)); aimsPlanDisbursment.AidCategoryId = aimsAidCategory == null ? 1 : aimsAidCategory.Id; } } #endregion #region Disbursements if (MatchedProject.IsDisbursmentIncluded) { foreach (var trn in MatchedProject.DisbursmentsThisDPOnly) { var aimsDisbursment = new tblProjectFundingActualDisbursement(); p.tblProjectFundingActualDisbursements.Add(aimsDisbursment); aimsDisbursment.IDate = DateTime.Now; aimsDisbursment.IUser = Iuser; aimsDisbursment.IsDisbursedTrustFund = false; //ToDo for co-finance projects it may be different aimsDisbursment.FundSourceId = MatchedProject.AimsFundSourceId; aimsDisbursment.DisbursementDate = trn.transactiondate?.isodate ?? default(DateTime).ToSqlDateTime(); aimsDisbursment.DisbursementToDate = trn.transactiondate?.isodate.ToSqlDateTimeNull(); var aimsCurrency = aimsCurrencies.FirstOrDefault(f => f.IATICode == trn.value.currency); aimsDisbursment.DisbursedCurrencyId = aimsCurrency == null ? 1 : aimsCurrency.Id; aimsDisbursment.DisbursedAmount = trn.value.Value; aimsDisbursment.DisbursedExchangeRateToUSD = trn.value?.BBexchangeRateUSD ?? default(decimal); aimsDisbursment.DisbursedAmountInUSD = trn.value?.ValueInUSD; aimsDisbursment.DisbursedExchangeRateToBDT = trn.value?.BBexchangeRateBDT ?? default(decimal); aimsDisbursment.DisbursedAmountInBDT = trn.value?.ValueInBDT; aimsDisbursment.Remarks = MatchedProject.IsDataSourceAIMS ? trn.description?.narrative.n(0).Value : "Importerd From IATI: " + trn.description?.narrative.n(0).Value; aimsDisbursment.VerificationRemarks = "Importerd From IATI: "; //AidCategory if (trn.financetype != null && trn.financetype.code.Length > 1) defaultfinancetype = trn.financetype.code.StartsWith("4") ? "400" : "100"; var aimsAidCategory = aimsAidCategories.FirstOrDefault(f => f.IATICode == defaultfinancetype); aimsDisbursment.AidCategoryId = aimsAidCategory == null ? 1 : aimsAidCategory.Id; } } #endregion }