public async Task AddReferralStakeAsync(ReferralStakeDto referralStake) { using (var context = _contextFactory.CreateDataContext()) { var historyEntity = TransactionHistoryEntity.CreateForReferralStakeTokensReservation(referralStake); var referralStakeEntity = ReferralStakeEntity.Create(referralStake); var campaign = await context.Campaigns.FindAsync(referralStake.CampaignId); if (campaign != null && campaign.CampaignName != referralStake.CampaignName) { campaign.CampaignName = referralStake.CampaignName; } if (campaign == null) { campaign = CampaignEntity.Create(referralStake.CampaignId, referralStake.CampaignName); } referralStakeEntity.Campaign = campaign; context.ReferralStakes.Add(referralStakeEntity); context.TransactionHistories.Add(historyEntity); await context.SaveChangesAsync(); } }
public async Task AddAsync(ReferralStakeModel referralStakeModel, TransactionContext txContext = null) { using (var context = _contextFactory.CreateDataContext(txContext)) { var entity = ReferralStakeEntity.Create(referralStakeModel); context.ReferralStakes.Add(entity); await context.SaveChangesAsync(); } }
public async Task SetStatusAsync(string referralId, StakeStatus status, TransactionContext txContext = null) { using (var context = _contextFactory.CreateDataContext(txContext)) { var entity = new ReferralStakeEntity { ReferralId = referralId }; context.ReferralStakes.Attach(entity); entity.Status = status; try { await context.SaveChangesAsync(); } catch (DbUpdateException) { throw new InvalidOperationException("Entity was not found during status update"); } } }
public async Task SetWarningSentAsync(string referralId) { using (var context = _contextFactory.CreateDataContext()) { var entity = new ReferralStakeEntity { ReferralId = referralId }; context.ReferralStakes.Attach(entity); entity.IsWarningSent = true; try { await context.SaveChangesAsync(); } catch (DbUpdateException) { throw new InvalidOperationException("Entity was not found during warning status update"); } } }