private void CreateOrderViewModel(OrderSalepoint order)
        {
            var orderVM = Mvx.IocConstruct <SalepointOrderListItemViewModel>();

            orderVM.Order = order;
            this.Orders.Add(orderVM);
        }
示例#2
0
        private void SetInProgressOrdersMarker(OrderSalepoint order)
        {
            if (order.EndLatLng == null || this.inprogressOrdersMarkers.ContainsKey(order.Id))
            {
                return;
            }

            MarkerOptions options = new MarkerOptions();
            MarkerTag     tag     = new MarkerTag {
                OrderId = order.Id
            };

            tag.Type = MarkerType.InProgressOrder;

            BitmapDescriptor icon = BitmapDescriptorFactory.FromResource(Resource.Drawable.marker);

            options.SetIcon(icon);

            string title = string.Concat(order.DestinationCity, ", ", order.DestinationAddress);

            options.SetTitle(title);
            options.SetPosition(new LatLng(order.EndLatLng.lat, order.EndLatLng.lng));

            this.activity.RunOnUiThread(() =>
            {
                Marker marker = this.map.AddMarker(options);
                marker.Tag    = tag;
                inprogressOrdersMarkers.Add(order.Id, marker);
            });
        }
示例#3
0
        public async Task <OrderSalepoint> Add(OrderEditModel order)
        {
            OrderSalepoint newOrder = await this.salepointOrdersApi.AddOrder(order);

            this.AddedOrders.Add(newOrder);

            this.AddedOrdersUpdated?.Invoke(this, new ServiceEvent <SalepointAddedOrdersEvents>(SalepointAddedOrdersEvents.AddedOrder, newOrder));

            return(newOrder);
        }
示例#4
0
        public void OrderAccepted(OrderSalepoint order)
        {
            if (this.InProgressOrders.All(x => x.Id != order.Id))
            {
                this.InProgressOrders.Add(order);
                this.InProgressOrdersUpdated?.Invoke(this, new ServiceEvent <SalepointInProgressOrdersEvents>(SalepointInProgressOrdersEvents.AddedOrder, order));
            }

            var addedOrderToRemove = this.AddedOrders.Where(x => x.Id == order.Id).FirstOrDefault();

            if (addedOrderToRemove != null)
            {
                this.AddedOrders.Remove(addedOrderToRemove);
                this.AddedOrdersUpdated?.Invoke(this, new ServiceEvent <SalepointAddedOrdersEvents>(SalepointAddedOrdersEvents.RemovedOrder, addedOrderToRemove));
            }

            CrossLocalNotifications.Current.Show("Zaakceptowano zamówienie", String.Concat("Zaakceptował: ", order.CarrierName, "\n", "Do miejsca: ", order.DestinationAddress), order.Id);
        }
示例#5
0
        public void HandleInProgressOrdersMarkers(object sender, MvxValueEventArgs <ServiceEvent <SalepointInProgressOrdersEvents> > e)
        {
            switch (e.Value.Type)
            {
            case SalepointInProgressOrdersEvents.AddedList:
                ClearInProgressOrdersMarkers();
                SetInProgressOrdersMarkers();
                break;

            case SalepointInProgressOrdersEvents.AddedOrder:
                OrderSalepoint order = (OrderSalepoint)e.Value.Resource;
                SetInProgressOrdersMarker(order);
                break;

            case SalepointInProgressOrdersEvents.RemovedOrder:
                OrderSalepoint orderToRemove = (OrderSalepoint)e.Value.Resource;
                ClearMarker(MarkerType.InProgressOrder, orderToRemove.Id);
                break;
            }
        }
示例#6
0
        public async Task Cancel(OrderSalepoint order)
        {
            await this.salepointOrdersApi.CancelOrder(order.Id);

            order.Status = OrderStatus.Cancelled;
            OrderFinishedListItem finished = (OrderFinishedListItem)order;

            finished.CancellationTime = DateTime.Now;

            this.FinishedOrders.Add(finished);
            this.FinishedOrdersUpdated.Invoke(this, null);

            if (this.AddedOrders.Contains(order))
            {
                this.AddedOrders.Remove(order);
                this.AddedOrdersUpdated?.Invoke(this, new ServiceEvent <SalepointAddedOrdersEvents>(SalepointAddedOrdersEvents.RemovedOrder, order));
            }

            if (this.InProgressOrders.Contains(order))
            {
                this.InProgressOrders.Remove(order);
                this.InProgressOrdersUpdated?.Invoke(this, new ServiceEvent <SalepointInProgressOrdersEvents>(SalepointInProgressOrdersEvents.RemovedOrder, order));
            }
        }