Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 public ArticleClientData(ArticleClientData data) : this((ArticleDTO)data)
 {
     IsUploaded = data.IsUploaded;
 }