public async Task DeleteNewsAsync(Models.DomainModels.News incomingNews)
 {
     bool result;
     await Task.Run(() =>
     {
         result = news.Remove(incomingNews);
         return(result);
     });
 }
Beispiel #2
0
        public async Task <IActionResult> Create(Models.DomainModels.News news, IFormFile imageFile, string newsGroupName)
        {
            if (!ModelState.IsValid)
            {
                return(View(news));
            }

            if (imageFile == null)
            {
                ModelState.AddModelError("ImageName", "عکسی برای خبر آپلود کنید");
                return(View(news));
            }

            if (imageFile.Length > 500000)
            {
                ModelState.AddModelError("ImageName", "حجم عکس بیش از ۵۰۰ کیلوبایت می باشد");
                return(View(news));
            }

            var newsGroup = await _newsGroupRepository.GetNewsGroupByNameAsync(newsGroupName);

            if (newsGroup == null)
            {
                ModelState.AddModelError("NewsGroup.GroupTitle", "گروه خبری موجود نمی باشد");
                return(View(news));
            }

            //var rnd = new Random();
            //news.Id = rnd.Next();
            news.CreateDate  = DateTime.Now;
            news.ImageName   = Guid.NewGuid() + Path.GetExtension(imageFile.FileName);
            news.VisitCount  = 0;
            news.NewsGroupId = newsGroup.Id;
            //news.NewsGroup = newsGroup;

            try
            {
                string savePath = Path.Combine(
                    Directory.GetCurrentDirectory(), "wwwroot/img/news-images",
                    news.ImageName
                    );
                await using var stream = new FileStream(savePath, FileMode.Create);
                await imageFile.CopyToAsync(stream);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            await _newsRepository.InsertNewsAsync(news);

            TempData["Success"] = "خبر با موفقیت افزوده شد";
            return(RedirectToAction("NewsList", "News"));
        }
 public async Task AddCommentForNewsAsync(Comment comment, User user, Models.DomainModels.News news)
 {
     using (var client = new HttpClient())
     {
         StringContent content = new StringContent(JsonConvert.SerializeObject(comment), Encoding.UTF8, "application/json");
         using (var response = await client.PostAsync($"http://{server}:{port}/api/Comments/PostComment", content))
         {
             string apiResponse = await response.Content.ReadAsStringAsync();
         }
     }
 }
        public async Task UpdateNewsAsync(Models.DomainModels.News news)
        {
            using (var httpClient = new HttpClient())
            {
                StringContent newContent = new StringContent(JsonConvert.SerializeObject(news), Encoding.UTF8, "application/json");

                using (var response = await httpClient.PutAsync($"http://{server}:{port}/api/News/PutNews/{news.Id}", newContent))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();
                }
            }
        }
Beispiel #5
0
        public async Task <IActionResult> Edit(Models.DomainModels.News news, IFormFile imageFile)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.GroupId = new SelectList(await _newsGroupRepository.GetAllNewsGroupsAsync(), "Id", "GroupTitle", news.NewsGroupId);
                return(View(news));
            }

            try
            {
                if (imageFile != null)
                {
                    var    oldImage     = news.ImageName;
                    string oldImagePath = Path.Combine(Directory.GetCurrentDirectory(),
                                                       "wwwroot/img/news-images/", oldImage);
                    if (System.IO.File.Exists(oldImagePath))
                    {
                        System.IO.File.Delete(oldImagePath);
                    }
                    else
                    {
                        //_logger.LogError($"The image path cannot be found. Path = {oldImagePath}");
                    }

                    news.ImageName = Guid.NewGuid() + Path.GetExtension(imageFile.FileName);

                    string savePath = Path.Combine(
                        Directory.GetCurrentDirectory(), "wwwroot/img/news-images", news.ImageName
                        );
                    using (var stream = new FileStream(savePath, FileMode.Create))
                    {
                        imageFile.CopyTo(stream);
                    }
                }

                await _newsRepository.UpdateNewsAsync(news);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!(await NewsExists(news.Id)))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            TempData["Success"] = "خبر با موفقیت ثبت شد";

            return(RedirectToAction("NewsList", "News"));
        }
        public async Task DeleteNewsAsync(int newsId)
        {
            var result = new Models.DomainModels.News();

            using (var httpClient = new HttpClient())
            {
                using (var response = await httpClient.DeleteAsync($"http://{server}:{port}/api/News/DeleteNews/{newsId}"))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    result = JsonConvert.DeserializeObject <Models.DomainModels.News>(apiResponse);
                }
            }
        }
        public async Task InsertNewsAsync(Models.DomainModels.News news)
        {
            var result = new Models.DomainModels.News();

            using (var client = new HttpClient())
            {
                StringContent content = new StringContent(JsonConvert.SerializeObject(news), Encoding.UTF8, "application/json");
                using (var response = await client.PostAsync($"http://{server}:{port}/api/News/PostNews", content))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    result = JsonConvert.DeserializeObject <Models.DomainModels.News>(apiResponse);
                }
            }
        }
        public async Task AddCommentForNewsAsync(Comment comment, User user, Models.DomainModels.News news)
        {
            comment.UserId = user.Id;
            comment.News   = news;
            comments.Add(comment);

            var dbNews = await _newsRepository.GetNewsByIdAsync(news.Id);

            if (dbNews.Comments == null)
            {
                dbNews.Comments = new List <Comment>();
            }
            dbNews.Comments.Add(comment);
            await _newsRepository.UpdateNewsAsync(dbNews);
        }
        public async Task <Models.DomainModels.News> GetNewsByIdAsync(int newsId)
        {
            var newsGroup = new Models.DomainModels.News();

            using (var client = new HttpClient())
            {
                using (var response = await client.GetAsync($"http://{server}:{port}/api/News/GetNewsById/{newsId}"))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    newsGroup = JsonConvert.DeserializeObject <Models.DomainModels.News>(apiResponse);
                }
            }

            return(newsGroup);
        }
 public async Task UpdateNewsAsync(Models.DomainModels.News incomingNews)
 {
     await DeleteNewsAsync(incomingNews.Id);
     await InsertNewsAsync(incomingNews);
 }
 public async Task InsertNewsAsync(Models.DomainModels.News addedNews)
 {
     await Task.Run(() => { news.Add(addedNews); });
 }