/// <summary> /// Deserialize all result packages and dictionary with packages data. /// </summary> private void _DeserializeAllPackagesV1() { Console.WriteLine("Packages deserialization started.."); JsonSerializerSettings packageSerializationSettings = new JsonSerializerSettings { CheckAdditionalContent = true, MissingMemberHandling = MissingMemberHandling.Error, ReferenceLoopHandling = ReferenceLoopHandling.Error, DefaultValueHandling = DefaultValueHandling.Populate, ContractResolver = new EscapedStringResolver(), FloatFormatHandling = FloatFormatHandling.String, FloatParseHandling = FloatParseHandling.Double, Culture = CultureInfo.InvariantCulture }; packageSerializationSettings.Converters.Add(new RequestJsonConverterV1()); packageSerializationSettings.Converters.Add(new CommonConverterV1()); packageSerializationSettings.Converters.Add(new EventsArrayConverter()); packageSerializationSettings.Converters.Add(new LuDataConverter()); foreach (string directory in Directory.GetDirectories(CounterSettings.PathToResults)) { string platformName = Path.GetFileName(directory); Console.Write($"Deserialize {platformName} packages.."); Dictionary <string, List <ProxyPackageInfoV1> > platformPackagesDictionary = new Dictionary <string, List <ProxyPackageInfoV1> >(); foreach (string subDirectory in Directory.GetDirectories(directory)) { List <ProxyPackageInfoV1> packagesList = new List <ProxyPackageInfoV1>(); IEnumerable <string> jsonFiles = Directory.GetFiles(subDirectory, "*.json"); foreach (string jsonFile in jsonFiles) { string packageContent = File.ReadAllText(jsonFile, Encoding.UTF8); ProxyPackageInfoV1 deserializedJsonV1 = JsonConvert.DeserializeObject <ProxyPackageInfoV1>( packageContent, packageSerializationSettings ); packagesList.Add(deserializedJsonV1); } string testName = Path.GetFileName(subDirectory); platformPackagesDictionary.Add(testName, packagesList); Console.Write("."); } Console.WriteLine(); this._deserializedPackages.Add(platformName, platformPackagesDictionary); } }
private ProxyPackageInfoV1 _GetPackageWithLastEventOfType <T>(IEnumerable <ProxyPackageInfoV1> testPackages) { IEnumerable <T> desiredTypeEvents = testPackages.GetAllLuEvents().AllSubeventsOfType <T>(); IEnumerable <IHasTimestamp> timestampEvents = testPackages.GetAllLuEvents().AllSubeventsOfType <IHasTimestamp>().OrderBy(e => e.Timestamp); if (desiredTypeEvents.Count() != 0 && timestampEvents.Count() != 0) { IHasTimestamp lastEventByTimestamp = timestampEvents.Last(); foreach (T desiredTypeEvent in desiredTypeEvents) { if (desiredTypeEvent is IHasTimestamp timestampEvent && timestampEvent == lastEventByTimestamp ) { lastEventByTimestamp = timestampEvent; } } if (lastEventByTimestamp is T && lastEventByTimestamp is AbstractSdkEventV1 abstractSdkEvent ) { ProxyPackageInfoV1 packageWithDesiredEvent = abstractSdkEvent.FindPackageForSubEvent(testPackages); return(packageWithDesiredEvent.GetAllLuEvents().GetAllLevelSubevents().Count() == 1 ? packageWithDesiredEvent : null); } } return(null); }
public static IEnumerable <Dictionary <int, LuEvent> > GetAllLuEvents( this ProxyPackageInfoV1 package ) { if (package.RequestJson is LuData luData) { return(new List <Dictionary <int, LuEvent> >() { luData.LuEvents }); } return(null); }
private TestPackagesData _CalculatePackages( List <ProxyPackageInfoV1> testPackagesOriginal, string testName ) { List <ProxyPackageInfoV1> testPackages = this._GetTestPackagesWithoutDoubles(new List <ProxyPackageInfoV1>(testPackagesOriginal)); this._previousTestPackages = new List <ProxyPackageInfoV1>(testPackagesOriginal); List <string> doublesSignatures = this.PackagesDoubleCheck(testPackages, testPackagesOriginal); List <ProxyPackageInfoV1> alContainingPackages = this._FindAllPackagesOfEvent <AlEvent>(testPackages).ToList(); List <ProxyPackageInfoV1> ueContainingPackages = this._FindAllPackagesOfEvent <UeEvent>(testPackages).ToList(); ProxyPackageInfoV1 packageWithLastAlEvent = this._GetPackageWithLastEventOfType <AlEvent>(testPackages); ProxyPackageInfoV1 packageWithLastUeEvent = this._GetPackageWithLastEventOfType <UeEvent>(testPackages); IEnumerable <ProxyPackageInfoV1> sdkVersionPackages = testPackages.Where(e => e.RequestJson is SdkVersionData); bool previousTestContainsClean = this.testBeforeCleanDictionary != null && this.testBeforeCleanDictionary.ContainsKey(testName.ToUpper()) && this.testBeforeCleanDictionary[testName.ToUpper()]; TestPackagesData testPackagesData = new TestPackagesData( originalPackagesCount: testPackagesOriginal.Count, packagesCount: testPackages.Count, alPackagesCount: alContainingPackages.Count, uePackagesCount: ueContainingPackages.Count, caPackagesCount: 0, attemptPackagesCount: 0, sdkVersionCount: sdkVersionPackages.Count(), isLastAlRemoved: (previousTestContainsClean && CounterSettings.IgnoreLastAl) && packageWithLastAlEvent != null, isLastUeRemoved: (previousTestContainsClean && CounterSettings.IgnoreBadUe) && packageWithLastUeEvent != null, isFirstUeRemoved: false, isAllEventsOrdered: true, events: null, doublesSignatures: doublesSignatures, badCodesPackages: new List <ProxyPackageInfo>(), previousTestContainsCleaning: previousTestContainsClean, containsDeserializationErrors: false ); return(testPackagesData); }