public async Task DeleteNewsAsync(Models.DomainModels.News incomingNews) { bool result; await Task.Run(() => { result = news.Remove(incomingNews); return(result); }); }
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(); } } }
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); }); }