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();
            }
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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");
                }
            }
        }
コード例 #4
0
        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");
                }
            }
        }