public async Task <CreateUrlResponse> Handle(CreateUrlCommand request, CancellationToken cancellationToken) { try { var shortUrl = await _repository.CreateAsync(request.TargetUrl, request.LanguageCode, request.VulgarPart); return(new CreateUrlResponse { IsSuccessful = true, Adjective = shortUrl.Adjective.ToTerm(), Adverb = shortUrl.Adverb.ToTerm(), Noun = shortUrl.Noun.ToTerm(), Url = shortUrl.FullUri.ToString(), DateCreated = shortUrl.DateCreated, TargetUrl = shortUrl.TargetUrl, Language = request.LanguageCode }); } catch (Exception exception) { return(new CreateUrlResponse { IsSuccessful = false, Errors = exception .FromHierarchy(ex => ex.InnerException) .Select(ex => new Error { Message = ex.Message }) .ToList() }); } }