/// <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);
            }
        }
Пример #2
0
        /// <summary>
        /// Get minimum safe dive
        /// </summary>
        /// <param name="institution">Institution we're inspecting/visiting</param>
        /// <returns>Minimum safe dive</returns>
        public DiveSchedule Visit(InstitutionAbstract institution)
        {
            DiveSchedule minSafeDive          = null;
            float        minSafetyMeasure     = 0;
            float        safetyMeasurePerDive = 0;

            foreach (DiveSchedule dive in institution.diveSchedule)
            {
                safetyMeasurePerDive = dive.safetyMeasure / dive.diveGroups.Count();
                if (safetyMeasurePerDive > minSafetyMeasure)
                {
                    minSafeDive      = dive;
                    minSafetyMeasure = safetyMeasurePerDive;
                }
            }

            return(minSafeDive);
        }
        /// <summary>
        /// Visit institution and get minimum safe dive
        /// </summary>
        /// <param name="institution">Institution object that we want to visit</param>
        /// <param name="visitor">Visitor object</param>
        /// <returns>Dive that have minimum safety measure for institution</returns>
        private DiveSchedule DiveSafetyCheck(InstitutionAbstract institution, InstitutionVisitor visitor)
        {
            var safetyCheck = visitor.Visit(institution);

            return(safetyCheck);
        }