Esempio n. 1
0
        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ış" }));
            }
        }
Esempio n. 3
0
        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));
        }
Esempio n. 6
0
        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
                }));
            }
        }
Esempio n. 7
0
        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());
        }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
 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());
 }
Esempio n. 11
0
        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"));
        }
Esempio n. 12
0
        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"));
        }
Esempio n. 13
0
        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"));
            }
        }