/// <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(); }
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()); }
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); }
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. }
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); }
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 }); }
/// <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(); }