In today’s competitive marketplace,no one has time to wait months or years to implement a solution to help the sales team. That’s the beauty of the Salesforce model—because it’s on-demand, Salesforce Content takes a fraction of the implementation time that traditional software requires
I have created a application which can be used to open and save into salesforce content. I have used Enterprise.wsdl in .Net application. Below is the class which is used to login into salesforce account and have the methods related to salesforce content.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using SalesforceContent.Enterprise; using System.IO; namespace SalesforceContent { public class Content { public Content() { } public static string username { get; set; } public static string password { get; set; } public static SforceService binding { get { SforceService binding = new SforceService(); binding = new SforceService(); LoginResult lr = binding.login(username, password); binding.SessionHeaderValue = new SessionHeader(); binding.SessionHeaderValue.sessionId = lr.sessionId; binding.Url = lr.serverUrl; binding.Url = lr.serverUrl; return binding; } } public static sObject [] GetAvailableWorkspaces() { QueryResult query = binding.query("select Id, Name from" + " ContentWorkspace"); sObject[] records = query.records ; return records; } public static void SaveContent(String workspaceId,String path) { // Create a content version object ContentVersion contentVersion = new ContentVersion(); // Set the mandatory field pathOnClient contentVersion.PathOnClient = path; FileStream fs = new FileStream(path, FileMode.Open,FileAccess.Read); // Create a byte array of file stream length byte[] data = new byte[fs.Length]; //Read block of bytes from stream into the byte array fs.Read(data,0,System.Convert.ToInt32(fs.Length)); //Close the File Stream fs.Close(); // Set the binary file data contentVersion.VersionData = data; // We can set the title to something other than the // filename contentVersion.Title = "My Content File"; // When publishing into a public workspace, the current // user must have publish permissions contentVersion.FirstPublishLocationId = workspaceId; // As we're publishing into a workspace we can set // additional meta-data contentVersion.TagCsv = "Test"; // You can add multiple versions if required by adding // them to the array sObject[] array = new sObject[] { contentVersion }; SaveResult[] saveResultArray = binding.create(array); foreach (SaveResult sr in saveResultArray) { if (sr.success) { String versionId = sr.id; // success created version in content. } else { //Failed to create entity foreach (Error error in sr.errors) { // get error messages by error.getMessage() } } } } public static sObject[] OpenFromContent(String workspaceId) { QueryResult query = binding.query("select Id, Title, " + "ContentSize, FileType, VersionData, " + "PathOnClient from ContentVersion v where " + "v.FirstPublishLocationId = '" + workspaceId + "'"); sObject[] records = query.records; return records; } } }
No comments:
Post a Comment