示例#1
0
        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);
        }
示例#2
0
 public Task AddAsync(ISiteResource resource) => _repository.AddAsync(resource as SiteResource);