/// <summary>
        /// Search Contact by 'First Name'
        /// </summary>
        /// <param name="obj"></param>
        private async void SearchContact()
        {
            try
            {
                using (var client = ServerInstance.GetServerInstance())
                {
                    if (client == null)
                    {
                        return;
                    }

                    HttpResponseMessage httpRequestMessage = await client.GetAsync("api/Contact/firstName/" + SearchText + "");

                    if (!httpRequestMessage.IsSuccessStatusCode)
                    {
                        Contacts.Clear();
                        StatusMessage = string.Format("No Contact Found.");
                        return;
                    }

                    var result = await httpRequestMessage.Content.ReadAsAsync <List <ContactModel> >();

                    if (result != null)
                    {
                        Contacts = new ObservableCollection <ContactModel>(result);
                    }

                    StatusMessage = string.Format("Find Command, {0} result found.", Contacts.Count());
                }
            }
            catch (Exception ex)
            {
                LogHelper.Log(LogLevel.Exception, nameof(SearchContact), ex.ToString());
            }
        }
        /// <summary>
        /// Delete selcted contacts
        /// </summary>
        private async void Delete()
        {
            try
            {
                using (var client = ServerInstance.GetServerInstance())
                {
                    if (client == null)
                    {
                        return;
                    }

                    var contactsToBeRemoved = Contacts.Where(x => x.IsChecked).ToList();

                    if (!contactsToBeRemoved.Any())
                    {
                        return;
                    }

                    for (int index = 0; index < contactsToBeRemoved.Count();)
                    {
                        if (contactsToBeRemoved.Count <= index)
                        {
                            continue;
                        }

                        var item = contactsToBeRemoved[index];

                        if (item == null)
                        {
                            continue;
                        }

                        HttpResponseMessage httpRequestMessage = await client.DeleteAsync("api/Contact/" + item.Contact_Id);

                        if (!httpRequestMessage.IsSuccessStatusCode)
                        {
                            StatusMessage = string.Format("Delete command Failed.");
                            return;
                        }

                        var result = await httpRequestMessage.Content.ReadAsAsync <bool>();

                        if (!result)
                        {
                            continue;
                        }

                        Contacts.Remove(item);
                        StatusMessage = string.Format("Delete Command, {0} deleted.", item.Contact_Id);
                        index++;
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Log(LogLevel.Exception, nameof(Delete), ex.ToString());
            }
        }
        /// <summary>
        /// Add Contact(s)
        /// </summary>
        private async void Add()
        {
            try
            {
                using (var client = ServerInstance.GetServerInstance())
                {
                    if (client == null)
                    {
                        return;
                    }

                    foreach (var contactTobeAdd in Contacts.Where(x => x.IsChecked).ToList())
                    {
                        if (client == null)
                        {
                            return;
                        }

                        HttpResponseMessage httpRequestMessage = await client.PutAsJsonAsync("api/Contact/add", contactTobeAdd);

                        if (!httpRequestMessage.IsSuccessStatusCode)
                        {
                            StatusMessage = string.Format("Add command Failed.");
                            return;
                        }

                        var result = await httpRequestMessage.Content.ReadAsAsync <Guid>();

                        if (result == null || result == Guid.Empty)
                        {
                            return;
                        }

                        contactTobeAdd.Contact_Id = result;
                        StatusMessage             = string.Format("Add Command, {0} added.", contactTobeAdd.Contact_Id);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Log(LogLevel.Exception, nameof(Add), ex.ToString());
            }
        }
        /// <summary>
        /// Get all contacts
        /// </summary>
        /// <param name="obj"></param>
        private async void GetAllContacts()
        {
            try
            {
                using (var client = ServerInstance.GetServerInstance())
                {
                    if (client == null)
                    {
                        return;
                    }

                    HttpResponseMessage httpRequestMessage = await client.GetAsync("api/Contact/all");

                    if (!httpRequestMessage.IsSuccessStatusCode)
                    {
                        Contacts.Clear();
                        StatusMessage = string.Format("GET command, Failed or No Contacts Found .");
                        return;
                    }

                    var result = await httpRequestMessage.Content.ReadAsAsync <List <ContactModel> >();

                    if (result == null || !result.Any())
                    {
                        return;
                    }

                    Contacts = new ObservableCollection <ContactModel>(result);

                    StatusMessage = string.Format("GET command, {0} result found.", Contacts.Count());
                }
            }
            catch (Exception ex)
            {
                LogHelper.Log(LogLevel.Exception, nameof(GetAllContacts), ex.ToString());
            }
        }