/// <summary> /// Method for adding divers to divers list /// </summary> /// <param name="diversRaw">Contains file content. Every file line is one array element</param> private void AddDiversToList(string[] diversRaw) { string[] diver; string name; string birthDate; string federationName; string certificateName; string level; int depthDeterminedByCertificate; foreach (string d in diversRaw) { diver = d.Split(';'); name = diver[0]; federationName = diver[1]; level = diver[2]; birthDate = diver[3]; // Validate data if (diver.Count() != 4 || !Validation.ValidateFederationName(federationName) || !Validation.ValidateDiverLevel(level)) { Console.WriteLine("{0} Preskačem pogrešan redak: {1};{2};{3};{4}\n", Validation.diverInputErr, name, federationName, level, birthDate); continue; } // If federation doesn't exist in dictionary then create it InstitutionAbstract federation = certificateFlyweightFactory.GetFederationInstance(federationName); // Add federation as observer divingClub.addObserver(federation); // Create new certificate certificateName = certHelper.getCertificateName(federationName, level); depthDeterminedByCertificate = certHelper.getDepthDeterminedByCertificate(level); Certificate certificate = certificateFlyweightFactory.GetCertificateInstance(federationName, certificateName, level, depthDeterminedByCertificate); // Create new diver Diver diverObj = new Diver(name, birthDate, certificate, federationName); // Add diver to divers list divers.Add(diverObj); // Add diver to federation federation.divers.Add(diverObj); HRS.divers.Add(diverObj); } }