コード例 #1
0
 private ScheduleEntryBaseViewModel createAppointment(ScheduleEntryBaseDTO item)
 {
     if (item is ScheduleEntryDTO)
     {
         return(new ScheduleEntryViewModel(item, calendar));
     }
     return(new ScheduleChampionshipViewModel(item, calendar));
 }
コード例 #2
0
 public void Fill(ScheduleEntryBaseDTO entry)
 {
     Object = entry;
     foreach (var categoryDto in this.entry.Categories)
     {
         WinCategories.Add(new ChampionshipCategoryViewModel(categoryDto));
     }
 }
コード例 #3
0
        void update(ScheduleEntryBaseDTO entry)
        {
            var res = Entries.Where(x => x.Item.Equals(entry)).SingleOrDefault();

            if (res != null)
            {
                res.Item = entry;
                if (SelectedAppointment.Item == entry)
                {
                    var reservation = SelectedReservation != null ? SelectedReservation.Reservation : null;
                    SelectedAppointment = res;
                    if (reservation != null)
                    {
                        var newReservation = Reservations.Where(x => x.Reservation == reservation).SingleOrDefault();
                        SelectedReservation = newReservation;
                    }
                }
            }
            updateButtons();
        }
コード例 #4
0
 public ScheduleEntryViewModel(ScheduleEntryBaseDTO entry, ScheduleEntriesCalendar calendar) : base(entry, calendar)
 {
 }
コード例 #5
0
 public ScheduleEntryBaseViewModel(ScheduleEntryBaseDTO entry, ScheduleEntriesCalendar calendar)
 {
     this.entry    = entry;
     this.calendar = calendar;
     myPlacesCache = MyPlacesReposidory.GetCache(null);
 }
コード例 #6
0
        void reservationOperation(IList <BAGlobalObject> objects, Func <BAGlobalObject, ReservationsOperationParam> createReservationsOperationParam)
        {
            var selectedApp = SelectedAppointment;

            selectedApp.IsRunning = true;
            var cancelToken = parentView.RunAsynchronousOperation(delegate(OperationContext context)
            {
                for (int i = objects.Count - 1; i >= 0; i--)
                {
                    var reservation            = objects[i];
                    ScheduleEntryBaseDTO entry = null;
                    try
                    {
                        if (context != null && context.CancellatioToken.IsCancellationRequested)
                        {
                            break;
                        }
                        var param = createReservationsOperationParam(reservation);
                        if (param == null)
                        {
                            continue;
                        }
                        var res = ServiceManager.ReservationsOperation(param);

                        entry = res.ScheduleEntry;
                        if (entry is ScheduleChampionshipDTO)
                        {
                            ChampionshipsReposidory.Instance.Reset();
                        }
                    }
                    catch (ConsistencyException ex)
                    {
                        parentView.SynchronizationContext.Send(
                            delegate
                        {
                            ExceptionHandler.Default.Process(ex, "ScheduleEntriesDesignViewModel_ErrChampionshipWithoutCategories".TranslateInstructor(), ErrorWindow.MessageBox);
                        }, null);
                    }
                    catch (AlreadyOccupiedException ex)
                    {
                        parentView.SynchronizationContext.Send(
                            delegate
                        {
                            //TODO: this message doesn't make sense for cancel
                            ExceptionHandler.Default.Process(ex, "AlreadyOccupiedException_ScheduleEntriesDesignViewModel_reservationOperation".TranslateInstructor(), ErrorWindow.MessageBox);
                        }, null);
                    }
                    catch (Exception ex)
                    {
                        parentView.SynchronizationContext.Send(
                            delegate
                        {
                            ExceptionHandler.Default.Process(ex, "Exception_ScheduleEntriesDesignViewModel_reservationOperation".TranslateInstructor(), ErrorWindow.EMailReport);
                        }, null);
                    }
                    if (entry != null)
                    {
                        parentView.SynchronizationContext.Send(state => update(entry), null);
                    }
                }


                parentView.SynchronizationContext.Send(delegate
                {
                    selectedApp.IsRunning = false;
                    calendar.RefreshAppointments();
                    updateButtons();
                }, null);
            });

            selectedApp.CancellationToken = cancelToken;
        }
コード例 #7
0
 public void Fill(ScheduleEntryBaseDTO entry)
 {
     Object = entry;
 }