public T ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <T> ) { return(((IValueReader <T>)valueReader).ReadValue()); } return(DConvert <T> .Convert(valueReader.DirectRead())); }
public T ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <T> ) { return(((IValueReader <T>)valueReader).ReadValue()); } object directValue = valueReader.DirectRead(); if (directValue is T || directValue == null) { return((T)directValue); } return(DConvert <T> .Convert(directValue)); }
public T?ReadValue(IValueReader valueReader) { if (valueReader.GetBasicType() == BasicTypes.Null) { var directValue = valueReader.DirectRead(); if (directValue == null) { return(null); } return(DConvert <T> .Convert(directValue)); } return(ValueInterface <T> .Content.ReadValue(valueReader)); }
public TimeSpan ReadValue(IValueReader valueReader) { object directValue = valueReader.DirectRead(); if (directValue is TimeSpan) { return((TimeSpan)directValue); } if (directValue is string) { return(TimeSpan.Parse((string)directValue)); } return(DConvert <TimeSpan> .Convert(directValue)); }
public DateTimeOffset ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <DateTimeOffset> dateTimeOffsetReader) { return(dateTimeOffsetReader.ReadValue()); } object directValue = valueReader.DirectRead(); if (directValue is DateTimeOffset) { return((DateTimeOffset)directValue); } if (directValue is string) { return(DateTimeOffset.Parse((string)directValue)); } return(DConvert <DateTimeOffset> .Convert(directValue)); }
/* * public Race ConvertRace(object data) * { * compendiumRace irace = (compendiumRace)data; * var r = new Race() * { * Name = irace.name, * Ability = irace.ability, * Proficiency = irace.proficiency, * //Modifier = irace.modifier, * Size = irace.size, * Speed = irace.speed, * SpellAbility = irace.spellAbility, * ImportDate = DateTime.UtcNow, * ImportSource = "Lion's Den XML", * }; * if (irace.modifier != null) * { * r.Modifier = new RaceModifier() * { * Category = irace.modifier.category, * Value = irace.modifier.Value, * }; * } * r.Traits = new List<RaceTrait>(); * foreach (var t in irace.trait) * { * var rt = new RaceTrait * { * Name = t.name, * Special = t.special, * }; * rt.Text = ""; * foreach (var s in t.text) * { * if (s.Trim().StartsWith("Source:")) * { * r.Source = s.Replace("Source:", "").Trim(); * r.SourceAbr = DConvert.SourceAbbreviation(r.Source); * } * else * { * rt.Text += s; * } * } * r.Traits.Add(rt); * } * return r; * } */ /* * public EquipmentItem ConvertItem(object data) * { * compendiumItem iItem = (compendiumItem)data; * var item = new EquipmentItem(); * item.ImportDate = DateTime.UtcNow; * item.ImportSource = "Lion's Den XML"; * * for (int i = 0; i < iItem.ItemsElementName.Length; i++) * { * switch (iItem.ItemsElementName[i]) * { * case ItemsChoiceType.ac: * item.AC = (int)iItem.Items[i]; * break; * case ItemsChoiceType.detail: * item.Detail = (string)iItem.Items[i]; * break; * case ItemsChoiceType.dmg1: * item.Dmg1 = (string)iItem.Items[i]; * break; * case ItemsChoiceType.dmg2: * item.Dmg2 = (string)iItem.Items[i]; * break; * case ItemsChoiceType.dmgType: * item.DmgType = (string)iItem.Items[i]; * break; * case ItemsChoiceType.magic: * item.Magic = ((int)iItem.Items[i] > 0 ? true : false); * break; * case ItemsChoiceType.modifier: * item.Modifier.Category = ((compendiumItemModifier)iItem.Items[i]).category; * item.Modifier.Value = ((compendiumItemModifier)iItem.Items[i]).Value; * break; * case ItemsChoiceType.name: * item.Name = (string)iItem.Items[i]; * break; * case ItemsChoiceType.property: * item.Property = (string)iItem.Items[i]; * break; * case ItemsChoiceType.range: * item.Range = (string)iItem.Items[i]; * break; * case ItemsChoiceType.roll: * item.Roll = (string)iItem.Items[i]; * break; * case ItemsChoiceType.stealth: * item.Stealth = (string)iItem.Items[i]; * break; * case ItemsChoiceType.strength: * item.Strength = (string)iItem.Items[i]; * break; * case ItemsChoiceType.text: * if (((string)iItem.Items[i]).StartsWith("Source:")) * { * item.Source = ((string)iItem.Items[i]).Replace("Source:", "").Trim(); * item.SourceAbr = DConvert.SourceAbbreviation(item.Source); * } * else * { * item.Text += (string)iItem.Items[i]; * } * break; * case ItemsChoiceType.type: * item.Type = (string)iItem.Items[i]; * break; * case ItemsChoiceType.value: * item.Value = (decimal)iItem.Items[i]; * break; * case ItemsChoiceType.weight: * item.Weight = (string)iItem.Items[i]; * break; * } * } * * return item; * } */ public Spell ConvertSpell(object data) { compendiumSpell iSpell = (compendiumSpell)data; var spell = new Spell() { Classes = iSpell.classes, Components = iSpell.components, Duration = iSpell.duration, Level = iSpell.level, Name = iSpell.name, Range = iSpell.range, //Ritual School = iSpell.school, Time = iSpell.time, //Source Roll = "", Text = "", ImportDate = DateTime.UtcNow, ImportSource = "Lion's Den XML", }; spell.Ritual = (iSpell.ritual.ToLower().Trim() == "no" ? false : true); if (iSpell.roll != null) { foreach (var r in iSpell.roll) { if (!String.IsNullOrWhiteSpace(r.Trim())) { spell.Roll += r.Trim(); } } } if (iSpell.text != null) { foreach (var t in iSpell.text) { if (t.StartsWith("Source:")) { spell.SourceBook = t.Replace("Source:", "").Trim(); spell.SourceBookAbr = DConvert.SourceAbbreviation(spell.Source); } else { if (string.IsNullOrWhiteSpace(t.Trim())) { spell.Text += Environment.NewLine; spell.Text += Environment.NewLine; } else { spell.Text = (spell.Text.Trim() + " " + t.Trim()).Trim(); } } } } if (spell.School == null) { spell.School = ""; } return(spell); }