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 <bool> PrüfeUndErstelleNummerDefinitionAsync() { string bezeichnung = NumberDefinitionBezeichnung.DEUWOAuftragsnummerZuGEMASAuftragsnummer.ToString(); bool existiert = await StandardRequirement.Instance.PrüfeExistenzNummerDefinitionAsync(bezeichnung); if (!existiert) { ErstellteNummerDefinitionResponse ErstellteNummerDefinitionResponse = await StandardRequirement.Instance.ErstelleNummerDefinitionAsync(); existiert = await StandardRequirement.Instance.PrüfeExistenzNummerDefinitionAsync(bezeichnung); } return(existiert); }
public async Task <ActionResult <ErstellteNummerDefinitionResponse> > ErstelleNummerDefinition(Data.Models.NummerDefinition nummerDefinition) { Data.Models.NummerDefinition foundNummerDefinition = this._context.Nummerdefinitionen.Where(e => (e.Bezeichnung == nummerDefinition.Bezeichnung)).FirstOrDefault(); if (foundNummerDefinition != null) { throw new Exception("der Wert für NummerDefinitionBezeichnung muss eindeutig sein."); } var invalidgroups = nummerDefinition.NummerDefinitionQuellen.GroupBy(e => e.Bezeichnung).Select(group => new { Key = group.Key, Count = group.Count(), }).Where(e => e.Count > 1); if (invalidgroups.Count() > 0) { throw new Exception("der Werte für NummerDefinitionQuelleBezeichnung müssen eindeutig sein."); } // TODO BK Bezeichnungen der Quellen müssen gültige JSON-Bezeichnungen sein(nicht mit Zahlen beginnen.) List <Data.Models.NummerDefinitionQuelle> nummerDefinitionQuelles = nummerDefinition.NummerDefinitionQuellen.ToList(); nummerDefinition.NummerDefinitionQuellen.Clear(); nummerDefinition.NummerDefinitionQuellen = null; nummerDefinition.NummerInformationen.Clear(); nummerDefinition.NummerInformationen = null; this._context.Nummerdefinitionen.Add(nummerDefinition); await this._context.SaveChangesAsync(); int pos = 1; foreach (var nummerDefinitionQuelle in nummerDefinitionQuelles) { nummerDefinitionQuelle.Position = pos; pos++; this._context.Nummerdefinitionquellen.Add(nummerDefinitionQuelle); nummerDefinitionQuelle.NummerdefinitionenId = nummerDefinition.Id; } await this._context.SaveChangesAsync(); ErstellteNummerDefinitionResponse ErstellteNummerDefinitionResponse = new ErstellteNummerDefinitionResponse(); ErstellteNummerDefinitionResponse.Id = nummerDefinition.Id; ErstellteNummerDefinitionResponse.Guid = nummerDefinition.Guid; ErstellteNummerDefinitionResponse.Bezeichnung = nummerDefinition.Bezeichnung; ErstellteNummerDefinitionResponse.NummerDefinitionQuellen = nummerDefinition.NummerDefinitionQuellen.ToList(); return(ErstellteNummerDefinitionResponse); }
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); }