public async void AddNewContact_Clicked(Object Sender, EventArgs e)
        {
            if (viewModel.SelectGroup != null || viewModel.GroupId != -1)
            {
                viewModel.SelectGroup = Models.ContactGroupModel.GetList().Single(x => x.Id == viewModel.GroupId);
            }
            if (viewModel.ProvinceList.Count == 0)
            {
                await viewModel.GetProviceAsync();
            }
            await viewModel.GetDistrictAsync();

            await viewModel.GetWardAsync();

            await ModalAddContact.Show();
        }
        public async void OnBtnSaveAddContact_Click(object sender, EventArgs e)
        {
            if (viewModel.ContactModel.FullName == null)
            {
                await DisplayAlert(Language.thong_bao, Language.vui_long_nhap_ten_khach_hang, Language.dong);
            }
            else if (viewModel.SelectGroup == null)
            {
                await DisplayAlert(Language.thong_bao, Language.vui_long_chon_nhom_khach_hang, Language.dong);
            }
            else if (viewModel.ContactModel.Phone == null)
            {
                await DisplayAlert(Language.thong_bao, Language.vui_long_nhap_so_dien_thoai, Language.dong);
            }
            else
            {
                Contact contact = new Contact();
                contact.FullName   = viewModel.ContactModel.FullName;
                contact.Phone      = viewModel.ContactModel.Phone;
                contact.ProvinceId = viewModel.ContactModel.Province?.Id;
                contact.DistrictId = viewModel.ContactModel.District?.Id;
                contact.WardId     = viewModel.ContactModel.Ward?.Id;
                contact.Street     = viewModel.ContactModel.Street;
                contact.Address    = viewModel.ContactModel.Address;
                contact.GroupId    = viewModel.SelectGroup.Id;
                if (viewModel.CompanyId != null)
                {
                    contact.CompanyId = Guid.Parse(UserLogged.CompanyId);
                }
                ApiResponse apiResponse = await ApiHelper.Post(ApiRouter.CONTACT_ADD, contact);

                if (apiResponse.IsSuccess)
                {
                    await ModalAddContact.Hide();

                    viewModel.CancelPopUpAddContact();
                    await viewModel.LoadOnRefreshCommandAsync();

                    ToastMessageHelper.ShortMessage(Language.them_khach_hang_thanh_cong);
                }
                else
                {
                    ToastMessageHelper.ShortMessage(apiResponse.Message);
                }
            }
        }
        public async void Init()
        {
            segment.ItemsSource = new List <string> {
                Language.nhu_cau, Language.moi, Language.dau_tu, Language.da_mua
            };
            segment.SetActive(0);
            LvData.ItemTapped += LvData_ItemTapped;
            MessagingCenter.Subscribe <ContactDetailContent>(this, "ReloadData", async(sender) =>
            {
                loadingPopup.IsVisible = true;
                await viewModel.LoadOnRefreshCommandAsync();
                loadingPopup.IsVisible = false;
            });
            MessagingCenter.Subscribe <ContactDetailContent, Guid>(this, "DeleteContact", async(sender, ContactId) =>
            {
                loadingPopup.IsVisible = true;
                if (viewModel.Data.Any(x => x.Id == ContactId))
                {
                    await viewModel.LoadOnRefreshCommandAsync();
                }
                await viewModelContactNeed.LoadOnRefreshCommandAsync();
                loadingPopup.IsVisible = false;
            });
            MessagingCenter.Subscribe <AddContactNeedContent>(this, "AddContactNeed", async(sender) =>
            {
                loadingPopup.IsVisible = true;
                await viewModelContactNeed.LoadOnRefreshCommandAsync();
                loadingPopup.IsVisible = false;
            });
            MessagingCenter.Subscribe <AddContactNeedContent, Guid>(this, "UpdateContactNeed", async(sender, ContactNeedId) =>
            {
                loadingPopup.IsVisible = true;
                if (viewModelContactNeed.Data.Any(x => x.Id == ContactNeedId))
                {
                    await viewModelContactNeed.LoadOnRefreshCommandAsync();
                }
                loadingPopup.IsVisible = false;
            });
            MessagingCenter.Subscribe <AddContactNeedContent, ContactNeed>(this, "DeleteContactNeed", async(sender, ContactNeed) =>
            {
                loadingPopup.IsVisible = true;
                if (viewModelContactNeed.Data.Any(x => x.Id == ContactNeed.Id))
                {
                    viewModelContactNeed.Data.Remove(ContactNeed);
                }
                loadingPopup.IsVisible = false;
            });
            MessagingCenter.Subscribe <AddContactNeedContentViewModel, ContactNeed>(this, "DeleteContactNeed", async(sender, ContactNeed) =>
            {
                loadingPopup.IsVisible = true;
                if (viewModelContactNeed.Data.Any(x => x.Id == ContactNeed.Id))
                {
                    viewModelContactNeed.Data.Remove(ContactNeed);
                }
                loadingPopup.IsVisible = false;
            });

            viewModel.GroupList = Models.ContactGroupModel.GetList();
            ModalAddContact.CustomCloseButton(OnBtnCancelAddContact_Click);

            contactNeedFilterModel = new ContactNeedFilterModel();
            if (viewModel.CompanyId.HasValue)
            {
                contactNeedFilterModel.CompanyId = viewModel.CompanyId.Value;
            }
            if (viewModel.CreatedById.HasValue)
            {
                contactNeedFilterModel.CreatedById = viewModel.CreatedById.Value;
            }
            if (viewModel.Keyword != null)
            {
                contactNeedFilterModel.Keyword = viewModel.Keyword;
            }
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(contactNeedFilterModel);

            viewModelContactNeed = new ListViewPageViewModel2 <ContactNeed>()
            {
                PreLoadData = new Command(() =>
                {
                    string url;
                    contactNeedFilterModel.Keyword = viewModel.Keyword;
                    url = ApiRouter.COMPANY_GET_FILTER_CONTACTNEEDS + $"?json={json}" + $"&page={viewModelContactNeed.Page}";


                    viewModelContactNeed.ApiUrl = url;
                })
            };
            LvDataContactNeed.BindingContext = viewModelContactNeed;
            LvDataContactNeed.ItemTapped    += LvDataContactNeed_ItemTapped;
            await viewModelContactNeed.LoadData();

            loadingPopup.IsVisible = false;
        }
 public async void OnBtnCancelAddContact_Click(object sender, EventArgs e)
 {
     viewModel.CancelPopUpAddContact();
     await ModalAddContact.Hide();
 }