0
I have the following classes:
public class Categoria
{
public int Id { get; set; }
public string Nome { get; set; }
public bool Primeiro { get; set; }
}
public class Opcao
{
public int Id { get; set; }
public string Nome { get; set; }
public virtual Categoria CategoriaProxima { get; set; }
public virtual Categoria Categoria { get; set; }
public bool Ultima { get; set; }
}
Data example:
Categoria Opcao
Escolha o que deseja tratar Rugas
Escolha o que deseja tratar Manchas
Escolha o que deseja tratar Olheiras
Escolha o que deseja tratar Fotoproteção
Escolha o que deseja tratar Flacidez
Selecione seu tipo de pele Pele Normal
Selecione seu tipo de pele Pele Oleosa
Selecione seu tipo de pele Pele Seca
Selecione seu tipo de pele Pele Extra Seca
Selecione seu tipo de ruga Rugas Finas
Selecione seu tipo de ruga Rugas Médias
Selecione seu tipo de ruga Rugas Profundas
Selecione seu fototipo Fototipo 1
Selecione seu fototipo Fototipo 2
Selecione seu fototipo Fototipo 3
Selecione seu fototipo Fototipo 4
I would like the following result:
Rugas - Pele Normal - Rugas Finas - Fototipo 1
Rugas - Pele Normal - Rugas Finas - Fototipo 2
Rugas - Pele Normal - Rugas Finas - Fototipo 3
Rugas - Pele Normal - Rugas Finas - Fototipo 4
Rugas - Pele Normal - Rugas Médias - Fototipo 1
Rugas - Pele Normal - Rugas Médias - Fototipo 2
Rugas - Pele Normal - Rugas Médias - Fototipo 3
Rugas - Pele Normal - Rugas Médias - Fototipo 4
(...)
That is ALL possible combinations.
I started doing it, but I couldn’t evolve:
foreach (var opcao in opcoes.Where(x => x.Categoria.Primeiro == true))
{
// Pular Linha
opcao.Nome //Exibir Opcao
while(opcao.Ultima==false){
// Pular Linha
}
proximaCategoria = opcao.CategoriaProxima;
foreach(var proximaOpcao in opcoes.Where(x=>x.CategoriaProxima.Id == proximaCategoria.Id)){
}
[VIEW]
@model IEnumerable<Dominio.Categoria>
@{
var opcoes = ViewData["Opcoes"] as IEnumerable<Dominio.Opcao>;
}
<table>
<thead>
<tr>
@foreach (var categoria in Model)
{
<th>
@categoria.Nome
</th>
}
</tr>
</thead>
<tbody>
@foreach (var opcao in opcoes.Where(x=>x.Categoria.Primeiro == true)) {
(...)
}
</tbody>
</table>
And how would I display this on a table, for example?
– Diego Zanardo
@Diegozanardo Put a piece of View that I improve the answer.
– Leonel Sanches da Silva
Added Gypsy!
– Diego Zanardo
@Diegozanardo I updated the answer. I don’t quite understand how you want to build this table, but I believe that working the answer code you arrive at the expected result.
– Leonel Sanches da Silva
T giving this error in the method signature, "cannot be an iterator block because List<string>' is not an iterator interface type"
– Diego Zanardo
@Diegozanardo It was bad! Truth.
List
cannot be returned byyield
. Look now.– Leonel Sanches da Silva
Now you have another rsrsrs error, Categoriaproxima, it is a category and not a category list... so you are giving error in the option.
– Diego Zanardo
I tried instead to receive a list of categories, receive only one category, but without success!
– Diego Zanardo
@Diegozanardo I wrote this code without a proper test. I updated it. Note that I have now done two functions with polymorphism so that the call makes sense.
– Leonel Sanches da Silva