Skip to content

Commit

Permalink
Merge branch 'release/rc-20221018' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
helge-arkitektum committed Oct 18, 2022
2 parents eaf5bf8 + cd30eb1 commit 97e8d5f
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 41 deletions.
76 changes: 38 additions & 38 deletions Data/Repository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,32 +42,32 @@ public List<Tiltakstype> GetTiltakstyper()
private void PopulateTiltakstyper()
{
_tiltakstyper = new List<Tiltakstype>();
_tiltakstyper.Add(new Tiltakstype() { Kode = "berekonstruksjoner", Navn = "Endring av bygg - innvendig - Bærekonstruksjoner i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "brannskille", Navn = "Endring av bygg - innvendig - Brannskille i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "bruksendring", Navn = "Bruksendring", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "driftsbygningendringover1000m2", Navn = "Endring av driftsbygning i landbruket over 1000m2 (BRA)", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "driftsbygningendringunder1000m2", Navn = "Endring av driftsbygning i landbruket under 1000m2 (BRA)", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "driftsbygningtilbyggover1000m2", Navn = "Tilbygg til driftsbygning i landbruket med samlet area over 1000 m2 (BRA)", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "driftsbygningtilbyggunder1000m2", Navn = "Tilbygg til driftsbygning i landbruket med samlet area under 1000 m2 (BRA)", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "endringbyggannet", Navn = "Endring av bygg - Annet", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "endringdrift", Navn = "Vesentlig endring av tidligere drift", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "fasade", Navn = "Endring av bygg - utvendig - Fasade", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "fundamenter", Navn = "Endring av bygg - innvendig - Fundamenter i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "installasjonernyttanlegg", Navn = "Bygningstekniske installasjoner - Nytt anlegg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "installasjonerreparasjon", Navn = "Bygningstekniske installasjoner - Reparasjon", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "installasjonibygg", Navn = "Bygningstekniske installasjoner - Endring - Teknisk installasjon i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "lydskille", Navn = "Endring av bygg - innvendig - Lydskille i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "nyttbyggdriftsbygningover1000m2", Navn = "Nytt bygg - Driftsbygning i landbruket med samlet areal over 1000 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "nyttbyggdriftsbygningunder1000m2", Navn = "Nytt bygg - Driftsbygning i landbruk med samlet areal under 1000 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "nyttbyggover70m2", Navn = "Nytt bygg - Over 70 m2 - ikke boligformål", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "nyttbyggunder70m2", Navn = "Nytt bygg - Under 70 m2 - ikke boligformål", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "pabygg", Navn = "Endring av bygg - utvendig - Påbygg", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "plasseringmidlertidig", Navn = "Plassering av midlertidige bygninger, konstruksjoner og anlegg", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "tilbyggover50m2", Navn = "Endring av bygg - utvendig - Tilbygg med samlet areal større enn 50 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "tilbyggunder50m2", Navn = "Endring av bygg - utvendig - Tilbygg med samlet areal mindre enn 50 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "underbygg", Navn = "Endring av bygg - utvendig - Underbygg", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "utvendigeinstallasjoner", Navn = "Bygningstekniske installasjoner - Endring - Utvendige tekniske installasjoner", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() { Kode = "vatrom", Navn = "Endring av bygg - innvendig - Våtrom i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "berekonstruksjoner", Navn = "Endring av bygg - innvendig - Bærekonstruksjoner i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "brannskille", Navn = "Endring av bygg - innvendig - Brannskille i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "bruksendring", Navn = "Bruksendring", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "driftsbygningendringover1000m2", Navn = "Endring av driftsbygning i landbruket over 1000m2 (BRA)", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "driftsbygningendringunder1000m2", Navn = "Endring av driftsbygning i landbruket under 1000m2 (BRA)", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "driftsbygningtilbyggover1000m2", Navn = "Tilbygg til driftsbygning i landbruket med samlet area over 1000 m2 (BRA)", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "driftsbygningtilbyggunder1000m2", Navn = "Tilbygg til driftsbygning i landbruket med samlet area under 1000 m2 (BRA)", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "endringbyggannet", Navn = "Endring av bygg - Annet", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "endringdrift", Navn = "Vesentlig endring av tidligere drift", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "fasade", Navn = "Endring av bygg - utvendig - Fasade", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "fundamenter", Navn = "Endring av bygg - innvendig - Fundamenter i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "installasjonernyttanlegg", Navn = "Bygningstekniske installasjoner - Nytt anlegg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "installasjonerreparasjon", Navn = "Bygningstekniske installasjoner - Reparasjon", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "installasjonibygg", Navn = "Bygningstekniske installasjoner - Endring - Teknisk installasjon i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "lydskille", Navn = "Endring av bygg - innvendig - Lydskille i bygg", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "nyttbyggdriftsbygningover1000m2", Navn = "Nytt bygg - Driftsbygning i landbruket med samlet areal over 1000 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "nyttbyggdriftsbygningunder1000m2", Navn = "Nytt bygg - Driftsbygning i landbruk med samlet areal under 1000 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "nyttbyggover70m2", Navn = "Nytt bygg - Over 70 m2 - ikke boligformål", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "nyttbyggunder70m2", Navn = "Nytt bygg - Under 70 m2 - ikke boligformål", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "pabygg", Navn = "Endring av bygg - utvendig - Påbygg", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "plasseringmidlertidig", Navn = "Plassering av midlertidige bygninger, konstruksjoner og anlegg", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "tilbyggover50m2", Navn = "Endring av bygg - utvendig - Tilbygg med samlet areal større enn 50 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "tilbyggunder50m2", Navn = "Endring av bygg - utvendig - Tilbygg med samlet areal mindre enn 50 m2", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = false, Kode = "underbygg", Navn = "Endring av bygg - utvendig - Underbygg", Kategori = "1, 2, 3" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "utvendigeinstallasjoner", Navn = "Bygningstekniske installasjoner - Endring - Utvendige tekniske installasjoner", Kategori = "5" });
_tiltakstyper.Add(new Tiltakstype() {AllowZeroBRA = true, Kode = "vatrom", Navn = "Endring av bygg - innvendig - Våtrom i bygg", Kategori = "5" });

}
private void PopulateBygningstyper()
Expand Down Expand Up @@ -219,10 +219,10 @@ private void PopulateKategorier()
CategoryAreas = new List<Area>()
{
new Area() { Lower = 0, Upper = 100, CategoryCode = "1", Price = 703 },
new Area() { Lower = 100, Upper = 500, CategoryCode = "3", Price = 1407 },
new Area() { Lower = 500, Upper = 1000, CategoryCode = "4", Price = 2110 },
new Area() { Lower = 1000, Upper = 10000, CategoryCode = "5", Price = 2814 },
new Area() { Lower = 10000, Upper = 100000000, CategoryCode = "6", Price = 3895 }
new Area() { Lower = 101, Upper = 500, CategoryCode = "3", Price = 1407 },
new Area() { Lower = 501, Upper = 1000, CategoryCode = "4", Price = 2110 },
new Area() { Lower = 1001, Upper = 10000, CategoryCode = "5", Price = 2814 },
new Area() { Lower = 10001, Upper = 100000000, CategoryCode = "6", Price = 3895 }
}
};

Expand All @@ -234,10 +234,10 @@ private void PopulateKategorier()
CategoryAreas = new List<Area>()
{
new Area() { Lower = 0, Upper = 100, CategoryCode = "7", Price = 2110 },
new Area() { Lower = 100, Upper = 500, CategoryCode = "8", Price = 4221 },
new Area() { Lower = 500, Upper = 1000, CategoryCode = "9", Price = 6331 },
new Area() { Lower = 1000, Upper = 10000, CategoryCode = "10", Price = 8441 },
new Area() { Lower = 10000, Upper = 100000000, CategoryCode = "11", Price = 11685 }
new Area() { Lower = 101, Upper = 500, CategoryCode = "8", Price = 4221 },
new Area() { Lower = 501, Upper = 1000, CategoryCode = "9", Price = 6331 },
new Area() { Lower = 1001, Upper = 10000, CategoryCode = "10", Price = 8441 },
new Area() { Lower = 10001, Upper = 100000000, CategoryCode = "11", Price = 11685 }
}
};

Expand All @@ -249,10 +249,10 @@ private void PopulateKategorier()
CategoryAreas = new List<Area>()
{
new Area() { Lower = 0, Upper = 100, CategoryCode = "12", Price = 4221 },
new Area() { Lower = 100, Upper = 500, CategoryCode = "13", Price = 8441 },
new Area() { Lower = 500, Upper = 1000, CategoryCode = "14", Price = 12662 },
new Area() { Lower = 1000, Upper = 10000, CategoryCode = "15", Price = 16883 },
new Area() { Lower = 10000, Upper = 100000000, CategoryCode = "16", Price = 23370 }
new Area() { Lower = 101, Upper = 500, CategoryCode = "13", Price = 8441 },
new Area() { Lower = 501, Upper = 1000, CategoryCode = "14", Price = 12662 },
new Area() { Lower = 1001, Upper = 10000, CategoryCode = "15", Price = 16883 },
new Area() { Lower = 10001, Upper = 100000000, CategoryCode = "16", Price = 23370 }
}
};

Expand Down
1 change: 1 addition & 0 deletions Models/Tiltakstype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class Tiltakstype
public string Kode { get; set; }
public string Navn { get; set; }
public string Kategori { get; set; }
public bool AllowZeroBRA { get; set; }

}
}
11 changes: 8 additions & 3 deletions Services/AtilFeeCalculationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,23 +72,28 @@ public CalculationResult Calculate(string tiltakstypekode, string bygningstypeko
{
if (Int32.TryParse(areal, out int arealTall))
{
if (arealTall <= 0)
if (arealTall < 0)
{
throw new ArgumentException($"Areal være et heltall større enn 0. '{areal}' er ikke gyldig.");
throw new ArgumentException($"Areal kan ikke være et negativt tall. '{areal}' er ikke gyldig.");
}

if (!_repository.GetTiltakstyper().Exists(x => x.Kode.Equals(tiltakstypekode)))
{
throw new IllegalTiltakstypeException($"Angitt kode '{tiltakstypekode}' for tiltakstype er ikke tillatt.");
}

if (arealTall == 0 && _repository.GetTiltakstyper().Any(tiltakstype => tiltakstype.Kode.Equals(tiltakstypekode) && !tiltakstype.AllowZeroBRA))
{
throw new ArgumentException($"Areal må være et heltall større enn 0. '{areal}' er ikke gyldig.");
}

if (!_repository.GetBygningstyper().Exists(x => x.Kode.Equals(bygningstypekode)))
{
throw new ArgumentException($"Angitt kode '{bygningstypekode}' for bygningstype er ikke tillatt.");
}

var foundCategory = _repository.GetKategorier().FirstOrDefault(x => x.Tiltakstype.Contains(tiltakstypekode) && x.Bygningstype.Contains(bygningstypekode));
var foundArea = foundCategory.CategoryAreas.First(x => arealTall > x.Lower && arealTall <= x.Upper);
var foundArea = foundCategory.CategoryAreas.First(x => arealTall >= x.Lower && arealTall <= x.Upper);
var res = new CalculationResult()
{
Area = areal,
Expand Down

0 comments on commit 97e8d5f

Please sign in to comment.