public async Task HandleAsync(CreateSiteResource message, IRequestInfo requestInfo) { if (!await _siteRepository.IsSiteIdValid(message.SiteId)) { _publisher.PublishEvent(new SiteResourceRejected(Codes.InvalidSiteId, "The site in which to add the resource could not be found."), requestInfo); return; } ISiteResource resource = null; try { resource = _factory.CreateSiteResource(message.SiteId, message.Name, message.Identifier); } catch (VmsException e) { _publisher.PublishEvent(new SiteResourceRejected(e.Code, e.Message), requestInfo); } await _siteResourceRepository.AddAsync(resource); _publisher.PublishEvent(new SiteResourceCreated(), requestInfo); }
public Task AddAsync(ISiteResource resource) => _repository.AddAsync(resource as SiteResource);