public static NewsArticle ToNewsArticleEntity( NewsArticleModel newsArticleModel, DbUsersRepository usersRepository, IRepository<Comment> commentsRepository, IRepository<NewsArticle> newsArticlesRepository) { NewsArticle newsArticleEntity = new NewsArticle() { ID = newsArticleModel.ID, Author = usersRepository.GetByNickname(newsArticleModel.Author), Content = newsArticleModel.Content, Date = newsArticleModel.Date, ImageUrl = newsArticleModel.ImageUrl, Rating = newsArticleModel.Rating, Title = newsArticleModel.Title }; foreach (CommentModel comment in newsArticleModel.Comments) { newsArticleEntity.Comments.Add( Extensions.CreateOrLoadComment( comment, commentsRepository, usersRepository, newsArticlesRepository)); } return newsArticleEntity; }
public HttpResponseMessage EditNewsArticle(string sessionKey, int id, NewsArticleModel newsArticle) { User user = null; try { user = this.usersRepository.GetBySessionKey(sessionKey); } catch (Exception) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid user!"); } if (id != newsArticle.ID) { return Request.CreateResponse(HttpStatusCode.BadRequest); } NewsArticle updatedNewsArticle = null; try { updatedNewsArticle = NewsArticlesMapper.ToNewsArticleEntity(newsArticle, usersRepository, commentsRepository); } catch (Exception) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid news article model provided!"); } this.newsArticlesRepository.Update(id, updatedNewsArticle); return Request.CreateResponse(HttpStatusCode.OK); }
public static NewsArticleModel ToNewsArticleModel(NewsArticle newsArticle) { NewsArticleModel newsArticleModel = new NewsArticleModel() { ID = newsArticle.ID, Title = newsArticle.Title, Content = newsArticle.Content, Rating = newsArticle.Rating, ImageUrl = newsArticle.ImageUrl, Date = newsArticle.Date, Author = newsArticle.Author.Nickname }; foreach (Comment comment in newsArticle.Comments) { newsArticleModel.Comments.Add(CommentsMapper.ToCommentModel(comment)); } return newsArticleModel; }
public HttpResponseMessage PostNewsArticle(string sessionKey, NewsArticleModel newsArticle) { User user = null; try { user = this.usersRepository.GetBySessionKey(sessionKey); } catch (Exception) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid user!"); } newsArticle.Author = user.Nickname; NewsArticle newsArticleEntity = null; try { newsArticleEntity = NewsArticlesMapper .ToNewsArticleEntity(newsArticle, usersRepository, commentsRepository, newsArticlesRepository); } catch (Exception) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid news article model provided!"); } newsArticle.ID = newsArticleEntity.ID; if (HttpContext.Current.Request.Files.Count != 0) { string imageUrl = this.GetImageUrl(HttpContext.Current.Request.Files[0]); newsArticleEntity.ImageUrl = imageUrl; newsArticle.ImageUrl = imageUrl; } this.newsArticlesRepository.Add(newsArticleEntity); PubNubSender.Send(newsArticle.Title); return Request.CreateResponse(HttpStatusCode.Created, newsArticle); }
private static void AddImages(NewsArticleModel newsArticle, NewsArticle newsArticleEntity) { foreach (string imageUrl in newsArticle.ImagesUrls) { Entry uploadFileEntry = DropboxUtilities.UploadImage(imageUrl, dropbox, "New_Folder"); DropboxLink imageLink = dropbox.GetShareableLinkAsync(uploadFileEntry.Path).Result; newsArticleEntity.ImagesUrls.Add(imageLink.Url); } }