public static string GetWhereClauseForRequest(GridDataRequestDTO requestDTO, bool forLinq)
        {
            StringBuilder result = new StringBuilder();

            if (requestDTO.Filters.Count > 0)
            {
                foreach (FilterRequestDTO filterDTO in requestDTO.Filters)
                {
                    filterDTO.PropertyValue = CleanSQLCommandsFromString(filterDTO.PropertyValue);
                    if (requestDTO.Filters.IndexOf(filterDTO) > 0)
                    {
                        filterDTO.PropertyValue = CleanSQLCommandsFromString(filterDTO.PropertyValue);
                        //need to add an "AND"
                        if (forLinq)
                        {
                            result.AppendLine("&& " + GetWhereClauseForFilter(filterDTO, forLinq));
                        }
                        else
                        {
                            result.AppendLine("AND " + GetWhereClauseForFilter(filterDTO, forLinq));
                        }
                    }
                    else
                    {
                        result.Append(GetWhereClauseForFilter(filterDTO, forLinq));
                    }
                }
            }


            return(result.ToString());
        }
        public static string GetSortClauseForRequest(GridDataRequestDTO requestDTO)
        {
            StringBuilder result = new StringBuilder();

            if (requestDTO.Sort.SortDirection == SortDirections.Descending)
            {
                result.Append(requestDTO.Sort.SortProperty + " desc");
            }
            else
            {
                result.Append(requestDTO.Sort.SortProperty);
            }
            return(result.ToString());
        }
Пример #3
0
        public GridDataResponseDTO <SchemeForGridDTO> ListSchemes(DataSourceRequest telerikRequestData)
        {
            GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true);

            return(QuestionnaireAdminDataManager.Instance.ListSchemesForGrid(requestDTO));
        }
Пример #4
0
        public GridDataResponseDTO <RenderedPageForGridDTO> ListRenderedPagesBySchemeForGrid(DataSourceRequest telerikRequestData, int schemeId)
        {
            GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true);

            return(QuestionnaireAdminDataManager.Instance.ListRenderedPagesBySchemeForGrid(requestDTO, schemeId));
        }
Пример #5
0
        public GridDataResponseDTO <PossibleAnswerForGridDTO> ListPossibleAnswersByQuestionForGrid(DataSourceRequest telerikRequestData, int questionId)
        {
            GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true);

            return(QuestionnaireAdminDataManager.Instance.ListPossibleAnswersByQuestionForGrid(requestDTO, questionId));
        }
Пример #6
0
        public GridDataResponseDTO <PageQuestionConditionalDisplayForGridDTO> ListPageQuestionConditionalDisplaysByPageQuestionForGrid(DataSourceRequest telerikRequestData, int pageQuestionId)
        {
            GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true);

            return(QuestionnaireAdminDataManager.Instance.ListPageQuestionConditionalDisplaysByPageQuestionForGrid(requestDTO, pageQuestionId));
        }
Пример #7
0
        public GridDataRequestDTO ConvertTelerikDataSourceRequestToGridDataRequestDTO(DataSourceRequest telerikRequest, bool linqDataSource)
        {
            FilterDescriptor   filterDescriptor = null;
            string             value            = string.Empty;
            GridDataRequestDTO result           = new GridDataRequestDTO()
            {
                Filters    = null,
                PageNumber = 0,
                PageSize   = 10,
                Sort       = null
            };

            result.PageNumber = telerikRequest.Page;
            if (telerikRequest.PageSize > 0)
            {
                result.PageSize = telerikRequest.PageSize;
            }

            //filters
            if (telerikRequest.Filters != null && telerikRequest.Filters.Count > 0)
            {
                //List<FilterDescriptor> filterDescriptors = new List<FilterDescriptor>();
                //filterDescriptors = telerikRequest.Filters.OfType<FilterDescriptor>().ToList();
                ////get composite filter descriptors
                //foreach (CompositeFilterDescriptor compositeDescriptor in telerikRequest.Filters.OfType<CompositeFilterDescriptor>())
                //{
                //    if (compositeDescriptor.FilterDescriptors != null)
                //    {
                //        filterDescriptors.AddRange(compositeDescriptor.FilterDescriptors.Cast<FilterDescriptor>());
                //    }
                //}

                List <FilterDescriptor> filterDescriptors = GetFilterDescriptors(telerikRequest.Filters);

                result.Filters = new List <FilterRequestDTO>();
                foreach (IFilterDescriptor filter in filterDescriptors)
                {
                    filterDescriptor = filter as FilterDescriptor;
                    if (filterDescriptor.Value.GetType() == typeof(DateTime))
                    {
                        if (linqDataSource)
                        {
                            value = ((DateTime)filterDescriptor.Value).ToString("yyyy, MM, dd");
                        }
                        else
                        {
                            value = ((DateTime)filterDescriptor.Value).ToString("yyyy-MM-dd");
                        }
                    }
                    else
                    {
                        value = string.Concat(filterDescriptor.Value.ToString().Take(20));  //only take the first 20 characters - reduces risk of sql injection attack
                    }
                    result.Filters.Add(new FilterRequestDTO()
                    {
                        FilterType    = (FilterTypes)filterDescriptor.Operator,
                        PropertyName  = filterDescriptor.Member,
                        PropertyValue = value,
                        DataType      = filterDescriptor.Value.GetType()
                    });
                }
            }
            else
            {
                //create a blank list of filters
                result.Filters = null;
            }

            //sort order - only one column sorting is current supported
            if (telerikRequest.Sorts != null && telerikRequest.Sorts.Count > 0)
            {
                SortDescriptor sort = telerikRequest.Sorts.First();
                result.Sort = new SortRequestDTO()
                {
                    SortDirection = sort.SortDirection == System.ComponentModel.ListSortDirection.Ascending ? SortDirections.Ascending : SortDirections.Descending,
                    SortProperty  = sort.Member
                };
            }
            else
            {
                //create some a sort
                result.Sort = null;
            }

            return(result);
        }