예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }