Ejemplo n.º 1
0
        public HttpResponseMessage Post([FromBody] ShareLinkInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Provided data is invalid");
            }

            var shareLink = new ShareLink(model.Link, model.Topic, model.EmailOfSharer, model.EmailsOfReceivers);
            _bus.Send(shareLink);
            var response = Request.CreateResponse(HttpStatusCode.Created);
            return response;
        }
Ejemplo n.º 2
0
        public void Handle(ShareLink cmd)
        {
            var linkId = new LinkId(cmd.Link);
            var link = _repository.GetById(linkId);

            if (link == null)
            {
                var url = new Uri(cmd.Link);
                link = new Link(url);
            }
            var topic = new Topic(cmd.Topic);
            var emailsOfReceivers = cmd.EmailsOfReceivers.Select(x => new Receiver(new EmailAddress(x))).ToArray();
            var receivers = new ListOfReceivers(emailsOfReceivers);
            var sharer = new Sharer(new EmailAddress(cmd.EmailOfSharer));
            link.Share(topic, sharer, receivers);
            _repository.Save(link);
        }