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);
}
}
}
}