public async Task <ArticleClientData> GetArticleAsync(int id) { HttpResponseMessage response = await _client.GetAsync("api/Articles/" + id); if (response.IsSuccessStatusCode) { ArticleDTO article = await response.Content.ReadAsAsync <ArticleDTO>(); ArticleClientData clientArticle = new ArticleClientData(article); foreach (var image in clientArticle.Images) { image.IsUploaded = true; } clientArticle.IsUploaded = true; return(clientArticle); } throw new NetworkException("Service returned response: " + response.StatusCode); }
public async Task <Boolean> SaveArticleAsync(ArticleClientData article) { var errors = ValidateArticle(article); if (errors.Count > 0) { string errorsString = ""; foreach (string error in errors) { errorsString += String.Format("- {0}\n", error); } throw new NetworkException(errorsString); } List <ImageClientData> images = new List <ImageClientData>(article.Images); images = images.FindAll(elem => !elem.IsDeleted); List <ImageClientData> newImages = images.FindAll(elem => elem.IsUploaded == false); if (!article.IsUploaded) { HttpResponseMessage putResponse = await _client.PutAsJsonAsync("api/Articles", (ArticleDTO)article); if (putResponse.IsSuccessStatusCode) { ArticleDTO responseData = await putResponse.Content.ReadAsAsync <ArticleDTO>(); article.Id = responseData.Id; article.CreatedAt = responseData.CreatedAt; article.IsUploaded = true; } else { throw new NetworkException("Service returned response: " + putResponse.StatusCode); } } try { foreach (ImageClientData image in newImages) { await UploadImageAsync(image, article.Id); } } catch (Exception ex) { throw ex; } finally { article.Images = images; } /*ArticleDTO data = new ArticleDTO() * { * Id = article.Id, * Name = article.Name, * Content = article.Content, * Lead = article.Lead, * Images = article.Images, * };*/ HttpResponseMessage response = await _client.PostAsJsonAsync("api/Articles/" + article.Id, (ArticleDTO)article); if (response.IsSuccessStatusCode) { return(true); } else { throw new NetworkException("Service returned response: " + response.StatusCode); } }
public ArticleClientData(ArticleClientData data) : this((ArticleDTO)data) { IsUploaded = data.IsUploaded; }