//using Microsoft.AspNetCore.Components;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Threading.Tasks;

//namespace CustomComponent.Data
//{
//    public class UsersDropDownListField
//    {
//    }

//    public partial class UsersDropDownListField : ComponentBase, IDisposable
//    {
//        DotNetObjectReference<UsersDropDownListField> ObjectReference;

//        [Inject]
//        IServiceScopeFactory ScopeFactory { get; set; }


//        [CascadingParameter(Name = "entityType")] Type entityType { get; set; }

//        [CascadingParameter(Name = "renameFields")] List<shared.ModelsCore.RenameField> renameFields { get; set; }

//        [CascadingParameter(Name = "regionalVocab")] List<RegionalVocab> regionalVocab { get; set; }

//        //[CascadingParameter(Name = "currentType")] Type currentType { get; set; }

//        //[CascadingParameter(Name = "nameOfString")] string nameOfString { get; set; }

//        [Parameter]
//        public string nameOfString { get; set; }

//        [Parameter]
//        public string defaultNameOfString { get; set; }

//        [Parameter]
//        public object pageData { get; set; }


//        [Parameter]
//        public IEnumerable<MiniUser> DataSource { get; set; }

//        //private void onCreate()
//        //{
//        //    if(DataSource ==null || DataSource.Count() ==0)
//        //    {
//        //        DataSource = null;
//        //    }
//        //}


//        SfDropDownList<int?, MiniUser> genericCustomerPicker;

//        SfCheckBox genericCheckBox;

//        public string genericDateTimePickerVal { get; set; }
//        public string genericTextBoxVis { get; set; }

//        //public string genericTextBoxBindVal { get; set; }



//        [ParameterAttribute]
//        public EventCallback<int?> ValueChanged { get; set; }

//        [Parameter]
//        public int? CustomValue { get; set; }
//        [Parameter]
//        public EventCallback<int?> CustomValueChanged { get; set; }




//        //[ParameterAttribute]
//        //public int? Value { get; set; }


//        [CascadingParameter]
//        private EditContext EditContext { get; set; }



//        [Parameter]
//        public FluentValidator fluentValidator { get; set; }

//        Type models = typeof(MiniUser);

//        protected override async Task OnInitializedAsync()
//        {
//            // await Task.Delay(200);
//            setValues();



//        }

//        public ValidationMessageStore ValidationMessageStore;



//        [Parameter]
//        public Action<EditContext, string> blurredPassMS { get; set; }

//        [Parameter]
//        public Action CValueSelect { get; set; }

//        [Parameter]
//        public Action<int> CValueChanged { get; set; }

//        private string genericTextBoxBindVal { get; set; }


//        private async void searchCombo(FilteringEventArgs args)
//        {
//            await genericCustomerPicker.HidePopup();
//            await genericCustomerPicker.ShowSpinner();
//            await getDComboBoxData(args.Text);
//            await genericCustomerPicker.HideSpinner();
//            await genericCustomerPicker.ShowPopup();
//        }



//        // DropDownListField DDLF;
//        private async Task searchDD()
//        {

//            var test = genericCustomerPicker.Text;



//            await genericCustomerPicker.HidePopup();
//            await genericCustomerPicker.ShowSpinner();
//            await getDComboBoxData(test);
//            await genericCustomerPicker.HideSpinner();


//            await Task.Delay(200);
//            // genericCustomerPicker.Refresh();
//            StateHasChanged();
//            await genericCustomerPicker.ShowPopup();
//        }



//        private async Task CCFilter(FilteringEventArgs args)
//        {
//            //args.Cancel = true;

//            var test = args.Text;

//            args.PreventDefaultAction = true;



//            if (test != null)
//            {
//                List<MiniUser> lMiniC = await getDComboBoxData(test);

//                await this.genericCustomerPicker.Filter(lMiniC);


//            }
//            else
//            {
//                var t = "fdg";
//            }



//        }


//        private async void clearSel(MouseEventArgs args)
//        {
//            if (pageData.GetType() == typeof(ReminderTemp))
//            {
//                (pageData as ReminderTemp).OwnerProfileDataID = null;
//            }


//            StateHasChanged();
//        }


//        private async void searchComboD(MouseEventArgs args)
//        {


//            await searchDD();

//        }

//        private bool isSearching = false;

//        private async Task<List<MiniUser>> getDComboBoxData(string argst)
//        {
//            try
//            {
//                if (!isSearching)
//                {
//                    isSearching = true;


//                    using (var serviceScope = ScopeFactory.CreateScope())
//                    {

//                        var myService = serviceScope.ServiceProvider.GetService<UsersMethods>();

//                        List<MiniUser> tempds = await myService.GetAllCompanyUsersMiniSimpleTask(argst);




//                        // DataSource = tempds.AsEnumerable<MiniCustomer>();


//                        isSearching = false;

//                        return tempds;
//                    }
//                }
//                //else
//                //{
//                //    return tempds;
//                //}
//            }
//            catch (Exception er)
//            {

//                var test = er;
//                return null;
//            }
//            return null;
//        }



//        private async void CCBlur(object args)
//        {





//            //if ((pageData as Customers_Contacts).Customer != null)
//            //{
//            //    if ((pageData as Customers_Contacts).Customer.CustomerID != (pageData as Customers_Contacts).CustomerID)
//            //    {
//            //        (pageData as Customers_Contacts).Customer = await customersMethods.GetCustomerById((pageData as Customers_Contacts).CustomerID);
//            //    }
//            //}

//            // if (args != null)
//            // genericCustomerPicker.Text = args.ToString();
//        }


//        private async void onValueSelect(Syncfusion.Blazor.DropDowns.SelectEventArgs args)
//        {
//            CValueSelect();
//        }



//        private async void onValueChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs<int?> args)
//        {
//            if (args.Value != null)
//            {
//                if (pageData == null) //used as filter
//                {

//                }
//                else
//                {

//                    if (pageData.GetType() == typeof(ReminderTemp))
//                    {


//                        using (var serviceScope = ScopeFactory.CreateScope())
//                        {

//                            var myService = serviceScope.ServiceProvider.GetService<UsersMethods>();
//                            (pageData as ReminderTemp).OwnerProfileDataID = (await myService.GetProfileDataByIdAsync(args.Value.Value)).ProfileDataID;
//                        }

//                    }
//                }

//            }
//            else //Clear button clicked
//            {
//                if (pageData != null) //if used as filter
//                {
//                    if (pageData.GetType() == typeof(ReminderTemp))
//                    {
//                        (pageData as ReminderTemp).OwnerProfileDataID = null;
//                    }
//                }
//                else
//                {

//                }
//            }
//            if (CustomValue != null)
//            {
//                CValueChanged(CustomValue.Value);
//            }
//            else
//            {
//                CValueChanged(0);
//            }
//            await CustomValueChanged.InvokeAsync(CustomValue);
//        }



//        //private async void CCChange()
//        //{

//        //    if ((pageData as Customers_Contacts).Customer != null)
//        //    {
//        //        if ((pageData as Customers_Contacts).Customer.CustomerID != (pageData as Customers_Contacts).CustomerID)
//        //        {
//        //            (pageData as Customers_Contacts).Customer = await customersMethods.GetCustomerById((pageData as Customers_Contacts).CustomerID);
//        //        }
//        //    }

//        //    // if (args != null)
//        //    // genericCustomerPicker.Text = args.ToString();
//        //}




//        private async void vBluredd()
//        {
//            // genericTextBoxBindVal = pageData.GetType().GetProperty(nameOfString).GetValue(pageData, null);

//            if (EditContext != null)
//                blurredPassMS(EditContext, nameOfString);

//            // FluentValidation.Results.ValidationResult result = await fluentValidator.Validator.ValidateAsync(EditContext);

//            // mainForm.EditContext.NotifyValidationStateChanged();

//            //PageData.Firstname = args;

//            //var test = "";
//        }

//        public void setValues()
//        {

//            using (var serviceScope = ScopeFactory.CreateScope())
//            {
//                var myService = serviceScope.ServiceProvider.GetService<RenameMethods>();


//                genericTextBoxVis = myService.GetRenamedFieldDetailVis(entityType, renameFields, nameOfString);
//                genericDateTimePickerVal = myService.GetRenamedField(defaultNameOfString, entityType, regionalVocab, renameFields, nameOfString);

//            }
//            StateHasChanged();


//            //  genericTextBoxBindVal = pageData.GetType().GetProperty(nameOfString).GetValue(pageData, null);


//            // genericTextBoxBindVal = d.Firstname;


//        }

//        protected override async Task OnParametersSetAsync()
//        {
//            var test = entityType;


//        }


//        protected override async Task OnAfterRenderAsync(bool firstRender)
//        {
//            if (firstRender)
//            {

//                ObjectReference = DotNetObjectReference.Create(this);
//            }
//        }


//        public async void Dispose()
//        {
//            GC.SuppressFinalize(this);
//            if (ObjectReference != null)
//            {
//                //Now dispose our object reference so our component can be garbage collected
//                ObjectReference.Dispose();
//            }
//        }

//    }
//}
