public static CharityModel FromEntity(DonorCharity donor) { var charityModel = new CharityModel(); charityModel.MapFromEntity(donor); return(charityModel); }
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; }
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); }
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); }