private async Task <BonusResult> CreateCandidateBonus(Guid candidateId)
        {
            var retVal = new BonusResult();

            var candidate = _candidates
                            .Queryable()
                            .Include(x => x.OrganizationBonusIntent)
                            .First(x => x.Id == candidateId && x.OrganizationBonusIntent == null);

            Guid?organizationId   = candidate.RecruiterOrganizationId;
            var  individualAmount = candidate.RecruitingAgencyBonus;
            var  bonusType        = BonusType.CandidateQualificationBonus;

            var intent = new OrganizationBonusIntent()
            {
                OrganizationId = organizationId.Value,
                CandidateId    = candidateId,
                Amount         = individualAmount,
                BonusType      = bonusType,
                ObjectState    = ObjectState.Added,
            };

            var records = await Repository.InsertAsync(intent, true);

            _logger.LogDebug(GetLogMessage("{0} records updated"), records);

            if (records > 0)
            {
                retVal.BonusId   = intent.Id;
                retVal.Succeeded = true;
            }

            return(await Task.FromResult(retVal));
        }
예제 #2
0
 public void BonusResults(BonusResult e)
 {
     //base.BonusResults(e);
     if (m_BonusResult != null)
     {
         m_BonusResult(e);
     }
 }
예제 #3
0
        public BonusResult getRecoverBonusResult()
        {
            if (m_CurrentBonusGame == null)
            {
                return(null);
            }
            BonusResult bResult = m_CurrentBonusGame.getBonusResult();

            if (bResult != null)
            {
                return(bResult);
            }
            return(null);//throw new NotImplementedException();
        }
        public async Task <BonusResult> Create(CreateBonusIntentOptions options)
        {
            _logger.LogInformation(GetLogMessage("Creating Bonus: {@options}"), options);

            BonusResult retVal = new BonusResult();

            if (options.CandidateId.HasValue)
            {
                return(await CreateCandidateBonus(options.CandidateId.Value));
            }

            if (options.LeadId.HasValue)
            {
                return(await CreateLeadBonus(options.LeadId.Value));
            }

            retVal.ErrorMessage = "LeadID or MarketerId must be specified";
            return(retVal);
        }
예제 #5
0
        private async Task <BonusResult> CreateLeadBonus(Guid leadId)
        {
            var retVal = new BonusResult();

            var lead = await _leads
                       .Queryable()
                       .Include(x => x.IndividualBonusIntent)
                       .Where(x => x.Id == leadId && x.IndividualBonusIntent == null)
                       .FirstAsync();

            Guid?personId         = lead.MarketerId;
            Guid?organizationId   = lead.MarketerOrganizationId;
            var  individualAmount = lead.MarketerBonus;
            var  bonusType        = BonusType.LeadQualificationBonus;

            var intent = new IndividualBonusIntent()
            {
                PersonId       = personId.Value,
                OrganizationId = organizationId.Value,
                LeadId         = leadId,
                Amount         = individualAmount,
                BonusType      = bonusType,
                ObjectState    = ObjectState.Added,
            };

            var records = await Repository.InsertAsync(intent, true);

            _logger.LogDebug(GetLogMessage("{0} records updated"), records);

            if (records > 0)
            {
                retVal.BonusId   = intent.Id;
                retVal.Succeeded = true;
            }

            return(await Task.FromResult(retVal));
        }
예제 #6
0
 public Result <SpinResult, ErrorCode> UpdateUserLastSpinData(int level, UserGameSpinData userGameSpinData, RequestContext <BonusArgs> requestContext, BonusResult bonusResult)
 {
     throw new NotImplementedException();
 }
예제 #7
0
 public void SendBonusResult(BonusResult bResult)
 {
     BonusResult(bResult);
 }
예제 #8
0
        public async Task <bool> NotifyEndGame <T>(RequestContext <T> requestContext, BonusResult bonusResult)
        {
            var w = await userService.GetWallet(requestContext.UserSession);

            return(await w.EndGame(requestContext.Game.Id, bonusResult.RoundId));
        }