Advertisement
Guest User

Untitled

a guest
Apr 7th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.07 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9. class Program
  10. {
  11. public struct Login
  12. {
  13. public string username;
  14. public string nome;
  15. public int tipo;
  16. public string password;
  17. public int id;
  18. }
  19. public struct Data
  20. {
  21. public int dia;
  22. public int mes;
  23. public int ano;
  24. public int hora;
  25. public int minutos;
  26. public int fimhora;
  27. public int fimminutos;
  28. }
  29.  
  30. public struct Sala
  31. {
  32. public int capacidade;
  33. public int numsala;
  34. }
  35.  
  36. public struct Sessao
  37. {
  38. public string nome;
  39. public Data data;
  40. public string local;
  41. public int idsessao;
  42. public Sala sala;
  43. }
  44.  
  45. public struct Conferencia
  46. {
  47. public string nome;
  48. public Data data;
  49. public string local;
  50. public Sessao sessao;
  51. public Sala sala;
  52. public string artigo;
  53. public Login login;
  54.  
  55. }
  56.  
  57. static int TestarInt(string pergunta)
  58. {
  59.  
  60. int num = 0;
  61. lol:
  62. try
  63. {
  64. Console.WriteLine(pergunta);
  65. num = Convert.ToInt32(Console.ReadLine());
  66. }
  67. catch (Exception)
  68. {
  69. Console.WriteLine("Dados introduzidos inválidos");
  70. goto lol;
  71. }
  72. return num;
  73. }
  74.  
  75. static void CarregarClientes(List<Login> a)
  76. {
  77. Login b = new Login();
  78. b.nome = "Jose";
  79. b.tipo = 1;
  80. b.id = 1;
  81. b.password = "12345";
  82. b.username = "Jose";
  83. a.Add(b);
  84.  
  85. Login d = new Login();
  86. d.nome = "Rui";
  87. d.tipo = 1;
  88. d.id = 2;
  89. d.password = "12345";
  90. d.username = "Rui";
  91. a.Add(d);
  92.  
  93. Login c = new Login();
  94. c.nome = "Antonio";
  95. c.id = 3;
  96. c.tipo = 1;
  97. c.password = "12345";
  98. c.username = "Antonio";
  99. a.Add(c);
  100. }
  101.  
  102. static void CarregarSalas(List<Sala> b)
  103. {
  104. Sala s = new Sala();
  105. s.numsala = 1;
  106. s.capacidade = 50;
  107. b.Add(s);
  108. Sala a = new Sala();
  109. a.numsala = 2;
  110. a.capacidade = 70;
  111. b.Add(a);
  112. Sala c = new Sala();
  113. c.numsala = 3;
  114. c.capacidade = 80;
  115. b.Add(c);
  116. }
  117.  
  118. static void CarregarOrganizadores(List<Login> a)
  119. {
  120. Login e = new Login();
  121. e.username = "Jose1";
  122. e.nome = "Jose";
  123. e.id = 4;
  124. e.tipo = 2;
  125. e.password = "12345";
  126. a.Add(e);
  127. }
  128.  
  129. static void CarregarAutor(List<Login> a)
  130. {
  131. Login e = new Login();
  132. e.id = 5;
  133. e.username = "Jorge";
  134. e.nome = "Jorge";
  135. e.tipo = 3;
  136. e.password = "12345";
  137. a.Add(e);
  138. }
  139.  
  140. static void CarregarSessao(List<Sessao> c)
  141. {
  142. Sessao s = new Sessao();
  143. s.nome = "Os 3 Mosqueteiros";
  144. s.local = "Teatro Gil Vicente";
  145. s.data.ano = 2016;
  146. s.data.mes = 3;
  147. s.data.dia = 21;
  148. s.data.hora = 15;
  149. s.data.minutos = 30;
  150. s.data.fimhora = 18;
  151. s.data.fimminutos = 30;
  152. s.idsessao = 1;
  153. s.sala.numsala = 1;
  154. s.sala.capacidade = 50;
  155. c.Add(s);
  156.  
  157. Sessao b = new Sessao();
  158. b.nome = "Os 3 Vilões";
  159. b.sala.capacidade = 75;
  160. b.sala.numsala = 2;
  161. b.local = "Teatro Gil Vicente";
  162. b.data.ano = 2016;
  163. b.data.mes = 3;
  164. b.data.dia = 21;
  165. b.data.hora = 15;
  166. b.data.minutos = 30;
  167. b.data.fimhora = 18;
  168. b.data.fimminutos = 30;
  169. b.idsessao = 2;
  170. c.Add(b);
  171. }
  172.  
  173. static void CarregarConferencias(List<Conferencia> d)
  174. {
  175. Conferencia b = new Conferencia();
  176. b.sala.capacidade = 100;
  177. b.sala.numsala = 3;
  178. b.local = "Teatro Gil Vicente";
  179. b.nome = "Afinal a Terra gira";
  180. b.sessao.idsessao = 3;
  181. b.login.id = 5;
  182. b.data.dia = 15;
  183. b.data.mes = 08;
  184. b.data.ano = 2016;
  185. b.data.hora = 15;
  186. b.data.minutos = 00;
  187. b.data.fimhora = 17;
  188. b.data.fimminutos = 00;
  189. b.artigo = "Terra Redonda";
  190. b.login.nome = "Jorge";
  191. b.login.username = "Jorge";
  192.  
  193. d.Add(b);
  194. }
  195.  
  196. static Login CriarCliente(List<Login> a)
  197. {
  198. Login c = new Login();
  199. int contador = 0;
  200. string username;
  201.  
  202. Console.WriteLine("Nome?");
  203. c.nome = Console.ReadLine();
  204. do
  205. {
  206. Console.WriteLine("Username?");
  207. username = Console.ReadLine();
  208. for (int i = 0; i < a.Count; i++)
  209. {
  210. contador++;
  211. if (username == a[i].username)
  212. {
  213. Console.WriteLine("Username já existe.");
  214. contador--;
  215. }
  216.  
  217. }
  218. } while (contador == a.Count - 1);
  219. c.username = username;
  220. Console.WriteLine("Password?");
  221. c.password = Console.ReadLine();
  222. c.tipo = 1;
  223. c.id = c.id + 1;
  224. return c;
  225.  
  226. }
  227.  
  228. static void Ver(Sessao c)
  229. {
  230.  
  231. Console.WriteLine();
  232. Console.WriteLine("Espectáculo");
  233. Console.WriteLine("--------------------------------------------------");
  234. Console.WriteLine("{10} - {0}\nLocal: {2} Sala: {11}\nLugares Disponíves: {1} \nDia: {3:D2}/{4:D2}/{5} Duração: {6:D2}:{7:D2} - {8:D2}:{9:D2}", c.nome, c.sala.capacidade, c.local, c.data.dia, c.data.mes, c.data.ano, c.data.hora, c.data.minutos, c.data.fimhora, c.data.fimminutos, c.idsessao, c.sala.numsala);
  235. Console.WriteLine("--------------------------------------------------");
  236. }
  237.  
  238. static void VerSessao(List<Sessao> c)
  239. {
  240. for (int i = 0; i < c.Count; i++)
  241. {
  242. Ver(c[i]);
  243. }
  244. }
  245.  
  246. static void MostrarConferencia(Conferencia d)
  247. {
  248. Console.WriteLine();
  249. Console.WriteLine("Conferência Científica");
  250. Console.WriteLine("--------------------------------------------------");
  251. Console.WriteLine("{0} - {1}\nAutor: {12}\nLocal: {2} Sala: {3}\nLugares Disponíveis {4}\nDia: {5:D2}/{6:D2}/{7} Duração: {8:D2}:{9:D2} - {10:D2}:{11:D2}", d.sessao.idsessao, d.nome, d.local, d.sala.numsala, d.sala.capacidade, d.data.dia, d.data.mes, d.data.ano, d.data.hora, d.data.minutos, d.data.fimhora, d.data.fimminutos, d.login.nome);
  252. Console.WriteLine("--------------------------------------------------");
  253. }
  254.  
  255. static void VerConferencia(List<Conferencia> d)
  256. {
  257. for (int i = 0; i < d.Count; i++)
  258. {
  259. MostrarConferencia(d[i]);
  260. }
  261. }
  262.  
  263. static void Comprar(List<Login> a, List<Sala> b, List<Sessao> c, List<Conferencia> d)
  264. {
  265. VerSessao(c);
  266. VerConferencia(d);
  267. string pergunta;
  268. pergunta = ("Qual a Sessão que gostaria de assistir?(Use os números para escolher");
  269. int num1 = TestarInt(pergunta);
  270. for (int i = 0; i < c.Count; i++)
  271. {
  272. if (num1 != c[i].idsessao && i == c.Count - 1)
  273. for (int n = 0; n < d.Count; n++)
  274. {
  275. if (num1 == d[n].sessao.idsessao)
  276. {
  277. Console.WriteLine("Escolheu a Conferencia " + d[n].nome);
  278. pergunta = ("Quantos bilhetes deseja comprar?");
  279. int num2 = TestarInt(pergunta);
  280. int total = d[n].sala.capacidade - num2;
  281. Conferencia sessao = d[n];
  282. sessao.sala.capacidade = total;
  283. d[n] = sessao;
  284. Console.ForegroundColor = ConsoleColor.Green;
  285. Console.WriteLine(num2 + " bilhetes comprados com sucesso");
  286. Console.ForegroundColor = ConsoleColor.White;
  287. }
  288. }
  289. if (num1 == c[i].idsessao)
  290. {
  291. Console.WriteLine("Escolheu a sessão " + c[i].nome);
  292. pergunta = ("Quantos bilhetes deseja comprar?");
  293. int num2 = TestarInt(pergunta);
  294. int total = c[i].sala.capacidade - num2;
  295. Sessao sessao = c[i];
  296. sessao.sala.capacidade = total;
  297. c[i] = sessao;
  298. Console.ForegroundColor = ConsoleColor.Green;
  299. Console.WriteLine(num2 + " bilhetes comprados com sucesso");
  300. Console.ForegroundColor = ConsoleColor.White;
  301. }
  302. }
  303. }
  304. static void MenuCliente(List<Login> a, List<Sala> b, List<Sessao> c, List<Conferencia> d)
  305. {
  306. int num;
  307. string pergunta;
  308. do
  309. {
  310. Console.WriteLine();
  311. Console.WriteLine("1 - Ver Espectáculos");
  312. Console.WriteLine("2 - Comprar bilhete");
  313. Console.WriteLine("3 - Ver bilhetes comprados");
  314. Console.WriteLine("9 - Logout");
  315. pergunta = ("Escolha uma opção");
  316. num = TestarInt(pergunta);
  317. switch (num)
  318. {
  319. case 1:
  320. VerSessao(c);
  321. VerConferencia(d);
  322. break;
  323. case 2:
  324. Comprar(a, b, c, d);
  325. break;
  326. }
  327. } while (num != 9);
  328. }
  329.  
  330. static void Log(List<Login> a, List<Sala> b, List<Sessao> c, List<Conferencia> d)
  331. {
  332. int i;
  333. string user, pass;
  334.  
  335. do
  336. {
  337. Console.WriteLine("0 para sair");
  338. Console.Write("Username: ");
  339. user = Console.ReadLine();
  340. int tipo;
  341. for (i = 0; i < a.Count; i++)
  342. {
  343. if (user != a[i].username && i == a.Count - 1)
  344. {
  345. Console.WriteLine("Username não existe");
  346. }
  347.  
  348.  
  349. if (user == a[i].username)
  350. {
  351. Console.WriteLine();
  352. tipo = a[i].tipo;
  353. Console.Write("Password: ");
  354. pass = Console.ReadLine();
  355. if (pass != a[i].password)
  356. {
  357. Console.WriteLine("Password Errada. Tente de novo.");
  358. }
  359. else
  360. {
  361. if (tipo == 1)
  362. {
  363. MenuCliente(a, b, c, d);
  364. }
  365.  
  366. if (tipo == 2)
  367. {
  368. MenuOrganizador(a, b, c, d);
  369. }
  370. }
  371. }
  372. }
  373. } while (user != "0");
  374. }
  375.  
  376. static void MenuOrganizador(List<Login> a, List<Sala> b, List<Sessao> c, List<Conferencia> d)
  377. {
  378. int num;
  379. string pergunta;
  380. Console.WriteLine();
  381. Console.WriteLine("1 - Ver Espectáculos");
  382. Console.WriteLine("2 - Criar Espectáculos");
  383. Console.WriteLine("3 - Ver bilhetes comprados");
  384. Console.WriteLine("9 - Logout");
  385. do
  386. {
  387. pergunta = ("Escolha uma opção");
  388. num = TestarInt(pergunta);
  389. switch (num)
  390. {
  391. case 1:
  392. VerSessao(c);
  393. VerConferencia(d);
  394. break;
  395. case 2:
  396. CriarEspectaculo(a, b, c, d);
  397. break;
  398. }
  399. } while (num != 9);
  400. }
  401.  
  402. static void VerSalas(Sala b)
  403. {
  404. Console.Write("Sala - {0} Lugares: {1} ", b.numsala, b.capacidade);
  405. }
  406.  
  407. static void MostrarSalas(List<Sala> b)
  408. {
  409. for (int i = 0; i < b.Count; i++)
  410. {
  411. VerSalas(b[i]);
  412. }
  413. }
  414.  
  415. static void VerAutor(Login a)
  416. {
  417. Console.Write("{1} - {0}", a.nome, a.id);
  418. }
  419.  
  420. static void MostrarAutor(List<Login> a)
  421. {
  422. for (int i = 0; i < a.Count; i++)
  423. {
  424. if (a[i].tipo == 3)
  425. {
  426. VerAutor(a[i]);
  427. }
  428. }
  429. }
  430.  
  431. static void VerificarHoras(int[] fa, int contare, int hora1, int hora2, int min1, int min2, int tipo, List<Sessao> c, ref int ok)
  432. {
  433. int conta = 0;
  434. ok = 0;
  435.  
  436. if (contare == 1)
  437. {
  438.  
  439. Console.WriteLine("CONTADOR!: " + contare);
  440.  
  441. for (int k = 0; k < contare; k++)
  442. {
  443.  
  444. if (hora1 == c[k].data.hora || hora2 == c[k].data.fimhora || hora1 == c[k].data.fimhora || hora2 == c[k].data.hora)
  445. {
  446. Console.WriteLine("Hora ocupada");
  447. }
  448.  
  449. if (c[k].data.fimhora < hora1)
  450. {
  451. conta++;
  452. }
  453. if (c[k].data.hora > hora1)
  454. {
  455. if (c[k].data.hora > hora2)
  456. {
  457. conta++;
  458. }
  459. }
  460. if (c[k].data.fimhora > hora1)
  461. {
  462. if (hora1 >= c[k].data.hora)
  463. {
  464. Console.WriteLine("Hora ocupada");
  465. }
  466. }
  467. if (c[k].data.hora < hora2)
  468. {
  469. Console.WriteLine("Hora ocupada");
  470. }
  471. }
  472.  
  473.  
  474. if (conta == fa.Length)
  475. {
  476. ok = 1;
  477. }
  478. }
  479.  
  480.  
  481. if (contare > 1)
  482. {
  483. Console.WriteLine("CONTADOR!!: " + contare);
  484. conta = 0;
  485.  
  486. for (int i = 0; i < contare; i++)
  487. {
  488. for (int k = 0; k < c.Count; k++)
  489. {
  490. if (hora1 == c[k].data.hora || hora2 == c[k].data.fimhora || hora1 == c[k].data.fimhora || hora2 == c[k].data.hora)
  491. {
  492. Console.WriteLine("Hora ocupada");
  493. }
  494. if (c[k].data.fimhora < hora1)
  495. {
  496. conta++;
  497. }
  498. if (c[k].data.hora > hora1)
  499. {
  500. if (c[k].data.hora > hora2)
  501. {
  502. conta++;
  503. }
  504. }
  505. if (c[k].data.fimhora > hora1)
  506. {
  507. if (hora1 >= c[k].data.hora)
  508. {
  509. Console.WriteLine("Hora ocupada");
  510. }
  511. }
  512. if (c[k].data.hora < hora2)
  513. {
  514. Console.WriteLine("Hora ocupada");
  515. }
  516. }
  517. }
  518.  
  519. if (conta == fa.Length)
  520. {
  521. ok = 1;
  522. }
  523. }
  524. }
  525. static void CriarEspectaculo(List<Login> a, List<Sala> b, List<Sessao> c, List<Conferencia> d)
  526. {
  527. int ok = 0;
  528. string pergunta;
  529. int resposta;
  530. int ano, mes, dia;
  531. int contador = 0;
  532.  
  533. sar:
  534.  
  535. pergunta = ("Tipo de espectáculo (1 - Espéctaculo normal 2 - Conferencia 0 - Sair");
  536. resposta = TestarInt(pergunta);
  537.  
  538. if (resposta == 1)
  539. {
  540. pergunta = ("Sessões a criar?");
  541. int num = TestarInt(pergunta);
  542. for (int i = 0; i < num; i++)
  543. {
  544. for (int o = 0; o < b.Count; o++)
  545. {
  546. VerSalas(b[o]);
  547. }
  548. Sessao s = new Sessao();
  549. sui:
  550. pergunta = ("\nSala a ocupar");
  551. int num2 = TestarInt(pergunta);
  552. // Ver se sala introduzida existe
  553. for (int u = 0; u < b.Count; u++)
  554. {
  555. if (num2 != b[u].numsala)
  556. {
  557. contador++;
  558. }
  559. if (num2 != b[u].numsala && contador == b.Count)
  560. {
  561. contador = 0;
  562. Console.WriteLine("Sala não existe.");
  563. goto sui;
  564. }
  565. if (num2 == b[u].numsala)
  566. {
  567. s.sala.numsala = num2;
  568. s.sala.capacidade = b[u].capacidade;
  569. lol:
  570. Console.WriteLine("Dia do Espectáculo? (dd-mm-AAAA ou dd/mm/AAAA)");
  571. string[] dataa = Console.ReadLine().Split('-', '/');
  572. ano = Convert.ToInt32(dataa[2]);
  573. if (ano < 2016)
  574. {
  575. Console.Write("Só pode marcar espectáculos no ano de 2016 ou mais\n");
  576. goto lol;
  577. }
  578. mes = Convert.ToInt32(dataa[1]);
  579. if (mes > 12 || mes < 1)
  580. {
  581. Console.WriteLine("Só existem 12 meses");
  582. goto lol;
  583. }
  584.  
  585. dia = Convert.ToInt32(dataa[0]);
  586.  
  587. if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12)
  588. {
  589. if (dia > 31 || dia < 1)
  590. {
  591. Console.WriteLine("O mês escolhido tem apenas 31 dias.");
  592. goto lol;
  593. }
  594. }
  595. if (mes == 4 || mes == 6 || mes == 9 || mes == 11)
  596. {
  597. if (dia > 30 || dia < 1)
  598. {
  599. Console.WriteLine("O mês escolhido tem apenas 30 dias.");
  600. goto lol;
  601. }
  602. }
  603. if (mes == 2)
  604. {
  605. if (dia > 28 || dia < 1)
  606. {
  607. Console.WriteLine("O mês escolhido tem apenas 2 dias.");
  608. goto lol;
  609. }
  610. }
  611.  
  612. s.data.dia = dia;
  613. s.data.mes = mes;
  614. s.data.ano = ano;
  615. int contar = 0;
  616. int contare = 0;
  617. int o;
  618. int tipo = 0;
  619. int[] fa = new int[0] { };
  620. tui:
  621. ok = 0;
  622. Console.WriteLine("Hora de começo? (hh:mm)");
  623. string[] horaa = Console.ReadLine().Split(':');
  624. int hora1 = Convert.ToInt32(horaa[0]);
  625. int min1 = Convert.ToInt32(horaa[1]);
  626. Console.WriteLine("Hora de finalização? (hh:mm)");
  627. string[] horaa2 = Console.ReadLine().Split(':');
  628. int hora2 = Convert.ToInt32(horaa2[0]);
  629. int min2 = Convert.ToInt32(horaa2[1]);
  630. if (hora1 + 1 > hora2)
  631. {
  632. Console.WriteLine("Os espectáculos têm que durar pelo menos uma hora");
  633. goto tui;
  634. }
  635. if (hora1 > hora2)
  636. {
  637. Console.WriteLine("A hora de início tem que ser menor que a hora final");
  638. goto tui;
  639. }
  640.  
  641. //show de uma hora
  642. if (hora1 + 1 == hora2)
  643. {
  644. if (min1 > min2)
  645. {
  646. Console.WriteLine("Os espectáculos têm de durar pelo menos uma hora");
  647. goto tui;
  648. }
  649. if (min1 <= min2)
  650. {
  651. tipo = 1;
  652. }
  653. }
  654.  
  655.  
  656. for (o = 0; o < c.Count; o++)
  657. {
  658. if (c[o].data.mes != s.data.mes && s.data.ano != c[o].data.ano && c[o].data.dia != s.data.dia)
  659. {
  660. contar++;
  661. }
  662.  
  663. if (mes == c[o].data.mes && dia == c[o].data.dia && ano == c[o].data.ano && c[o].sala.numsala == s.sala.numsala)
  664. {
  665. contare++;
  666. Array.Resize(ref fa, fa.Length + 1);
  667. fa[o] = c[o].idsessao;
  668. }
  669. if (contare >= 1)
  670. {
  671. VerificarHoras(fa, contare, hora1, hora2, min1, min2, tipo, c, ref ok);
  672. }
  673. if (ok == 1)
  674. {
  675. s.data.hora = hora1;
  676. s.data.minutos = min1;
  677. s.data.fimhora = hora2;
  678. s.data.fimminutos = min2;
  679. }
  680. if (ok != 1)
  681. {
  682. Console.WriteLine("TIPO: " + tipo);
  683. Console.WriteLine("Valor do ok " + ok);
  684. Console.WriteLine("Hora indisponível.");
  685. goto tui;
  686. }
  687. }
  688. Console.WriteLine("Nome");
  689. s.nome = Console.ReadLine();
  690. for (int p = 0; p < c.Count; p++)
  691. {
  692. if (p == c.Count - 1)
  693. {
  694. s.idsessao = c[p].idsessao + 1;
  695. }
  696. }
  697. s.local = "Teatro Gil Vicente";
  698. c.Add(s);
  699. MenuOrganizador(a, b, c, d);
  700.  
  701.  
  702. //////////////////////////////////////////////////////////////////////////////NÃO HÁ DATAS REPETIDAS/////////////////////////////////////////////////////////////////////////////////////////////////////
  703. if (contar == c.Count)
  704. {
  705. tua:
  706.  
  707. Console.WriteLine("Hora de começo? (hh:mm)");
  708. string[] hora = Console.ReadLine().Split(':');
  709. int horaa3 = Convert.ToInt32(hora[0]);
  710. int min3 = Convert.ToInt32(hora[1]);
  711. Console.WriteLine("Hora de finalização? (hh:mm)");
  712. string[] horaa4 = Console.ReadLine().Split(':');
  713. int hora4 = Convert.ToInt32(horaa4[0]);
  714. int min4 = Convert.ToInt32(horaa4[1]);
  715. if (horaa3 > hora4)
  716. {
  717. Console.WriteLine("A hora de inicio não pode ser maior que a hora final");
  718. goto tua;
  719. }
  720. if (horaa3 == hora4)
  721. {
  722. Console.WriteLine("Os espectáculos têm que durar pelo menos uma hora");
  723. goto tua;
  724. }
  725.  
  726. if (horaa3 + 1 == hora4)
  727. {
  728. if (min3 <= min4)
  729. {
  730. s.data.hora = horaa3;
  731. s.data.minutos = min3;
  732. s.data.fimhora = hora4;
  733. s.data.fimminutos = min4;
  734. }
  735. if (min3 > min4)
  736. {
  737. Console.WriteLine("Os espéctaculos têm que durar pelo menos uma hora");
  738. goto tua;
  739. }
  740. }
  741.  
  742. if (horaa3 + 1 < hora4)
  743. {
  744. s.data.hora = horaa3;
  745. s.data.minutos = min3;
  746. s.data.fimhora = hora4;
  747. s.data.fimminutos = min4;
  748. }
  749.  
  750. Console.WriteLine("Nome");
  751. s.nome = Console.ReadLine();
  752. for (int p = 0; p < c.Count; p++)
  753. {
  754. if (p == c.Count - 1)
  755. {
  756. s.idsessao = c[p].idsessao + 1;
  757. }
  758. }
  759. s.local = "Teatro Gil Vicente";
  760. c.Add(s);
  761. MenuOrganizador(a, b, c, d);
  762. }
  763. }
  764. }
  765. }
  766. }
  767.  
  768.  
  769. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  770. //Criar Conferencia
  771. if (resposta == 2)
  772. {
  773. pergunta = ("Sessões a criar?");
  774. int num = TestarInt(pergunta);
  775. for (int i = 0; i < num; i++)
  776. {
  777. for (int o = 0; o < b.Count; o++)
  778. {
  779. VerSalas(b[o]);
  780. }
  781. Conferencia s = new Conferencia();
  782. sui:
  783. pergunta = ("\nSala a ocupar");
  784. int num2 = TestarInt(pergunta);
  785. // Ver se sala introduzida existe
  786. for (int u = 0; u < b.Count; u++)
  787. {
  788. if (num2 != b[u].numsala)
  789. {
  790. contador++;
  791. }
  792. if (num2 != b[u].numsala && contador == b.Count)
  793. {
  794. contador = 0;
  795. Console.WriteLine("Sala não existe.");
  796. goto sui;
  797. }
  798. if (num2 == b[u].numsala)
  799. {
  800.  
  801. s.sala.numsala = num2;
  802. s.sala.capacidade = b[u].capacidade;
  803. lol:
  804. Console.WriteLine("Dia do Espectáculo? (dd-mm-AAAA ou dd/mm/AAAA");
  805. string[] dataa = Console.ReadLine().Split('-', '/');
  806. ano = Convert.ToInt32(dataa[2]);
  807. if (ano < 2016)
  808. {
  809. Console.Write("Só pode marcar espectáculos no ano de 2016 ou mais\n");
  810. goto lol;
  811. }
  812. mes = Convert.ToInt32(dataa[1]);
  813. if (mes > 12 || mes < 1)
  814. {
  815. Console.WriteLine("Só existem 12 meses");
  816. goto lol;
  817. }
  818.  
  819. dia = Convert.ToInt32(dataa[0]);
  820.  
  821. if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12)
  822. {
  823. if (dia > 31 || dia < 1)
  824. {
  825. Console.WriteLine("O mês escolhido tem apenas 31 dias.");
  826. goto lol;
  827. }
  828. }
  829. if (mes == 4 || mes == 6 || mes == 9 || mes == 11)
  830. {
  831. if (dia > 30 || dia < 1)
  832. {
  833. Console.WriteLine("O mês escolhido tem apenas 30 dias.");
  834. goto lol;
  835. }
  836. }
  837. if (mes == 2)
  838. {
  839. if (dia > 28 || dia < 1)
  840. {
  841. Console.WriteLine("O mês escolhido tem apenas 2 dias.");
  842. goto lol;
  843. }
  844. }
  845.  
  846. s.data.dia = dia;
  847. s.data.mes = mes;
  848. s.data.ano = ano;
  849. for (int o = 0; o < c.Count; o++)
  850. {
  851. if (s.data.mes == c[o].data.mes && s.data.dia == c[o].data.dia)
  852. {
  853. tui:
  854. Console.WriteLine("Hora de começo? (hh:mm)");
  855. string[] horaa = Console.ReadLine().Split(':');
  856. int hora1 = Convert.ToInt32(horaa[0]);
  857. int min1 = Convert.ToInt32(horaa[1]);
  858. Console.WriteLine("Hora de finalização? (hh:mm)");
  859. string[] horaa2 = Console.ReadLine().Split(':');
  860. int hora2 = Convert.ToInt32(horaa2[0]);
  861. int min2 = Convert.ToInt32(horaa2[1]);
  862.  
  863. if (hora1 > hora2)
  864. {
  865. Console.WriteLine("A hora de início tem que ser menor que a hora final");
  866. goto tui;
  867. }
  868. if (hora1 + 1 == hora2)
  869. {
  870. if (min1 <= min2)
  871. {
  872. if (c[o].data.fimhora < hora1 && c[0].data.fimhora < hora2)
  873. {
  874. s.data.hora = Convert.ToInt32(horaa[0]);
  875. s.data.minutos = Convert.ToInt32(horaa[1]);
  876. }
  877. if (c[o].data.hora > hora1 && c[o].data.hora > hora2)
  878. {
  879. s.data.hora = Convert.ToInt32(horaa[0]);
  880. s.data.minutos = Convert.ToInt32(horaa[1]);
  881. }
  882.  
  883. }
  884. if (min1 < min2)
  885. {
  886. Console.WriteLine("Os espectáculos têm de durar pelo menos uma hora");
  887. goto tui;
  888. }
  889. }
  890. if (hora1 + 1 < hora2)
  891. {
  892. if (c[o].data.fimhora < hora1 && c[o].data.fimhora < hora2)
  893. {
  894. s.data.hora = Convert.ToInt32(horaa[0]);
  895. s.data.minutos = Convert.ToInt32(horaa[1]);
  896. }
  897. if (c[o].data.hora > hora1 && c[o].data.hora > hora2)
  898. {
  899. s.data.hora = Convert.ToInt32(horaa[0]);
  900. s.data.minutos = Convert.ToInt32(horaa[1]);
  901. }
  902. }
  903. if (hora1 + 1 > hora2)
  904. {
  905. Console.WriteLine("Os espectáculos têm que durar pelo menos uma hora");
  906. goto tui;
  907. }
  908. else
  909. {
  910. Console.WriteLine("Hora escolhida já foi ocupada.");
  911. goto tui;
  912. }
  913. }
  914. }
  915. tua:
  916. Console.WriteLine("Hora de começo? (hh:mm)");
  917. string[] hora = Console.ReadLine().Split(':');
  918. int horaa3 = Convert.ToInt32(hora[0]);
  919. int min3 = Convert.ToInt32(hora[1]);
  920. Console.WriteLine("Hora de finalização? (hh:mm)");
  921. string[] horaa4 = Console.ReadLine().Split(':');
  922. int hora4 = Convert.ToInt32(horaa4[0]);
  923. int min4 = Convert.ToInt32(horaa4[1]);
  924. if (horaa3 > hora4)
  925. {
  926. Console.WriteLine("A hora de inicio não pode ser maior que a hora final");
  927. goto tua;
  928. }
  929. if (horaa3 == hora4)
  930. {
  931. Console.WriteLine("Os espectáculos têm que durar pelo menos uma hora");
  932. goto tua;
  933. }
  934. if (horaa3 + 1 <= hora4)
  935. {
  936. s.data.hora = horaa3;
  937. s.data.minutos = min3;
  938. s.data.fimhora = hora4;
  939. s.data.fimminutos = min4;
  940. }
  941.  
  942. Console.WriteLine("Nome");
  943. s.nome = Console.ReadLine();
  944. for (int p = 0; p < c.Count; p++)
  945. {
  946. if (p == c.Count - 1)
  947. {
  948. s.sessao.idsessao = c[p].idsessao + 1;
  949. }
  950. }
  951. s.local = "Teatro Gil Vicente";
  952. chop:
  953. Console.WriteLine("Autor?");
  954. MostrarAutor(a);
  955. Console.WriteLine();
  956. int conta = 0;
  957. int num3 = Convert.ToInt32(Console.ReadLine());
  958. for (int r = 0; r <= a.Count; r++)
  959. {
  960. if (num3 == a[r].id)
  961. {
  962. s.login.username = a[r].username;
  963. s.login.nome = a[r].nome;
  964. Console.WriteLine(a[r].nome);
  965. }
  966. if (num3 != a[r].id)
  967. {
  968. conta++;
  969. }
  970. if (conta == a.Count && a[r].id != num3)
  971. {
  972. Console.WriteLine("Autor não existe");
  973. goto chop;
  974. }
  975. d.Add(s);
  976. MenuOrganizador(a, b, c, d);
  977. }
  978. }
  979. }
  980. }
  981. }
  982. else
  983. {
  984. Console.WriteLine("Opção escolhida não é válida");
  985. goto sar;
  986. }
  987.  
  988.  
  989. }
  990.  
  991. static void Main(string[] args)
  992. {
  993. int num;
  994. List<Login> a = new List<Login>();
  995. List<Sala> b = new List<Sala>();
  996. List<Sessao> c = new List<Sessao>();
  997. List<Conferencia> d = new List<Conferencia>();
  998. CarregarClientes(a);
  999. CarregarOrganizadores(a);
  1000. CarregarAutor(a);
  1001. CarregarSalas(b);
  1002. CarregarSessao(c);
  1003. CarregarConferencias(d);
  1004. string pergunta;
  1005. do
  1006. {
  1007. pergunta = ("");
  1008. Console.WriteLine();
  1009. Console.WriteLine("//////////////////////////////////");
  1010. Console.WriteLine("/ BEM VINDO! /");
  1011. Console.WriteLine("//////////////////////////////////");
  1012. Console.WriteLine("/ 1 - Registar-se /");
  1013. Console.WriteLine("/ 2 - Login /");
  1014. Console.WriteLine("/ 9 - Sair /");
  1015. Console.WriteLine("//////////////////////////////////");
  1016.  
  1017. num = TestarInt(pergunta);
  1018. switch (num)
  1019. {
  1020. case 1:
  1021. a.Add(CriarCliente(a));
  1022. break;
  1023. case 2:
  1024. Log(a, b, c, d);
  1025. break;
  1026. }
  1027. } while (num != 9);
  1028. }
  1029. }
  1030. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement