using System;
using System.IO;
using System.ServiceModel.Description;
using Microsoft.Rest;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Tooling.Connector;
namespace ConsoleApp2
{
internal class Program
{
static void Main(string[] args)
{
string connectionString = @"AuthType=OAuth;
Username=*****************;
Password=*****************;
Url=https://*****************.crm8.dynamics.com;
AppId=*****************;
LoginPrompt=Auto";
Console.WriteLine("Connecting to Dynamics 365..");
using (CrmServiceClient serviceClient = new CrmServiceClient(connectionString))
{
if (!serviceClient.IsReady)
{
Console.WriteLine("Failed to connect: " + serviceClient.LastCrmError);
return;
}
IOrganizationService service = (IOrganizationService)serviceClient.OrganizationWebProxyClient ?? (IOrganizationService)serviceClient.OrganizationServiceProxy;
Console.WriteLine("connected to Dynamics Crm ");
QueryExpression query = new QueryExpression("pluginassembly")
{
ColumnSet = new ColumnSet("name", "content")
};
EntityCollection results = service.RetrieveMultiple(query);
foreach (Entity plugin in results.Entities)
{
string name = plugin.GetAttributeValue<string>("name");
string content = plugin.GetAttributeValue<string>("content");
if (string.IsNullOrEmpty(content))
{
Console.WriteLine($"Assembly '{name}' has no content.");
continue;
}
byte[] dllBytes = Convert.FromBase64String(content);
string fileName = $"{name}.dll";
File.WriteAllBytes(fileName, dllBytes);
Console.WriteLine($"Downloaded: {fileName}");
}
Console.WriteLine("All assemblies downloaded successfully.");
}
}
}
}
No comments:
Post a Comment