Пример #1
0
        /// <inheritdoc />
        public async Task UpdateArticle(FinwireNew article, List <CompanyCommon> lstCompanies)
        {
            article.DateModified = DateTime.UtcNow;
            if (article.ImageRelativeUrl != null && article.ImageRelativeUrl.Contains("blob.core", StringComparison.OrdinalIgnoreCase))
            {
                article.IsUseAzureStorage = true;
            }

            _dbContext.Entry(article).State = EntityState.Modified;

            var companiesDB = _dbContext.FinwireNew2FinwireCompany
                              .Where(x => x.FinwireNewId == article.Id)
                              .Select(x => new CompanyCommon
            {
                Id      = x.FinwareCompanyId,
                Company = x.FinwireCompany.Company
            });

            (await companiesDB.ToListAsync()).Except(lstCompanies, new CompanyCommonComparer()).ToList().ForEach(x =>
                                                                                                                 _dbContext.FinwireNew2FinwireCompany
                                                                                                                 .Remove(_dbContext.FinwireNew2FinwireCompany.Where(y => y.FinwareCompanyId == x.Id).FirstOrDefault()));

            lstCompanies.Except(companiesDB, new CompanyCommonComparer()).ToList().ForEach(x =>
            {
                var finwireCompany = _dbContext.FinwireCompanies.Where(y => x.Id == y.Id).FirstOrDefault();
                _dbContext.FinwireNew2FinwireCompany.Add(new FinwireNew2FinwireCompany
                {
                    FinwireCompany = finwireCompany, FinwireNew = article
                });
            });

            await _dbContext.SaveChangesAsync();
        }
Пример #2
0
        public async Task <IActionResult> Insert([FromForm] string values)
        {
            var article = new FinwireNew();

            JsonConvert.PopulateObject(values, article);
            var companies = RetrieveCompanies(values);

            if (!TryValidateModel(article))
            {
                return(BadRequest());
            }

            if (article.DateStartVisible == default(DateTime))
            {
                article.DateStartVisible = DateTime.Now;
            }

            await _newsService.AddArticle(article, companies);

            //Facebook stuff disabled for a while
            //var textForFaceBook = (HttpUtility.HtmlDecode(article.NewsText.ToPlainText()));
            //_facebookService.PublishToFacebook(textForFaceBook,
            //  article.ImageRelativeUrl);

            return(Ok());
        }
Пример #3
0
        public static NewsViewModel ToNewsViewModelFromXml(this FinwireNew newsItem, List <string> companies, List <string> socialTags)
        {
            var output = ToNewsViewModel(newsItem);

            output.SocialTags = socialTags;
            output.Companies  = companies;
            output.IsFromXml  = true;
            return(output);
        }
Пример #4
0
        public FinwireNew JoinCompanies(FinwireNew finwireNew, List <string> companies)
        {
            //todo check companies null case !!!!!
            if (finwireNew != null)
            {
                _dbContext.FinwireCompanies.Where(x => companies.Contains(x.Company))
                ?.Include(x => x.FinwireNew2FinwireCompanies);

                return(finwireNew);
            }
            else
            {
                return(finwireNew);
            }
            //?.Join(_dbContext.FinwireCompanies, x=>x.Id, x=>x.
        }
Пример #5
0
        public static FinwireNew ToFinwireNews(this FinWireData finwireData)
        {
            var imgData = ImageHelper.GetImageData(finwireData.SocialTags, finwireData.Companies);

            var r = new FinwireNew
            {
                Guid             = finwireData.Guid,
                Title            = finwireData.Title,
                Subtitle         = finwireData.SubTitle,
                Date             = finwireData.Date,
                NewsText         = finwireData.HtmlText,
                ImageRelativeUrl = ImageHelper.AbsoluteUrlToRelativeUrl(imgData.ImageAbsoluteUrl),
                ImageSource      = imgData.ImageSource,
                ImageLabel       = imgData.Label,
                Slug             = finwireData.TittleSlug,
                IsFinwireNews    = true
            };

            return(r);
        }
Пример #6
0
 public static NewsViewModel ToNewsViewModel(this FinwireNew newsItem)
 {
     return(new NewsViewModel
     {
         Id = newsItem.Id,
         Title = newsItem.Title,
         Subtitle = newsItem.Subtitle,
         Date = newsItem.Date.ToDisplayTime(),
         NewsText = newsItem.NewsText,
         ImageUrl = (newsItem.IsUseAzureStorage ? newsItem.ImageRelativeUrl : String.Format("/{0}", newsItem.ImageRelativeUrl)),
         ImageLabel = newsItem.Label != null ? newsItem.Label : newsItem.ImageLabel,
         TittleSlug = newsItem.Slug,
         Guid = newsItem.Guid,
         IsFinwireNews = newsItem.IsFinwireNews,
         CompanyName = newsItem.CompanyName,
         IsAdvertising = newsItem.IsAdvertising,
         CopyrightLabel = newsItem.IsBorsvarldenArticle ? "Börsvärlden" : "Finwire / Börsvärlden",
         Label = newsItem.Label,
         ImageSource = newsItem.ImageSource,
         IsUseAzureStorage = newsItem.IsUseAzureStorage
     });
 }
Пример #7
0
        /// <inheritdoc />
        public async Task AddArticle(FinwireNew article, List <CompanyCommon> lstCompanies)
        {
            article.DateModified = DateTime.UtcNow;
            if (article.ImageRelativeUrl != null && article.ImageRelativeUrl.Contains("blob.core", StringComparison.OrdinalIgnoreCase))
            {
                article.IsUseAzureStorage = true;
            }

            _dbContext.Entry(article).State = EntityState.Added;
            lstCompanies.ForEach(x =>
            {
                _dbContext.FinwireNew2FinwireCompany
                .Add(new FinwireNew2FinwireCompany
                {
                    FinwireNew     = article,
                    FinwireCompany = _dbContext.FinwireCompanies.Where(y => y.Id == x.Id).FirstOrDefault()
                });
            });


            await _dbContext.SaveChangesAsync();
        }