Exemple #1
0
        private async void saveProvider(object obj)
        {
            Singleton.getDialogueBox().showSearch(ConfigurationManager.AppSettings["wait_message"]);

            // saving the provider
            List <Provider> savedProviders = new List <Provider>();

            bool isProviderMandatoryFieldNotEmpty = !string.IsNullOrEmpty(SelectedProviderModel.TxtCompanyName) &&
                                                    !string.IsNullOrEmpty(SelectedProviderModel.TxtPhone) &&
                                                    !string.IsNullOrEmpty(SelectedProviderModel.TxtEmail);

            bool isAddressMandatoryFieldNotEmpty = !string.IsNullOrEmpty(SelectedProviderModel.SelectedAddress.Name) &&
                                                   !string.IsNullOrEmpty(SelectedProviderModel.SelectedAddress.AddressName) &&
                                                   !string.IsNullOrEmpty(SelectedProviderModel.SelectedAddress.CityName) &&
                                                   !string.IsNullOrEmpty(SelectedProviderModel.SelectedAddress.Postcode) &&
                                                   !string.IsNullOrEmpty(SelectedProviderModel.SelectedAddress.Country);

            if (SelectedProviderModel.Provider.ID == 0)
            {
                if (isProviderMandatoryFieldNotEmpty)
                {
                    savedProviders = await Bl.BlItem.InsertProviderAsync(new List <Provider> {
                        SelectedProviderModel.Provider
                    });

                    if (savedProviders.Count() > 0)
                    {
                        ProviderList = ProviderList.Concat(providerListToModelList(savedProviders)).ToList();
                    }
                }
                else
                {
                    await Singleton.getDialogueBox().showAsync("[Main detail area]: Please fill up mandatory fields!");
                }
            }
            else
            {
                savedProviders = await Bl.BlItem.UpdateProviderAsync(new List <Provider> {
                    SelectedProviderModel.Provider
                });
            }

            // saving the provider address
            if (savedProviders.Count() > 0)
            {
                List <Address> savedAddresses = new List <Address>();

                SelectedProviderModel.SelectedAddress.ProviderId = SelectedProviderModel.Provider.ID;

                if (SelectedProviderModel.SelectedAddress.ID == 0)
                {
                    if (isAddressMandatoryFieldNotEmpty)
                    {
                        savedAddresses = await Bl.BlClient.InsertAddressAsync(new List <Address> {
                            SelectedProviderModel.SelectedAddress
                        });

                        if (savedAddresses.Count() > 0)
                        {
                            SelectedProviderModel.SelectedAddress = savedAddresses.First();
                            SelectedProviderModel.AddressList.Add(savedAddresses.First());
                        }
                    }
                    else if (!string.IsNullOrEmpty(SelectedProviderModel.SelectedAddress.Name))
                    {
                        await Singleton.getDialogueBox().showAsync("[Address detail area]: Please fill up mandatory fields!");
                    }
                }
                else
                {
                    savedAddresses = await Bl.BlClient.UpdateAddressAsync(new List <Address> {
                        SelectedProviderModel.SelectedAddress
                    });
                }

                if (savedAddresses.Count() > 0)
                {
                    SelectedProviderModel.Provider.AddressId = savedAddresses.First().ID;
                    await Bl.BlItem.UpdateProviderAsync(new List <Provider> {
                        SelectedProviderModel.Provider
                    });
                }

                if (savedAddresses.Count() > 0 || string.IsNullOrEmpty(SelectedProviderModel.SelectedAddress.Name))
                {
                    await Singleton.getDialogueBox().showAsync("The provider has been successfully updated!");
                }
            }

            Singleton.getDialogueBox().IsDialogOpen = false;
        }