private PeriodFormViewModel CreatePeriodForm(Period period, IObservable <bool> canDelete) { var periodForm = new PeriodFormViewModel(period, canDelete, this.ResourceManager); periodForm.Delete .WhereNotNull() .Subscribe(_ => this.CurrentPosterIndex = 0); periodForm.Delete .WhereNotNull() .Subscribe(deletedPeriod => this.periodsSource.Remove(deletedPeriod)); return(periodForm); }
private bool ArePeriodsNonOverlapping(PeriodFormViewModel earlier, PeriodFormViewModel later) => Int32.TryParse(earlier.EndYear, out int earlierEndYear) && Int32.TryParse(later.StartYear, out int laterStartYear) && (earlierEndYear < laterStartYear || earlierEndYear == laterStartYear && earlier.EndMonth <= later.StartMonth);