Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public Task <T> Update <T>(IAgencyOwner agencyOwner,
                            OrganizationMarketerInput input)
     where T : OrganizationMarketerOutput
 {
     input.OrganizationId = agencyOwner.OrganizationId;
     return(Update <T>(input));
 }
Exemplo n.º 3
0
        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));
 }
Exemplo n.º 7
0
 public Task <T> Update <T>(IOrganizationAccountManager am, OrganizationMarketerInput input) where T : OrganizationMarketerOutput
 {
     throw new NotImplementedException();
 }