private async void WorkshopsListView_OnItemSelected(object sender, SelectedItemChangedEventArgs e) { if (e.SelectedItem == null) { return; } var currentItem = e.SelectedItem as WorkshopDTO; var workshopDetailpage = new WorkshopDetail(currentItem.Id); workshopDetailpage.UserEnrolled += (o, workshop) => { //This can be called only from workshop all //Update raw list var workshopDto = workshopsRawList.FirstOrDefault(dto => dto.Id == workshop.Id); if (workshopDto != null) { workshopDto.IsEnrolled = true; workshopDto.TakenSpots++; } UserEnrolled?.Invoke(this, workshopDto); }; workshopDetailpage.UserDisenrolled += (o, workshop) => { var workshopDto = workshopsRawList.FirstOrDefault(dto => dto.Id == workshop.Id); if (workshopDto != null) { if (_type == WorkshopBrowserType.All) { workshopDto.IsEnrolled = false; workshopDto.TakenSpots--; } else if (_type == WorkshopBrowserType.Reserved) { workshopsRawList.Remove(workshopDto); displayList = ApplySorting(ApplyFilters(workshopsRawList)); } } UserDisenrolled?.Invoke(this, workshopDto); }; workshopDetailpage.WorkshopEvaluated += (o, workshop) => { //Update raw list var workshopDto = workshopsRawList.FirstOrDefault(dto => dto.Id == workshop.Id); if (workshopDto != null) { workshopDto.IsEvaluated = true; } WorkshopEvaluated?.Invoke(this, workshopDto); }; await Navigation.PushModalAsync(workshopDetailpage); WorkshopsListView.SelectedItem = null; }
private async void WorkshopsListView_OnItemSelected(object sender, SelectedItemChangedEventArgs e) { if (e.SelectedItem == null) { return; } var currentItem = e.SelectedItem as WorkshopDTO; var workshopDetailpage = new WorkshopDetail(currentItem.Id); workshopDetailpage.UserEnrolled += (o, workshop) => { var workshopDto = _workshopsList.FirstOrDefault(dto => dto.Id == workshop.Id); if (workshopDto != null) { workshopDto.IsEnrolled = true; workshopDto.TakenSpots++; } UserEnrolled?.Invoke(this, workshopDto); }; workshopDetailpage.UserDisenrolled += (o, workshop) => { var workshopDto = _workshopsList.FirstOrDefault(dto => dto.Id == workshop.Id); if (workshopDto != null) { workshopDto.IsEnrolled = false; workshopDto.TakenSpots--; } UserDisenrolled?.Invoke(this, workshopDto); }; workshopDetailpage.WorkshopEvaluated += (o, workshop) => { var workshopDto = _workshopsList.FirstOrDefault(dto => dto.Id == workshop.Id); if (workshopDto != null) { workshopDto.IsEvaluated = true; } WorkshopEvaluated?.Invoke(this, workshopDto); }; await Navigation.PushModalAsync(workshopDetailpage); WorkshopsListView.SelectedItem = null; }