Dev2.Runtime.ServiceModel.PluginSources.Save C# (CSharp) Method

Save() public method

public Save ( string args, System.Guid workspaceId, System.Guid dataListId ) : string
args string
workspaceId System.Guid
dataListId System.Guid
return string
        public string Save(string args, Guid workspaceId, Guid dataListId)
        {
            var pluginSourceDetails = JsonConvert.DeserializeObject<PluginSource>(args);

            if(string.IsNullOrEmpty(pluginSourceDetails.AssemblyName))
            {
                //resolve AssemblyName from AssemblyLocation
                if(!string.IsNullOrEmpty(pluginSourceDetails.AssemblyLocation) && !pluginSourceDetails.AssemblyLocation.StartsWith(GlobalConstants.GACPrefix))
                {
                    //assembly location refers to a file, read the assembly name out of the dll file
                    pluginSourceDetails.AssemblyLocation = pluginSourceDetails.AssemblyLocation.EndsWith("\\") ?
                        pluginSourceDetails.AssemblyLocation.Remove(pluginSourceDetails.AssemblyLocation.Length - 1) : //remove trailing slashes if they exist
                        pluginSourceDetails.AssemblyLocation; //else do nothing
                    try
                    {
                        pluginSourceDetails.AssemblyName = AssemblyName.GetAssemblyName(pluginSourceDetails.AssemblyLocation).Name;
                    }
                    catch(Exception ex)
                    {
                        if(!string.IsNullOrEmpty(pluginSourceDetails.AssemblyLocation))
                        {
                            pluginSourceDetails.AssemblyName = pluginSourceDetails.AssemblyLocation.Substring(pluginSourceDetails.AssemblyLocation.LastIndexOf("\\", StringComparison.Ordinal) + 1, pluginSourceDetails.AssemblyLocation.IndexOf(".dll", StringComparison.Ordinal) - pluginSourceDetails.AssemblyLocation.LastIndexOf("\\", StringComparison.Ordinal) - 1);
                        }
                        Dev2Logger.Log.Error(ex);
                    }
                }
                else
                {
                    //assembly location refers to the GAC
                    string getName = null;
                    if(!string.IsNullOrEmpty(pluginSourceDetails.AssemblyLocation))
                    {
                        getName = pluginSourceDetails.AssemblyLocation.Substring(pluginSourceDetails.AssemblyLocation.IndexOf(':') + 1);
                    }
                    pluginSourceDetails.AssemblyName = getName;
                }
            }

            ResourceCatalog.Instance.SaveResource(workspaceId, pluginSourceDetails);
            if(workspaceId != GlobalConstants.ServerWorkspaceID)
            {
                ResourceCatalog.Instance.SaveResource(GlobalConstants.ServerWorkspaceID, pluginSourceDetails);
            }

            return pluginSourceDetails.ToString();
        }