using System; using System.Collections.Generic; using System.Reflection; using System.Text; namespace FarmmapsDownloadCL.Models { public class CodelistsClasses { public CodelistsClasses() { this.itemcode = "938c0aec4efc46e88783fd029f17309e%3ASYSTEM_DATA"; this.dictCl = new Dictionary>(); //Add here once you have defined a new CLxxxitem below //To add a new item, look it up in https://test.farmmaps.eu/swagger/index.html. Download the item you are interested in (like "vnd.farmmaps.itemtype.codelist.cl263") //do this under Items <- get/api/v1/items, use the it field. Depending on the size of the list retrieving the list can take a few minutes. //then below create a new CLxxxitem with fieldnames as you see them in the just downloaded new codelist this.dictCl.Add("CL022", new List { "vnd.farmmaps.itemtype.codelist.cl022", "CL022item" }); this.dictCl.Add("CL104", new List { "vnd.farmmaps.itemtype.codelist.cl104", "CL104item" }); this.dictCl.Add("CL127", new List { "vnd.farmmaps.itemtype.codelist.cl127", "CL127item" }); this.dictCl.Add("CL251", new List { "vnd.farmmaps.itemtype.codelist.cl251", "CL251item" }); this.dictCl.Add("CL263", new List { "vnd.farmmaps.itemtype.codelist.cl263", "CL263item" }); this.dictCl.Add("CL265", new List { "vnd.farmmaps.itemtype.codelist.cl265", "CL265item" }); this.dictCl.Add("CL405", new List { "vnd.farmmaps.itemtype.codelist.cl405", "CL405item" }); } public string itemcode; //Define here the codelist names, their item type and the class defining the contents of the data type (and defined in the Models.CodelistsClasses) public Dictionary> dictCl; } public class CL022item { public CL022item() { this.headers = new string[] { "codelist", "code", "description", "type", "n", "p", "k", "composition" }; this.codelist = "CL022"; this.about = new string[] { "EDI-Crop, coderingslijst meststoffen", "type MOR = organische meststof; MAN = anorganische meststof" }; } public string[] headers { get; } public string codelist { get; } public string[] about { get; } public string k { get; set; } public string n { get; set; } public string p { get; set; } public string code { get; set; } public string type { get; set; } public string composition { get; set; } public string description { get; set; } } public class CL104item { public CL104item() { this.headers = new string[] { "codelist", "code", "description" }; this.codelist = "CL104"; this.about = new string[] { "EDI-crop, coderingslijst groenbemesters" }; } public string[] headers { get; } public string codelist { get; } public string[] about { get; } public string code { get; set; } public string description { get; set; } } public class CL127item { public CL127item() { this.headers = new string[] { "codelist", "code", "description", "description_nl", "culturalPracticeLevel1", "culturalPracticeLevel2" }; this.codelist = "CL127"; } public string[] headers { get; } public string codelist { get; } public string code { get; set; } public string description { get; set; } public string description_nl { get; set; } public string culturalPracticeLevel1 { get; set; } public string culturalPracticeLevel2 { get; set; } } public class CL251item { public CL251item() { this.headers = new string[] { "codelist", "code", "rvo", "active", "primary", "description", "description_fr", "description_nl" }; this.codelist = "CL251"; this.about = new string[] { "Codering teeltdoelen (CropProductionPurposeCode)", "primary: 1 = primary; 2 = secondary", "rvo: 1 = yes; 0 = no" }; } public string[] headers { get; } public string codelist { get; } public string[] about { get; } public string code { get; set; } public string rvo { get; set; } public string active { get; set; } public string primary { get; set; } public string description { get; set; } public string description_nl { get; set; } public string description_fr { get; set; } } public class CL263item { public CL263item() { this.headers = new string[] { "codelist", "code", "eppoCode", "botanicName", "description", "description_fr", "description_nl", "cropGroupCode", "cropGroupName", "subCropGroupCode", "subCropGroupName", "cultivationGroupCode", "cultivationGroupName" }; this.codelist = "CL263"; this.about = new string[] { "EDI-Crop, coderingslijst gewassoorten" }; } public string[] headers { get; } public string codelist { get; } public string[] about { get; } public string code { get; set; } public string eppoCode { get; set; } public string botanicName { get; set; } public string description { get; set; } public string description_nl { get; set; } public string description_fr { get; set; } public string cropGroupCode { get; set; } public string cropGroupName { get; set; } public string subCropGroupCode { get; set; } public string subCropGroupName { get; set; } public string cultivationGroupCode { get; set; } public string cultivationGroupName { get; set; } public string composition { get; set; } //? } public class CL265item { public CL265item() { this.headers = new string[] { "Code", "Formaat", "Eenheid", "Waarde" }; this.codelist = "CL265"; this.about = new string[] { "EDI-Crop CL265: FarmCharacterictics, FieldCharacteristics, CropFieldCharacteristics, TreatmentCharacteristics", "Betreft codelijst eigenschappen teelt en teelthandelingen CL265.Daar waar in kolom 'Waarde' wordt verwezen naar CL.., wordt de codelijst bedoeld die onder het betreffende nummer bekend is.", "In het EDI-Crop bericht wordt de code gebruikt onder resp. CropFieldCharacteristic c.q.TreatmentCharacteristic middels de dataelementen PropertyVariableCode (invullen vanuit CL265) en PropertyVariableValue(voor de waarde)"}; } public string[] headers { get; } public string codelist { get; } public string[] about { get; } public string Code { get; set; } public string Formaat { get; set; } public string Eenheid { get; set; } public string Waarde { get; set; } } public class CL405item { public CL405item() { this.headers = new string[] { "codelist", "code", "description", "description_fr", "description_nl", "hoofdgroep" }; this.codelist = "CL405"; this.about = new string[] { }; } public string[] headers { get; } public string codelist { get; } public string[] about { get; } public string code { get; set; } public string hoofdgroep { get; set; } public string description { get; set; } public string description_fr { get; set; } public string description_nl { get; set; } } }