protected bool IsOnSchedule () { IEnumerable<ScheduledSessionEntity> sessions = null; if (UnitOfWork.IsUnitOfWorkStarted ()) { var repo = new LocalScheduledSessionsRepository (); var criteria = new Criteria (); criteria.Add (Condition.Equal<ScheduledSessionEntity> (x => x.Title, _session.Title)); sessions = repo.Find (criteria); } else { using (UnitOfWork.Start()) { var repo = new LocalScheduledSessionsRepository (); var criteria = new Criteria (); criteria.Add (Condition.Equal<ScheduledSessionEntity> (x => x.Title, _session.Title)); sessions = repo.Find (criteria); } } if (sessions != null && sessions.Count () > 0) { return true; } else { return false; } }
protected void HandleSessionAddToScheduleButtonhandleTouchUpInside (object sender, EventArgs e) { AppDelegate.CurrentAppDelegate.TabBar.SelectedIndex = 0; if (!IsOnSchedule ()) { using (UnitOfWork.Start()) { var repository = new LocalScheduledSessionsRepository (); var scheduledSession = repository.GetScheduledSession (_session.URI); if (scheduledSession == null) { scheduledSession = new ScheduledSessionEntity () { Abstract = _session.Abstract, Difficulty = _session.Difficulty, Room = _session.Room, SpeakerName = _session.SpeakerName, SpeakerURI = _session.SpeakerURI, Start = _session.Start, Technology = _session.Technology, Title = _session.Title, URI = _session.URI, }; repository.Save (scheduledSession); var vc = AppDelegate.CurrentAppDelegate.TabBar.ViewControllers [0]; var uinc = (UINavigationController)vc; var scheduleController = (ScheduledSessionDialogViewController)uinc.TopViewController; scheduleController.LoadData (); AddNotification (_session); } } } else { using (UnitOfWork.Start()) { var repository = new LocalScheduledSessionsRepository (); var scheduledSession = repository.GetScheduledSession (_session.URI); repository.Delete (scheduledSession.Id); var vc = AppDelegate.CurrentAppDelegate.TabBar.ViewControllers [0]; var uinc = (UINavigationController)vc; var scheduleController = (ScheduledSessionDialogViewController)uinc.TopViewController; scheduleController.LoadData (); } RemoveNotification (_session); } SetAddToScheduleLabel (); }