public void RunTest()
        {
            RunningConfig rc = RunningConfig.MakeDefaults();
            BusinessProfileOverrideRepository bpoe = new BusinessProfileOverrideRepository(rc);

            bpoe.GetEntry("blub", "blub", "blub").Should().BeNull();
            bpoe.GetEntry("bla", "bla", "bla").Should().NotBeNull();
        }
        private Profile GetCorrectProfile(BusinessType beBusinessType, double targetEnergy, [NotNull] BusinessEntry be)
        {
            var overrideEntry = _repository.GetEntry(be.ComplexName, be.BusinessName, be.Standort);

            if (overrideEntry != null)
            {
                _usedProfileOverrides.Add(overrideEntry);
                if (overrideEntry.ProfileName.ToLower() == "flat")
                {
                    return(Profile.MakeConstantProfile(targetEnergy, "Flat", Profile.ProfileResolution.QuarterHour));
                }

                return(_slpProvider.Run(overrideEntry.ProfileName, targetEnergy));
            }

            switch (beBusinessType)
            {
            case BusinessType.Büro:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Shop:
                return(_slpProvider.Run("G4", targetEnergy));

            case BusinessType.Werkstatt:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Seniorenheim:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Restaurant:
                return(_slpProvider.Run("G2", targetEnergy));

            case BusinessType.Bäckerei:
                return(_slpProvider.Run("G5", targetEnergy));

            case BusinessType.Industrie:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Sonstiges:
                return(_slpProvider.Run("G0", targetEnergy));

            case BusinessType.Praxis:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Kirche:
                return(_slpProvider.Run("G6", targetEnergy));

            case BusinessType.Schule:
                return(_slpProvider.Run("G1", targetEnergy));

            case BusinessType.Tankstelle:
                return(_slpProvider.Run("G4", targetEnergy));

            case BusinessType.Wasserversorgung:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Brauerei:
                return(Profile.MakeConstantProfile(targetEnergy, "Flat", Profile.ProfileResolution.QuarterHour));

            case BusinessType.Hotel:
                return(_slpProvider.Run("G0", targetEnergy));

            case BusinessType.Museum:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Hallenbad:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Eissport:
                return(_slpProvider.Run("G3", targetEnergy));

            case BusinessType.Mobilfunk:
                return(Profile.MakeConstantProfile(targetEnergy, "Flat", Profile.ProfileResolution.QuarterHour));

            case BusinessType.Unknown:
                throw new ArgumentOutOfRangeException(nameof(beBusinessType), beBusinessType, null);

            default:
                throw new ArgumentOutOfRangeException(nameof(beBusinessType), beBusinessType, null);
            }
        }