Skip to content

Commit c027c25

Browse files
authored
Merge pull request mouredev#7327 from Hequebo/hequebo38
mouredev#38 - C#
2 parents 164db45 + ebdf0be commit c027c25

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed
+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
class Participant
2+
{
3+
public int Id { get; set; }
4+
public string Email { get; set; }
5+
public string Status { get; set; }
6+
7+
public Participant(int id, string email, string status)
8+
{
9+
Id = id;
10+
Email = email;
11+
Status = status;
12+
}
13+
14+
}
15+
class Program
16+
{
17+
static void Main(string[] args)
18+
{
19+
Console.WriteLine("---Ganadores de Sortea MoureDevPro---");
20+
21+
using (var reader = new StreamReader("participantes.csv"))
22+
{
23+
List<Participant> list = new List<Participant>();
24+
25+
reader.ReadLine(); // Saltar primera linea con nombre de columnas
26+
27+
while (!reader.EndOfStream)
28+
{
29+
var line = reader.ReadLine();
30+
var values = line.Split(",");
31+
32+
list.Add(new Participant(int.Parse(values[0]), values[1].Trim(), values[2].Trim()));
33+
}
34+
35+
if (list.Count < 3)
36+
{
37+
Console.WriteLine("Error.- Deben de existir por lo menos tres participantes...");
38+
return;
39+
}
40+
List<Participant> activeList = list.Where(p => p.Status.ToLower() == "activo").ToList();
41+
if (activeList.Count() < 3)
42+
{
43+
Console.WriteLine("Error.- Deben de existir por lo menos tres participantes " +
44+
"con el campo Status en 'Activo'...");
45+
return;
46+
}
47+
Console.WriteLine("Participantes Activos en el sorteo");
48+
foreach (var participant in activeList)
49+
Console.WriteLine($"{participant.Id}.- {participant.Email}");
50+
51+
Random random = new Random();
52+
int winnerIndex = random.Next(0, activeList.Count - 1);
53+
54+
var winner = activeList[winnerIndex];
55+
activeList.RemoveAt(winnerIndex);
56+
57+
Console.WriteLine(${winner.Email} ha ganado una suscripción!");
58+
59+
winnerIndex = random.Next(0, activeList.Count - 1);
60+
winner = activeList[winnerIndex];
61+
activeList.RemoveAt(winnerIndex);
62+
63+
Console.WriteLine(${winner.Email} ha ganado un descuento del 30% en la suscripción anual!");
64+
65+
winnerIndex = random.Next(0, activeList.Count - 1);
66+
winner = activeList[winnerIndex];
67+
activeList.RemoveAt(winnerIndex);
68+
69+
Console.WriteLine(${winner.Email} ha ganado el libro de progrmación!");
70+
71+
Console.WriteLine("Felicidades a los ganadores y suerte en el próximo sorteo a:");
72+
foreach (var participant in activeList)
73+
Console.WriteLine($"{participant.Id}.- {participant.Email}");
74+
Console.WriteLine("¡Hasta la próxima!");
75+
}
76+
77+
}
78+
}

0 commit comments

Comments
 (0)