public IEnumerable <Subject> Load() { var registeredSubjects = new List <Subject>(); foreach (var subject in SubjectsList) { var unit = CheckForValidUnit(subject); string topic = null; var durationPosition = subject.IndexOfAny("0123456789".ToCharArray()); var duration = "1"; if (durationPosition == -1) { topic = subject.Substring(0, subject.LastIndexOf(unit, StringComparison.OrdinalIgnoreCase)); } else { topic = subject.Substring(0, durationPosition); duration = subject.Substring(durationPosition, subject.LastIndexOfAny("0123456789".ToCharArray()) - durationPosition + 1); } var Duration = new SubjectDuration((TimeUnit)Enum.Parse(typeof(TimeUnit), unit, true) , Convert.ToInt32(duration)); registeredSubjects.Add(new Subject(topic, Duration)); } return(registeredSubjects); }
public Subject(string topic, SubjectDuration duration) { try { Duration = duration; if (IsInValidTitle(topic)) { throw new ArgumentException("Title Cannot contain Numeric values"); } Topic = topic; } catch (ArgumentException e) { throw; } }