private static VarietyCode CreateVarietyCode(VariasjonV22 variasjon, string host) { if (variasjon == null) { return(null); } var varietyCode = new VarietyCode { Code = new VarietyCodeCode { Id = variasjon.Kode, Definition = $"{host}{variasjon.Kode.Replace(" ", "_")}" }, Name = variasjon.Navn, OverordnetKode = new VarietyCodeCode { Id = variasjon.OverordnetKode, Definition = !string.IsNullOrEmpty(variasjon.OverordnetKode) ? $"{host}{variasjon.OverordnetKode.Replace(" ", "_")}" : "" }, UnderordnetKoder = variasjon.UnderordnetKoder == null ? null : CreateVarietyCode(variasjon.UnderordnetKoder, host).ToArray() }; return(varietyCode); }
public VarietyCode GetByKode(NiNDbContext dbContext, string id, string host, string version = "") { if (string.IsNullOrEmpty(id)) { return(null); } var ninVersion = dbContext.NinVersion.FirstOrDefault(x => x.Navn.Equals(version)); if (ninVersion == null) { return(null); } id = id.Replace(" ", "_"); var variety = dbContext.VariasjonKode .FirstOrDefault(x => x.Version.Id == ninVersion.Id && x.KodeName.Equals(id)); if (variety == null) { return(null); } VarietyCode varietyCode = null; switch (variety.VarietyCategory) { case VarietyEnum.VarietyLevel0: var v0 = dbContext.VarietyLevel0s .Include(x => x.Kode) .Include(x => x.UnderordnetKoder) .FirstOrDefault(x => x.Kode.Id == variety.Id); if (v0 == null) { return(null); } varietyCode = new VarietyCode { Name = v0.Navn, Code = ConvertVarietyCode(v0.Kode, host), UnderordnetKoder = CreateUnderordnetKoder(dbContext, v0.UnderordnetKoder, host) }; break; case VarietyEnum.VarietyLevel1: var v1 = dbContext.VarietyLevel1s .Include(x => x.Kode) .Include(x => x.OverordnetKode.Kode) .Include(x => x.UnderordnetKoder) .FirstOrDefault(x => x.Kode.Id == variety.Id); if (v1 == null) { return(null); } varietyCode = new VarietyCode { Name = v1.Navn, Code = ConvertVarietyCode(v1.Kode, host), OverordnetKode = new VarietyCodeCode { Id = v1.OverordnetKode.Kode.KodeName, Definition = $"{host}{v1.OverordnetKode.Kode.KodeName}" }, UnderordnetKoder = CreateUnderordnetKoder(dbContext, v1.UnderordnetKoder, host) }; break; case VarietyEnum.VarietyLevel2: var v2 = dbContext.VarietyLevel2s .Include(x => x.Kode) .Include(x => x.OverordnetKode.Kode) .Include(x => x.UnderordnetKoder) .FirstOrDefault(x => x.Kode.Id == variety.Id); if (v2 == null) { return(null); } varietyCode = new VarietyCode { Name = v2.Navn, Code = ConvertVarietyCode(v2.Kode, host), OverordnetKode = new VarietyCodeCode { Id = v2.OverordnetKode.Kode.KodeName, Definition = $"{host}{v2.OverordnetKode.Kode.KodeName}" }, UnderordnetKoder = CreateUnderordnetKoder(dbContext, v2.UnderordnetKoder, host) }; break; case VarietyEnum.VarietyLevel3: var v3 = dbContext.VarietyLevel3s .Include(x => x.Kode) .Include(x => x.OverordnetKode.Kode) .Include(x => x.UnderordnetKoder) .FirstOrDefault(x => x.Kode.Id == variety.Id); if (v3 == null) { return(null); } varietyCode = new VarietyCode { Name = v3.Navn, Code = ConvertVarietyCode(v3.Kode, host), OverordnetKode = new VarietyCodeCode { Id = v3.OverordnetKode.Kode.KodeName, Definition = $"{host}{v3.OverordnetKode.Kode.KodeName}" }, UnderordnetKoder = CreateUnderordnetKoder(dbContext, v3.UnderordnetKoder, host) }; break; case VarietyEnum.VarietyLevel4: var v4 = dbContext.VarietyLevel4s .Include(x => x.Kode) .Include(x => x.OverordnetKode.Kode) .Include(x => x.UnderordnetKoder) .FirstOrDefault(x => x.Kode.Id == variety.Id); if (v4 == null) { return(null); } varietyCode = new VarietyCode { Name = v4.Navn, Code = ConvertVarietyCode(v4.Kode, host), OverordnetKode = new VarietyCodeCode { Id = v4.OverordnetKode.Kode.KodeName, Definition = $"{host}{v4.OverordnetKode.Kode.KodeName}" }, UnderordnetKoder = CreateUnderordnetKoder(dbContext, v4.UnderordnetKoder, host) }; break; case VarietyEnum.VarietyLevel5: var v5 = dbContext.VarietyLevel5s .Include(x => x.Kode) .Include(x => x.OverordnetKode.Kode) .FirstOrDefault(x => x.Kode.Id == variety.Id); if (v5 == null) { return(null); } varietyCode = new VarietyCode { Name = v5.Navn, Code = ConvertVarietyCode(v5.Kode, host), OverordnetKode = new VarietyCodeCode { Id = v5.OverordnetKode.Kode.KodeName, Definition = $"{host}{v5.OverordnetKode.Kode.KodeName}" } }; break; } return(varietyCode); }