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 to get 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 means ALL possible combinations.
I started to do, but I could not 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>