/// <summary> /// Manage user group /// </summary> /// <param name="operation">the operation</param> /// <param name="model">the user group model</param> /// <returns></returns> public ResponseModel ManageNews(GridOperationEnums operation, NewsModel model) { IEnumerable <int> categoryIds; ResponseModel response; Mapper.CreateMap <NewsModel, EntityModel.News>(); EntityModel.News news; switch (operation) { case GridOperationEnums.Edit: news = _newsRepository.GetById(model.Id); news.Title = model.Title; news.Status = model.Status; news.IsHotNews = model.IsHotNews; response = Update(news); categoryIds = model.Categories.Split(',').Select(int.Parse).ToList(); var currentCategories = news.NewsNewsCategories.Select(nc => nc.Id).ToList(); foreach (var id in currentCategories) { if (!categoryIds.Contains(id)) { _newsNewsCategoryRepository.Delete(id); } } foreach (var categoryId in categoryIds) { if (currentCategories.All(n => n != categoryId)) { var newsNewsCategory = new NewsNewsCategory { NewsId = news.Id, NewsCategoryId = categoryId }; _newsNewsCategoryRepository.Insert(newsNewsCategory); } } return(response.SetMessage(response.Success ? _localizedResourceServices.T("AdminModule:::News:::Messages:::UpdateSuccessfully:::Update news successfully.") : _localizedResourceServices.T("AdminModule:::News:::Messages:::UpdateFailure:::Update news failed. Please try again later."))); //case GridOperationEnums.Add: // news = Mapper.Map<NewsModel, EntityModel.News>(model); // categoryIds = model.Categories.Split(',').Select(int.Parse); // news.Status = model.Status; // news.Content = string.Empty; // news.Description = string.Empty; // news.Updated = DateTime.Now; // news.UpdatedBy = WorkContext.CurrentUser.Email; // response = Insert(news); // foreach (var categoryId in categoryIds) // { // var newsNewsCategory = new NewsNewsCategory // { // NewsId = news.Id, // NewsCategoryId = categoryId // }; // _newsNewsCategoryRepository.Insert(newsNewsCategory); // } // return response.SetMessage(response.Success ? // _localizedResourceServices.T("AdminModule:::News:::Messages:::CreateSuccessfully:::Create news successfully.") // : _localizedResourceServices.T("AdminModule:::News:::Messages:::CreateFailure:::Insert news failed. Please try again later.")); case GridOperationEnums.Del: news = _newsRepository.GetById(model.Id); if (news != null) { foreach (var currentCategory in news.NewsNewsCategories) { _newsNewsCategoryRepository.Delete(currentCategory); } response = Delete(model.Id); return(response.SetMessage(response.Success ? _localizedResourceServices.T("AdminModule:::News:::Messages:::DeleteSuccessfully:::Delete news successfully.") : _localizedResourceServices.T("AdminModule:::News:::Messages:::DeleteFailure:::Delete news failed. Please try again later."))); } break; } return(new ResponseModel { Success = false, Message = _localizedResourceServices.T("AdminModule:::News:::Messages:::ObjectNotFounded:::News is not founded.") }); }