/// <summary>
        /// Updates the Task
        /// </summary>
        private async void ExecuteUpdateTaskCommandAsync()
        {
            SelectedItem.Name = UpdatedTaskName;
            if (string.IsNullOrEmpty(UpdatedTaskName.Trim()))
            {
                await _pageDialog.DisplayAlertAsync(AppConstants.AppName, AppConstants.AlertEmptyFieldInfo, AppConstants.AlertOkBtnTitle);

                return;
            }
            if (IocContainer.Instance.Container.Resolve <IPlatformService>().IsConnected())
            {
                IsLoading = true;
                var result = await _taskService.UpdateTaskAsync(SelectedItem);

                if (result != null)
                {
                    var task = new TodoDBItem()
                    {
                        Id = result.Id, Name = result.Name, Status = result.Status
                    };
                    await _taskRepo.Update(task);

                    TaskList = _taskRepo.Get();
                    CloseUpdatePopupCommand.Execute();
                    ExecuteFilterCommand(string.Empty);
                }
                IsLoading = false;
            }
            else
            {
                await _pageDialog.DisplayAlertAsync(AppConstants.AlertOfflineTitle, AppConstants.AlertOfflineInfo, AppConstants.AlertOkBtnTitle);
            }
        }
        //Gets the Task List and Save to DB
        public async Task GetTaskListAsync()
        {
            var dbTaskList = _taskRepo.Get();

            if (IocContainer.Instance.Container.Resolve <IPlatformService>().IsConnected())
            {
                var result = await _taskService.GetTaskListAsync();

                IsLoading = false;
                var taskList = new List <TodoDBItem>();
                if (result?.Count > 0)
                {
                    await _taskRepo.DeleteAll();

                    foreach (var item in result)
                    {
                        var task = new TodoDBItem()
                        {
                            Id = item.Id, Name = item.Name, Status = item.Status
                        };
                        if (!string.IsNullOrEmpty(task?.Id))
                        {
                            await _taskRepo.Insert(task);
                        }
                    }
                    TaskList = _taskRepo.Get();
                }
            }
            else if (dbTaskList?.Count > 0)
            {
                TaskList  = dbTaskList;
                IsLoading = false;
            }
        }
 /// <summary>
 /// Opens the update task popup
 /// </summary>
 /// <param name="item"></param>
 private void ExecuteTaskItemTappedCommand(TodoDBItem item)
 {
     SelectedItem = new TodoItem()
     {
         Id = item.Id, Name = item.Name, Status = item.Status
     };
     UpdatedTaskName       = item.Name;
     UpdatePopupVisibility = true;
 }
        /// <summary>
        // Adds New Task
        /// </summary>
        private async void ExecuteAddTaskCommandAsync()
        {
            if (IocContainer.Instance.Container.Resolve <IPlatformService>().IsConnected())
            {
                if (!string.IsNullOrEmpty(TaskTitle?.Trim()))
                {
                    IsLoading = true;
                    var task = new TodoItem {
                        Id = Guid.NewGuid().ToString(), Name = TaskTitle, Status = "Waiting"
                    };
                    var result = await _taskService.SaveTaskAsync(task);

                    if (result != null)
                    {
                        var item = new TodoDBItem()
                        {
                            Id = result.Id, Name = result.Name, Status = result.Status
                        };
                        await _taskRepo.Insert(item);

                        TaskList  = _taskRepo.Get();
                        TaskTitle = string.Empty;
                        ExecuteFilterCommand(string.Empty);
                    }
                    IsLoading = false;
                }
                else
                {
                    await _pageDialog.DisplayAlertAsync(AppConstants.AppName, AppConstants.AlertEmptyFieldInfo, AppConstants.AlertOkBtnTitle);
                }
            }
            else
            {
                await _pageDialog.DisplayAlertAsync(AppConstants.AlertOfflineTitle, AppConstants.AlertOfflineInfo, AppConstants.AlertOkBtnTitle);
            }
        }