public async Task <IActionResult> Edit(long id, [Bind("Id,SportTypeName,HomeTeamId,AwayTeamId,LocationId,StartDateTime,StartDate,SoldOut")] SportingEvent sportingEvent) { if (id != sportingEvent.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(sportingEvent); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SportingEventExists(sportingEvent.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["AwayTeamId"] = new SelectList(_context.SportTeam, "Id", "Name", sportingEvent.AwayTeamId); ViewData["HomeTeamId"] = new SelectList(_context.SportTeam, "Id", "Name", sportingEvent.HomeTeamId); ViewData["LocationId"] = new SelectList(_context.SportLocation, "Id", "City", sportingEvent.LocationId); ViewData["SportTypeName"] = new SelectList(_context.SportType, "Name", "Name", sportingEvent.SportTypeName); return(View(sportingEvent)); }
public static EmailItemRow Create(SportingEvent item) { EmailItemRow row = new EmailItemRow(); row.Icon = item.LogoImageUrl; row.Text = item.IsValid ? string.Format("Cubs game today at {0} {1} {2}", item.DateTime.ToString("hh:mm tt"), item.IsHomeGame ? "vs" : "@", item.Opponent) : "No data"; return(row); }
public async Task <IActionResult> Create([Bind("Id,SportTypeName,HomeTeamId,AwayTeamId,LocationId,StartDateTime,StartDate,SoldOut")] SportingEvent sportingEvent) { if (ModelState.IsValid) { _context.Add(sportingEvent); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["AwayTeamId"] = new SelectList(_context.SportTeam, "Id", "Name", sportingEvent.AwayTeamId); ViewData["HomeTeamId"] = new SelectList(_context.SportTeam, "Id", "Name", sportingEvent.HomeTeamId); ViewData["LocationId"] = new SelectList(_context.SportLocation, "Id", "City", sportingEvent.LocationId); ViewData["SportTypeName"] = new SelectList(_context.SportType, "Name", "Name", sportingEvent.SportTypeName); return(View(sportingEvent)); }
public SportingEvent GetTodaysCubsGame(DateTime now) { SportingEvent cubsGame = new SportingEvent(); cubsGame.LogoImageUrl = CubsLogoImageUrl; DateTime today = now; HtmlWeb client = new HtmlWeb(); HtmlDocument document = client.Load(CubsScheduleUrl); if (!ReferenceEquals(document, null) && !ReferenceEquals(document.DocumentNode, null)) { HtmlNode table = document.DocumentNode.SelectNode("//div[@id='my-teams-table']"); if (!ReferenceEquals(table, null)) { HtmlNode dateElement = table.SelectNode(string.Format("//td//nobr[text()='{0}']", today.ToString("ddd, MMM d"))); if (!ReferenceEquals(dateElement, null)) { HtmlNode gameRowElement = dateElement.ParentNode.ParentNode; string gameStatusString = gameRowElement.SelectNodeValue("td//li[@class='game-status']"); cubsGame.IsHomeGame = String.Equals(gameStatusString, "vs", StringComparison.InvariantCultureIgnoreCase); cubsGame.Opponent = gameRowElement.SelectNodeValue("td//li[@class='team-name']//a"); HtmlNode timeElement = gameRowElement.SelectNode("td[3]//a"); if (ReferenceEquals(timeElement, null)) { timeElement = gameRowElement.SelectNode("td[3]"); } cubsGame.DateTime = DateTime.Parse(timeElement.InnerHtml).AddHours(-1); cubsGame.IsValid = true; } } } return(cubsGame); }
static void Main(string[] args) { try { Console.WriteLine("Registering services"); RegisterServices(); List <EmailItemRow> emailItems = new List <EmailItemRow>(); // create cubs row Console.WriteLine("Adding Cubs row"); SportingEvent cubsGame = _sportsService.GetTodaysCubsGame(); emailItems.Add(Mapper.Create(cubsGame)); // create weather row Console.WriteLine("Adding weather forecast row"); WeatherForecast weatherForecast = _weatherService.GetTodaysWeatherForecast(); emailItems.Add(Mapper.Create(weatherForecast)); // create train status row Console.WriteLine("Adding CTA status row"); TrainStatus trainStatus = _transportationService.GetTrainStatus(); emailItems.Add(Mapper.Create(trainStatus)); // initialize email Console.WriteLine("Initializing email"); string to = ConfigurationManager.AppSettings[Constants.AppSettingKeys.Services.Email.To]; string from = ConfigurationManager.AppSettings[Constants.AppSettingKeys.Services.Email.From]; string fromDisplayName = ConfigurationManager.AppSettings[Constants.AppSettingKeys.Services.Email.FromDisplayName]; string html = GetEmailTemplate("EmailTemplates/Base.html"); Console.WriteLine("Replacing email template variables (rows)"); foreach (EmailItemRow emailItem in emailItems) { string rowHtml = GetEmailTemplate("EmailTemplates/ItemRow.html"); rowHtml = rowHtml.Replace("##ICON##", emailItem.Icon); rowHtml = rowHtml.Replace("##TEXT##", emailItem.Text); emailItem.Html = rowHtml; } html = html.Replace("##ITEMROWS##", String.Join( string.Empty, emailItems .Select(item => item.Html) .ToArray())); Console.WriteLine("Sending email"); _emailService.SendEmail( to, from, fromDisplayName, "ESG - Daily Digest Email", html); Console.WriteLine("Program finished"); } catch (Exception ex) { Console.WriteLine(ex.InnerException); Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.WriteLine(ex.Data); } }