Esempio n. 1
0
        protected override void HyperLink()
        {
            _layoutViewModel.DataSource  = new ObservableCollection <LayoutModel>(CurrentItem.Layouts);
            _layoutViewModel.CurrentItem = CurrentItem.Layouts.FirstOrDefault();

            if (CurrentItem.Id == 0)
            {
                var venueDto = new VenueDto
                {
                    Description = CurrentItem.Description,
                    Address     = CurrentItem.Address,
                    Phone       = CurrentItem.Phone,
                };

                venueDto       = _venueService.CreateVenue(venueDto);
                CurrentItem.Id = venueDto.Id;
            }

            _layoutViewModel.ParentVenueId = CurrentItem.Id;

            var layoutView = new LayoutView
            {
                DataContext = _layoutViewModel
            };

            var result = layoutView.ShowDialog();

            if (result == true)
            {
                CurrentItem.Layouts    = _layoutViewModel.Layouts;
                CurrentItem.HasChanged = true;
            }
        }
Esempio n. 2
0
        protected override async Task SaveChanges()
        {
            // added item
            var venueModelForAdd = _dataSource.Where(x => x.Status == ModelInfo.NewItem).ToArray();

            foreach (var item in venueModelForAdd)
            {
                var venueDto = new VenueDto
                {
                    Description = item.Description,
                    Address     = item.Address,
                    Phone       = item.Phone,
                };

                _venueService.CreateVenue(venueDto);
            }

            // updated item
            var venueModelForUpdate = _dataSource.Where(x => x.Status == ModelInfo.Changed).ToArray();

            foreach (var item in venueModelForUpdate)
            {
                var venueDto = new VenueDto
                {
                    Id          = item.Id,
                    Description = item.Description,
                    Address     = item.Address,
                    Phone       = item.Phone,
                };

                _venueService.EditVenue(venueDto);
            }

            // deleted items
            var venueModelsForDelete = _dataSource.Where(x => x.Status == ModelInfo.Deleted).ToArray();

            foreach (var item in venueModelsForDelete)
            {
                var layouts = _venueService.GetVenueLayouts(item.Id).Layouts;

                foreach (var layout in layouts)
                {
                    var areas = _layoutService.GetLayoutAreas(layout.Id).Areas;

                    foreach (var area in areas)
                    {
                        var seats = _areaService.GetAreaSeats(area.Id).Seats;

                        foreach (var seatModel in seats)
                        {
                            _seatService.DeleteSeat(seatModel.Id);
                        }

                        _areaService.DeleteArea(area.Id);
                    }

                    _layoutService.DeleteLayout(layout.Id);
                }
                _venueService.DeleteVenue(item.Id);
            }
        }