Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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;
            }
        }