Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. private T FillIn<T>(T obj)
  2. {
  3. Type type = obj.GetType();
  4. PropertyInfo[] properties = type.GetProperties(BindingFlags.Public | BindingFlags.FlattenHierarchy | BindingFlags.Instance);
  5.  
  6. foreach (PropertyInfo property in properties)
  7. {
  8. if (property.CanWrite && type != property.PropertyType)
  9. {
  10. if (property.PropertyType == typeof(string))
  11. property.SetValue(obj, random.NextString(random.Next(100)));
  12. else if (property.PropertyType == typeof(bool))
  13. property.SetValue(obj, random.NextBoolean());
  14. else if (property.PropertyType == typeof(decimal))
  15. property.SetValue(obj, (decimal)random.NextDouble());
  16. else if (property.PropertyType == typeof(Guid))
  17. property.SetValue(obj, Guid.NewGuid());
  18. else if (property.PropertyType == typeof(DateTime))
  19. property.SetValue(obj, DateTime.Now.AddMilliseconds(-1 * random.Next(1440 * 60 * 1000)));
  20. else if (property.PropertyType == typeof(DateTimeOffset))
  21. property.SetValue(obj, new DateTimeOffset(DateTime.Now.AddMilliseconds(-1 * random.Next(1440 * 60 * 1000))));
  22. else if (property.PropertyType == typeof(bool?))
  23. {
  24. if (random.NextDouble() > 0.5d)
  25. property.SetValue(obj, random.NextBoolean());
  26. else
  27. property.SetValue(obj, null);
  28. }
  29. else if (property.PropertyType == typeof(long?))
  30. {
  31. if (random.NextDouble() > 0.5d)
  32. property.SetValue(obj, (long)random.Next());
  33. else
  34. property.SetValue(obj, null);
  35. }
  36. else if (property.PropertyType == typeof(int?))
  37. {
  38. if (random.NextDouble() > 0.5d)
  39. property.SetValue(obj, (int)random.Next());
  40. else
  41. property.SetValue(obj, null);
  42. }
  43. else if (property.PropertyType == typeof(decimal?))
  44. {
  45. if (random.NextDouble() > 0.5d)
  46. property.SetValue(obj, (decimal)random.NextDouble());
  47. else
  48. property.SetValue(obj, null);
  49. }
  50. else if (property.PropertyType.IsPrimitive)
  51. property.SetValue(obj, random.Next());
  52. }
  53. }
  54. return obj;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement