Пример #1
0
        public T ReadValue(IValueReader valueReader)
        {
            if (valueReader is IValueReader <T> )
            {
                return(((IValueReader <T>)valueReader).ReadValue());
            }

            return(DConvert <T> .Convert(valueReader.DirectRead()));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        /*
         * 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);
        }