/// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource(string resourceId, string apiVersion)
        {
            var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource();

            var applicationDefinitionObject = new ApplicationDefinition
            {
                Name       = this.Name,
                Location   = resource.Location,
                Properties = new ApplicationDefinitionProperties
                {
                    LockLevel   = (ApplicationLockLevel)Enum.Parse(typeof(ApplicationLockLevel), resource.Properties["lockLevel"].ToString(), true),
                    Description = this.Description ?? (resource.Properties["description"] != null
                        ? resource.Properties["description"].ToString()
                        : null),
                    DisplayName = this.DisplayName ?? (resource.Properties["displayName"] != null
                        ? resource.Properties["displayName"].ToString()
                        : null),
                    PackageFileUri = this.PackageFileUri ?? null,
                    Authorizations = this.Authorization != null
                        ? JArray.Parse(this.GetAuthorizationObject(this.Authorization).ToString()).ToJson().FromJson <ApplicationProviderAuthorization[]>()
                        : JArray.Parse(resource.Properties["authorizations"].ToString()).ToJson().FromJson <ApplicationProviderAuthorization[]>()
                },
                Tags = TagsHelper.GetTagsDictionary(this.Tag) ?? resource.Tags
            };

            return(applicationDefinitionObject.ToJToken());
        }
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource()
        {
            var applicationDefinitionObject = new ApplicationDefinition
            {
                Name       = this.Name,
                Location   = this.Location,
                Properties = new ApplicationDefinitionProperties
                {
                    LockLevel      = this.LockLevel,
                    Description    = this.Description,
                    DisplayName    = this.DisplayName,
                    PackageFileUri = this.PackageFileUri ?? null,
                    Authorizations = JArray.Parse(this.GetAuthorizationObject(this.Authorization).ToString()).ToJson().FromJson <ApplicationProviderAuthorization[]>()
                },
                Tags = TagsHelper.GetTagsDictionary(this.Tag)
            };

            if (!string.IsNullOrEmpty(this.MainTemplate) && !string.IsNullOrEmpty(this.CreateUiDefinition))
            {
                applicationDefinitionObject.Properties.MainTemplate       = JObject.Parse(this.GetObjectFromParameter(this.MainTemplate).ToString());
                applicationDefinitionObject.Properties.CreateUiDefinition = JObject.Parse(this.GetObjectFromParameter(this.CreateUiDefinition).ToString());
            }

            return(applicationDefinitionObject.ToJToken());
        }