示例#1
0
        public void ShouldPostAndGetResult()
        {
            TestFactory       factory           = new TestFactory();
            SavedQueryService savedQueryService = new SavedQueryService();


            var url        = "http://api.scb.se/OV0104/v1/doris/sv/ssd/START/JO/JO1104/F3ny";
            var tableQuery = factory.GetTableQuery();

            savedQueryService.PostService(url, tableQuery);
        }
        public List <CompareResultApiModel> CompareApi(IEnumerable <MenuItem> level3Items, string level2qString, List <CompareResultApiModel> compareResultModelList)
        {
            var serverAddress1 = _appSettingsHandler.ReadSetting("WebApiAddress1");
            // get url for api site 2
            var serverAddress2 = _appSettingsHandler.ReadSetting("WebApiAddress2");
            var resultFolder1  = _appSettingsHandler.ReadSetting("ResultFolder1") + "/Api/";
            var resultFolder2  = _appSettingsHandler.ReadSetting("ResultFolder2") + "/Api/";
            var fileRepo       = new FileCompareRepo();

            foreach (var level3Item in level3Items)
            {
                var lev3qString = level2qString + $"/{level3Item.Id}";

                var queryResult1 = _savedQueryService.GetService(serverAddress1 + lev3qString);
                var queryResult2 = _savedQueryService.GetService(serverAddress2 + lev3qString);

                MetaTable metaTableResult;

                if (!string.IsNullOrEmpty(queryResult1) && !string.IsNullOrEmpty(queryResult2))
                {
                    metaTableResult = JsonConvert.DeserializeObject <MetaTable>(queryResult1);

                    var compareResultModel = new CompareResultApiModel()
                    {
                        TableId = level3Item.Id
                    };

                    //var outputFormats = Enum.GetValues(typeof(OutputFormatApi)).Cast<OutputFormatApi>();

                    var outputFormats = Enum.GetValues(typeof(OutputFormatApi)).Cast <OutputFormatApi>();

                    fileRepo.CreateFolder($"{resultFolder1}/{level3Item.Id}");
                    fileRepo.CreateFolder($"{resultFolder2}/{level3Item.Id}");

                    foreach (var outputFormat in outputFormats)
                    {
                        var tableQuery = MapToTableQuery(metaTableResult, outputFormat.ToString().Replace("_", "-"));

                        bool?result;


                        if (outputFormat == OutputFormatApi.xlsx)
                        {
                            bool res1;
                            bool res2;

                            res1 = _savedQueryService.PostAndSaveAsFile($"{serverAddress1}{lev3qString}",
                                                                        $"{level3Item.Id}_{outputFormat}",
                                                                        "xlsx", $"{resultFolder1}\\{level3Item.Id}\\"
                                                                        , tableQuery);

                            res2 = _savedQueryService.PostAndSaveAsFile($"{serverAddress1}{lev3qString}",
                                                                        $"{level3Item.Id}_{outputFormat}",
                                                                        "xlsx", $"{resultFolder2}\\{level3Item.Id}\\",
                                                                        tableQuery);

                            Thread.Sleep(5000);

                            if (res1 && res2)
                            {
                                var resultList1 =
                                    _excelComparer.ReadExcelFile(
                                        $@"{resultFolder1}\{level3Item.Id}\{level3Item.Id}_{outputFormat}.xlsx");
                                var resultList2 =
                                    _excelComparer.ReadExcelFile(
                                        $@"{resultFolder2}\{level3Item.Id}\{level3Item.Id}_{outputFormat}.xlsx");
                                result = CompareArrayLists(resultList1, resultList2);
                            }
                            else
                            {
                                result = null;
                            }
                        }
                        else
                        {
                            var res1 = _savedQueryService.PostService($"{serverAddress1 + lev3qString}", tableQuery);

                            var res2 = _savedQueryService.PostService($"{serverAddress2 + lev3qString}", tableQuery);

                            Thread.Sleep(5000);

                            if (res1 != null && res2 != null)
                            {
                                _savedQueryService.SaveToFile(res1, level3Item.Id, outputFormat.ToString(),
                                                              $"{resultFolder1}\\{level3Item.Id}\\");
                                _savedQueryService.SaveToFile(res2, level3Item.Id, outputFormat.ToString(),
                                                              $"{resultFolder2}\\{level3Item.Id}\\");
                                result = CompareSavedQueryResults(
                                    $@"{resultFolder1}/{level3Item.Id}/{level3Item.Id}_{outputFormat}.txt",
                                    $@"{resultFolder2}/{level3Item.Id}/{level3Item.Id}_{outputFormat}.txt");
                            }
                            else
                            {
                                result = null;
                            }
                        }
                        compareResultModel.UpdateModel(outputFormat, result);
                    }
                    compareResultModelList.Add(compareResultModel);
                }
            }
            return(compareResultModelList);
        }