public async Task HandleAsync(RemarkAssignmentRemoved @event) => await _handler .Run(async() => { var remark = await _remarkRepository.GetByIdAsync(@event.RemarkId); if (remark.HasNoValue) { return; } var remarkDto = await _remarkServiceClient.GetAsync <Remark>(@event.RemarkId); remark.Value.Group = remarkDto.Value.Group; remark.Value.State = remarkDto.Value.State; remark.Value.States = remarkDto.Value.States; remark.Value.Assignee = remarkDto.Value.Assignee; remark.Value.UpdatedAt = remarkDto.Value.UpdatedAt; await _remarkRepository.UpdateAsync(remark.Value); await _groupRemarkRepository.AddRemarksAsync(@event.RemarkId, remarkDto.Value.AvailableGroups); await _cache.AddAsync(remark.Value); }) .OnError((ex, logger) => { logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event"); }) .ExecuteAsync();
public async Task HandleAsync(RemarkRenewed @event) { await _handler .Run(async() => { var remark = await _remarkRepository.GetByIdAsync(@event.RemarkId); if (remark.HasNoValue) { return; } var remarkDto = await _remarkServiceClient.GetAsync <Remark>(@event.RemarkId); remark.Value.UpdatedAt = remarkDto.Value.UpdatedAt; remark.Value.State = remarkDto.Value.State; remark.Value.States = remarkDto.Value.States; remark.Value.Photos = remarkDto.Value.Photos; remark.Value.Resolved = false; await _remarkRepository.UpdateAsync(remark.Value); if (remark.Value.AvailableGroups?.Any() == true) { await _groupRemarkRepository.AddRemarksAsync(remark.Value.Id, remark.Value.AvailableGroups); } await _cache.AddAsync(remark.Value, addGeo: true); }) .OnError((ex, logger) => { logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event"); }) .ExecuteAsync(); }
public async Task HandleAsync(RemarkCreated @event) => await _handler .Run(async() => { var remark = await _remarkServiceClient.GetAsync <Remark>(@event.RemarkId); remark.Value.Status = null; if (remark.Value.AvailableGroups?.Any() == true) { await _groupRemarkRepository.AddRemarksAsync(remark.Value.Id, remark.Value.AvailableGroups); } await _remarkRepository.AddAsync(remark.Value); await _remarkCache.AddAsync(remark.Value, addGeo: true, addLatest: true); await _userCache.AddRemarkAsync(remark.Value.Author.UserId, @event.RemarkId); }) .OnError((ex, logger) => { logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event"); }) .ExecuteAsync();