public async Task <T> Update <T>(OrganizationMarketerInput input) where T : OrganizationMarketerOutput { _logger .LogTrace(GetLogMessage($@"Marketer Id: {input.MarketerId}, Organization Id: {input.OrganizationId}")); var entity = await Repository.Queryable().GetById(input.OrganizationId, input.MarketerId) .FirstAsync(); entity.Updated = DateTimeOffset.UtcNow; entity.MarketerStream = input.MarketerStream; entity.MarketerBonus = input.MarketerBonus; Repository.UpdateAsync(entity, true) .Wait(); var output = await GetById <T>(input.MarketerId, input.OrganizationId); await Task.Run(() => { RaiseEvent(new OrganizationMarketerUpdatedEvent <T> { OrganizationMarketerOutput = output }); }); return(output); }
public Task <T> Update <T>(IAgencyOwner agencyOwner, OrganizationMarketerInput input) where T : OrganizationMarketerOutput { input.OrganizationId = agencyOwner.OrganizationId; return(Update <T>(input)); }
public async Task <IActionResult> AddMarketer([FromRoute] Guid organizationId, [FromRoute] Guid personId, [FromBody] OrganizationMarketerInput input) { var result = await _marketerService .Create <AgencyOwnerOrganizationMarketerOutput>(_agencyOwner, input); return(Ok(result)); }
public Task <T> Create <T>(IAgencyOwner ao, OrganizationMarketerInput input) where T : OrganizationMarketerOutput { _logger.LogInformation(GetLogMessage("ao creating org marketer")); input.OrganizationId = ao.OrganizationId; return(Create <T>(input)); }
public async Task <T> Create <T>(OrganizationMarketerInput model) where T : OrganizationMarketerOutput { _logger.LogInformation(GetLogMessage($@"Marketer: {model.MarketerId}, Organization: {model.OrganizationId}")); var entity = await Repository.Queryable().IgnoreQueryFilters() .FirstOrDefaultAsync(x => x.MarketerId == model.MarketerId && x.OrganizationId == model.OrganizationId); if (entity != null) { _logger.LogDebug(GetLogMessage("Existing marketer found, deleted: {0}"), entity.IsDeleted); if (entity.IsDeleted) { _logger.LogDebug(GetLogMessage("un-deleting org_marketer")); entity.IsDeleted = false; entity.UpdatedById = _userInfo.UserId; entity.Updated = DateTimeOffset.UtcNow; entity.MarketerStream = model.MarketerStream; entity.MarketerBonus = model.MarketerBonus; entity.InjectFrom(model); var marketerOutput = await Repository.UpdateAsync(entity, true); _logger.LogDebug(GetLogMessage("{0} records updated in database"), marketerOutput); } } else { _logger.LogDebug(GetLogMessage("No marketer found, creating...")); entity = new OrganizationMarketer() { UpdatedById = _userInfo.UserId, CreatedById = _userInfo.UserId, }.InjectFrom(model) as OrganizationMarketer; var marketerOutput = await Repository.InsertAsync(entity, true); _logger.LogDebug(GetLogMessage("{0} records updated in database"), marketerOutput); } var output = await GetById <T>(model.MarketerId, model.OrganizationId); await Task.Run(() => { RaiseEvent(new OrganizationMarketerCreatedEvent <T> { OrganizationMarketerOutput = output }); }); return(output); }
public Task <T> GetById <T>(OrganizationMarketerInput input) where T : OrganizationMarketerOutput { return(GetById <T>(input.MarketerId, input.OrganizationId)); }
public Task <T> Update <T>(IOrganizationAccountManager am, OrganizationMarketerInput input) where T : OrganizationMarketerOutput { throw new NotImplementedException(); }