public IEnumerable <FormNode> LoadSynonyms() { using (var session = adapter.GetStatelessSession()) { //Load synonyms var formSyn = session.Query <NlpFormSynonyms>() .OrderBy(p => p.Name) .Select(s => s.Name) .Distinct() .ToList(); return(new List <FormNode>(formSyn.Select(s => new FormNode(s)))); } }
public IEnumerable <UnitNode> LoadSynonyms() { using (var session = adapter.GetStatelessSession()) { //Load synonyms var unitSyn = session.Query <NlpUnitSynonyms>() .OrderBy(p => p.Name) .Select(p => p.Name) .Distinct() .ToList(); return(new List <CustomUnitNode>(unitSyn.Select(s => new CustomUnitNode(s)))); } }
public IEnumerable <PrepNode> LoadSynonyms() { using (var session = adapter.GetStatelessSession()) { var forms = session.QueryOver <NlpFormSynonyms>().Select(p => p.Name).List <String>(); var preps = session.QueryOver <NlpPrepNotes>().Select(p => p.Name).List <String>(); var ret = forms .Concat(preps) .Distinct() .Select(p => new PrepNode(p)) .ToList(); return(ret); } }
public IEnumerable <AnomalousNode> LoadSynonyms() { using (var session = adapter.GetStatelessSession()) { var anomalies = session.QueryOver <NlpAnomalousIngredients>() .Fetch(prop => prop.Ingredient).Eager() .Fetch(prop => prop.WeightForm).Eager() .Fetch(prop => prop.VolumeForm).Eager() .Fetch(prop => prop.UnitForm).Eager() .List(); var ret = new List <AnomalousNode>(); foreach (var anon in anomalies) { var name = anon.Name; var ing = anon.Ingredient.IngredientId; var ingName = anon.Ingredient.DisplayName; IngredientForm weightForm = null, volumeForm = null, unitForm = null; if (anon.WeightForm != null) { weightForm = new IngredientForm( anon.WeightForm.IngredientFormId, ing, anon.WeightForm.UnitType, anon.WeightForm.FormDisplayName, anon.WeightForm.UnitName, anon.WeightForm.ConvMultiplier, new Amount(anon.WeightForm.FormAmount, anon.WeightForm.FormUnit)); } if (anon.VolumeForm != null) { volumeForm = new IngredientForm( anon.VolumeForm.IngredientFormId, ing, anon.VolumeForm.UnitType, anon.VolumeForm.FormDisplayName, anon.VolumeForm.UnitName, anon.VolumeForm.ConvMultiplier, new Amount(anon.VolumeForm.FormAmount, anon.VolumeForm.FormUnit)); } if (anon.UnitForm != null) { unitForm = new IngredientForm( anon.UnitForm.IngredientFormId, ing, anon.UnitForm.UnitType, anon.UnitForm.FormDisplayName, anon.UnitForm.UnitName, anon.UnitForm.ConvMultiplier, new Amount(anon.UnitForm.FormAmount, anon.UnitForm.FormUnit)); } var pairings = new DefaultPairings() { Weight = weightForm, Volume = volumeForm, Unit = unitForm }; var ingNode = new AnomalousIngredientNode(ing, ingName, UnitType.Unit, 0, pairings); //TODO: Must load conv type and unit weight ret.Add(new AnomalousNode(name, ingNode)); } return(ret); } }
public IEnumerable <IngredientNode> LoadSynonyms() { using (var session = adapter.GetStatelessSession()) { var nodes = new Dictionary <Guid, IngredientNode>(); var ingsForNlp = session.QueryOver <Models.Ingredients>().List(); var pairingMap = session.QueryOver <NlpDefaultPairings>() .Fetch(prop => prop.WeightForm).Eager() .Fetch(prop => prop.VolumeForm).Eager() .Fetch(prop => prop.UnitForm).Eager() .List() .ToDictionary(p => p.Ingredient.IngredientId); foreach (var ing in ingsForNlp) { var ingId = ing.IngredientId; var name = ing.DisplayName; var convType = ing.ConversionType; Weight unitWeight = ing.UnitWeight; var pairings = new DefaultPairings(); NlpDefaultPairings defaultPairing; if (pairingMap.TryGetValue(ingId, out defaultPairing)) { if (defaultPairing.WeightForm != null) { var wfAmount = new Amount(defaultPairing.WeightForm.FormAmount, defaultPairing.WeightForm.FormUnit); pairings.Weight = new IngredientForm(defaultPairing.WeightForm.IngredientFormId, ingId, Units.Ounce, null, null, defaultPairing.WeightForm.ConvMultiplier, wfAmount); } if (defaultPairing.VolumeForm != null) { var vfAmount = new Amount(defaultPairing.VolumeForm.FormAmount, defaultPairing.VolumeForm.FormUnit); pairings.Volume = new IngredientForm(defaultPairing.VolumeForm.IngredientFormId, ingId, Units.Cup, null, null, defaultPairing.VolumeForm.ConvMultiplier, vfAmount); } if (defaultPairing.UnitForm != null) { var ufAmount = new Amount(defaultPairing.UnitForm.FormAmount, defaultPairing.UnitForm.FormUnit); pairings.Unit = new IngredientForm(defaultPairing.UnitForm.IngredientFormId, ingId, Units.Unit, null, null, defaultPairing.UnitForm.ConvMultiplier, ufAmount); } } if (nodes.ContainsKey(ingId)) { Parser.Log.ErrorFormat("[NLP Loader] Duplicate ingredient key due to bad DB data: {0} ({1})", name, ingId); } else { nodes.Add(ingId, new IngredientNode(ingId, name, convType, unitWeight, pairings)); } } //Load synonyms var ingSynonyms = session.QueryOver <NlpIngredientSynonyms>().List(); var ret = new List <IngredientNode>(); foreach (var syn in ingSynonyms) { var ingId = syn.Ingredient.IngredientId; var alias = syn.Alias; var prepnote = syn.Prepnote; IngredientNode node; if (nodes.TryGetValue(ingId, out node)) //TODO: If this fails, maybe throw an exception? { ret.Add(new IngredientNode(node, alias, prepnote)); } } ret.AddRange(nodes.Values); return(ret); } }