using System.ComponentModel.DataAnnotations; using HackerNet.Domain; namespace HackerNet.Application; public class LinkService { private readonly ILinkRepository _repository; public LinkService(ILinkRepository repository) { _repository = repository; } public Guid PublishLink(PublishLinkCommand cmd) { var link = new Link(cmd.Url, cmd.Description); _repository.Add(link); return link.Id; } } public class PublishLinkCommand { [Required(ErrorMessage = "L'url est requise")] [Display(Name = "Url du site")] [Url] public string Url { get; set; } [Required(ErrorMessage = "La description est obligatoire")] public string Description { get; set; } }