public async Task <int> CreateCampaign(int agencyid, CreateCampaignViewModel model, string username) { var campaignTypeCharge = await _campaignTypeChargeRepository.GetSingleBySpecAsync(new CampaignTypeChargeSpecification(model.Type)); if (campaignTypeCharge == null) { return(-1); } var settings = await _settingRepository.GetSetting(); // var wallet = await _walletRepository.GetBalance(EntityType.Agency, agencyid); var code = await _campaignRepository.GetValidCode(agencyid); var campaign = model.GetEntity(agencyid, campaignTypeCharge, settings, code, username); if (campaign == null) { return(-1); } await _campaignRepository.AddAsync(campaign); if (campaign.Id > 0) { await CreateCampaignAccountType(campaign.Id, model.AccountType, username); await CreateCampaignOptions(campaign.Id, model, username); return(campaign.Id); } return(-1); }
public async Task <Result <long> > Handle( CreateMonthlyCampaignCommand request, CancellationToken cancellationToken) { var campaign = new Campaign(request.Name); await _campaignRepository.AddAsync(campaign, cancellationToken); await _unitOfWork.Commit(cancellationToken); return(campaign.Id); }