public Registration(Competitor competitor, Theme theme, string category, IFotoaparat camera, Photo photo) { RegistrationHandler registrationHandler = RegistrationHandler.GetInstance(); id = "PRIJAVA " + registrationHandler.Counter.ToString(); registrationHandler.Counter++; disqualified = false; this.competitor = competitor; this.theme = theme; this.category = category; this.camera = camera; this.photo = photo; }
/// <summary> /// Funkcija koja generira teme za natječaj /// </summary> /// <param name="numberOfThemes">Broj tema koji treba generirati</param> /// <returns>Lista slučajno odabranih tema</returns> private List<Theme> GenerateThemes(int numberOfThemes) { #region Pronalazak direktorija s temama string directoryLocation = DirectoryLocator.GetDirectory("Themes", Directory.GetCurrentDirectory(), 0, 3); if (string.Equals("ERROR", directoryLocation)) { Console.WriteLine("Niti jedna tema nije učitana!"); return null; } #endregion #region Učitavanje kandidata za teme List<Theme> listOfCandidates = new List<Theme>(); List<string> listOfThemeNames = new List<string>(); string[] files = Directory.GetFiles(directoryLocation); foreach (string file in files) { Console.WriteLine("Učitavam teme iz " + file); string[] lines = System.IO.File.ReadAllLines(file); foreach(string line in lines) { if (listOfThemeNames.Contains(line) || string.Equals(line, "")) continue; Theme newTheme = new Theme(line); listOfCandidates.Add(newTheme); listOfThemeNames.Add(line); } } #endregion #region Odabir tema za natječaj List<Theme> resultList = new List<Theme>(); Randomizer rnd = Randomizer.GetInstance(); while (resultList.Count < numberOfThemes) { int themeIndex = rnd.GetNumber(0, listOfCandidates.Count); Theme randomTheme = listOfCandidates[themeIndex]; resultList.Add(randomTheme); listOfCandidates.Remove(randomTheme); } #endregion return resultList; }