private static NummerDefinition CreateRandomNummerDefinition() { NummerDefinition nummerDefinition = new NummerDefinition(); nummerDefinition.Bezeichnung = Guid.NewGuid().ToString(); nummerDefinition.QuelleBezeichnung = Guid.NewGuid().ToString(); nummerDefinition.ZielBezeichnung = Guid.NewGuid().ToString(); nummerDefinition.ZielDatentypenId = (long)Random_Helper.GetLong((long)Datentypwerte.String, (long)Datentypwerte.Guid); ICollection <NummerDefinitionQuelle> nummerDefinitionQuellen = new List <NummerDefinitionQuelle>(); long length = Random_Helper.GetLong(2L, 100L); List <string> quellenBezeichnungen = new List <string>(); for (long i = 1L; i < length; i++) { NummerDefinitionQuelle nummerDefinitionQuelle = new NummerDefinitionQuelle(); string quelleBezeichnung = Random_Helper.GetString(1, 20, false); do { quelleBezeichnung = Random_Helper.GetString(1, 20, false); } while (quellenBezeichnungen.Contains(quelleBezeichnung)); nummerDefinitionQuelle.Bezeichnung = quelleBezeichnung; quellenBezeichnungen.Add(quelleBezeichnung); nummerDefinitionQuelle.DatentypenId = (long)Random_Helper.GetLong((long)Datentypwerte.String, (long)Datentypwerte.Guid); nummerDefinition.NummerDefinitionQuellen.Add(nummerDefinitionQuelle); } return(nummerDefinition); }
public async Task <ErstellteNummerDefinitionResponse> ErstelleNummerDefinitionAsync() { ErstellteNummerDefinitionResponse ErstellteNummerDefinitionResponse = StandardRequirement.Instance.ErstellteNummerDefinitionResponse; if (ErstellteNummerDefinitionResponse == null) { using (var httpClient = new HttpClient()) { NummerDefinition nummerDefinition = LieferNummerDefinition(); StringContent content = new StringContent(JsonConvert.SerializeObject(nummerDefinition), Encoding.UTF8, "application/json"); using (HttpResponseMessage response = await httpClient.PostAsync(BaseAPIURL + "ErstelleNummerDefinition/", content)) { if (response.IsSuccessStatusCode) { string apiResponse = await response.Content.ReadAsStringAsync(); StandardRequirement.Instance.ErstellteNummerDefinitionResponse = JsonConvert.DeserializeObject <ErstellteNummerDefinitionResponse>(apiResponse); ErstellteNummerDefinitionResponse = StandardRequirement.Instance.ErstellteNummerDefinitionResponse; } } } } return(ErstellteNummerDefinitionResponse); }
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()); } } }
public async Task <ActionResult <object> > HoleNummerInformationZielUeberGuid(Guid guid) { object ziel = null; NummerInformation nummerInformation = await this._context.Nummerinformationen.Where(e => (e.Guid == guid)).FirstOrDefaultAsync(); if (nummerInformation != null && nummerInformation.Ziel != null) { NummerDefinition nummerDefinition = await this._context.Nummerdefinitionen.Where(e => e.Id == nummerInformation.NummerdefinitionenId).FirstOrDefaultAsync(); if (nummerDefinition != null) { switch (nummerDefinition.ZielDatentypenId) { case 1: ziel = nummerInformation.Ziel; break; case 2: Int32 output2 = 0; if (Int32.TryParse(nummerInformation.Ziel, out output2)) { ziel = output2; } break; case 3: Guid output3 = Guid.NewGuid(); if (Guid.TryParse(nummerInformation.Ziel, out output3)) { ziel = output3; } break; default: break; } } } if (ziel == null) { return(NotFound()); } else { return(ziel); } }
public static NummerDefinition LieferNummerDefinition() { NummerDefinition nummerDefinition = new NummerDefinition(); nummerDefinition.Bezeichnung = NumberDefinitionBezeichnung.DEUWOAuftragsnummerZuGEMASAuftragsnummer.ToString(); nummerDefinition.QuelleBezeichnung = "DEUWOAuftragsnummer"; nummerDefinition.ZielBezeichnung = "GEMASAuftragsnummer"; nummerDefinition.ZielDatentypenId = (long)Datentypwerte.Integer; //ICollection<NummerDefinitionQuelle> nummerDefinitionQuellen = new List<NummerDefinitionQuelle>(); NummerDefinitionQuelle nummerDefinitionQuelle = new NummerDefinitionQuelle(); nummerDefinitionQuelle.Bezeichnung = "Auftragsnummer"; nummerDefinitionQuelle.DatentypenId = (long)Datentypwerte.Integer; nummerDefinition.NummerDefinitionQuellen.Add(nummerDefinitionQuelle); return(nummerDefinition); }
public async Task <ActionResult <Guid?> > ErstelleNummerInformation(ErstelleNummerInformationRequest erstelleNummerInformationRequest) { Guid?guid = null; NummerDefinition foundNummerDefinition = this._context.Nummerdefinitionen.Include("NummerDefinitionQuellen").Where(e => (e.Id == erstelleNummerInformationRequest.Nummer_definition_id)).FirstOrDefault(); if (foundNummerDefinition == null) { throw new Exception(string.Format("für die nummer_definition_id = '{0}' existiert keine gültig Nummerdefinition.", erstelleNummerInformationRequest.Nummer_definition_id)); } else if (foundNummerDefinition.NummerDefinitionQuellen == null || foundNummerDefinition.NummerDefinitionQuellen.Count == 0) { throw new Exception("Für die Nummerdefinition sind keine Quellen definiert."); } else if (foundNummerDefinition.NummerDefinitionQuellen.Count != erstelleNummerInformationRequest.Quellen.Count()) { throw new Exception("Die Anzahl der definierten Quellen stimmt nicht mit der Anzahl der übergebenen Quellen überein."); } //else if (erstelleNummerInformation.Ziel == null) //{ // throw new Exception("Das Ziel ist null."); //} else { Data.Models.NummerInformation nummerInformation = new Data.Models.NummerInformation(); nummerInformation.NummerdefinitionenId = erstelleNummerInformationRequest.Nummer_definition_id; string jsonQuellen = NumberInformationJSONGenerator.GenerateJSON(foundNummerDefinition.NummerDefinitionQuellen, erstelleNummerInformationRequest.Quellen); nummerInformation.Quelle = jsonQuellen; nummerInformation.Ziel = erstelleNummerInformationRequest.Ziel != null?erstelleNummerInformationRequest.Ziel.ToString() : null; this._context.Nummerinformationen.Add(nummerInformation); await this._context.SaveChangesAsync(); guid = nummerInformation.Guid; } return(guid); }
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 <MassTestResult> RunAsync(long max) { MassTestResult massTestResult = new MassTestResult(); List <NummerDefinition> nummerDefinitionen = new List <NummerDefinition>(); List <ErstelleNummerInformationRequest> erstelleNummerInformationRequests = new List <ErstelleNummerInformationRequest>(); long countOfDefinitions = Random_Helper.GetLong(1L, max); massTestResult.CountOfDefinitions = countOfDefinitions; for (long i = 0; i < countOfDefinitions; i++) { NummerDefinition nummerDefinition = CreateRandomNummerDefinition(); ErstellteNummerDefinitionResponse ErstellteNummerDefinitionResponse = await ErstelleNummerDefinitionAsync(nummerDefinition); if (ErstellteNummerDefinitionResponse != null) { nummerDefinition.Guid = ErstellteNummerDefinitionResponse.Guid; nummerDefinition.Id = ErstellteNummerDefinitionResponse.Id; nummerDefinitionen.Add(nummerDefinition); } else { WriteRedTextToConsole("NummerDefinition konnte nicht erstellt werden."); } } long countOfInformations = Random_Helper.GetLong(1L, max); massTestResult.CountOfInformations = countOfInformations; foreach (var nummerDefinition in nummerDefinitionen) { for (int i = 0; i < countOfInformations; i++) { ErstelleNummerInformationRequest erstelleNummerInformationRequest = CreateRandomErstelleNummerInformation(nummerDefinition); Guid?guid = await ErstelleNummerInformationAsync(erstelleNummerInformationRequest); if (guid.HasValue) { erstelleNummerInformationRequests.Add(erstelleNummerInformationRequest); SetzeZielFürNummerInformationRequest setzeZielFürNummerInformationRequest = ErstelleSetzeZielFürNummerInformation(guid, nummerDefinition); bool success = await SetzeZielFürNummerInformationAsync(setzeZielFürNummerInformationRequest); if (success) { MassTestMeasure massTestMeasure = new MassTestMeasure(); massTestMeasure.CountOfInformations = await this._context.Nummerinformationen.CountAsync(); massTestMeasure.Start = DateTime.Now; NummerInformation nummerInformation = await HoleNummerInformationAsync(nummerDefinition, erstelleNummerInformationRequest); if (nummerInformation != null && nummerInformation.Ziel.ToString() == setzeZielFürNummerInformationRequest.Ziel.ToString()) { massTestMeasure.End = DateTime.Now; massTestMeasure.Milliseconds = (massTestMeasure.End - massTestMeasure.Start).TotalMilliseconds; massTestResult.MassTestMeasures.Add(massTestMeasure); } else { WriteRedTextToConsole("NummerInformation konnte nicht geholt werden."); } } } else { WriteRedTextToConsole("NummerInformation konnte nicht erstellt werden."); } } } massTestResult.CountOfErstelleNummerInformationen = erstelleNummerInformationRequests.Count; return(massTestResult); }
private static SetzeZielFürNummerInformationRequest ErstelleSetzeZielFürNummerInformation(Guid?guid, NummerDefinition nummerDefinition) { SetzeZielFürNummerInformationRequest setzeZielFürNummerInformationRequest = null; if (guid.HasValue && nummerDefinition != null) { object ziel = null; switch ((Datentypwerte)nummerDefinition.ZielDatentypenId) { case Datentypwerte.String: ziel = Guid.NewGuid().ToString(); break; case Datentypwerte.Integer: ziel = Random_Helper.GetLong(0L, 100000L); break; case Datentypwerte.Guid: ziel = Guid.NewGuid(); break; default: break; } setzeZielFürNummerInformationRequest = new SetzeZielFürNummerInformationRequest(); setzeZielFürNummerInformationRequest.NummerInformationGuid = guid.Value; setzeZielFürNummerInformationRequest.Ziel = ziel; } return(setzeZielFürNummerInformationRequest); }
private static ErstelleNummerInformationRequest CreateRandomErstelleNummerInformation(NummerDefinition nummerDefinition) { ErstelleNummerInformationRequest erstelleNummerInformationRequest = new ErstelleNummerInformationRequest(); if (nummerDefinition != null) { erstelleNummerInformationRequest.Nummer_definition_id = nummerDefinition.Id; int anzahlQuellen = nummerDefinition.NummerDefinitionQuellen.Count; object[] quellen = new object[anzahlQuellen]; int index = 0; foreach (var NummerDefinitionQuelle in nummerDefinition.NummerDefinitionQuellen) { object value = null; switch ((Datentypwerte)NummerDefinitionQuelle.DatentypenId) { case Datentypwerte.String: value = Guid.NewGuid().ToString(); break; case Datentypwerte.Integer: value = Random_Helper.GetLong(0L, 100000L); break; case Datentypwerte.Guid: value = Guid.NewGuid().ToString(); break; default: break; } quellen[index] = value; index++; } erstelleNummerInformationRequest.Quellen = quellen; } return(erstelleNummerInformationRequest); }