예제 #1
0
        public ViewModelArticleItem GetArticleItem(int clientId, int articleId)
        {
            var raw = _articleItemRepository.FindBy(o => !o.IsDeleted && o.ArticleId == articleId && o.ClientId == clientId);

            var viewModelArticleItem = new ViewModelArticleItem();

            viewModelArticleItem.InjectFrom <CloneInjection>(raw);

            return(viewModelArticleItem);
        }
예제 #2
0
        public IEnumerable <ViewModelArticleItem> GetAvailableArticleItems(int clientId)
        {
            var raw = _articleItemRepository.FilterBy(o => !o.IsDeleted && o.ClientId == clientId).ToList();

            var converted = raw.Select(item =>
            {
                var viewModelArticleItem = new ViewModelArticleItem();
                viewModelArticleItem.InjectFrom <CloneInjection>(item);
                return(viewModelArticleItem);
            }).ToList();

            return(converted);
        }
예제 #3
0
        public IEnumerable <ViewModelArticleItem> GetRecentArticles(int clientId)
        {
            var raw = GetAvailableArticleItems(clientId);

            raw = raw.OrderByDescending(o => o.DateCreated).Take(5).ToList();

            var converted = raw.Select(item =>
            {
                var viewModelArticleItem = new ViewModelArticleItem();
                viewModelArticleItem.InjectFrom <CloneInjection>(item);
                return(viewModelArticleItem);
            }).ToList();

            return(converted);
        }
예제 #4
0
파일: Articles.svc.cs 프로젝트: ekah/Buncis
        public Response <DtoBuncisArticle> BPInsertArticle(int clientId, DtoBuncisArticle article)
        {
            var service   = IoC.Resolve <IArticleService>();
            var viewModel = new ViewModelArticleItem().InjectFrom <CloneInjection>(article) as ViewModelArticleItem;
            var result    = service.SaveArticleItem(clientId, viewModel);

            var response = new Response <DtoBuncisArticle>();

            response.IsSuccess = result.IsValid;
            response.Message   = result.ValidationSummaryToString();
            if (response.IsSuccess)
            {
                var responseObject = new DtoBuncisArticle().InjectFrom <CloneInjection>(result.RelatedObject) as DtoBuncisArticle;
                response.ResponseObject = responseObject;
            }
            return(response);
        }
예제 #5
0
        public ValidationDictionary <ViewModelArticleItem> SaveArticleItem(int clientId, ViewModelArticleItem viewModelArticle)
        {
            var validator = new ValidationDictionary <ViewModelArticleItem>();

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

            // rule based here


            ArticleItem articleItem;

            if (viewModelArticle.ArticleId <= 0)
            {
                articleItem = new ArticleItem();
                articleItem.InjectFrom <CloneInjection>(viewModelArticle);
                articleItem.DateCreated     = DateTime.UtcNow;
                articleItem.DateLastUpdated = DateTime.UtcNow;
                articleItem.ClientId        = clientId;

                _articleItemRepository.Add(articleItem);
            }
            else
            {
                articleItem = _articleItemRepository.FindBy(o => !o.IsDeleted && o.ArticleId == viewModelArticle.ArticleId && o.ClientId == clientId);
                if (articleItem != null)
                {
                    var createdDate = articleItem.DateCreated;
                    articleItem.InjectFrom <CloneInjection>(viewModelArticle);
                    articleItem.DateLastUpdated = DateTime.UtcNow;
                    articleItem.DateCreated     = createdDate;
                    articleItem.IsDeleted       = false;

                    _articleItemRepository.Update(articleItem);
                }
            }

            UpdateArticleUrl(articleItem.ArticleId);

            var pinged = GetArticleItem(clientId, articleItem.ArticleId);

            validator.IsValid       = true;
            validator.RelatedObject = pinged;
            return(validator);
        }