PageRenderTime 48ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/SuperMemory/Order/Results.cs

https://github.com/antonkulaga/SuperMemory
C# | 105 lines | 79 code | 26 blank | 0 comment | 4 complexity | 7bb57d3a2e19eac0514d2051a3387ea8 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Smart.Classes.Bindables;
  5. using Smart.Classes.Immutable;
  6. namespace SuperMemory.Order
  7. {
  8. public struct Params
  9. {
  10. public int Rows;
  11. public int Cols;
  12. public int Icons;
  13. public int Seconds;
  14. public Params(int icons, int cols, int rows, int seconds)
  15. {
  16. Rows = rows;
  17. Cols = cols;
  18. Seconds = seconds;
  19. Icons = icons;
  20. }
  21. }
  22. public class ResultsList : ImmutableList<Results>
  23. {
  24. public static new readonly ResultsList Nil = new ResultsList();
  25. protected ResultsList():base()
  26. {
  27. }
  28. static ResultsList()
  29. {
  30. Instances = new Dictionary<int, ResultsList>();
  31. }
  32. protected ResultsList(Results element, ResultsList pre)
  33. : base(element, pre)
  34. {
  35. MaxSeconds = pre.IsNil || element.Seconds > pre.MaxSeconds.Head.Seconds ? this : pre.MaxSeconds;
  36. MinSeconds = pre.IsNil || element.Seconds < pre.MinSeconds.Head.Seconds ? this : pre.MinSeconds;
  37. MaxFailures = pre.IsNil || element.Failures > pre.MaxFailures.Head.Failures ? this : pre.MaxFailures;
  38. MinFailures = pre.IsNil || element.Failures < pre.MinFailures.Head.Failures ? this : pre.MinFailures;
  39. }
  40. public static Dictionary<int, ResultsList> Instances { get; private set; }
  41. readonly public ResultsList MinSeconds;
  42. readonly public ResultsList MaxSeconds;
  43. readonly public ResultsList MinFailures;
  44. readonly public ResultsList MaxFailures;
  45. public Results Current
  46. {
  47. get { return this.Head; }
  48. }
  49. public new ResultsList Add(Results element)
  50. {
  51. var res = new ResultsList(element, this);
  52. return res;
  53. }
  54. }
  55. public class Results:Bindable
  56. {
  57. private int _seconds;
  58. public int Seconds
  59. {
  60. get { return _seconds; }
  61. set { _seconds = value; this.RaisePropertyChanged(i=>this.Seconds); }
  62. }
  63. private int _failures;
  64. public int Failures
  65. {
  66. get { return _failures; }
  67. set { _failures = value; this.RaisePropertyChanged(i=>this.Failures); }
  68. }
  69. private string _userName = "";
  70. public String UserName
  71. {
  72. get { return _userName; }
  73. set { _userName = value; this.RaisePropertyChanged(i=>this.UserName); }
  74. }
  75. public Results()
  76. {
  77. }
  78. }
  79. }