Пример #1
0
        public static IHtmlContent GenerateHtml <TModel, TProperty>(
            IHtmlHelper <TModel> htmlHelper,
            Expression <Func <TModel, TProperty> > propertyLambdaExpression,
            FieldsetViewModel fieldsetOptions = null,
            HintViewModel hintOptions         = null)
            where TModel : GovUkViewModel
        {
            PropertyInfo property = ExpressionHelpers.GetPropertyFromExpression(propertyLambdaExpression);

            ThrowIfPropertyTypeIsNotNullableEnum(property);
            string propertyName = property.Name;

            TModel    model = htmlHelper.ViewData.Model;
            TProperty currentlySelectedValue =
                ExpressionHelpers.GetPropertyValueFromModelAndExpression(model, propertyLambdaExpression);

            Type  enumType      = Nullable.GetUnderlyingType(typeof(TProperty));
            Array allEnumValues = Enum.GetValues(enumType);


            List <ItemViewModel> radios = allEnumValues
                                          .OfType <object>()
                                          .Select(enumValue =>
            {
                bool isEnumValueCurrentlySelected = enumValue.ToString() == currentlySelectedValue.ToString();
                string radioLabelText             = GetRadioLabelText(enumType, enumValue);

                return(new RadioItemViewModel
                {
                    Value = enumValue.ToString(),
                    Id = $"GovUk_Radio_{propertyName}_{enumValue}",
                    Checked = isEnumValueCurrentlySelected,
                    Label = new LabelViewModel
                    {
                        Text = radioLabelText
                    }
                });
            })
                                          .Cast <ItemViewModel>()
                                          .ToList();

            var radiosViewModel = new RadiosViewModel
            {
                Name     = $"GovUk_Radio_{propertyName}",
                IdPrefix = $"GovUk_{propertyName}",
                Items    = radios,
                Fieldset = fieldsetOptions,
                Hint     = hintOptions
            };

            if (model.HasErrorFor(property))
            {
                radiosViewModel.ErrorMessage = new ErrorMessageViewModel
                {
                    Text = model.GetErrorFor(property)
                };
            }

            return(htmlHelper.Partial("/GovUkDesignSystemComponents/Radios.cshtml", radiosViewModel));
        }
Пример #2
0
        public IViewComponentResult Invoke(
            string aspFor,
            string label,
            IEnumerable <RadiosListItemViewModel> radios,
            bool populateWithCurrentValues,
            string?hintText
            )
        {
            var radiosList = radios.Select(
                r => new RadiosItemViewModel(
                    r.Enumeration.Name,
                    r.Label,
                    IsSelectedRadio(aspFor, r.Enumeration, populateWithCurrentValues),
                    r.HintText
                    )
                );

            var viewModel = new RadiosViewModel(
                aspFor,
                label,
                string.IsNullOrEmpty(hintText) ? null : hintText,
                radiosList
                );

            return(View(viewModel));
        }
Пример #3
0
        public ActionResult Player(string chave)
        {
            string key = primeKey + "Player:" + chave;

            RadiosViewModel retorno = null;


            var diaS      = (int)DateTime.Now.DayOfWeek;
            var horaAtual = string.Format("{0:HH:mm tt}", DateTime.Now);

            var programacoesDia = db.Horario_programacao.Where(x => x.diaSemana == diaS).Select(y => new ProgramacoesVM {
                programaId = y.idPrograma.ToString(), horario = y.horario, Data = new DateTime()
            }).ToList();

            foreach (var item in programacoesDia)
            {
                item.Data = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + item.horario);
            }

            var atual        = programacoesDia.OrderBy(x => x.Data).LastOrDefault(x => x.Data <= DateTime.Now);
            var horarioFinal = programacoesDia.OrderBy(x => x.Data).Where(x => x.Data >= DateTime.Now).Take(2).FirstOrDefault();
            var convertId    = Int32.Parse(atual.programaId);

            var hf = "";

            if (horarioFinal != null)
            {
                hf = horarioFinal.horario;
            }

            ViewBag.programacao = db.Programacao.Where(x => x.id == convertId).Select(a => new ProgramacaoMenuViewModel {
                Id = a.id, Horario = atual.horario, FimHorario = hf, Nome = a.nome
            }).ToList();
            ViewBag.radios = db.Radios.Where(x => x.Ativo).OrderBy(x => x.Titulo).Select(r => new RadiosMenuViewModel {
                Chave = r.Chave, Titulo = r.Titulo, Stream1 = r.Stream1, Stream2 = r.Stream2
            }).ToList();

            Func <object, RadiosViewModel> funcao = t => PlayerDB(chave);

            retorno = RedisService.GetOrSetToRedis(key, funcao, 60);


            return(View(retorno));
        }
 public static IHtmlContent GovUkRadios(
     this IHtmlHelper htmlHelper,
     RadiosViewModel radioItemViewModel)
 {
     return(htmlHelper.Partial("/GovUkDesignSystemComponents/Radios.cshtml", radioItemViewModel));
 }
Пример #5
0
 public static IHtmlContent GovUkRadios(
     this IHtmlHelper htmlHelper,
     RadiosViewModel radioItemViewModel)
 {
     return(htmlHelper.Partial("~/Partials/Radios.cshtml", radioItemViewModel));
 }