public async Task <NummerInformation> HoleNummerInformationAsync(bool durchQuellen) { NummerInformation nummerInformation = null; HoleNummerInformationRequest holeNummerInformationRequest = new HoleNummerInformationRequest(); holeNummerInformationRequest.Nummer_definition_id = StandardRequirement.Instance.NummerDefinition.Id; if (durchQuellen) { holeNummerInformationRequest.DurchQuellen = true; holeNummerInformationRequest.Quellen = new object[] { StandardRequirement.Instance.DeuWoAuftragsnummer }; } else { holeNummerInformationRequest.DurchQuellen = false; holeNummerInformationRequest.Ziel = StandardRequirement.Instance.GemasAuftragsnummer; } using (var httpClient = new HttpClient()) { StringContent content = new StringContent(JsonConvert.SerializeObject(holeNummerInformationRequest), Encoding.UTF8, "application/json"); using (HttpResponseMessage response = await httpClient.PostAsync(BaseAPIURL + "HoleNummerInformation/", content)) { if (response.IsSuccessStatusCode) { string apiResponse = await response.Content.ReadAsStringAsync(); nummerInformation = JsonConvert.DeserializeObject <NummerInformation>(apiResponse); } } } return(nummerInformation); }
public async Task <NummerInformation> HoleNummerInformationAsync(NummerDefinition nummerDefinition, ErstelleNummerInformationRequest erstelleNummerInformationRequest) { NummerInformation nummerInformation = null; HoleNummerInformationRequest holeNummerInformationRequest = new HoleNummerInformationRequest(); holeNummerInformationRequest.Nummer_definition_id = nummerDefinition.Id; holeNummerInformationRequest.DurchQuellen = true; holeNummerInformationRequest.Quellen = erstelleNummerInformationRequest.Quellen; using (var httpClient = new HttpClient()) { StringContent content = new StringContent(JsonConvert.SerializeObject(holeNummerInformationRequest), Encoding.UTF8, "application/json"); using (HttpResponseMessage response = await httpClient.PostAsync(BaseAPIURL + "HoleNummerInformation/", content)) { if (response.IsSuccessStatusCode) { string apiResponse = await response.Content.ReadAsStringAsync(); nummerInformation = JsonConvert.DeserializeObject <NummerInformation>(apiResponse); } } } return(nummerInformation); }
public async Task <ActionResult <Data.Models.NummerInformation> > HoleNummerInformation(HoleNummerInformationRequest holeNummerInformationRequest) { Data.Models.NummerInformation nummerInformation = null; NummerDefinition foundNummerDefinition = this._context.Nummerdefinitionen.Include("NummerDefinitionQuellen").Where(e => (e.Id == holeNummerInformationRequest.Nummer_definition_id)).FirstOrDefault(); if (foundNummerDefinition == null) { throw new Exception(string.Format("für die nummer_definition_id = '{0}' existiert keine gültig Nummerdefinition.", holeNummerInformationRequest.Nummer_definition_id)); } else if (holeNummerInformationRequest.DurchQuellen && (foundNummerDefinition.NummerDefinitionQuellen == null || foundNummerDefinition.NummerDefinitionQuellen.Count == 0)) { throw new Exception("Für die Nummerdefinition sind keine Quellen definiert."); } else if (holeNummerInformationRequest.DurchQuellen && (foundNummerDefinition.NummerDefinitionQuellen.Count != holeNummerInformationRequest.Quellen.Count())) { throw new Exception("Die Anzahl der definierten Quellen stimmt nicht mit der Anzahl der übergebenen Quellen überein."); } else if (!holeNummerInformationRequest.DurchQuellen && holeNummerInformationRequest.Ziel == null) { throw new ArgumentNullException(nameof(holeNummerInformationRequest.Ziel)); } else { if (holeNummerInformationRequest.DurchQuellen) { string rawSQL = NummerInformationRawSQLGenerator.GenersateRawSQL(holeNummerInformationRequest.Nummer_definition_id, foundNummerDefinition.NummerDefinitionQuellen, holeNummerInformationRequest.Quellen); List <NummerInformation> nummerInformations = await this._context.Nummerinformationen.FromSqlRaw(rawSQL).ToListAsync(); if (nummerInformations != null && nummerInformations.Count > 0) { nummerInformation = nummerInformations.FirstOrDefault(); } else { return(this.NotFound()); } } else { string ziel = holeNummerInformationRequest.Ziel.ToString(); nummerInformation = await this._context.Nummerinformationen.Where(e => e.NummerdefinitionenId == foundNummerDefinition.Id && e.Ziel == ziel).FirstOrDefaultAsync(); } if (nummerInformation != null) { return(nummerInformation); } else { return(this.NotFound()); } } }