private async Task <Response> SaveLoad()
        {
            Response response     = new Response();
            string   errorMessage = string.Empty;

            try
            {
                if (string.IsNullOrEmpty(VisualForm.Name))
                {
                    errorMessage += "\nName is required\n";
                }
                if (string.IsNullOrEmpty(UnitPhotoCount) || UnitPhotoCount == "0")
                {
                    errorMessage += "\nUnit photo required\n";
                }
                if (ExteriorElements.Count == 0)
                {
                    errorMessage += "\nExterior Elements photo required\n";
                }
                if (WaterProofingElements.Count == 0)
                {
                    errorMessage += "\nWaterProofing Elements required\n";
                }
                if (RadioList_VisualReviewItems.Where(c => c.IsChecked).Any() == false)
                {
                    errorMessage += "\nVisual Review required\n";
                }
                if (RadioList_AnyVisualSignItems.Where(c => c.IsChecked).Any() == false)
                {
                    errorMessage += "\nAny visual signs of leaksrequired\n";
                }
                if (RadioList_FurtherInasiveItems.Where(c => c.IsChecked).Any() == false)
                {
                    errorMessage += "\nFurther Invasive Review Required Yes/No required\n";
                }
                if (RadioList_ConditionAssessment.Where(c => c.IsChecked).Any() == false)
                {
                    errorMessage += "\nCondition Assessment Required Yes/No required\n";
                }
                if (RadioList_LifeExpectancyEEE.Where(c => c.IsChecked).Any() == false)
                {
                    errorMessage += "\nLife Expectancy Exterior Elevated Elements (EEE) required\n";
                }
                if (RadioList_LifeExpectancyLBC.Where(c => c.IsChecked).Any() == false)
                {
                    errorMessage += "\nLife Expectancy Load Bearing Componenets (LBC) required\n";
                }
                if (RadioList_LifeExpectancyAWE.Where(c => c.IsChecked).Any() == false)
                {
                    errorMessage += "\nLife Expectancy Associated Waterproofing Elements (AWE) required\n";
                }
                if (!string.IsNullOrEmpty(errorMessage))
                {
                    //  await Shell.Current.DisplayAlert("Validation Error", errorMessage, "OK");
                    response.Message = errorMessage;
                    response.Status  = ApiResult.Fail;
                    // return await Task.FromResult(response);
                }
                else
                {
                    // VisualForm.CreatedOn = DateTime.Now.ToString("dd-MMM-yyy hh:mm:ss");


                    VisualForm.ExteriorElements      = string.Join(",", ExteriorElements.ToArray());
                    VisualForm.WaterProofingElements = string.Join(",", WaterProofingElements.ToArray());

                    VisualForm.VisualReview  = RadioList_VisualReviewItems.Where(c => c.IsChecked == true).Single().Name;
                    VisualForm.AnyVisualSign = RadioList_AnyVisualSignItems.Where(c => c.IsChecked == true).Single().Name;

                    VisualForm.FurtherInasive = RadioList_FurtherInasiveItems.Where(c => c.IsChecked == true).Single().Name;

                    VisualForm.ConditionAssessment = RadioList_ConditionAssessment.Where(c => c.IsChecked == true).Single().Name;

                    VisualForm.LifeExpectancyEEE = RadioList_LifeExpectancyEEE.Where(c => c.IsChecked == true).Single().Name;

                    VisualForm.LifeExpectancyLBC = RadioList_LifeExpectancyLBC.Where(c => c.IsChecked == true).Single().Name;

                    VisualForm.LifeExpectancyAWE = RadioList_LifeExpectancyAWE.Where(c => c.IsChecked == true).Single().Name;


                    if (await VisualFormBuildingLocationDataStore.GetItemAsync(VisualForm.Id) == null)
                    {
                        List <string> list = VisualBuildingLocationPhotoItems.Select(c => c.ImageUrl).ToList();
                        response = await VisualFormBuildingLocationDataStore.AddItemAsync(VisualForm, list);

                        //  return await Task.FromResult(response);
                    }
                    else
                    {
                        List <MultiImage> finelList = new List <MultiImage>();
                        if (App.IsInvasive == false)
                        {
                            response = await VisualFormBuildingLocationDataStore.UpdateItemAsync(VisualForm, App.VisualEditTracking);
                        }
                        else
                        {
                            if (InvasiveVisualBuildingLocationPhotoItems.Count == 0)
                            {
                                errorMessage += "\nInvasive photo required\n";;
                            }
                            if (string.IsNullOrEmpty(visualForm.ImageDescription))
                            {
                                errorMessage += "\nDescription required\n";;
                            }
                            if (!string.IsNullOrEmpty(errorMessage))
                            {
                                response.Message = errorMessage;
                                response.Status  = ApiResult.Fail;

                                // await Shell.Current.DisplayAlert("Validation Error", errorMessage, "OK");
                            }
                            else
                            {
                                response = await VisualFormBuildingLocationDataStore.UpdateItemAsync(VisualForm, App.VisualEditTrackingForInvasive);
                            }
                        }

                        // return await Task.FromResult(response);
                        //   await VisualFormBuildingLocationDataStore.UpdateItemAsync(VisualForm);
                    }
                    //  await Shell.Current.Navigation.PopAsync();
                }
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                response.Status  = ApiResult.Fail;
            }

            return(await Task.FromResult(response));
        }