public async Task <IActionResult> SendComment(CommentViewModel viewModel) { if (ModelState.IsValid) { viewModel.PostageDateTime = DateTimeExtensions.DateTimeWithOutMilliSecends(DateTime.Now); viewModel.CommentId = StringExtensions.GenerateId(10); await _uw.BaseRepository <Comment>().CreateAsync(_mapper.Map <Comment>(viewModel)); await _uw.Commit(); TempData["notification"] = "دیدگاه شما با موفقیت ارسال شد و بعد از تایید در سایت نمایش داده می شود."; } return(PartialView("_SendComment", viewModel)); }
public async Task <IActionResult> CreateOrUpdate(NewsViewModel viewModel, string submitButton) { viewModel.Url = viewModel.Url.Trim(); ViewBag.Tags = _uw._Context.Tags.Select(t => t.TagName).ToList(); viewModel.NewsCategoriesViewModel = new NewsCategoriesViewModel(await _uw.CategoryRepository.GetAllCategoriesAsync(), viewModel.CategoryIds); if (!viewModel.FuturePublish) { ModelState.Remove("PersianPublishTime"); ModelState.Remove("PersianPublishDate"); } if (viewModel.NewsId.HasValue()) { ModelState.Remove("ImageFile"); } if (ModelState.IsValid) { if (submitButton != "ذخیره پیش نویس") { viewModel.IsPublish = true; } if (viewModel.ImageFile != null) { viewModel.ImageName = $"news-{StringExtensions.GenerateId(10)}.jpg"; } if (viewModel.NewsId.HasValue()) { var news = _uw.BaseRepository <News>().FindByConditionAsync(n => n.NewsId == viewModel.NewsId, null, n => n.NewsCategories, n => n.NewsTags).Result.FirstOrDefault(); if (news == null) { ModelState.AddModelError(string.Empty, NewsNotFound); } else { if (viewModel.IsPublish && news.IsPublish == false) { viewModel.PublishDateTime = DateTimeExtensions.DateTimeWithOutMilliSecends(DateTime.Now); } if (viewModel.IsPublish && news.IsPublish == true) { if (viewModel.PersianPublishDate.HasValue()) { var persianTimeArray = viewModel.PersianPublishTime.Split(':'); viewModel.PublishDateTime = viewModel.PersianPublishDate.ConvertShamsiToMiladi().Date + new TimeSpan(int.Parse(persianTimeArray[0]), int.Parse(persianTimeArray[1]), 0); } else { viewModel.PublishDateTime = news.PublishDateTime; } } if (viewModel.ImageFile != null) { viewModel.ImageFile.UploadFileBase64($"{_env.WebRootPath}/newsImage/{viewModel.ImageName}"); FileExtensions.DeleteFile($"{_env.WebRootPath}/newsImage/{news.ImageName}"); } else { viewModel.ImageName = news.ImageName; } if (viewModel.NameOfTags.HasValue()) { viewModel.NewsTags = await _uw.TagRepository.InsertNewsTags(viewModel.NameOfTags.Split(','), news.NewsId); } else { viewModel.NewsTags = news.NewsTags; } if (viewModel.CategoryIds == null) { viewModel.NewsCategories = news.NewsCategories; } else { viewModel.NewsCategories = viewModel.CategoryIds.Select(c => new NewsCategory { CategoryId = c, NewsId = news.NewsId }).ToList(); } viewModel.UserId = news.UserId; _uw.BaseRepository <News>().Update(_mapper.Map(viewModel, news)); await _uw.Commit(); ViewBag.Alert = "ذخیره تغییرات با موفقیت انجام شد."; } } else { viewModel.ImageFile.UploadFileBase64($"{_env.WebRootPath}/newsImage/{viewModel.ImageName}"); viewModel.NewsId = StringExtensions.GenerateId(10); viewModel.UserId = User.Identity.GetUserId <int>(); if (viewModel.IsPublish) { if (!viewModel.PersianPublishDate.HasValue()) { viewModel.PublishDateTime = DateTimeExtensions.DateTimeWithOutMilliSecends(DateTime.Now); } else { var persianTimeArray = viewModel.PersianPublishTime.Split(':'); viewModel.PublishDateTime = viewModel.PersianPublishDate.ConvertShamsiToMiladi().Date + new TimeSpan(int.Parse(persianTimeArray[0]), int.Parse(persianTimeArray[1]), 0); } } if (viewModel.CategoryIds != null) { viewModel.NewsCategories = viewModel.CategoryIds.Select(c => new NewsCategory { CategoryId = c }).ToList(); } else { viewModel.NewsCategories = null; } if (viewModel.NameOfTags.HasValue()) { viewModel.NewsTags = await _uw.TagRepository.InsertNewsTags(viewModel.NameOfTags.Split(",")); } else { viewModel.NewsTags = null; } await _uw.BaseRepository <News>().CreateAsync(_mapper.Map <News>(viewModel)); await _uw.Commit(); return(RedirectToAction(nameof(Index))); } } return(View(viewModel)); }