Beispiel #1
0
        public ViewModelNewsItem GetNewsItem(int clientId, int newsId)
        {
            var raw = _newsRepository.FindBy(o => !o.IsDeleted && o.NewsId == newsId && o.ClientId == clientId);

            var viewModelNewsItem = new ViewModelNewsItem();

            viewModelNewsItem.InjectFrom <CloneInjection>(raw);

            return(viewModelNewsItem);
        }
Beispiel #2
0
        public IEnumerable <ViewModelNewsItem> GetAvailableNewsItems(int clientId)
        {
            var raw = _newsRepository.FilterBy(o => !o.IsDeleted && o.ClientId == clientId).ToList();

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

            return(converted);
        }
Beispiel #3
0
        public ValidationDictionary <ViewModelNewsItem> SaveNewsItem(int clientId, ViewModelNewsItem viewModelNews)
        {
            var validator = new ValidationDictionary <ViewModelNewsItem>();

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

            // rule based here
            viewModelNews.DateExpired   = viewModelNews.DateExpired.DatePart();
            viewModelNews.DatePublished = viewModelNews.DatePublished.DatePart();

            NewsItem newsItem;

            if (viewModelNews.NewsId <= 0)
            {
                newsItem = new NewsItem();
                newsItem.InjectFrom <CloneInjection>(viewModelNews);
                newsItem.DateCreated     = DateTime.UtcNow;
                newsItem.DateLastUpdated = DateTime.UtcNow;
                newsItem.ClientId        = clientId;

                _newsRepository.Add(newsItem);
            }
            else
            {
                newsItem = _newsRepository.FindBy(o => !o.IsDeleted && o.NewsId == viewModelNews.NewsId && o.ClientId == clientId);
                if (newsItem != null)
                {
                    var createdDate = newsItem.DateCreated;
                    newsItem.InjectFrom <CloneInjection>(viewModelNews);
                    newsItem.DateLastUpdated = DateTime.UtcNow;
                    newsItem.DateCreated     = createdDate;
                    newsItem.IsDeleted       = false;

                    _newsRepository.Update(newsItem);
                }
            }

            // update news url
            UpdateNewsUrl(newsItem.NewsId);

            var pingedNews = GetNewsItem(clientId, newsItem.NewsId);

            validator.IsValid       = true;
            validator.RelatedObject = pingedNews;
            return(validator);
        }
Beispiel #4
0
        public IEnumerable <ViewModelNewsItem> GetRecentNews(int clientId)
        {
            var raw = GetPublishedNewsItem(clientId);

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

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

            return(converted);
        }
Beispiel #5
0
        public IEnumerable <ViewModelNewsItem> GetPublishedNewsItem(int clientId)
        {
            var raw = _newsRepository.FilterBy(o => !o.IsDeleted &&
                                               DateTime.UtcNow >= o.DatePublished &&
                                               DateTime.UtcNow <= o.DateExpired &&
                                               o.ClientId == clientId).ToList();

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

            return(converted);
        }
Beispiel #6
0
        public Response <DtoBuncisNews> BPInsertNews(int clientId, DtoBuncisNews news)
        {
            var service   = IoC.Resolve <INewsService>();
            var viewModel = new ViewModelNewsItem().InjectFrom <CloneInjection>(news) as ViewModelNewsItem;
            var result    = service.SaveNewsItem(clientId, viewModel);

            var response = new Response <DtoBuncisNews>();

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