public object MapItem(List <IDomainInfoViewModels> list, object Tmodel)
        {
            try
            {
                Type myType = Tmodel.GetType();

                IList <PropertyInfo> props = new List <PropertyInfo>(myType.GetProperties());
                foreach (var domainItem in list)
                {
                    foreach (PropertyInfo property in props)
                    {
                        if (domainItem.DomainInformation.PropertyMapping == property.Name)
                        {
                            switch (domainItem.DomainType.TypeName)
                            {
                            case "StringType":
                                TextQuestion txtQuestion = (TextQuestion)domainItem.Question;
                                property.SetValue(Tmodel, txtQuestion.Value);
                                break;

                            case "BoolType":
                                BoolQuestion boolQuestion = (BoolQuestion)domainItem.Question;
                                property.SetValue(Tmodel, boolQuestion.Value);
                                break;

                            case "IntType":
                                IntQuestion intQuestion = (IntQuestion)domainItem.Question;
                                property.SetValue(Tmodel, intQuestion.Value);
                                break;

                            case "DateTimeType":
                                DateTimeQuestion dateTimeQuestion = (DateTimeQuestion)domainItem.Question;
                                property.SetValue(Tmodel, dateTimeQuestion.Value);
                                break;

                            case "DropdownType":
                                DropdownQuestion dropDownQuestion = (DropdownQuestion)domainItem.Question;
                                property.SetValue(Tmodel, dropDownQuestion.Value);
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)

            {
                var x = ex.Message;
            }


            return(Tmodel);
        }
        public async Task <DomainViewModel> GetQuestionSet(int groupId)
        {
            DomainViewModel model = new DomainViewModel();

            var selectedDomainGroup = await _groupRepo.GetAsync(groupId);

            model.DomainGroup = selectedDomainGroup;

            var SelectedDomainInformation = await _informationRepo.GetAllByGroupIdAsync(selectedDomainGroup.Id);

            List <IDomainInfoViewModels> domainInfoViewModel = new List <IDomainInfoViewModels>();


            foreach (var domainInformation in SelectedDomainInformation)
            {
                DomainInfoViewModel infoModel = new DomainInfoViewModel
                {
                    DomainInformation = domainInformation,
                    DomainType        = await _typeRepo.GetAsync(domainInformation.TypeId),
                };

                if (infoModel.DomainType.TypeName == CustomType.StringType.ToString())
                {
                    IQuestion textQuestion = new TextQuestion
                    {
                        Text          = infoModel.DomainInformation.Title,
                        Order         = infoModel.DomainInformation.Order,
                        HasValidation = infoModel.DomainInformation.HasValidation
                    };
                    infoModel.Question = textQuestion;
                }
                else if (infoModel.DomainType.TypeName == CustomType.BoolType.ToString())
                {
                    IQuestion boolQuestion = new BoolQuestion
                    {
                        Text          = infoModel.DomainInformation.Title,
                        Order         = infoModel.DomainInformation.Order,
                        HasValidation = infoModel.DomainInformation.HasValidation
                    };
                    infoModel.Question = boolQuestion;
                }
                else if (infoModel.DomainType.TypeName == CustomType.IntType.ToString())
                {
                    IQuestion intQuestion = new IntQuestion
                    {
                        Text          = infoModel.DomainInformation.Title,
                        Order         = infoModel.DomainInformation.Order,
                        HasValidation = infoModel.DomainInformation.HasValidation
                    };
                    infoModel.Question = intQuestion;
                }
                else if (infoModel.DomainType.TypeName == CustomType.DateTimeType.ToString())
                {
                    IQuestion dateTimeQuestion = new DateTimeQuestion
                    {
                        Text          = infoModel.DomainInformation.Title,
                        Order         = infoModel.DomainInformation.Order,
                        HasValidation = infoModel.DomainInformation.HasValidation
                    };
                    infoModel.Question = dateTimeQuestion;
                }
                else if (infoModel.DomainType.TypeName == CustomType.DropdownType.ToString())
                {
                    IQuestion dropdownQuestion = new DropdownQuestion
                    {
                        Text          = infoModel.DomainInformation.Title,
                        Order         = infoModel.DomainInformation.Order,
                        HasValidation = infoModel.DomainInformation.HasValidation,
                        Values        = infoModel.DomainInformation.Arguments.Split(',').ToList()
                    };
                    infoModel.Question = dropdownQuestion;
                }

                domainInfoViewModel.Add(infoModel);
            }

            model.DomainInfoViewModels = domainInfoViewModel;


            return(model);
        }