Exemplo n.º 1
0
        /// <summary>
        /// Read <see cref="JsonElement"/> as OData value.
        /// </summary>
        /// <param name="node">The JSON element.</param>
        /// <returns>The OData value.</returns>
        public static IODataValue ParseAsODataValue(this JsonElement node)
        {
            switch (node.ValueKind)
            {
            case JsonValueKind.Object:     // A JSON object.
                ODataObject odataObject = new ODataObject();
                foreach (JsonProperty property in node.EnumerateObject())
                {
                    odataObject[property.Name] = ParseAsODataValue(property.Value);
                }

                return(odataObject);

            case JsonValueKind.Array:     // A JSON array.
                ODataArray odataArray = new ODataArray();
                foreach (JsonElement element in node.EnumerateArray())
                {
                    odataArray.Add(ParseAsODataValue(element));
                }

                return(odataArray);

            case JsonValueKind.String:     // A JSON string.
                return(new ODataString(node.GetString()));

            case JsonValueKind.Number:     // A JSON number.
                return(ReadNumber(node));

            case JsonValueKind.True:     // A JSON true.
                return(ODataBoolean.True);

            case JsonValueKind.False:     // A JSON false.
                return(ODataBoolean.False);

            case JsonValueKind.Null:     // A JSON null.
                return(ODataNull.Null);

            case JsonValueKind.Undefined:
            default:
                throw new ODataException($"Found an Undefined JSON element '{node.GetRawText()}'!");
            }
        }
 public static Uri GetObjectUri(this ODataObject oDataObject, bool useStreamId = false)
 {
     if (useStreamId && oDataObject is Item)
     {
         var item = oDataObject as Item;
         if (!string.IsNullOrEmpty(item.StreamID))
         {
             if (oDataObject.url != null)
             {
                 return(new Uri(oDataObject.url.ToString().Replace(item.Id, item.StreamID)));
             }
             return(oDataObject.ComposeUri((oDataObject as Item).StreamID));
         }
     }
     if (oDataObject.url == null)
     {
         oDataObject.url = oDataObject.ComposeUri((oDataObject).Id);
     }
     return(oDataObject.url);
 }
Exemplo n.º 3
0
        public ODataObject CreateFromUrl(string Url, ODataObject oDataObject, JsonSerializer serializer)
        {
            var odataExpression = @"^(?<cast>[^$\(]+)\((?<id>[^\)]+)\)";

            Uri    uri         = new Uri(Url);
            string type        = null;
            string id          = null;
            var    uriSegments = uri.GetSegments();

            foreach (var segment in uriSegments)
            {
                var match = Regex.Match(segment, odataExpression, RegexOptions.IgnoreCase);
                if (match.Success)
                {
                    type = match.Groups["cast"].Value;
                    id   = match.Groups["id"].Value;
                }
            }
            if (type == null && uriSegments.Length > 0)
            {
                type = uriSegments[uriSegments.Length - 1];
            }

            if (type != null)
            {
                var o = Create(oDataObject.GetType(), type, oDataObject, serializer);
                if (!string.IsNullOrEmpty(id))
                {
                    o.Id = id;
                }
                return(o);
            }

            if (oDataObject != null)
            {
                return(oDataObject);
            }

            return(null);
        }
        public static void AddProperty(this ODataObject oDataObject, string key, object value)
        {
            if (value == null)
            {
                return;
            }

            if (oDataObject.Properties == null)
            {
                oDataObject.Properties = new Dictionary <string, JToken>();
            }

            var token = value as JToken;

            if (token != null)
            {
                oDataObject.Properties[key] = token;
            }
            else
            {
                oDataObject.Properties[key] = JToken.FromObject(value);
            }
        }
Exemplo n.º 5
0
        public async Task <JsonResult> TotalRetido()
        {
            var res = await ApiClient.GetAsync(GetUri("Coin"));

            IList <TotalCurrencyViewModel> totalCurrency = new List <TotalCurrencyViewModel>();

            ODataObject <CurrencyViewModel> odataObj = JsonConvert.DeserializeObject <ODataObject <CurrencyViewModel> >(await res.Content.ReadAsStringAsync());

            foreach (var item in odataObj.Value)
            {
                res = await ApiClient.GetAsync(GetUri(string.Format("TotalCurrency(userId={0},currencyId={1})", Convert.ToInt32(HttpContext.Session.GetInt32("IdUser")), item.Id)));

                totalCurrency.Add(new TotalCurrencyViewModel()
                {
                    Describe = item.Describe,
                    Value    = (double)((dynamic)JObject.Parse(await res.Content.ReadAsStringAsync())).value
                });
            }

            return(Json(new
            {
                data = totalCurrency
            }));
        }
Exemplo n.º 6
0
        public static object GetSharing(Content content)
        {
            var gc = EnsureContent(content);

            return(gc.Sharing.Items.Select(sd => ODataObject.Create(SafeSharingData.Create(sd))));
        }
 public static void ComposeUri(this ODataObject oDataObject)
 {
     oDataObject.ComposeUri(oDataObject.Id);
 }