more365.AzureAD 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package more365.AzureAD --version 1.0.0
NuGet\Install-Package more365.AzureAD -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="more365.AzureAD" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add more365.AzureAD --version 1.0.0
#r "nuget: more365.AzureAD, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install more365.AzureAD as a Cake Addin
#addin nuget:?package=more365.AzureAD&version=1.0.0

// Install more365.AzureAD as a Cake Tool
#tool nuget:?package=more365.AzureAD&version=1.0.0

more-365

Create more applications using the Microsoft 365 platform

more-365 enables communicating with Microsoft 365 services from a server-side application (aspnetcore / Azure Functions)

For Example: Azure AD Authentication using Certificates from Key Vault, Dynamics 365 Queries + Batches, SharePoint File Upload / Download, Graph API convert to PDF + send email

License: MIT

Nuget.org

The package name is more-365, you can find it here:

...

C# Example

public static async Task<Entity> Execute(DynamicsClient dynamics, Guid entityId)
{
    var query = dynamics.CreateQuery<Entity>()
                        .Select(e => new
                        {
                            e.CreatedBy,
                            e.CreatedOn
                        });
                        .Where(e => e.EntityId = entityId);

    var fetchXml = query.ToFetchXml();

    try
    {
        var queryResult = await dynamics.ExecuteQuery(query);
        return queryResult.FirstOrDefault();
    }
    catch (DynamicsClientException ex)
    {
        throw new Exception(ex.Details);
    }
}

Interfaces

public interface IAuthenticationClient
{
    Task<AuthenticationToken> GetAuthenticationTokenAsync(string resource);

    Task<AuthenticationToken> GetAuthenticationTokenAsync(Uri resource);
}

public interface IAuthenticatedHttpClientFactory
{
    HttpClient CreateAuthenticatedHttpClient(string resource, Guid? uniqueId = null);
}

public interface IMore365ClientFactory
{
    IDynamicsClient CreateDynamicsClient(Guid? impersonateAzureADObjectId = null);

    IGraphClient CreateGraphClient();

    ISharePointClient CreateSharePointClient();
}

Dynamics Interfaces

public interface IDynamicsClient
{
    Task<IEnumerable<T>> ExecuteBatch<T>(params BatchRequest[] requests);

    Task<IEnumerable<T>> ExecuteQuery<T>(string url);

    Task<T> ExecuteSingle<T>(string url);

    Task<T> Get<T>(string entitySetName, Guid id, params string[] columns);

    Task<Guid> Save(string entitySetName, object data, Guid? id = null);
}

public interface IXrmQueryExpression
{
    IXrmQueryExpression Select(params string[] attributeNames);

    IXrmQueryExpression Where(string attributeName, XrmQueryOperator expressionOperator, params object[] values);

    IXrmQueryExpression WhereAny(Action<XrmQueryExpressionWhere> or);

    IXrmQueryExpression OrderBy(string attributeName, bool isDescendingOrder = false);

    IXrmQueryExpression Join(string entityName, string attributeToName, string attributeFromName = "", bool isOuterJoin = false, string joinAlias = "");
}

SharePoint & Graph Interfaces

public interface ISharePointClient
{
    Task<SharePointFolder> CreateFolder(string documentLibraryName, string folderPath);

    Task<byte[]> DownloadFile(string filePath);

    Task<string> GetFilePreviewUrl(string filePath);

    Task<SharePointFolder> GetFolder(string documentLibraryName, string folderPath = "");

    Task<SharePointFile> UploadFile(string fileName, byte[] file, string documentLibraryName, string folderPath = "");
}

public interface IGraphClient
{
    Task<byte[]> DownloadFileAsPdf(string filePath);

    Task SendOutlookEmail(string subject, string content, string fromSender, params string[] toRecipients);
}

Configuration

public class More365Configuration
{
    public Uri DynamicsUrl { get; set; }

    public Uri SharePointUrl { get; set; }

    public Guid AzureADTenantId { get; set; }

    public Guid AzureADApplicationId { get; set; }

    public string AzureADAppCertificateKey { get; set; }

    public string AzureADAppClientSecretKey { get; set; }
}

public enum XrmQueryOperator
{
    Contains,
    NotContains,
    StartsWith,
    EndsWith,
    Equals,
    NotEquals,
    GreaterThan,
    GreaterThanOrEqual,
    LessThan,
    LessThanOrEqual,
    In,
    NotIn,
    OnOrBefore,
    OnOrAfter,
    Null,
    NotNull,
    IsCurrentUser,
    IsCurrentTeam,
    IsNotCurrentUser,
    IsNotCurrentTeam
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.1 is compatible.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on more365.AzureAD:

Package Downloads
more365

more365 enables communicating with Microsoft 365 services from a server-side application (aspnetcore / Azure Functions) For Example: Azure AD Authentication using Certificates from Key Vault, Dataverse Queries and Web API Batches, SharePoint File Upload / Download, Graph API convert to PDF and send email on behalf of Office 365 user

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.0.0 574 7/17/2021
1.0.0 989 1/28/2019