Dev2.Models.ExplorerItemModel.Edit C# (CSharp) Method

Edit() private method

Edits this instance.
private Edit ( ) : void
return void
        private void Edit()
        {
            var environmentModel = EnvironmentRepository.Instance.FindSingle(model => model.ID == EnvironmentId);
            if(environmentModel == null)
            {
                return;
            }

            if(ResourceType == ResourceType.Version)
            {
                var resourceDefinition = _studioResourceRepository.GetVersion(VersionInfo, EnvironmentId);
                if(resourceDefinition != null)
                {
                    IResourceModel resourceModel = environmentModel.ResourceRepository.FindSingle(model => model.ID == Parent.ResourceId);
                    try
                    {
                        var xamlElement = XElement.Parse(resourceDefinition.ToString());
                        var dataList = xamlElement.Element("DataList");
                        var dataListString = "";
                        if(dataList != null)
                        {
                            dataListString = dataList.ToString();
                        }
                        var action = xamlElement.Element("Action");
                        var xamlString = "";
                        if (action != null)
                        {
                            var xaml = action.Element("XamlDefinition");
                            if(xaml != null)
                            {
                                xamlString = xaml.Value;
                            }
                        }
                        var resourceVersion = new ResourceModel(environmentModel, EventPublishers.Aggregator)
                        {
                            ResourceType = resourceModel.ResourceType,
                            ResourceName = string.Format("{0} (v.{1})", Parent.DisplayName, VersionInfo.VersionNumber),
                            WorkflowXaml = new StringBuilder(xamlString),
                            UserPermissions = Permissions.View,
                            DataList = dataListString,
                            IsVersionResource = true,
                            ID = ResourceId
                        };
                        WorkflowDesignerUtils.EditResource(resourceVersion, EventPublishers.Aggregator);
                    }
                    catch(Exception e)
                    {
                        Dev2Logger.Log.Error(e.Message,e);
                    }
                }
            }
            else
            {
                IResourceModel resourceModel = environmentModel.ResourceRepository.FindSingle(model => model.ID == ResourceId);
                if(environmentModel.ResourceRepository != null)
                {
                    if(resourceModel != null)
                    {
                        WorkflowDesignerUtils.EditResource(resourceModel, EventPublishers.Aggregator);
                    }
                    else
                    {
                        Parent.Children.Remove(this);
                    }
                }
            }
        }