Exemple #1
0
        public static CharityModel FromEntity(DonorCharity donor)
        {
            var charityModel = new CharityModel();

            charityModel.MapFromEntity(donor);
            return(charityModel);
        }
Exemple #2
0
        public void MapFromEntity(DonorCharity donorCharity)
        {
            var utcNow = DateTime.UtcNow;

            DonorId            = donorCharity.DonorId;
            CharityIdentifier  = donorCharity.Charity.Identifier;
            CharityName        = donorCharity.Charity.CharityName;
            DonationPercentage = donorCharity.DonorCharityProportions
                                 .LastOrDefault(x => utcNow >= x.ValidFromUtc && utcNow <= x.ValidToUtc)?
                                 .DonationPercentage ?? 0;
        }
Exemple #3
0
        private void UpdateDonorCharityProportion(DonorCharity donorCharity)
        {
            var utcNow = DateTime.UtcNow;
            var existingDonorCharityProportion = donorCharity.DonorCharityProportions.LastOrDefault();

            if (existingDonorCharityProportion != null)
            {
                existingDonorCharityProportion.ValidToUtc = utcNow;
            }

            var donorCharityProportion = new DonorCharityProportion
            {
                DonationPercentage = DonationPercentage,
                ValidFromUtc       = utcNow,
                ValidToUtc         = DateTime.MaxValue
            };

            donorCharity.DonorCharityProportions.Add(donorCharityProportion);
        }
Exemple #4
0
        private async Task <DonorCharity> GetOrAddDonorCharity(DonorContext db, long charityId)
        {
            if (!DonorId.HasValue)
            {
                throw new Exception($"'{nameof(DonorId)}' is empty");
            }

            var donorCharity = await GetDonorCharity(db);

            if (donorCharity != null)
            {
                return(donorCharity);
            }

            donorCharity = new DonorCharity
            {
                DonorId   = DonorId.Value,
                CharityId = charityId,
                DonorCharityProportions = new List <DonorCharityProportion>()
            };
            db.DonorCharities.Add(donorCharity);
            return(donorCharity);
        }