private void Validate()
        {
            try
            {
                var jsonObject = JObject.Parse(InputJson);

                if (jsonObject.HasValues)
                {
                    var envelopeViewModel = new EnvelopeViewModel();
                    envelopeViewModel.Json = InputJson;

                    if (envelopeViewModel.Envelope != null)
                    {
                        AddStatusMessage(string.Format("The input is a valid {0} JSON Envelope", envelopeViewModel.Envelope.GetType().Name));
                    }
                    else
                    {
                        AddStatusMessage("The input is a valid JSON document, but is not an Envelope", true);
                    }

                    var variables = InputJson.GetVariables();

                    foreach (var variable in variables)
                    {
                        if (!this.Variables.Any(v => v.Name.Equals(variable, StringComparison.OrdinalIgnoreCase)))
                        {
                            var variableViewModel = new VariableViewModel()
                            {
                                Name = variable
                            };

                            this.Variables.Add(variableViewModel);
                        }
                    }
                }
                else
                {
                    AddStatusMessage("The input is a invalid or empty JSON document", true);
                }
            }
            catch
            {
                AddStatusMessage("The input is a invalid JSON document", true);
            }
        }