Example #1
0
        private static void Stuff(ResponsesSchema responses)
        {
            #region Temp / research
            var props = responses
                        .Definitions
                        .SelectMany(
                a => a
                .Value
                .Properties
                .Values
                .Where(b => b.Properties != null)
                .SelectMany(
                    b => b
                    .Properties
                    .Keys
                    .Select(c => new
            {
                keys = c,
                type = a.Key
            })
                    )
                )
                        .GroupBy(a => a.keys)
                        .Select(a => new { a.Key, cnt = a.Count(), values = new HashSet <string>(a.Select(b => b.type)) })
                        .Where(a => a.cnt > 1)
                        .OrderBy(a => - a.cnt)
                        .ToArray();

            var pms = props
                      .SelectMany(
                a => props
                .Where(b => a.Key.CompareTo(b.Key) < 0)
                .Select(b =>
            {
                var matches = a.values.Count(sourceType => b.values.Contains(sourceType));
                if (matches == 0)
                {
                    return(null);
                }
                return(new { a = a.Key, b = b.Key, x = matches, ac = a.cnt, bc = b.cnt });
            })
                .Where(b => b != null)
                )
                      //.OrderByDescending(a => a.x / (double)Math.Min(a.ac, a.bc))
                      .Where(a => a.x > 1)
                      .OrderByDescending(a => a.x)
                      .ToList();

            var subsets = pms
                          .Where(a => a.x >= (double)Math.Min(a.ac, a.bc))
                          .ToList();
            pms = pms
                  .Where(a => a.x < (double)Math.Min(a.ac, a.bc))
                  .ToList();

            #endregion
        }
Example #2
0
 public Methods(MethodsSchema methodsSchema, ResponsesSchema responsesSchema, ResponsesSchema objectsSchema)
 {
     M = methodsSchema;
     R = responsesSchema;
     O = objectsSchema;
 }
Example #3
0
 public Objects(ResponsesSchema objectsSchema) => O = objectsSchema;