示例#1
0
        /// <summary>
        /// Returns the path item object that corresponds to a resource/entity/element
        /// </summary>
        /// <param name="entitySet"></param>
        /// <returns></returns>
        static JObject CreatePathItemObjectForEntity(IEdmEntitySet entitySet)
        {
            var keyParameters = new JArray();

            foreach (var key in entitySet.EntityType().Key())
            {
                string format;
                string type = GetPrimitiveTypeAndFormat(key.Type.Definition as IEdmPrimitiveType, out format);
                keyParameters.Parameter(key.Name, "path", "key: " + key.Name, type, format);
            }

            return(new JObject()
            {
                {
                    "get", new JObject()
                    .Summary("Get entity from " + entitySet.Name + " by key.")
                    .Description("Returns the entity with the key from " + entitySet.Name)
                    .OperationId("Get", entitySet.EntityType().Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter("$select", "query", "description", "string")
                                .DefaultAuthorizationParameter()
                                )
                    .Responses(new JObject()
                               .Response("200", "EntitySet " + entitySet.Name, entitySet.EntityType())
                               .DefaultErrorResponse()
                               )
                },
                {
                    "patch", new JObject()
                    .Summary("Update entity in EntitySet " + entitySet.Name)
                    .Description("Update entity in EntitySet " + entitySet.Name)
                    .OperationId("Update", entitySet.EntityType().Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter(entitySet.EntityType().Name, "body", "The entity to patch",
                                           entitySet.EntityType())
                                .DefaultAuthorizationParameter()
                                )
                    .Responses(new JObject()
                               .Response("204", "Empty response")
                               .DefaultErrorResponse()
                               )
                },
                {
                    "delete", new JObject()
                    .Summary("Delete entity in EntitySet " + entitySet.Name)
                    .Description("Delete entity in EntitySet " + entitySet.Name)
                    .OperationId("Delete", entitySet.EntityType().Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter("If-Match", "header", "If-Match header", "string")
                                .DefaultAuthorizationParameter()
                                )
                    .Responses(new JObject()
                               .Response("204", "Empty response")
                               .DefaultErrorResponse()
                               )
                }
            });
        }
示例#2
0
        public static JArray CleanJArray(JArray obj)
        {
            var cloned = (JArray)obj.DeepClone();

            CleanJTokenReturnIsEmpty(cloned);
            return(cloned);
        }
        /// <summary>
        /// Make nodes for defined sizes, else remove undefinable sizes from the JArray
        /// </summary>
        private void _addMaterialSizes(JArray SizesArray, CswNbtNode MaterialNode)
        {
            JArray ArrayToIterate = (JArray)SizesArray.DeepClone();

            foreach (JObject SizeObj in ArrayToIterate)
            {
                if (SizeObj.HasValues)
                {
                    CswNbtNode SizeNode;
                    Int32      SizeNtId = CswConvert.ToInt32(SizeObj["nodeTypeId"]["value"]);
                    if (Int32.MinValue != SizeNtId)
                    {
                        getSizeNodeProps(_CswNbtResources, SizeNtId, SizeObj, false, out SizeNode, MaterialNode.NodeId);
                        if (null == SizeNode)
                        {
                            SizesArray.Remove(SizeObj);
                        }
                    }
                    else
                    {
                        SizesArray.Remove(SizeObj);
                    }
                }
                else
                {
                    SizesArray.Remove(SizeObj);
                }
            }
        }
示例#4
0
文件: DiffBuilder.cs 项目: qiqi545/HQ
        private static JToken BuildArrayDiff(JArray original, JArray patched)
        {
            bool JArrayEquals(JArray left, JArray right)
            {
                if (left.Count != right.Count)
                {
                    return(false);
                }
                for (var i = 0; i < original.Count; i++)
                {
                    //Hack.
                    //Array can consist of values, objects or arrays so we reuse logic to calculate diff for each item
                    //if there is any patch operation (aka any diff) we return false and replace whole array
                    var diff = BuildDiff(left[i], right[i]);
                    if (diff != null)
                    {
                        return(false);
                    }
                }

                return(true);
            }

            if (JArrayEquals(original, patched))
            {
                return(null);
            }
            return(patched.DeepClone());
        }
示例#5
0
        static JObject CreatePathItemObjectForNavigationPropertyZeroOrOne(IEdmNavigationProperty navProp)
        {
            var keyParameters = new JArray();

            foreach (var key in navProp.ToEntityType().Key())
            {
                string format;
                string type = GetPrimitiveTypeAndFormat(key.Type.Definition as IEdmPrimitiveType, out format);
                keyParameters.Parameter(key.Name, "path", "key: " + key.Name, type, format);
            }

            return(new JObject()
            {
                {
                    "get", new JObject()
                    .Summary("Get entity from " + navProp.Name + " by key.")
                    .Description("Returns the entity with the key from " + navProp.Name)
                    .OperationId("Get", navProp.DeclaringEntityType().Name, navProp.Name)
                    .Tags(navProp.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .DefaultAuthorizationParameter()
                                )
                    .Responses(new JObject()
                               .Response("200", "Entity " + navProp.Name, navProp.ToEntityType())
                               .DefaultErrorResponse()
                               )
                }
            });
        }
示例#6
0
        public JObject Save()
        {
            JObject ret = new JObject();

            ret.Add("Name", Name);
            ret.Add("Texture", Texture.Name);
            ret.Add("Color", BaseColor.ToArgb());
            ret.Add("BackgroundColor", BackgroundColor.ToArgb());
            ret.Add("InheritColor", InheritRoomColor);
            ret.Add("XSpeed", MovementSpeed.X);
            ret.Add("YSpeed", MovementSpeed.Y);
            ret.Add("Objects", save.DeepClone());
            return(ret);
        }
示例#7
0
        public void DoubleDeepEquals()
        {
            JArray a =
                new JArray(
                    double.NaN,
                    double.PositiveInfinity,
                    double.NegativeInfinity
                    );

            JArray a2 = (JArray)a.DeepClone();

            Assert.IsTrue(a.DeepEquals(a2));

            double d = 1 + 0.1 + 0.1 + 0.1;

            JValue v1 = new JValue(d);
            JValue v2 = new JValue(1.3);

            Assert.IsTrue(v1.DeepEquals(v2));
        }
示例#8
0
        public static void Main()
        {
            string json = @"[
            'Small',
            'Medium',
            'Large'
        ]";

            JArray a = JArray.Parse(json);
            JArray b = (JArray)a.DeepClone();

            b[0] = "11";
            Console.WriteLine(a);
            Console.WriteLine(b);

            JObject obj1 = new JObject();

            obj1["a"] = 1;
            obj1["b"] = 2;
            foreach (var o in obj1)
            {
                Console.WriteLine(o.Key);
                Console.WriteLine(o.Value);
            }
            Console.WriteLine(obj1);

            //   SetTimer();

            // get timestamp
            Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

            Console.WriteLine(unixTimestamp);

            Console.WriteLine("\nPress the Enter key to exit the application...\n");
            Console.WriteLine("The application started at {0:HH:mm:ss.fff}", DateTime.Now);
            Console.ReadLine();
            aTimer.Stop();
            aTimer.Dispose();

            Console.WriteLine("Terminating the application...");
        }
        public static JArray Initialize(JArray arrayTemplate, int length, List <InitRule> rules)
        {
            var arrayRule = new InitRule
            {
                Pattern         = "^$",
                SourceType      = SourceTypeEnum.Value,
                DestinationType = DestinationTypeEnum.Array,
                Parameters      = new List <string>()
                {
                    length.ToString()
                }
            };

            rules.Add(arrayRule);

            JToken token       = arrayTemplate.DeepClone();
            var    initializer = new RBTokenInitializer(rules);

            initializer.Initialize(token);
            return((JArray)token);
        }
        public void Save_WithExistingItemName_ShouldOverrideItem(Db db, [Greedy] ContactSettingsRepository repo)
        {
            var siteContext = new FakeSiteContext("siteName");

            using (new FakeSiteContextSwitcher(siteContext))
            {
                CreateItem(db, $"/sitecore/client/Applications/ExperienceGenerator/Common/Contacts/{siteContext.Name}");
                repo.Save("name", EmptySpecification);
                var savedSpec =
                    db.GetItem($"/sitecore/client/Applications/ExperienceGenerator/Common/Contacts/{siteContext.Name}/name")[
                        Templates.Preset.Fields.Specification];
                JArray.Parse(savedSpec).ToString().Should().Be(EmptySpecification.ToString());
                var jToken = (JArray)EmptySpecification.DeepClone();
                jToken[0]["someKey"] = "someVal";
                repo.Save("name", jToken);
                savedSpec =
                    db.GetItem($"/sitecore/client/Applications/ExperienceGenerator/Common/Contacts/{siteContext.Name}/name")[
                        Templates.Preset.Fields.Specification];
                JArray.Parse(savedSpec).ToString().Should().Be(jToken.ToString());
            }
        }
示例#11
0
        public void DeepClone()
        {
            JArray a =
                new JArray(
                    5,
                    new JArray(1),
                    new JArray(1, 2),
                    new JArray(1, 2, 3),
                    new JObject(
                        new JProperty("First", new JValue(Encoding.UTF8.GetBytes("Hi"))),
                        new JProperty("Second", 1),
                        new JProperty("Third", null),
                        new JProperty("Fourth", new JConstructor("Date", 12345)),
                        new JProperty("Fifth", double.PositiveInfinity),
                        new JProperty("Sixth", double.NaN)
                        )
                    );

            JArray a2 = (JArray)a.DeepClone();

            Console.WriteLine(a2.ToString(Formatting.Indented));

            Assert.IsTrue(a.DeepEquals(a2));
        }
示例#12
0
        static JObject CreateSwaggerPathForEntity(IEdmEntitySet entitySet)
        {
            var keyParameters = new JArray();

            foreach (var key in entitySet.EntityType().Key())
            {
                string format;
                string type     = GetPrimitiveTypeAndFormat(key.Type.Definition as IEdmPrimitiveType, out format);
                bool   required = !key.Type.IsNullable;
                keyParameters.Parameter(key.Name, "path", "key: " + key.Name, type, format, required);
            }

            return(new JObject()
            {
                {
                    "get", new JObject()
                    .Summary("Get entity from " + entitySet.Name + " by key.")
                    .Description("Returns the entity with the key from " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter("$expand", "query", "Expand navigation property", "string")
                                .Parameter("$select", "query", "select structural property", "string")
                                .Parameter("$orderby", "query", "order by some property", "string")
                                .Parameter("$top", "query", "top elements", "integer")
                                .Parameter("$skip", "query", "skip elements", "integer")
                                .Parameter("$count", "query", "inlcude count in response", "boolean")

                                )
                    .Responses(new JObject()
                               .Response("200", "EntitySet " + entitySet.Name, entitySet.EntityType())
                               .DefaultErrorResponse()
                               )
                },
                {
                    "patch", new JObject()
                    .Summary("Update entity in EntitySet " + entitySet.Name)
                    .Description("Update entity in EntitySet " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter(entitySet.EntityType().Name, "body", "The entity to patch",
                                           entitySet.EntityType())
                                )
                    .Responses(new JObject()
                               .Response("204", "Empty response")
                               .DefaultErrorResponse()
                               )
                },
                {
                    "delete", new JObject()
                    .Summary("Delete entity in EntitySet " + entitySet.Name)
                    .Description("Delete entity in EntitySet " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter("If-Match", "header", "If-Match header", "string")
                                )
                    .Responses(new JObject()
                               .Response("204", "Empty response")
                               .DefaultErrorResponse()
                               )
                }
            });
        }
示例#13
0
    public void DoubleDeepEquals()
    {
      JArray a =
        new JArray(
          double.NaN,
          double.PositiveInfinity,
          double.NegativeInfinity
        );

      JArray a2 = (JArray)a.DeepClone();

      Assert.IsTrue(a.DeepEquals(a2));

      double d = 1 + 0.1 + 0.1 + 0.1;

      JValue v1 = new JValue(d);
      JValue v2 = new JValue(1.3);

      Assert.IsTrue(v1.DeepEquals(v2));
    }
示例#14
0
    public void DeepClone()
    {
      JArray a =
        new JArray(
          5,
          new JArray(1),
          new JArray(1, 2),
          new JArray(1, 2, 3),
          new JObject(
            new JProperty("First", new JValue(Encoding.UTF8.GetBytes("Hi"))),
            new JProperty("Second", 1),
            new JProperty("Third", null),
            new JProperty("Fourth", new JConstructor("Date", 12345)),
            new JProperty("Fifth", double.PositiveInfinity),
            new JProperty("Sixth", double.NaN)
            )
        );

      JArray a2 = (JArray)a.DeepClone();

      Console.WriteLine(a2.ToString(Formatting.Indented));

      Assert.IsTrue(a.DeepEquals(a2));
    }
示例#15
0
        static JObject CreateSwaggerPathForEntitySetSAML(IEdmEntitySet entitySet)
        {
            var keyParameters = new JArray();

            return(new JObject()
            {
                {
                    "get", new JObject()
                    .Summary("Get EntitySet " + entitySet.Name)
                    .Description("Returns the EntitySet " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters(new JArray()
                                .Parameter("$expand", "query", "Expand navigation property", "string")
                                .Parameter("$select", "query", "select structural property", "string")
                                .Parameter("$orderby", "query", "order by some property", "string")
                                .Parameter("$top", "query", "top elements", "integer")
                                .Parameter("$skip", "query", "skip elements", "integer")
                                .Parameter("$inlinecount", "query", "inlcude count in response", "string")
                                .Parameter("$format", "query", "response format", "string")
                                .Parameter("$links", "query", "response format", "string")
                                .Parameter("saml2", "query", "Disable SAML SSO", "string")
                                )
                    .Responses(new JObject()
                               .Response("200", "EntitySet " + entitySet.Name, entitySet.ElementType)
                               .DefaultErrorResponse()
                               )
                },
                {
                    "post", new JObject()
                    .Summary("Post a new entity to EntitySet " + entitySet.Name)
                    .Description("Post a new entity to EntitySet " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters(new JArray()
                                .Parameter(entitySet.ElementType.Name, "body", "The entity to post",
                                           entitySet.ElementType)
                                .Parameter("saml2", "query", "Disable SAML SSO", "string")
                                )
                    .Responses(new JObject()
                               .Response("201", "EntitySet " + entitySet.Name, entitySet.ElementType)
                               .DefaultErrorResponse()
                               )
                },
                {
                    "patch", new JObject()
                    .Summary("Update entity in EntitySet " + entitySet.Name)
                    .Description("Update entity in EntitySet " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter(entitySet.ElementType.Name, "body", "The entity to patch",
                                           entitySet.ElementType)
                                .Parameter("saml2", "query", "Disable SAML SSO", "string")
                                )
                    .Responses(new JObject()
                               .Response("204", "Empty response")
                               .DefaultErrorResponse()
                               )
                },
                {
                    "delete", new JObject()
                    .Summary("Delete entity in EntitySet " + entitySet.Name)
                    .Description("Delete entity in EntitySet " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter("If-Match", "header", "If-Match header", "string")
                                .Parameter("saml2", "query", "Disable SAML SSO", "string")
                                )
                    .Responses(new JObject()
                               .Response("204", "Empty response")
                               .DefaultErrorResponse()
                               )
                },
                {
                    "put", new JObject()
                    .Summary("Delete entity in EntitySet " + entitySet.Name)
                    .Description("Delete entity in EntitySet " + entitySet.Name)
                    .Tags(entitySet.Name)
                    .Parameters((keyParameters.DeepClone() as JArray)
                                .Parameter("If-Match", "header", "If-Match header", "string")
                                .Parameter("saml2", "query", "Disable SAML SSO", "string")
                                )
                    .Responses(new JObject()
                               .Response("200", "EntitySet " + entitySet.Name, entitySet.ElementType)
                               .DefaultErrorResponse()
                               )
                }
            });
        }