Fax Helper

using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;

/// <summary>
/// 传真
/// </summary>
public class FaxHelper
{
    public static readonly string entityName = "fax";
    public Guid faxId = Guid.Empty;
    public IOrganizationService service;

    /// <summary>
    /// 创建传真
    /// </summary>
    public void Create()
    {
        WhoAmIRequest userRequest = new WhoAmIRequest();
        WhoAmIResponse userResponse = (WhoAmIResponse)service.Execute(userRequest);
        Guid _userId = userResponse.UserId;

        Entity activityEn = new Entity() { LogicalName = "activityparty" };
        activityEn["partyId"] = new EntityReference() { LogicalName = "systemuser", Id = _userId };

        Entity en = new Entity() { LogicalName = entityName };
        en["subject"] = "传值测试";
        en["from"] = new Entity[] { activityEn };
        en["to"] = new Entity[] { activityEn };
        faxId = service.Create(en);
    }

    /// <summary>
    /// 将传真分派给其他用户或团队
    /// </summary>
    /// <param name="assignee">用户或团队引用</param>
    public void Assign(EntityReference assignee)
    {
        AssignRequest request = new AssignRequest();
        request.Target = new EntityReference() { LogicalName = entityName, Id = faxId };
        request.Assignee = assignee;
        AssignResponse response = (AssignResponse)service.Execute(request);
    }

    /// <summary>
    /// 发送传真
    /// </summary>
    public void SendFax()
    {
        SendFaxRequest request = new SendFaxRequest();
        request.FaxId = faxId;
        request.IssueSend = true;
        SendFaxResponse response = (SendFaxResponse)service.Execute(request);
    }

    /// <summary>
    /// 删除指定的安全主体(用户或团队)对传真的所有访问权限
    /// </summary>
    /// <param name="revokee">用户或团队引用</param>
    public void RevokeAccess(EntityReference revokee)
    {
        RevokeAccessRequest request = new RevokeAccessRequest();
        request.Target = new EntityReference() { LogicalName = entityName, Id = faxId };
        request.Revokee = revokee;
        RevokeAccessResponse response = (RevokeAccessResponse)service.Execute(request);
    }

    /// <summary>         /// 
    /// 删除传真         /// 
    /// </summary>         
    public void Delete() { service.Delete(entityName, faxId); }
}

 

posted @ 2018-11-07 10:50  大漠银狐  阅读(166)  评论(0编辑  收藏  举报