Exemple #1
0
        private ValidationDictionary <ViewModelNewsCategory> SaveNewsCategory(int clientId, ViewModelNewsCategory viewModelNewsCategory)
        {
            var validator = new ValidationDictionary <ViewModelNewsCategory>();

            if (viewModelNewsCategory == null)
            {
                validator.IsValid = false;
                validator.AddError("", "The XX you're trying to save is null");
                return(validator);
            }

            // rule based here
            var existingWithSameName = _newsCategoryRepository
                                       .FilterBy(o => o.NewsCategoryName.ToLower() == viewModelNewsCategory.NewsCategoryName.ToLower() &&
                                                 o.ClientId == clientId &&
                                                 !o.IsDeleted)
                                       .ToList();

            if (existingWithSameName.Any())
            {
                var haveSameId = viewModelNewsCategory.NewsCategoryId <= 0 ||
                                 (viewModelNewsCategory.NewsCategoryId > 0 &&
                                  existingWithSameName.Any(o => o.NewsCategoryId != viewModelNewsCategory.NewsCategoryId));
                if (haveSameId)
                {
                    validator.IsValid = false;
                    validator.AddError("", "News Category with same name is already existed");
                    return(validator);
                }
            }

            NewsCategory newsCategory;

            if (viewModelNewsCategory.NewsCategoryId > 0)
            {
                newsCategory = _newsCategoryRepository.FindBy(o => o.NewsCategoryId == viewModelNewsCategory.NewsCategoryId);
                var dateCreated = newsCategory.DateCreated;
                newsCategory.InjectFrom(viewModelNewsCategory);
                newsCategory.ClientId        = clientId;
                newsCategory.DateLastUpdated = DateTime.UtcNow;
                newsCategory.DateCreated     = dateCreated;
                _newsCategoryRepository.Update(newsCategory);
            }
            else
            {
                newsCategory = new NewsCategory();
                newsCategory.InjectFrom(viewModelNewsCategory);
                newsCategory.DateCreated     = DateTime.UtcNow;
                newsCategory.DateLastUpdated = DateTime.UtcNow;
                newsCategory.ClientId        = clientId;
                _newsCategoryRepository.Add(newsCategory);
            }

            var rawPinged = _newsCategoryRepository.FindBy(o => o.NewsCategoryId == newsCategory.NewsCategoryId && o.ClientId == clientId);
            var pinged    = new ViewModelNewsCategory().InjectFrom(rawPinged) as ViewModelNewsCategory;

            validator.IsValid       = true;
            validator.RelatedObject = pinged;
            return(validator);
        }
Exemple #2
0
        private void EditCategoryForNews(AddNewsModel newsModel)
        {
            var selectedNewsCategory = _newsCategoryRepository.GetAll().Where(c => c.NewsId == newsModel.Id).ToList();

            foreach (var item in selectedNewsCategory)
            {
                _newsCategoryRepository.Delete(item);
            }
            if (newsModel.SelectedCategory != null)
            {
                foreach (var item in newsModel.SelectedCategory)
                {
                    _newsCategoryRepository.Add(new NewsCategory
                    {
                        NewsId     = newsModel.Id,
                        CategoryId = item
                    });
                }
            }
        }