private string BuildDetailedError(Article article, Exception exception)
 {
     var sb = new StringBuilder();
     sb.AppendLine(BuildUserFriendlyError(article));
     sb.AppendLine("Article Info:");
     sb.AppendLine(JsonConvert.SerializeObject(article));
     sb.AppendLine();
     sb.AppendLine($"Error Message: {exception.Message}");
     sb.AppendLine("Stack Trace:");
     sb.AppendLine(exception.StackTrace);
     return sb.ToString();
 }
 private static string BuildUserFriendlyError(Article article)
 {
     return $"Failed to update an article: {article.Title}";
 }
        public IHttpActionResult Put(Article article)
        {
            _articleService.Update(article);

            return Ok();
        }
 public UpdateArticleException(Article article, Exception exception)
     : base(BuildUserFriendlyError(article), exception)
 {
     DetailedError = BuildDetailedError(article, exception);
 }
 public async Task Put(Article article)
 {
     var resource = _client.BuildUrl("api/article/");
     await _client.Put(resource, article);
 }