Ejemplo n.º 1
0
        public async Task <object> PostFullAddress(FullAddressModel address)
        {
            var         uri         = ServerLink;
            var         jsonObject  = JsonConvert.SerializeObject(address);
            HttpContent httpContent = new StringContent(jsonObject, Encoding.UTF8, "application/json");

            var res = await _client.PostAsync(uri, httpContent);

            switch (res.StatusCode)
            {
            case System.Net.HttpStatusCode.Created:

                var s = await res.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <FullAddressModel>(s));

            case System.Net.HttpStatusCode.BadRequest:
                return("Address editing ecountered server error.");

            case System.Net.HttpStatusCode.NoContent:
                return("Address editing ecountered server error.");

            case System.Net.HttpStatusCode.InternalServerError:
                return("Address editing ecountered server error.");

            default:
                return(res.StatusCode.ToString());
            }
        }
Ejemplo n.º 2
0
        private async Task <bool> Delete(FullAddressModel endAddressFromDB)
        {
            try
            {
                string m = await addressService.DeleteAddress(endAddressFromDB.FullAddressID);

                switch (m)
                {
                case "Address with given parametters not found.":
                    return(false);

                case "address successesfully deleted.":
                    return(true);

                default:
                    return(false);
                }
                //await DisplayAlert("Server Message", m, "Ok");
            }
            catch (Exception ex)
            {
                //await DisplayAlert("Error", "Server Error" + ex.Message + ex.InnerException, "Ok");
                return(false);
            }
        }
Ejemplo n.º 3
0
        public async Task <string> PutFullAddress(int ID, FullAddressModel address)
        {
            var         uri         = ServerLink + "/" + ID;
            var         jsonObject  = JsonConvert.SerializeObject(address);
            HttpContent httpContent = new StringContent(jsonObject, Encoding.UTF8, "application/json");

            var res = await _client.PutAsync(uri, httpContent);

            switch (res.StatusCode)
            {
            case System.Net.HttpStatusCode.NotFound:
                return("Address you are trying to edit does not exists.");

            case System.Net.HttpStatusCode.OK:
                return("Address edited successfully.");

            case System.Net.HttpStatusCode.BadRequest:
                return("Address editing ecountered server error.");

            case System.Net.HttpStatusCode.NoContent:
                return("Address editing ecountered server error.");

            case System.Net.HttpStatusCode.InternalServerError:
                return("Address editing ecountered server error.");

            default:
                return(res.StatusCode.ToString());
            }
        }
        private void ListEndAddres_SelectedIndexChanged(object sender, EventArgs e)
        {
            var x = sender as ListView;
            FullAddressModel selected = (FullAddressModel)x.SelectedItem;

            if (selected != null)
            {
                delivery.EndAddress         = selected;
                delivery.EndAddressID       = selected.FullAddressID;
                DeliveryGrid.BindingContext = null;
                DeliveryGrid.BindingContext = delivery;
            }
        }
        private async Task FillFormAsync()
        {
            this.startAddress = await addressService.GetAddressByIDAsync(delivery.StartAddressID);

            this.endAddress = await addressService.GetAddressByIDAsync(delivery.EndAddressID);

            this.Titlelbl.Text          = "Ažuriranje dostave";
            DeliveryGrid.BindingContext = delivery;
            // StartName.Text = delivery.StartAddress.Name;
            // StartAddress.Text = delivery.StartAddress.Address;
            //  StartPhone.Text = delivery.StartAddress.Phone;
            if (delivery.StartAddress.Zone > 0)
            {
                ZoneStartSteplbl.Text = "4. Zona adrese pošiljaoca : " + delivery.StartAddress.Zone.ToString();
            }
            else
            {
                ZoneStartSteplbl.Text = "4. Zona adrese pošiljaoca : 1";
            }
            // NameEnd.Text = delivery.EndAddress.Name;
            // EndAddress.Text = delivery.EndAddress.Address;
            //  PhoneEnd.Text = delivery.EndAddress.Phone;
            if (delivery.EndAddress.Zone > 0)
            {
                ZoneEndSteplbl.Text = " 8. Zona adrese primaoca : " + delivery.EndAddress.Zone.ToString();
            }
            else
            {
                ZoneEndSteplbl.Text = " 8. Zona adrese primaoca : 1";
            }
            //  Price.Text =delivery.DeliveryPrice.ToString();
            //  DeliveryDetails.Text = delivery.Description;
            PaymentTypePicker.SelectedIndex = delivery.PaymentTypeID - 1;
            DeliverTypePicker.SelectedIndex = delivery.DeliveryTypeID - 1;
            //var unc = activeCouriers.Where(c => c.CourierID == delivery.CourierID).FirstOrDefault();
            //if (unc == null)
            //{
            //    var courier = await userService.GetCourierModelByID(delivery.CourierID);
            //    if (courier.CourierID != 0)
            //    {
            //        activeCouriers.Add(courier);
            //        CourierPicker.ItemsSource = activeCouriers;
            //        CourierPicker.SelectedItem = courier;
            //    }
            //}
        }
Ejemplo n.º 6
0
        public async void DeleteCommand(object sender, EventArgs e)
        {
            var mi = ((MenuItem)sender);

            try
            {
                if (int.TryParse(mi.CommandParameter.ToString(), out int IDint))
                {
                    FullAddressModel selectedAddress = userAddresses.Where(x => x.FullAddressID == IDint).First();
                    if (selectedAddress != null)
                    {
                        if (await Delete(selectedAddress))
                        {
                            userAddresses.Remove(selectedAddress);
                            AddressListView.ItemsSource = null;
                            AddressListView.ItemsSource = userAddresses;
                            await DisplayAlert("Succses", "Address removed.", "ok");
                        }
                        else
                        {
                            await DisplayAlert("Failed.", " Try again. Check internet connection.", "ok");
                        }
                    }
                    else
                    {
                        await DisplayAlert("Failed.", " Try again. Check internet connection.", "ok");
                    }
                }
                else
                {
                    await DisplayAlert("Failed.", " Try again. Check internet connection.", "ok");
                }
            }
            catch (Exception ex)
            {
                await DisplayAlert("Failed.", " Try again. Check internet connection. Error : " + ex.Message + ex.InnerException, "ok");
            }
        }
Ejemplo n.º 7
0
        private async void NextButton_Clicked(object sender, EventArgs e)
        {
            bool done = false;

            try
            {
                if (delivery.StartAddressID > 0 && delivery.StartAddress != null)
                {
                    FullAddressModel startAddressFromDB = await addressService.GetAddressByIDAsync(delivery.StartAddressID);

                    if (startAddressFromDB != null)
                    {
                        if (delivery.StartAddress.CompareTo(startAddressFromDB).ContainsValue(false))
                        {
                            string str = await DisplayActionSheet("Update or Create new address template?", "Cancel", null, "Update", "Create");

                            if (str == "Update")
                            {   //soft delete to save all addresses as they where
                                bool put = await Delete(startAddressFromDB);

                                bool post = await PostContextOfAddress();

                                if (put && post)
                                {
                                    await DisplayAlert("Success", "Updated existing template for address.", "Ok");

                                    done = true;
                                }
                                else
                                {
                                    done = false;
                                }
                            }
                            else if (str == "Create")
                            {
                                if (await PostContextOfAddress())
                                {
                                    await DisplayAlert("Success", "Created new template for address.", "Ok");

                                    done = true;
                                }
                                else
                                {
                                    done = false;
                                }
                            }
                        }
                        else
                        {
                            await DisplayAlert("Done", "Selected existing template for senders address of delivery.", "Ok");

                            done = true;
                        }
                    }
                    else
                    {
                        if (await PostContextOfAddress())
                        {
                            done = true;
                            await DisplayAlert("Success", "Created new template for address.", "Ok");
                        }
                        else
                        {
                            done = false;
                        }
                    }
                }
                else
                {
                    if (await PostContextOfAddress())
                    {
                        done = true;
                        await DisplayAlert("Success", "Created new template for address.", "Ok");
                    }
                    else
                    {
                        done = false;
                    }
                }

                if (done)
                {
                    await Navigation.PushAsync(new EndAddressPage(delivery, EditEnabled));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message + ex.InnerException);
                await DisplayAlert("Error", ex.Message + ex.InnerException, "ok");
            }
        }
        private async Task <bool> EndAddressCheck()
        {
            if (delivery.EndAddressID > 0 && delivery.EndAddress != null)
            {
                FullAddressModel endAddressFromDB = await addressService.GetAddressByIDAsync(delivery.EndAddressID);

                if (endAddressFromDB != null)
                {
                    if (delivery.EndAddress.CompareTo(endAddressFromDB).ContainsValue(false))
                    {
                        string str = await DisplayActionSheet("Ažuriraj postojeći ili kreraj novi šablon adrese?", null, null, "Ažuriraj", "Kreiraj");

                        if (str == "Ažuriraj")
                        {   //soft delete to save all addresses as they where
                            bool put = await Delete(endAddressFromDB);

                            if (put && await PostContextOfEndAddress())
                            {
                                await DisplayAlert("BaraBara", "Uspešno ažuriran šablon adrese.", "Ok");

                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else //if (str == "Kreiraj")
                        {
                            if (await PostContextOfEndAddress())
                            {
                                await DisplayAlert("BaraBara", "Uspešno kreiran šablon adrese.", "Ok");

                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                    }
                    else
                    {
                        await DisplayAlert("BaraBara", "Uspešno izabran postojeći šablon adrese.", "Ok");

                        return(true);
                    }
                }
                else
                {
                    if (await PostContextOfEndAddress())
                    {
                        await DisplayAlert("BaraBara", "Uspešno kreiran nov šablon adrese.", "Ok");

                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            else
            {
                if (await PostContextOfEndAddress())
                {
                    await DisplayAlert("BaraBara", "Uspešno kreiran nov šablon adrese.", "Ok");

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
        public async void FinishAction(object sender, EventArgs e)
        {
            var mi = ((MenuItem)sender);

            try
            {
                if (int.TryParse(mi.CommandParameter.ToString(), out int IDint))
                {
                    DeliveryModel selectedDelivery = listOfDeliveries.Where(x => x.DeliveryID == IDint).First();
                    if (selectedDelivery != null)
                    {
                        selectedDelivery.DeliveryStatus = 4;
                        Xamarin.Essentials.Location l = await locationService.GetCurrentLocation();

                        if (l != null)
                        {
                            LocationModel lm = new LocationModel()
                            {
                                Latitude = l.Latitude, Longitude = l.Longitude, Altitude = Convert.ToDouble(l.Altitude.ToString()), UserID = Convert.ToInt32(Application.Current.Properties["UserID"].ToString()), DToffSet = l.Timestamp
                            };

                            LocationModel lmReturned = await locationService.AddLocation(lm);

                            if (lmReturned.LocationID > 1)
                            {
                                FullAddressModel endAddress = await addressService.GetAddressByIDAsync(selectedDelivery.EndAddressID);

                                endAddress.LocationID = lmReturned.LocationID;
                            }
                            selectedDelivery.EndTime = DateTime.Now;
                            var response = await deliveryService.EditDelivery(selectedDelivery);

                            if (response != null)
                            {
                                await DisplayAlert("Succses", "Delivery finished.", "ok");
                            }
                            else
                            {
                                await DisplayAlert("Delivery confimation failed.", " Try again. Check internet connection.", "ok");
                            }
                        }
                        else
                        {
                            await DisplayAlert("Location Error.", "Please enable location service on device.", "ok");
                        }
                    }
                    else
                    {
                        await DisplayAlert("Delivery confimation failed.", " Try again.", "ok");
                    }
                }
                else
                {
                    await DisplayAlert("Delivery confimation failed.", " Try again. Check internet connection.", "ok");
                }
            }
            catch (Exception ex)
            {
                await DisplayAlert("Delivery confimation failed.", " Try again. Check internet connection. Error : " + ex.Message + ex.InnerException, "ok");
            }
        }