public async Task <ActionResult> EditAsync([Bind(Include = "Id,Name,Url,Duration,FirstImpression,ImpressionInterval")] AdsItem item) { if (ModelState.IsValid) { var itemProperty = JsonConvert.SerializeObject(item); await DocumentDBGraph <AdsItem> .UpdateVertexAsync(CollectionLabel, item.Id, itemProperty); return(RedirectToAction("Index")); } return(View(item)); }
public static async Task <T> GetItemAsync(string id, string vertexLabel = null) { T result = null; string gremlinQuery = string.Format("g.V()", utf8); //g.V().hasLabel('person') if (!string.IsNullOrEmpty(vertexLabel)) { gremlinQuery = string.Format($"g.V().hasLabel(\'{vertexLabel}\')", utf8); } gremlinQuery += string.Format($".has('id', \'{id}\')", utf8); Console.WriteLine($"Running {gremlinQuery}"); // The CreateGremlinQuery method extensions allow you to execute Gremlin queries and iterate // results asychronously IDocumentQuery <Vertex> vertexquery = client.CreateGremlinQuery <Vertex>(graph, gremlinQuery); while (vertexquery.HasMoreResults) { foreach (Vertex verquery in await vertexquery.ExecuteNextAsync <Vertex>()) { var newitem = new AdsItem(); newitem.Id = (string)verquery.Id; newitem.Name = (string)verquery.GetVertexProperties("name").First().Value;; newitem.Url = (string)verquery.GetVertexProperties("url").First().Value; var val = verquery.GetVertexProperties("duration").First().Value; Console.WriteLine($"\t {val}"); newitem.Duration = int.Parse(verquery.GetVertexProperties("duration").First().Value.ToString()); newitem.FirstImpression = int.Parse(verquery.GetVertexProperties("first impression").First().Value.ToString()); newitem.ImpressionInterval = int.Parse(verquery.GetVertexProperties("impression interval").First().Value.ToString()); var itemProperty = JsonConvert.SerializeObject(newitem); var item = JsonConvert.DeserializeObject <T>(itemProperty); result = item; //result.Add(verquery); //result.Add(verquery); //result.AddRange(item); Console.WriteLine($"\t {itemProperty}"); } } Console.WriteLine(); return(await Task.FromResult <T>(result)); }
public async Task <ActionResult> CreateAsync([Bind(Include = "Id,Name,Url,Duration,FirstImpression,ImpressionInterval")] AdsItem item) { if (ModelState.IsValid) { if (string.IsNullOrEmpty(item.Id)) { long vCount = await DocumentDBGraph <AdsItem> .GetVertexCountAsync(); item.Id = (vCount + 1).ToString(); } var itemProperty = JsonConvert.SerializeObject(item); await DocumentDBGraph <AdsItem> .InsertVertexAsync(CollectionLabel, itemProperty); return(RedirectToAction("Index")); } return(View(item)); }
void vm_OnPlayAds(object sender, AdsItem e) { AdsPlayer.Visibility = e.IsImage ? Visibility.Collapsed : Visibility.Visible; AdsImage.Visibility = e.IsImage ? Visibility.Visible : Visibility.Collapsed; Uri uri; if (timer != null) { timer.Dispose(); } try { uri = new Uri(e.Url); if (e.IsImage) { AdsImage.Source = new BitmapImage(uri); timer = new Timer(o => Dispatcher.Invoke(() => AdsPlayer_MediaEnded(null, null)), null, TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(0)); } else { AdsPlayer.Source = uri; } } catch { AdsPlayer_MediaEnded(null, null); return; } }