Exemple #1
0
 public VideoSizeHelper(ViewModel.INode nodeContext)
 {
     ViewModel.IMetadata videoSizeMetadata = nodeContext.Metadata["Video.Size"];
     if (videoSizeMetadata != null)
     {
         Size = ParseVideoSize(videoSizeMetadata.Value);
     }
 }
Exemple #2
0
        private void LoadVideoDetails()
        {
            ViewModel.IMetadata videoSourceMetadata = Context.Metadata["Video.Source"];
            if (videoSourceMetadata == null)
            {
                HasVideo = false;
            }
            else
            {
                HasVideo    = true;
                VideoSource = videoSourceMetadata.Value;
            }

            if (HasVideo)
            {
                ViewModel.IMetadata startPositionMetadata = Context.Metadata["Video.StartPosition"];
                if (startPositionMetadata != null && _startPosition == null)
                {
                    if (!string.IsNullOrEmpty(startPositionMetadata.Value))
                    {
                        TimeSpan parsedStartPosition;

                        if (TimeSpan.TryParse(startPositionMetadata.Value, out parsedStartPosition))
                        {
                            StartPosition = parsedStartPosition;
                        }
                        else
                        {
                            HasVideo      = false;
                            StartPosition = new TimeSpan(0);
                        }
                    }
                }

                ViewModel.IMetadata stopPositionMetadata = Context.Metadata["Video.EndPosition"];
                if (stopPositionMetadata != null && _stopPosition == null)
                {
                    if (!string.IsNullOrEmpty(stopPositionMetadata.Value))
                    {
                        TimeSpan parsedStopPosition;

                        if (TimeSpan.TryParse(stopPositionMetadata.Value, out parsedStopPosition))
                        {
                            StopPosition = parsedStopPosition;
                        }
                        else
                        {
                            StopPosition = null;
                        }
                    }
                }
            }
        }
Exemple #3
0
        private void HandleGetSourceAndPositionCallback(Event callback)
        {
            if (callback.EventArgs != null && callback.ContainsEventArg("CallbackId") &&
                callback.ContainsEventArg("Position") && callback.ContainsEventArg("Source") &&
                callback.ContainsEventArg("NodeId"))
            {
                string callbackId = callback.GetEventArgValue("CallbackId");
                string source     = callback.GetEventArgValue("Source");
                source = HttpUtility.UrlDecode(source);
                string viewModelIdAsString = callback.GetEventArgValue("NodeId");

                if (!string.IsNullOrEmpty(viewModelIdAsString) && !string.IsNullOrEmpty(source))
                {
                    var chain              = new TransactionChain();
                    var viewModelId        = new Guid(viewModelIdAsString);
                    var viewModelVideoInfo = ViewModels[viewModelId];

                    switch (callbackId)
                    {
                    case "StartPosition":
                    {
                        TimeSpan startPosition = TimeSpan.Parse(callback.GetEventArgValue("Position"));
                        // Just add a temporary end position so that the entry doesn't end up in a bad state.
                        ViewModel.IMetadata startPositionMetadata = viewModelVideoInfo.Context.Metadata["Video.StartPosition"];

                        if (startPositionMetadata != null)
                        {
                            startPositionMetadata.SetValue(startPosition.ToString(), ref chain);
                            ((SuperGraph.ViewModel.Node)viewModelVideoInfo.Context).NodeProperties.UIMetadata["Video.StartPosition"] = startPosition.ToString();
                        }
                        else
                        {
                            viewModelVideoInfo.Context.Metadata.Add("Video.StartPosition", startPosition.ToString(), ref chain);
                            ((SuperGraph.ViewModel.Node)viewModelVideoInfo.Context).NodeProperties.UIMetadata.Add("Video.StartPosition", startPosition.ToString());
                        }

                        ViewModel.IMetadata endPositionMetadata = viewModelVideoInfo.Context.Metadata["Video.EndPosition"];

                        if (endPositionMetadata != null)
                        {
                            endPositionMetadata.SetValue("", ref chain);
                        }
                        else
                        {
                            viewModelVideoInfo.Context.Metadata.Add("Video.EndPosition", "", ref chain);
                            ((SuperGraph.ViewModel.Node)viewModelVideoInfo.Context).NodeProperties.UIMetadata.Add("Video.EndPosition", "");
                        }

                        viewModelVideoInfo.HasVideo      = true;
                        viewModelVideoInfo.StartPosition = startPosition;
                        viewModelVideoInfo.StopPosition  = null;
                        break;
                    }

                    case "EndPosition":
                    {
                        TimeSpan endPosition = TimeSpan.Parse(callback.GetEventArgValue("Position"));

                        ViewModel.IMetadata endPositionMetadata = viewModelVideoInfo.Context.Metadata["Video.EndPosition"];

                        if (endPositionMetadata != null)
                        {
                            endPositionMetadata.SetValue("", ref chain);
                            ((SuperGraph.ViewModel.Node)viewModelVideoInfo.Context).NodeProperties.UIMetadata["Video.EndPosition"] = endPosition.ToString();
                        }
                        else
                        {
                            viewModelVideoInfo.Context.Metadata.Add("Video.EndPosition", "", ref chain);
                            ((SuperGraph.ViewModel.Node)viewModelVideoInfo.Context).NodeProperties.UIMetadata.Add("Video.EndPosition", endPosition.ToString());
                        }

                        viewModelVideoInfo.Context.Metadata.Add(null, null, "Video.EndPosition", endPosition.ToString(), ref chain);
                        viewModelVideoInfo.StopPosition = endPosition;
                        viewModelVideoInfo.HasVideo     = true;
                        break;
                    }
                    }

                    ViewModel.IMetadata videoSourceMetadata = viewModelVideoInfo.Context.Metadata["Video.Source"];

                    if (videoSourceMetadata != null)
                    {
                        videoSourceMetadata.SetValue(source, ref chain);
                        ((SuperGraph.ViewModel.Node)viewModelVideoInfo.Context).NodeProperties.UIMetadata[
                            "Video.Source"] = source;
                    }
                    else
                    {
                        viewModelVideoInfo.Context.Metadata.Add(null, null, "Video.Source", source, ref chain);
                        ((SuperGraph.ViewModel.Node)viewModelVideoInfo.Context).NodeProperties.UIMetadata.Add("Video.Source", source);
                    }
                    viewModelVideoInfo.VideoSource = source;
                    viewModelVideoInfo.Context.Proxy.MapManager.ExecuteTransaction(chain);
                }
            }
        }