public IEnumerable <DropdownTuple> GetFilterDropDownValues(FormDictionaryFilterBy filterBy)
        {
            switch (filterBy)
            {
            case FormDictionaryFilterBy.NoFilter:
                return(new List <DropdownTuple>());

            case FormDictionaryFilterBy.ByType:
                return(Enum.GetValues(typeof(FormDictionaryType))
                       .Cast <FormDictionaryType>().Select(v => new DropdownTuple
                {
                    Value = v.ToString(),
                    Text = v.ToString()
                }));

            case FormDictionaryFilterBy.StationType:
                return(_db.ProjectRoadMaps.Select(v => new DropdownTuple
                {
                    Value = v.Id.ToString(),
                    Text = v.Name.ToString()
                }));

            case FormDictionaryFilterBy.Descipline:
                return(_db.Desciplines.Select(v => new DropdownTuple
                {
                    Value = v.Id.ToString(),
                    Text = v.Name.ToString()
                }));

            default:
                throw new ArgumentOutOfRangeException(nameof(filterBy), filterBy, null);
            }
        }
Ejemplo n.º 2
0
        public static IQueryable <FormDictionaryListDto> FilterFormDictionaryBy(
            this IQueryable <FormDictionaryListDto> formDictioanry,
            FormDictionaryFilterBy filterBy, string filterValue)
        {
            if (string.IsNullOrEmpty(filterValue))
            {
                return(formDictioanry);
            }

            switch (filterBy)
            {
            case FormDictionaryFilterBy.NoFilter:
                return(formDictioanry);

            case FormDictionaryFilterBy.ByType:
                var val = filterValue.ParseEnum <FormDictionaryType>();
                return(formDictioanry.Where(s => s.Type == val));

            case FormDictionaryFilterBy.StationType:
                var stVal = 0;
                int.TryParse(filterValue, out stVal);
                return(formDictioanry.Where(s => s.WorkPackageId == stVal));

            case FormDictionaryFilterBy.Descipline:
                var desciplineId = 0;
                int.TryParse(filterValue, out desciplineId);
                return(formDictioanry.Where(s => s.DesciplinesIds.Contains(desciplineId)));

            default:
                throw new ArgumentOutOfRangeException
                          (nameof(filterBy), filterBy, null);
            }
        }