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()); }
public GridDataResponseDTO <SchemeForGridDTO> ListSchemes(DataSourceRequest telerikRequestData) { GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true); return(QuestionnaireAdminDataManager.Instance.ListSchemesForGrid(requestDTO)); }
public GridDataResponseDTO <RenderedPageForGridDTO> ListRenderedPagesBySchemeForGrid(DataSourceRequest telerikRequestData, int schemeId) { GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true); return(QuestionnaireAdminDataManager.Instance.ListRenderedPagesBySchemeForGrid(requestDTO, schemeId)); }
public GridDataResponseDTO <PossibleAnswerForGridDTO> ListPossibleAnswersByQuestionForGrid(DataSourceRequest telerikRequestData, int questionId) { GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true); return(QuestionnaireAdminDataManager.Instance.ListPossibleAnswersByQuestionForGrid(requestDTO, questionId)); }
public GridDataResponseDTO <PageQuestionConditionalDisplayForGridDTO> ListPageQuestionConditionalDisplaysByPageQuestionForGrid(DataSourceRequest telerikRequestData, int pageQuestionId) { GridDataRequestDTO requestDTO = GridHelper.Instance.ConvertTelerikDataSourceRequestToGridDataRequestDTO(telerikRequestData, true); return(QuestionnaireAdminDataManager.Instance.ListPageQuestionConditionalDisplaysByPageQuestionForGrid(requestDTO, pageQuestionId)); }
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); }