예제 #1
0
        private async void ActuallyCancel()
        {
            var dialog = DialogHelper.CreateProgressDialog("Please wait...", this);
            dialog.Show();
            GenericResponse response = null;
            cts.Cancel();
            response = await Services.Workshop.CancelBooking(cts.Token, session.Id);
            dialog.Hide();

            if (response.Success)
            {
                DialogHelper.ShowDialog(this, "The sessionId has been successfully cancelled", "Workshop Cancelled");
                NotificationHelper.Cancel(this, session.Id);
                booking = null;
                UpdateButtons();
                FindViewById<RelativeLayout>(Resource.Id.notifications).Visibility = ViewStates.Gone;
            }
            else
                DialogHelper.ShowDialog(this, response.Message, response.Title);
        }
예제 #2
0
        public async void Book(View view)
        {
            var dialog = DialogHelper.CreateProgressDialog("Please wait...", this);
            dialog.Show();
            GenericResponse response = null;
            if (session.ProgramId.HasValue)
                response = await Services.Workshop.BookProgram(cts.Token, session.ProgramId.Value);
            else
                response = await Services.Workshop.Book(cts.Token, session.Id);
            dialog.Hide();

            if (response.Success)
            {
                var builder = new AlertDialog.Builder(this);
                builder.SetTitle("Booked Successfully");
                builder.SetMessage("Would you like to set up notifications now?");
                builder.SetCancelable(false);
                builder.SetPositiveButton("Create Notifications", delegate { ShowNotificationDialog(session.Id, session.Date, true); });
                builder.SetNegativeButton("Close", delegate { });
                builder.Show();
                booking = new WorkshopBooking();
                UpdateButtons();
                ShowNotifications(session.Id, true);
            }
            else
                DialogHelper.ShowDialog(this, response.Message, response.Title);
        }
예제 #3
0
 public static async Task<WorkshopDetail> TranslateDetail(WorkshopBooking booking)
 {
     var obj = TranslateDetailLocal(booking);
     obj.Room = await MiscServices.GetCampus(booking.campusID);
     return obj;
 }
예제 #4
0
 private async void LoadBooking(bool localOnly, bool force = false)
 {
     cts.Cancel();
     booking = await Services.Workshop.GetBooking(cts.Token, session.Id, localOnly, force);
     RunOnUiThread(delegate { UpdateFields(); });
 }
예제 #5
0
 public static WorkshopDetail TranslateDetailLocal(WorkshopBooking booking)
 {
     return new WorkshopDetail()
     {
         Id = booking.workshopId,
         Title = booking.topic,
         Room = MiscServices.GetCampusLocal(booking.campusID),
         Time = HumanizeTimeSpan(booking.starting, booking.ending),
         DateHumanFriendly = HumanizeDate(booking.starting),
         TargetGroup = booking.targetingGroup ?? "N/A",
         Description = booking.description ?? "N/A",
         TotalPlaces = booking.cutoff ?? booking.maximum,
         Date = booking.starting,
         DateEnd = booking.ending,
         FilledPlaces = -1,
         Sessions = new List<SessionPreview>(),
         Type = booking.type,
         WorkshopSetId = booking.WorkShopSetID,
         Notes = booking.notes,
         Attended = booking.attended.HasValue 
     };
 }