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;
        }
示例#2
0
        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;
        }