Пример #1
0
        public PlacesViewModel(IPlaceService placeService, IOrderService orderService, IFilePickerService filePickerService, ICommonServices commonServices) : base(commonServices)
        {
            PlaceService = placeService;

            PlaceList    = new PlaceListViewModel(PlaceService, commonServices);
            PlaceDetails = new PlaceDetailsViewModel(PlaceService, filePickerService, commonServices);
            PlaceOrders  = new OrderListViewModel(orderService, commonServices);
        }
Пример #2
0
        /*
         *  Handle external messages
         ****************************************************************/
        private async void OnDetailsMessage(PlaceDetailsViewModel sender, string message, PlaceModel changed)
        {
            var current = Item;

            if (current != null)
            {
                if (changed != null && changed.PlaceID == current?.PlaceID)
                {
                    switch (message)
                    {
                    case "ItemChanged":
                        await ContextService.RunAsync(async() =>
                        {
                            try
                            {
                                var item = await PlaceService.GetPlaceAsync(current.PlaceID);
                                item     = item ?? new PlaceModel {
                                    PlaceID = current.PlaceID, IsEmpty = true
                                };
                                current.Merge(item);
                                current.NotifyChanges();
                                NotifyPropertyChanged(nameof(Title));
                                if (IsEditMode)
                                {
                                    StatusMessage("WARNING: This place has been modified externally");
                                }
                            }
                            catch (Exception ex)
                            {
                                LogException("Place", "Handle Changes", ex);
                            }
                        });

                        break;

                    case "ItemDeleted":
                        await OnItemDeletedExternally();

                        break;
                    }
                }
            }
        }