Example #1
0
        public IEnumerable <ViewModelArticleCategory> GetArticleCategories(int clientId)
        {
            var raw = _articleCategoryRepository.FilterBy(o => !o.IsDeleted && o.ClientId == clientId).ToList();

            var converted = raw.Select(item =>
            {
                var viewModelArticleCategory = new ViewModelArticleCategory();
                viewModelArticleCategory.InjectFrom(item);
                return(viewModelArticleCategory);
            }).ToList();

            return(converted);
        }
Example #2
0
        public Response <DtoBuncisArticleCategory> BPUpdateArticleCategory(int clientId, DtoBuncisArticleCategory articleCategory)
        {
            var service   = IoC.Resolve <IArticleService>();
            var viewModel = new ViewModelArticleCategory().InjectFrom <CloneInjection>(articleCategory) as ViewModelArticleCategory;
            var result    = service.UpdateArticleCategory(clientId, viewModel);

            var response = new Response <DtoBuncisArticleCategory>();

            response.IsSuccess = result.IsValid;
            response.Message   = result.ValidationSummaryToString();
            if (response.IsSuccess)
            {
                var responseObject = new DtoBuncisArticleCategory().InjectFrom <CloneInjection>(result.RelatedObject) as DtoBuncisArticleCategory;
                response.ResponseObject = responseObject;
            }

            return(response);
        }
Example #3
0
        private ValidationDictionary <ViewModelArticleCategory> SaveArticleCategory(int clientId,
                                                                                    ViewModelArticleCategory viewModelArticleCategory)
        {
            var validator = new ValidationDictionary <ViewModelArticleCategory>();

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

            // rule based here
            var existingWithSameName = _articleCategoryRepository
                                       .FilterBy(o => o.ArticleCategoryName.ToLower() == viewModelArticleCategory.ArticleCategoryName.ToLower() &&
                                                 o.ClientId == clientId &&
                                                 !o.IsDeleted)
                                       .ToList();

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

            ArticleCategory articleCategory;

            if (viewModelArticleCategory.ArticleCategoryId > 0)
            {
                articleCategory = _articleCategoryRepository
                                  .FindBy(o => o.ArticleCategoryId == viewModelArticleCategory.ArticleCategoryId && o.ClientId == clientId);
                var dateCreated = articleCategory.DateCreated;
                articleCategory.InjectFrom(viewModelArticleCategory);
                articleCategory.ClientId        = clientId;
                articleCategory.DateLastUpdated = DateTime.UtcNow;
                articleCategory.DateCreated     = dateCreated;
                _articleCategoryRepository.Update(articleCategory);
            }
            else
            {
                articleCategory = new ArticleCategory();
                articleCategory.InjectFrom(viewModelArticleCategory);
                articleCategory.ClientId        = clientId;
                articleCategory.DateCreated     = DateTime.UtcNow;
                articleCategory.DateLastUpdated = DateTime.UtcNow;
                _articleCategoryRepository.Add(articleCategory);
            }

            var rawPinged = _articleCategoryRepository
                            .FindBy(o => o.ArticleCategoryId == articleCategory.ArticleCategoryId && o.ClientId == clientId);
            var pinged = new ViewModelArticleCategory().InjectFrom(rawPinged) as ViewModelArticleCategory;

            validator.IsValid       = true;
            validator.RelatedObject = pinged;
            return(validator);
        }
Example #4
0
 public ValidationDictionary <ViewModelArticleCategory> UpdateArticleCategory(int clientId,
                                                                              ViewModelArticleCategory viewModelArticleCategory)
 {
     return(SaveArticleCategory(clientId, viewModelArticleCategory));
 }