public void TestResultResponse101Ok()
        {
            var response = File.ReadAllText($"{exampleApiResponesPath}ResultTestResponse101.txt");
            var result   = ConverterResult.ConvertReceive(response);

            Assert.IsNotNull(result);
            Assert.AreEqual(101, result.StatusCode);
        }
        public void TestConvertRequest()
        {
            var response = File.ReadAllText($"{exampleApiResponesPath}RunTestResponse200.txt");
            var result   = ConverterResult.ConvertRequest(response);

            Assert.IsNotNull(result);
            Assert.AreEqual(200, result.StatusCode);
            Assert.IsTrue(!string.IsNullOrEmpty(result.JsonUrl));
        }
        public void TestResultResponse200Ok()
        {
            var response = File.ReadAllText($"{exampleApiResponesPath}ResultTestResponse200.txt");
            var result   = ConverterResult.ConvertReceive(response);

            Assert.IsNotNull(result);
            Assert.AreEqual(200, result.StatusCode);
            Assert.IsTrue(result is ResultTestReceiveExpandedModel);
            Assert.AreEqual(3, ((ResultTestReceiveExpandedModel)result).Runs.Count);
        }
Пример #4
0
        private async Task <KeyValuePair <PageModel, string> > AddTest(PageModel page, Mobile mobile)
        {
            var resultTestRequest = ConverterResult.ConvertRequest(
                await _pageTestApiService.SendTestAsync(page.Url, mobile,
                                                        NumberRunsTest));

            _logger.Info("Test added correctly. " +
                         $"Response of server {resultTestRequest.StatusCode}" +
                         $" : {resultTestRequest.StatusText} {page.Name} v{page.Version} {mobile}");

            var urlResult = resultTestRequest.JsonUrl;

            return(new KeyValuePair <PageModel, string>(page, urlResult));
        }
        /* public CustomerConverterResult DeserializeCustomerFromJSONFile(string absoluteFolderPath, string fileName = "customer.json")
         * {
         *   throw new NotImplementedException();
         * }*/

        // JSON - Text file lezen
        // https://www.c-sharpcorner.com/UploadFile/mahesh/how-to-read-a-text-file-in-C-Sharp/

        // StreamReader object gebruiker of File object gebruikt
        // Wat is het verschil? ==>
        // https://stackoverflow.com/questions/3545402/any-difference-between-file-readalltext-and-using-a-streamreader-to-read-file

        /* public CustomerConverterResult DeserializeCustomerFromJSONFile(string absoluteFolderPath, string fileName = "customer.json")
         * {
         *    var result = new CustomerConverterResult() { Status = ConverterStatus.Ok };
         *    var fullFilePath = Path.Combine(absoluteFolderPath, fileName);
         *    //controleer als de file bestaat binnen het opgegeven absolute folder pad.
         *    if (File.Exists(fullFilePath))
         *    {
         *      //using: disposal of the reader object, weggooien van het object na gebruik
         *      // ram vrijmaken
         *      using (var reader = new StreamReader(fullFilePath, System.Text.Encoding.UTF8))
         *      {
         *          // lezen van de inhoud van het json bestand in een string
         *          var jsonString = reader.ReadToEnd();
         *          reader.Close(); // sluit reader
         *                          // Deserialisatie van de JSON Sting in het Customer object
         *          result.CustomerResult = System.Text.Json.JsonSerializer.Deserialize<Customer>(jsonString);
         *      }
         *    }
         *    else
         *    {
         *        result.Status = ConverterStatus.HasError;
         *        result.Error = new Exception($"Opgegeven file met naam { fileName } bestaat niet!");
         *    }
         *    return result;
         * }*/

        /*  public CustomerConverterResult SerializeCustomerToJSONFile(string absoluteFolderPath, string fileName = "customer.json")
         * {
         *    var result = new CustomerConverterResult() { Status = ConverterStatus.Ok };
         *    try
         *    {
         *        var fullFilePath = Path.Combine(absoluteFolderPath, fileName);
         *        // Bad practice: geen domain data in generieke libraries
         *        var customer = new Customer()
         *        {
         *            Name = "Decaestecker",
         *            Prename = "Roy",
         *            EmailAddress = "*****@*****.**",
         *            PhoneNumber = ""
         *        };
         *        // seralisatie van customer object naar een JSON string
         *        var jsonString = System.Text.Json.JsonSerializer.Serialize<Customer>(customer);
         *
         *        // schrijf de jsonstring naar de file
         *        File.WriteAllText(fullFilePath, jsonString);
         *    }
         *    catch (Exception e)
         *    {
         *        result.Error = e;
         *        result.Status = ConverterStatus.HasError;
         *    }
         *    return result;
         * } */


        /// <summary>
        /// Generieke method om een object te deserialiseren uit een JSON File
        /// </summary>
        /// <typeparam name="TOtds">Type van Object To DeSerialize</typeparam>
        /// <param name="absoluteFolderPath"></param>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public ConverterResult <TOtds> DeserializeObjectFromJSONFile <TOtds>(string absoluteFolderPath, string fileName)
        {
            var result = new ConverterResult <TOtds>()
            {
                Status = ConverterStatus.Ok
            };
            var fullFilePath = Path.Combine(absoluteFolderPath, fileName);

            if (File.Exists(fullFilePath))
            {
                string JSONString = File.ReadAllText(fullFilePath);
                result.ReturnValue = System.Text.Json.JsonSerializer.Deserialize <TOtds>(JSONString);
            }
            else
            {
                result.Status = ConverterStatus.HasError;
                result.Error  = new Exception("File does not exist");
            }
            return(result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TOts">Type van Object To Serialize</typeparam>
        /// <param name="absoluteFolderPath"></param>
        /// <param name="fileName"></param>
        /// <param name="objectToSerialize"></param>
        /// <returns></returns>
        public ConverterResult <TOts> SerializeObjectToJSONFile <TOts>(string absoluteFolderPath, string fileName, TOts objectToSerialize)
        {
            var result = new ConverterResult <TOts>()
            {
                Status = ConverterStatus.Ok
            };

            try
            {
                var fullFilePath = Path.Combine(absoluteFolderPath, fileName);
                var jsonString   = System.Text.Json.JsonSerializer.Serialize <TOts>(objectToSerialize);
                File.WriteAllText(fullFilePath, jsonString);
            }
            catch (Exception e)
            {
                result.Error  = e;
                result.Status = ConverterStatus.HasError;
            }
            return(result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="element"></param>
        /// <param name="res"></param>
        /// <param name="fileName"></param>
        private void OverwriteAttachementValues(Element element, ConverterResult res, string fileName)
        {
            Config cfg = ConfigManager.GetConfigManager().ConnectorConfig;

            element.ReplaceValues($"{cfg.StringIdentifier}.{cfg.BodyFieldName}", res.Body);

            element.ReplaceValues($"{cfg.FacetIdentifier}.{cfg.ApplicationFieldName}", res.Application);
            element.ReplaceValues($"{cfg.StringIdentifier}.{cfg.ApplicationFieldName}", res.Application);

            element.ReplaceValues($"{cfg.FacetIdentifier}.{cfg.MimeTypeFieldName}", res.MimeType);
            element.ReplaceValues($"{cfg.StringIdentifier}.{cfg.MimeTypeFieldName}", res.MimeType);

            string attachementUrl = MetaReader.GetMetaReader().GetMetaUrl(element.Class, element.Id, fileName);

            element.ReplaceValues($"{cfg.StringIdentifier}.{cfg.UrlFieldName}", attachementUrl);

            string newId = $"{element.Id}_{fileName}";

            element.ReplaceValues($"{cfg.StringIdentifier}.{cfg.UidFieldName}", newId);
            element.Id = newId;
        }
Пример #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="jsonString"></param>
        /// <exception cref="Exception"></exception>
        /// <returns></returns>
        private ConverterResult ExtractValues(string jsonString)
        {
            JArray json;

            try
            {
                json = JsonConvert.DeserializeObject <JArray>(jsonString);
            }
            catch (Exception e)
            {
                _log.Error(LocalizationService.FormatResourceString("ConverterServiceMessage01"), e);
                throw;
            }
            Config config = ConfigManager.GetConfigManager().ConnectorConfig;
            var    fields = json[0][config.ConverterFieldsIdentifier];

            if (fields == null)
            {
                var message = LocalizationService.FormatResourceString("ConverterServiceMessage03", config.ConverterFieldsIdentifier);
                _log.Error(message);
                throw new ArgumentNullException(message);
            }

            ConverterResult res = new ConverterResult();

            string fieldName = $"{config.StringIdentifier}.{config.BodyFieldName}";

            res.Body = Util.RemoveMarkup(GetConverterFieldValue(fields, fieldName));

            fieldName    = $"{config.StringIdentifier}.{config.MimeTypeFieldName}";
            res.MimeType = GetConverterFieldValue(fields, fieldName);

            fieldName = $"{config.StringIdentifier}.{config.ApplicationFieldName}";
            string app = GetConverterFieldValue(fields, fieldName);

            res.Application = config.ConverterApplicationMapping.ContainsKey(app) ?
                              config.ConverterApplicationMapping[app] : config.ConverterApplicationDefaultMapping;

            return(res);
        }
Пример #9
0
        private async Task WaitForResult(IList <KeyValuePair <PageModel, string> > runnedTests)
        {
            foreach (var test in runnedTests)
            {
                do
                {
                    try
                    {
                        var jsonResult = await _pageTestApiService.GetResultOfTestAsync(test.Value);

                        if (string.IsNullOrEmpty(jsonResult))
                        {
                            continue;
                        }

                        var testResult = ConverterResult.ConvertReceive(jsonResult);

                        //result ok
                        if (testResult is ResultTestReceiveExpandedModel)
                        {
                            _logger.Debug(testResult as ResultTestReceiveExpandedModel);

                            //save result
                            await _pageTestResultExporter.Save(testResult as ResultTestReceiveExpandedModel, test.Key);

                            break;
                        }

                        _logger.Info("Waiting from result test of server. " +
                                     $"Response of server {testResult.StatusCode}" +
                                     $" : {testResult.StatusText} {test.Key.Name} v{test.Key.Version}");
                    }
                    catch (Exception exception)
                    {
                        _logger.Error(exception.Message);
                    }
                    await Task.Delay(RefreshIntervalTime);
                } while (true);
            }
        }
Пример #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="externalRequirement"></param>
        /// <param name="setName"></param>
        /// <param name="logger"></param>
        /// <returns></returns>
        public static NEW_REQUIREMENT SaveRequirement(this IExternalRequirement externalRequirement, string setName,
                                                      int sequence, ILogger logger)
        {
            var result         = new ConverterResult <NEW_REQUIREMENT>(logger);
            var newRequirement = result.Result;

            //basic mappings
            newRequirement.Supplemental_Info      = externalRequirement.Supplemental;
            newRequirement.Requirement_Text       = externalRequirement.Text;
            newRequirement.Requirement_Title      = externalRequirement.Identifier;
            newRequirement.Original_Set_Name      = setName;
            newRequirement.Weight                 = externalRequirement.Weight;
            newRequirement.REQUIREMENT_LEVELS     = new List <REQUIREMENT_LEVELS>();
            newRequirement.REQUIREMENT_REFERENCES = new List <REQUIREMENT_REFERENCES>();
            newRequirement.REQUIREMENT_SETS       = new List <REQUIREMENT_SETS>()
            {
                new REQUIREMENT_SETS()
                {
                    Set_Name             = setName,
                    Requirement_Sequence = sequence
                }
            };

            QUESTION_GROUP_HEADING          questionGroupHeading = null;
            UNIVERSAL_SUB_CATEGORY_HEADINGS uschPairing          = null;

            var db = new CSET_Context();

            try
            {
                questionGroupHeading = db.QUESTION_GROUP_HEADING.FirstOrDefault(s => s.Question_Group_Heading1.Trim().ToLower() == externalRequirement.Heading.Trim().ToLower());
                try
                {
                    var subcatId = db.UNIVERSAL_SUB_CATEGORIES.FirstOrDefault(s => s.Universal_Sub_Category.Trim().ToLower() == externalRequirement.Subheading.Trim().ToLower())?.Universal_Sub_Category_Id ?? 0;
                    if (subcatId == 0)
                    {
                        var subcat = new UNIVERSAL_SUB_CATEGORIES()
                        {
                            Universal_Sub_Category = externalRequirement.Subheading
                        };
                        db.UNIVERSAL_SUB_CATEGORIES.Add(subcat);
                        db.SaveChanges();
                        subcatId = subcat.Universal_Sub_Category_Id;
                    }

                    try
                    {
                        uschPairing = db.UNIVERSAL_SUB_CATEGORY_HEADINGS.FirstOrDefault(s => (s.Universal_Sub_Category_Id == subcatId) && (s.Question_Group_Heading_Id == questionGroupHeading.Question_Group_Heading_Id));
                        if (uschPairing == null)
                        {
                            uschPairing = new UNIVERSAL_SUB_CATEGORY_HEADINGS()
                            {
                                Set_Name = "Standards",
                                Universal_Sub_Category_Id = subcatId,
                                Question_Group_Heading_Id = questionGroupHeading.Question_Group_Heading_Id
                            };
                            db.UNIVERSAL_SUB_CATEGORY_HEADINGS.Add(uschPairing);
                            db.SaveChanges();
                        }
                    }
                    catch (Exception exc)
                    {
                        var myExc = exc;
                    }
                }
                catch
                {
                }
            }
            catch
            {
            }


            if (questionGroupHeading == null)
            {
                result.LogError(String.Format("Heading invalid for requirement {0} {1}.  Please double check that the heading is spelled correctly.", externalRequirement.Identifier, externalRequirement.Text));
            }
            else
            {
                newRequirement.Question_Group_Heading_Id = questionGroupHeading.Question_Group_Heading_Id;
            }


            if (uschPairing == null)
            {
                result.LogError(String.Format("Subheading invalid for requirement {0} {1}.  Please double check that the heading is spelled correctly.", externalRequirement.Identifier, externalRequirement.Text));
            }

            externalRequirement.Category = string.IsNullOrWhiteSpace(externalRequirement.Category) ? externalRequirement.Heading : externalRequirement.Category;
            var category = db.STANDARD_CATEGORY.FirstOrDefault(s => s.Standard_Category1 == externalRequirement.Category);

            if (category == null)
            {
                newRequirement.Standard_CategoryNavigation = new STANDARD_CATEGORY()
                {
                    Standard_Category1 = externalRequirement.Category
                };
            }
            else
            {
                newRequirement.Standard_Category = category.Standard_Category1;
            }

            newRequirement.Standard_Sub_Category = externalRequirement.Subheading;


            // SAL
            foreach (string sal in externalRequirement.SecurityAssuranceLevels)
            {
                var rl = new REQUIREMENT_LEVELS()
                {
                    Standard_Level = sal,
                    Level_Type     = "NST"
                };

                if (newRequirement.REQUIREMENT_LEVELS.Count(x => x.Standard_Level == rl.Standard_Level) == 0)
                {
                    newRequirement.REQUIREMENT_LEVELS.Add(rl);
                }
            }


            var importer = new DocumentImporter();

            if (externalRequirement.References != null)
            {
                foreach (var reference in externalRequirement.References)
                {
                    var reqReference = new REQUIREMENT_REFERENCES();
                    try
                    {
                        reqReference.Destination_String = reference.Destination;
                        reqReference.Page_Number        = reference.PageNumber;
                        reqReference.Section_Ref        = String.IsNullOrEmpty(reference.SectionReference) ? "" : reference.SectionReference;
                        reqReference.Gen_File_Id        = importer.LookupGenFileId(reference.FileName);
                    }
                    catch
                    {
                        result.LogError(String.Format("Reference {0} could not be added for requirement {1} {2}.", externalRequirement.Source?.FileName, externalRequirement.Identifier, externalRequirement.Text));
                    }
                    if (reqReference.Gen_File_Id == 0)
                    {
                        result.LogError(String.Format("Reference {0} has not been loaded into CSET.  Please add the file and try again.", externalRequirement.Source?.FileName, externalRequirement.Identifier, externalRequirement.Text));
                    }
                    else
                    {
                        newRequirement.REQUIREMENT_REFERENCES.Add(reqReference);
                    }
                }
            }

            var reqSource = new REQUIREMENT_SOURCE_FILES();

            try
            {
                if (externalRequirement.Source != null)
                {
                    reqSource.Gen_File_Id        = importer.LookupGenFileId(externalRequirement.Source.FileName);
                    reqSource.Page_Number        = externalRequirement.Source.PageNumber;
                    reqSource.Destination_String = externalRequirement.Source.Destination;
                    reqSource.Section_Ref        = String.IsNullOrEmpty(externalRequirement.Source.SectionReference) ? "" : externalRequirement.Source.SectionReference;
                    if (reqSource.Gen_File_Id == 0)
                    {
                        result.LogError(String.Format("Source {0} has not been loaded into CSET.  Please add the file and try again.", externalRequirement.Source?.FileName, externalRequirement.Identifier, externalRequirement.Text));
                    }
                    else
                    {
                        newRequirement.REQUIREMENT_SOURCE_FILES.Add(reqSource);
                    }
                }
            }
            catch
            {
                result.LogError(String.Format("Source {0} could not be added for requirement {1} {2}.", externalRequirement.Source?.FileName, externalRequirement.Identifier, externalRequirement.Text));
            }

            try
            {
                db.NEW_REQUIREMENT.Add(newRequirement);
                db.SaveChanges();
            }
            catch (Exception exc)
            {
                // throw exc;
            }


            // Save any Questions associated with the Requirement
            SaveQuestions(setName, externalRequirement, newRequirement,
                          questionGroupHeading, uschPairing,
                          db);


            return(newRequirement);
        }