private void AsyncSearch()
 {
     try
     {
         Task.Run(async() =>
         {
             var _list  = Details;
             var result = await countServices.GetByPlanAndProduct(IdPlan, BCode);   //   _list.FirstOrDefault(a => a.BarCode == BCode);
             if (result.Any())
             {
                 Device.BeginInvokeOnMainThread(() =>
                 {
                     Xamarin.Forms.Application.Current.MainPage.Navigation.PushAsync(new PlanDetails(result, User, PlanDescription, BCode));
                 });
             }
             else
             {
                 MessageResult = "Producto no Registrado";
             }
         });
     }
     catch (Exception ex)
     {
         App.Current.MainPage.DisplayAlert("TSHIRT", "Error: " + BCode + " : " + ex.Message, "OK");
     }
 }
        private async void LoadDetails(int id, string plan, string user)
        {
            var result = await countServices.GetByPlanAndProduct(id, plan);

            if (result.Count > 0)
            {
                var data = new List <CountPlanDetailItem>();
                data         = result.Where(a => a.UserCode == user).ToList();
                Details      = new ObservableCollection <CountPlanDetailItem>(result.Where(a => a.UserCode == user).ToList());
                LastRowCount = Details.LastOrDefault().Count;
                CountProduct = int.Parse(result.Sum(a => a.Quantity).ToString());


                //var groupedData =
                //     data.OrderBy(p => p.Id)
                //         .GroupBy(p => p.Count.ToString())
                //         .Select(p => new ObservableGroupCollection<string, CountPlanDetailItem>(p))
                //         .ToList();


                //var groupedData =
                //     data.OrderBy(p => p.Id)
                //         .GroupBy(p => p.Count.ToString())
                //         .Select(p => new ObservableCollection<< IGrouping < string, CountPlanDetailItem >> (p))
                //         .ToList();



                //var grouped = from Model in data
                //              group Model by Model.Count into Group
                //              select new ObservableCollection<IGrouping<string, CountPlanDetailItem>>(Group.Key);


                //GroupedList = new ObservableCollection<IGrouping<string, CountPlanDetailItem>>(groupedData);
                //GroupedList = new ObservableCollection<ObservableGroupCollection<string, CountPlanDetailItem>>(groupedData);
                //ObservableGroupCollection =IGrouping<string, CountPlanDetailItem>
            }
            else
            {
                Details      = new ObservableCollection <CountPlanDetailItem>(result);
                LastRowCount = 0;
            }
        }