public ActionResult Create(NewsModel model, FormCollection frm, bool continueEditing) { if (!_permissionService.Authorize("ManageNews")) { return(AccessDeniedView()); } var currentUser = _userContext.CurrentUser; // Check for duplicate news, if any var newNews = new News(); var _news = _newsService.GetNewsByShortName(model.ShortName); if (_news != null) { ModelState.AddModelError("ShortName", "A News with the same name already exists. Please choose a different name."); } model.UserId = currentUser.Id; if (ModelState.IsValid) { newNews = model.ToEntity(); newNews.CreatedOn = newNews.ModifiedOn = DateTime.Now; _newsService.Insert(newNews); // Save URL Record model.SystemName = newNews.ValidateSystemName(model.SystemName, model.ShortName, true); _urlService.SaveSlug(newNews, model.SystemName); // Update Url newNews.Url = Url.RouteUrl("News", new { name = newNews.GetSystemName() }, "http"); _newsService.Update(newNews); } else { model.AvailableStatuses = (from NewsStatus d in Enum.GetValues(typeof(NewsStatus)) select new SelectListItem { Text = EnumExtensions.GetDescriptionByValue <NewsStatus>(Convert.ToInt32(d)), Value = Convert.ToInt32(d).ToString(), Selected = (Convert.ToInt32(d) == model.NewsStatusId) }).ToList(); model.AvailableAcadmicYears = _smsService.GetAllAcadmicYears().Select(x => new SelectListItem() { Text = x.Name.Trim(), Value = x.Id.ToString(), Selected = x.IsActive }).ToList(); ErrorNotification("An error occured while creating news. Please try again."); return(View(model)); } SuccessNotification("News created successfully."); if (continueEditing) { return(RedirectToAction("Edit", new { id = newNews.Id })); } return(RedirectToAction("List")); }
/// <summary> /// Add News /// </summary> /// <param name="model"></param> /// <param name="token"></param> /// <returns></returns> public async Task <NewsDto> AddNewsAsync(NewsModel model, CancellationToken token = default) { var entity = model.ToEntity(); entity.PostDate = DateTime.Now; await _NewsRepository.AddAsync(entity, token); return(await GetNewsByIdAsync(entity.Id, token)); }