예제 #1
0
        // [System.Web.Http.HttpPost]
        public IHttpActionResult AddNews(NewsModel news) //ApiTest news)  //(int id, string name) //
        //public IHttpActionResult AddNews(int id, string name) //
        {
            string Host = "";

            //IEnumerable<string> origin;
            //Request.Headers.TryGetValues("Origin", out origin);
            //foreach (var i in origin)
            //{
            //    Host = i.ToString();
            //}
            //if (Request.Headers.Contains("Origin"))
            //    Host = Request.Headers.GetValues("Origin");

            //var ip = CommonHelper.GetIP(request)
            //OrderTest callOrderHistory = new OrderTest();
            //callOrderHistory.ID = id;
            //news.WhenCreated = DateTime.Now;
            //int s = news.GroupHeadId;
            _newsService.AddNews(news);

            //var response = this.Request.CreateResponse<CallOrderHistory>(HttpStatusCode.Created, callOrderHistory);
            //string uri = Url.Link("DefaultApi", new { id = callOrderHistory.ID });
            //response.Headers.Location = new Uri(uri);
            //return response;
            //return "SUCCESS";
            return(Ok(news));
        }
예제 #2
0
        public async Task <IActionResult> AddNews([FromBody] AddNewsForm form)
        {
            var news = new New
            {
                Text   = form.Text,
                UserId = UserId
            };
            var id = await _newsService.AddNews(news);

            return(Ok(id));
        }
예제 #3
0
        public async Task <JsonResult> AddNews(AddNewsDto dto, IFormFile uploadFile)
        {
            if (dto.NewsClassifyId <= 0)
            {
                return(Json(new ResponseModel {
                    Code = 0, Result = "请选择新闻分类!"
                }));
            }
            if (string.IsNullOrWhiteSpace(dto.Title))
            {
                return(Json(new ResponseModel {
                    Code = 0, Result = "请填写新闻标题!"
                }));
            }
            if (string.IsNullOrEmpty(dto.Contents))
            {
                return(Json(new ResponseModel {
                    Code = 0, Result = "请输入新闻内容!"
                }));
            }
            if (uploadFile != null)
            {
                var webRootPath     = _hostEnvironment.ContentRootPath;
                var relativeDirPath = "UploadFiles\\NewsPic";
                var absolutePath    = Path.Combine(webRootPath, relativeDirPath);

                var fileTypes = new string[] { ".gif", ".jpg", ".jpeg", ".png", ".bmp" };
                var extension = Path.GetExtension(uploadFile.FileName);
                if (!fileTypes.Contains(extension.ToLower()))
                {
                    return(Json(new ResponseModel {
                        Code = 0, Result = "图片格式有误!"
                    }));
                }

                if (!Directory.Exists(absolutePath))
                {
                    Directory.CreateDirectory(absolutePath);
                }

                var fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + extension;
                var filePath = Path.Combine(absolutePath, fileName);
                await using (var stream = new FileStream(filePath, FileMode.Create))
                {
                    await uploadFile.CopyToAsync(stream);
                }
                dto.Image = Path.Combine("/UploadFiles/NewsPic/", fileName);
            }

            var result = _newsService.AddNews(dto);

            return(Json(result));
        }
예제 #4
0
        public void AddNewsReturnsFalseWhenPostIsNull()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext   = new ApplicationDbContext(options);
            NewsService          newsService = new NewsService(dbContext);
            NewsPost             post        = null;
            bool result = newsService.AddNews(post);

            Assert.AreEqual(false, result);
        }
예제 #5
0
        public async Task AddNewsShouldThrowException()
        {
            News news = new News {
                Title = "chandrayaan2-spacecraft", Content = "The Lander of Chandrayaan-2 was named Vikram after Dr Vikram A Sarabhai", PublishedAt = DateTime.Now, CreatedBy = "Jack"
            };
            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.IsNewsExist(news)).Returns(Task.FromResult(true));
            var service = new NewsService(mockRepo.Object);

            var actual = await Assert.ThrowsAsync <NewsAlreadyExistsException>(() => service.AddNews(news));

            Assert.Equal($"This news is already added", actual.Message);
        }
예제 #6
0
        public void AddNewsActuallyAddsPost()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext   = new ApplicationDbContext(options);
            NewsService          newsService = new NewsService(dbContext);
            NewsPost             post        = new NewsPost();

            bool result = newsService.AddNews(post);

            int newsPostsCount = dbContext.Posts.Count();

            Assert.AreEqual(1, newsPostsCount);
        }
예제 #7
0
        public async Task <JsonResult> AddNews(AddNews news, IFormCollection collection)
        {
            if (news.NewsClassifyId < 0 || string.IsNullOrEmpty(news.Title) || string.IsNullOrEmpty(news.Contents))
            {
                return(Json(new ResponseModel()
                {
                    code = 0,
                    result = "参数有误"
                }));
            }
            var files = collection.Files;

            if (files.Count > 0)
            {
                var    webRootPath     = _host.WebRootPath;
                string relativeDirPath = "\\NewsPic";
                string absolutePath    = webRootPath + relativeDirPath;

                string[] fileTypes = new string[] { ".gif", ".jpg", ".jpeg", ".png", ".bmp" };
                string   extension = Path.GetExtension(files[0].FileName);
                if (fileTypes.Contains(extension.ToLower()))
                {
                    if (!Directory.Exists(absolutePath))
                    {
                        Directory.CreateDirectory(absolutePath);
                    }
                    string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + extension;
                    var    filePath = absolutePath + "\\" + fileName;
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await files[0].CopyToAsync(stream);
                    }
                    news.Image = "/NewsPic/" + fileName;
                    return(Json(_newsService.AddNews(news)));
                }
                return(Json(new ResponseModel()
                {
                    code = 0,
                    result = "图片格式有误"
                }));
            }
            return(Json(new ResponseModel()
            {
                code = 0,
                result = "请上传图片文件"
            }));
        }
        public void AddNews_ShouldAddAsExpected()
        {
            // Arrange
            var news = new News()
            {
                Id          = 6,
                Description = "news desc 6"
            };

            mockNewsRepository.Setup(x => x.AddNews(It.IsAny <News>())).Returns(news);
            var service = new NewsService(Options.Create(new NewsApiSettings()), mockNewsRepository.Object);

            // Act
            var actual = service.AddNews(news);

            //Assert
            Assert.Equal(news, actual);
        }
예제 #9
0
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            AddNewsInDTO inDto = new AddNewsInDTO();

            inDto.Type    = (NewsType)int.Parse(drpType.SelectedValue);
            inDto.Title   = txtTitle.Text.Trim();
            inDto.Author  = txtAuthor.Text.Trim();
            inDto.Context = txtContext.Text.Trim();

            var outDto = NewsService.AddNews(inDto);

            if (!outDto.IsSucceed)
            {
                LogProxy.Error(outDto.ErrorMsg);
            }

            Response.Redirect("/index.aspx");
        }
예제 #10
0
        public void RemoveNewsReturnsFalseWhenPostIdIsIncorrect()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext   = new ApplicationDbContext(options);
            NewsService          newsService = new NewsService(dbContext);
            int      postId = 1;
            NewsPost post   = new NewsPost()
            {
                Id = postId,
            };

            newsService.AddNews(post);
            bool result = newsService.DeleteNews(15);

            Assert.AreEqual(false, result);
        }
예제 #11
0
        public async Task <JsonResult> NewsAdd(AddNews news, IFormCollection collection)
        {
            if (news.NewsClassifyId <= 0 || string.IsNullOrEmpty(news.Title) || string.IsNullOrEmpty(news.Contents))
            {
                return(Json(new ResponseModel {
                    code = 0, result = "wrong params"
                }));
            }
            var files = collection.Files;

            if (files.Count > 0)
            {
                string webRootPath  = _host.WebRootPath;
                string relativeDir  = "/NewsPic";
                string absolutePath = webRootPath + relativeDir;

                string[] fileTypes = new string[] { ".gif", ".jpg", ".jpeg", ".png", ".bmp", };
                string   extension = Path.GetExtension(files[0].FileName);
                if (fileTypes.Contains(extension))
                {
                    if (!Directory.Exists(absolutePath))
                    {
                        Directory.CreateDirectory(absolutePath);
                    }
                    string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + extension;
                    var    filePath = absolutePath + '/' + fileName;

                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await files[0].CopyToAsync(stream);
                    }
                    news.Image = "/NewsPic/" + fileName;
                    return(Json(_newsService.AddNews(news)));
                }
                return(Json(new ResponseModel {
                    code = 0, result = "Invalid image format"
                }));
            }
            return(Json(new ResponseModel {
                code = 0, result = "Please upload image"
            }));
        }
예제 #12
0
        public void GetNewsByIdReturnsNullWhenIdIsIncorrect()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext   = new ApplicationDbContext(options);
            NewsService          newsService = new NewsService(dbContext);
            int      postId = 1;
            NewsPost post   = new NewsPost()
            {
                Id = postId,
            };

            newsService.AddNews(post);

            NewsPost result = newsService.GetNewsById(postId);

            Assert.AreEqual(post, result);
        }
예제 #13
0
        public async Task AddNewsShouldReturnNews()
        {
            News news = new News {
                Title = "chandrayaan2-spacecraft", Content = "The Lander of Chandrayaan-2 was named Vikram after Dr Vikram A Sarabhai", PublishedAt = DateTime.Now, CreatedBy = "Jack"
            };
            News addednews = new News {
                NewsId = 103, Title = "chandrayaan2-spacecraft", Content = "The Lander of Chandrayaan-2 was named Vikram after Dr Vikram A Sarabhai", PublishedAt = DateTime.Now, CreatedBy = "Jack"
            };
            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.IsNewsExist(news)).Returns(Task.FromResult(false));
            mockRepo.Setup(repo => repo.AddNews(news)).Returns(Task.FromResult(addednews));
            var service = new NewsService(mockRepo.Object);

            var actual = await service.AddNews(news);

            Assert.NotNull(actual);
            Assert.IsAssignableFrom <News>(actual);
            Assert.Equal(103, actual.NewsId);
        }
예제 #14
0
        public void RemoveNewsActuallyRemovesNews()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext   = new ApplicationDbContext(options);
            NewsService          newsService = new NewsService(dbContext);
            int      postId = 1;
            NewsPost post   = new NewsPost()
            {
                Id = postId,
            };

            newsService.AddNews(post);
            newsService.DeleteNews(postId);

            int newsPostsCount = dbContext.Posts.Count();

            Assert.AreEqual(0, newsPostsCount);
        }
예제 #15
0
        public async Task <IActionResult> AddNews(ICollection <IFormFile> files, NewsViewModel model)
        {
            if (ModelState.IsValid && files.Count > 0)
            {
                model.Images = new List <Byte[]>();

                foreach (IFormFile file in files)
                {
                    if (file.Length > 0)
                    {
                        BinaryReader reader = new BinaryReader(file.OpenReadStream());
                        model.Images.Add(reader.ReadBytes((int)file.Length));
                    }
                }
                NewsService service = new NewsService();
                service.AddNews(model);
                return(RedirectToAction("News", "Admin"));
            }
            else
            {
                ModelState.AddModelError("", "Некорректно введены данные");
            }
            return(RedirectToAction("News", "Admin"));
        }
        public JsonResult AddNews()
        {
            ResponseModel          resp  = new ResponseModel();
            HttpFileCollectionBase files = Request.Files;
            var header     = Request.Form["SECTION_NAME"].ToString();
            var subHeader  = Request.Form["HTML_SUB_HEADER1"].ToString();
            var content    = Request.Form["HTML_VALUE"].ToString();
            var pathFolder = Server.MapPath("~/assets/images");

            try
            {
                //var pathFolder = Server.MapPath("~/assets/images/news");
                var pathfile = "";
                var fileName = "";
                for (int i = 0; i < files.Count; i++)
                {
                    HttpPostedFileBase file = files[i];

                    pathfile = Path.Combine(pathFolder, file.FileName);
                    fileName = file.FileName;
                    file.SaveAs(pathfile);
                }

                NewsService service = new NewsService();

                if (Session["User"] != null)
                {
                    var          obj    = (LOGON)Session["User"];
                    PAGE_CONTENT source = new PAGE_CONTENT()
                    {
                        MODULE           = "News",
                        SECTION_NAME     = header,
                        HTML_SUB_HEADER1 = subHeader,
                        HTML_VALUE       = content,
                        STATUS           = 1,
                        IMAGE_URL1       = pathfile,
                        IMAGE_URL2       = fileName,
                        CREATED_DATE     = DateTime.Now,
                        UPDATED_DATE     = DateTime.Now,
                        CREATED_BY       = obj.USERNAME,
                        UPDATED_BY       = obj.USERNAME
                    };

                    resp = service.AddNews(source);
                }
                else
                {
                    resp.STATUS        = false;
                    resp.ERROR_MESSAGE = "กรุณาเข้าสู่ระบบใหม่";
                }
            }
            catch (Exception ex)
            {
                resp.STATUS        = false;
                resp.MESSAGE       = pathFolder;
                resp.ERROR_MESSAGE = ex.Message;
            }


            return(Json(resp, JsonRequestBehavior.AllowGet));
        }