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; }