public async Task ReturnOkWhenInsertingNewItem() { var client = BuildHttpClient(); var newNews = new NewsAddViewModel { AuthorId = 2, Name = "Test News Article", CategoryId = 2, DeletedByUserId = 1, Description = "Test Description" }; using (var stream = File.OpenRead($"{AppDomain.CurrentDomain.BaseDirectory}/Image/sampleimage.jpg")) { newNews.File = new FormFile(stream, 0, stream.Length, "testfile", Path.GetFileName(stream.Name)) { Headers = new HeaderDictionary(), ContentType = "image/jpg" }; } var httpContent = GetMultipartFormData(newNews); var response = await client.PostAsync("api/News", httpContent); Assert.Equal(HttpStatusCode.OK, response.StatusCode); }
public ActionResult AddNews(NewsAddViewModel model) { if (ModelState.IsValid) { if (model.News.NewsId != 0) { //update var news = new NewsManager().Get(n => n.NewsId == model.News.NewsId); news.NewsContent = model.News.NewsContent; news.NewsImageUrl = model.News.NewsImageUrl; news.NewsTypeId = model.News.NewsTypeId; news.NewsTitle = model.News.NewsTitle; new NewsManager().Update(news); SendMobileNotification(model.News.NewsTitle, "Yeni Haber", news.NewsId); } //insert else { model.News.NewsReleaseDate = DateTime.Now; var inserted = new NewsManager().Add(model.News); SendMobileNotification(model.News.NewsTitle, "Yeni Haber", inserted.NewsId); } return(RedirectToAction("ListNews")); } else { return(RedirectToAction("Index", "Error", new { message = "Model Yanlış" })); } }
public ActionResult Create(NewsAddViewModel vm) { var news = Mapper.Map <NewsAddViewModel, News>(vm); news.UserId = User.Identity.GetUserId(); db.News.Add(news); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Add([ModelBinder(typeof(IpModelBinder))] NewsAddViewModel model) { LogManager.GetCurrentClassLogger().DebugFormat("Ip is: " + model.UserIp); _repository.Save(new News { Content = model.Message }); this.AddSuccessMessage(); return(RedirectToAction("Index")); }
public ActionResult AddNews(int id = 0) { var model = new NewsAddViewModel(); NewsTypeManager newsTypeManager = new NewsTypeManager(); var newsTypes = newsTypeManager.GetAll(); ViewBag.NewsTypes = newsTypes; if (id != 0) { var news = new NewsManager().Get(n => n.NewsId == id); model.News = news; } return(View(model)); }
public IActionResult UpdateNews(int id, string language = "pl", bool success = false) { var news = _repo.News.Where(n => n.ID == id).FirstOrDefault(); if (news != null) { var viewModel = new NewsAddViewModel(news, language, _textRepo) { SuccessFlag = success }; return(View("AddNews", viewModel)); } else { return(View("AddNews", new NewsAddViewModel(_textRepo) { Language = language, SuccessFlag = success })); } }
public async Task ReturnUnauthorizedWhenNotAuthenticated() { var client = _factory.CreateClient(); var newNews = new NewsAddViewModel { AuthorId = 2, Name = "Test 1", CategoryId = 2, Description = "First test", File = null }; string json = JsonConvert.SerializeObject(newNews, Formatting.Indented); var httpContent = new StringContent(json); var response = await client.PostAsync("api/News", httpContent); Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode); }
public async Task <IActionResult> AddNews([FromForm] NewsAddViewModel news) { using (var ms = new MemoryStream()) { news.File.CopyTo(ms); var fileBytes = ms.ToArray(); var newsForCreate = new News { Name = news.Name, Description = news.Description, CategoryId = news.CategoryId, AuthorId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value), Image = fileBytes, ImageType = news.File.ContentType }; await _newsService.AddAsync(newsForCreate); } return(Ok()); }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var news = await _context.News .Include(n => n.Medias) .SingleOrDefaultAsync(n => n.NewsId == id); if (news == null) { return(NotFound()); } if (news.Medias.Count > 0) { } var newsResult = new NewsAddViewModel() { Title = news.Title, Description = news.Description, Group = news.GroupId ?? 0, InSlider = news.InSlider, NewsId = news.NewsId, Tages = news.Tages, Text = news.Text, MediaEdit = news.Medias.Select(m => new MediaEditViewModel() { Id = m.MediaId, Media = m.Name }).ToList() }; return(View(newsResult)); }
public ActionResult add(NewsAddViewModel _model) { if (ModelState.IsValid) { News news = new News() { CreateTime = DateTime.Now, Title = _model.Title, Type = _model.Type, Contents = _model.Contents }; news = newsBll.Add(news); if (news.Id > 0) { return(RedirectToAction("list")); } else { ModelState.AddModelError("", "添加失败!"); } } return(View()); }
public async Task <IActionResult> Edit(int id, NewsAddViewModel newsVM) { if (id != newsVM.NewsId) { return(NotFound()); } if (!ModelState.IsValid) { return(View(newsVM)); } var news = await _context.News.FindAsync(newsVM.NewsId); if (news == null) { return(NotFound()); } news.Description = newsVM.Description; news.GroupId = newsVM.Group; news.InSlider = newsVM.InSlider; news.Tages = newsVM.Tages; news.Text = newsVM.Text; news.Title = newsVM.Title; if (newsVM.Media?.Count > 0) { foreach (var item in newsVM.Media) { if (item.Length > 0) { string getExtensionMedia = Path.GetExtension(item.FileName); string newNameMedia = Guid.NewGuid().ToString(); string filePath = Path.Combine( Directory.GetCurrentDirectory(), "wwwroot", "ImagesNews", newNameMedia + getExtensionMedia); using (var stream = new FileStream(filePath, FileMode.Create)) { item.CopyTo(stream); } var media = new Media() { MediaFileType = MediaFileType.Img, Name = newNameMedia + getExtensionMedia, News = news, }; news.Medias.Add(media); _context.Add(media); } } } await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Add(NewsAddViewModel newsVM) { if (!ModelState.IsValid) { return(View(newsVM)); } var news = new News() { CreateDate = DateTime.Now, Description = newsVM.Description, GroupId = newsVM.Group, InSlider = newsVM.InSlider, Tages = newsVM.Tages, Text = newsVM.Text, Title = newsVM.Title, Views = 0, UserId = 1 }; await _context.AddAsync(news); foreach (var item in newsVM.Media) { if (item.Length > 0) { string getExtensionMedia = Path.GetExtension(item.FileName); string newNameMedia = Guid.NewGuid().ToString(); string filePath = Path.Combine( Directory.GetCurrentDirectory(), "wwwroot", "ImagesNews", newNameMedia + getExtensionMedia); using (var stream = new FileStream(filePath, FileMode.Create)) { item.CopyTo(stream); } var media = new Media() { MediaFileType = MediaFileType.Img, Name = newNameMedia + getExtensionMedia, News = news, }; news.Medias.Add(media); _context.Add(media); } } await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> UploadAsync(NewsAddViewModel viewModel) { try { var file = Request.Form.Files.FirstOrDefault(); if (file == null && viewModel.ImageUri == null) { ModelState.AddModelError("FileNotSelected", "Plik ze zdjęciem nie został wybrany"); } if (ModelState.IsValid) { if (file != null) { viewModel.ImageUri = await _storageFacade.UploadImageBlob(file); } var news = _repo.News.Where(n => n.ID == viewModel.ID).FirstOrDefault(); if (news == null) { news = new News() { ID = viewModel.ID, ImageUrl = viewModel.ImageUri, Timestamp = viewModel.Timestamp }; var headerAsset = new TextAsset() { Key = "news_piece_header" }; var textAsset = new TextAsset() { Key = "news_piece_text" }; news.Header = headerAsset; news.Text = textAsset; switch (viewModel.Language) { case "pl": news.Header.Value_pl = viewModel.Header; news.Text.Value_pl = viewModel.Text; break; case "en": news.Header.Value_en = viewModel.Header; news.Text.Value_en = viewModel.Text; break; } _textRepo.SaveAsset(headerAsset); _textRepo.SaveAsset(textAsset); _repo.Save(news); return(RedirectToAction("UpdateNews", new { id = news.ID, language = viewModel.Language, success = true })); } else { if (file != null) { await _storageFacade.DeleteImageBlob(news.ImageUrl); } news.ImageUrl = viewModel.ImageUri; switch (viewModel.Language) { case "pl": news.Header.Value_pl = viewModel.Header; news.Text.Value_pl = viewModel.Text; break; case "en": news.Header.Value_en = viewModel.Header; news.Text.Value_en = viewModel.Text; break; } _repo.Update(news); return(RedirectToAction("UpdateNews", new { id = news.ID, language = viewModel.Language, success = true })); } } else { return(View("AddNews", viewModel)); } } catch (Exception ex) { ViewData["message"] = ex.Message; ViewData["trace"] = ex.StackTrace; return(View("Error")); } }