static NutritionalInfo GetNutritionalInfoFor(string courseHtml) { var info = new NutritionalInfo(); var titleMatch = Regex.Match(courseHtml, "(<h1)[^>]*[^</]*"); if (titleMatch.Success) { info.Name = titleMatch.Groups[0].Value.Split(">")[1]; } info.Properties = GetInfoProperties(courseHtml); return(info); }
protected override Constants.ProcessOutcome Process() { //eventLog1.WriteEntry("In Importer Process"); var fileName = String.Format( Settings.Default.FileName, DateTime.Now.AddDays(Settings.Default.FileNameDateCheckOffsetDays).ToString("yyyyMMdd")); importer = new NutritionalInfo( Settings.Default.FilePath, fileName, Settings.Default.StagingTableName, Settings.Default.FormatFilePath, Settings.Default.ArchivePath, Settings.Default.SummaryReportErrorToEmailAddress, Settings.Default.SummaryReportFromEmailAddress, Settings.Default.SummaryReportFromAddressFriendlyName, Settings.Default.SqlaServerPath, Settings.Default.SqlbServerPath, Settings.Default.LocalSqlPath, Settings.Default.TemporaryUploadFolder, Settings.Default.DaysToRun); return(importer.Process()); }
public async Task <ActionResult <JournalEntry> > PostJournalEntry([FromBody] JournalEntryModel entry, [FromQuery] int userId) { try { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } { try { this.context.Database.BeginTransaction(); var userExists = await this.context.Users.AnyAsync(x => x.Id == userId); if (userExists) { var userJournalEntryFromDb = await this.context.UserJournalEntries.FirstOrDefaultAsync(x => x.UserId == userId && x.JournalEntryId == entry.Id); if (userJournalEntryFromDb == null) { userJournalEntryFromDb = new UserJournalEntry(); } userJournalEntryFromDb.UserId = userId; var entryFromDb = await this.context.JournalEntries.FirstOrDefaultAsync(x => x.Id == entry.Id); if (entryFromDb == null) { entryFromDb = new JournalEntry(); } entryFromDb.Logged = entry.Logged; entryFromDb.Notes = entry.Notes ?? ""; entryFromDb.Title = entry.Title; if (entryFromDb.Id == 0) { this.context.JournalEntries.Add(entryFromDb); this.context.SaveChanges(); entry.Id = entryFromDb.Id; } userJournalEntryFromDb.JournalEntryId = entry.Id; if (userJournalEntryFromDb.Id == 0) { this.context.UserJournalEntries.Add(userJournalEntryFromDb); } var doseFromDb = this.context.Doses.FirstOrDefault(x => x.Id == entry.Dose.Id); if (doseFromDb == null) { doseFromDb = new Dose(); } doseFromDb.Extended = entry.Dose.Extended; doseFromDb.InsulinAmount = entry.Dose.InsulinAmount; doseFromDb.TimeExtended = entry.Dose.TimeExtended; doseFromDb.TimeOffset = entry.Dose.TimeOffset; doseFromDb.UpFront = entry.Dose.UpFront; if (doseFromDb.Id == 0) { this.context.Doses.Add(doseFromDb); this.context.SaveChanges(); entry.Dose.Id = doseFromDb.Id; } var entryDoseFromDb = this.context.JournalEntryDoses.FirstOrDefault(x => x.JournalEntryId == entryFromDb.Id && x.DoseId == doseFromDb.Id); if (entryDoseFromDb == null) { entryDoseFromDb = new JournalEntryDose(); entryDoseFromDb.JournalEntryId = entryFromDb.Id; entryDoseFromDb.DoseId = doseFromDb.Id; this.context.JournalEntryDoses.Add(entryDoseFromDb); } var nutritionalInfoFromDb = this.context.NutritionalInfos.FirstOrDefault(x => x.Id == entry.NutritionalInfo.Id); if (nutritionalInfoFromDb == null) { nutritionalInfoFromDb = new NutritionalInfo(); } nutritionalInfoFromDb.Protein = entry.NutritionalInfo.Protein; nutritionalInfoFromDb.Calories = entry.NutritionalInfo.Calories; nutritionalInfoFromDb.Carbohydrates = entry.NutritionalInfo.Carbohydrates; if (nutritionalInfoFromDb.Id == 0) { this.context.NutritionalInfos.Add(nutritionalInfoFromDb); this.context.SaveChanges(); entry.NutritionalInfo.Id = nutritionalInfoFromDb.Id; } var entryNutritionalInfoFromDb = this.context.JournalEntryNutritionalInfos.FirstOrDefault(x => x.JournalEntryId == entryFromDb.Id && x.NutritionalInfoId == nutritionalInfoFromDb.Id); if (entryNutritionalInfoFromDb == null) { entryNutritionalInfoFromDb = new JournalEntryNutritionalInfo(); entryNutritionalInfoFromDb.JournalEntryId = entryFromDb.Id; entryNutritionalInfoFromDb.NutritionalInfoId = nutritionalInfoFromDb.Id; this.context.JournalEntryNutritionalInfos.Add(entryNutritionalInfoFromDb); } var journalEntryTagsFromDb = this.context.JournalEntryTags.Where(x => x.JournalEntryId == entryFromDb.Id); foreach (var dbTag in journalEntryTagsFromDb.ToList()) { if (entry.Tags.Where(x => x.Id == dbTag.TagId).Any() == false) { this.context.Remove(dbTag); this.context.SaveChanges(); } } foreach (var tag in entry.Tags) { var tagFromDb = this.context.Tags.FirstOrDefault(x => x.Id == tag.Id); if (tagFromDb == null) { tagFromDb = new Tag(); } tagFromDb.Description = tag.Description; if (tagFromDb.Id == 0) { this.context.Tags.Add(tagFromDb); this.context.SaveChanges(); } var journalEntryTagFromDb = this.context.JournalEntryTags.FirstOrDefault(x => x.JournalEntryId == entryFromDb.Id && x.TagId == tagFromDb.Id); if (journalEntryTagFromDb == null) { journalEntryTagFromDb = new JournalEntryTag(); journalEntryTagFromDb.JournalEntryId = entryFromDb.Id; journalEntryTagFromDb.TagId = tagFromDb.Id; this.context.JournalEntryTags.Add(journalEntryTagFromDb); } } this.context.SaveChanges(); this.context.Database.CurrentTransaction.Commit(); } } catch (Exception e) { this.context.Database.CurrentTransaction.Rollback(); if (e.InnerException != null) { return(BadRequest(e.InnerException.Message)); } else { return(BadRequest(e.Message)); } } } return(CreatedAtAction("GetJournalEntry", new { id = entry.Id }, entry)); } catch (ArgumentNullException e) { return(BadRequest(e.Message)); } catch (Exception e) { if (e.InnerException != null) { return(BadRequest(e.InnerException.Message)); } else { return(BadRequest(e.Message)); } } }