• Case Helper


    using System;
    using Microsoft.Xrm.Sdk;
    using Microsoft.Crm.Sdk.Messages;
    using Microsoft.Xrm.Sdk.Query;
    
    /// <summary>
    /// 案例
    /// </summary>
    public class IncidentHelper
    {
        public static readonly string entityName = "incident";
        public Guid incidentId = Guid.Empty;
        public IOrganizationService service;
    
        /// <summary>
        /// 创建案例
        /// </summary>
        public void Create()
        {
            Entity en = new Entity() { LogicalName = entityName };
            en["name"] = "案例测试";
            incidentId = service.Create(en);
        }
    
        /// <summary>
        /// 计算在案例上花费的总时间
        /// </summary>
        public void CalculateTotalTimeIncident()
        {
            CalculateTotalTimeIncidentRequest request = new CalculateTotalTimeIncidentRequest();
            request.IncidentId = incidentId;
            CalculateTotalTimeIncidentResponse response = (CalculateTotalTimeIncidentResponse)service.Execute(request);
            long time = response.TotalTime;
        }
    
        /// <summary>
        /// 将案例的状态设置为“已结束”
        /// </summary>
        /// <param name="status">结束的状态</param>
        public void CloseIncident(int status)
        {
            CloseIncidentRequest request = new CloseIncidentRequest();
            request.IncidentResolution = new Entity() { LogicalName = entityName, Id = incidentId };
            request.Status = new OptionSetValue(status);
            CloseIncidentResponse response = (CloseIncidentResponse)service.Execute(request);
        }
    
        /// <summary>
        /// 验证是否可随时结束案例
        /// </summary>
        /// <param name="state">Active,Resolved,Canceled</param>
        /// <param name="status">InProgress:1,OnHold:2,WaitingforDetails:3,Researching:4</param>
        /// <param name="status">ProblemSolved:5,InformationProvided:1000,Canceled:6</param>
        public void IsValidStateTransition(string state, int status)
        {
            IsValidStateTransitionRequest request = new IsValidStateTransitionRequest();
            request.Entity = new EntityReference() { LogicalName = entityName, Id = incidentId };
            request.NewState = state;
            request.NewStatus = status;
            IsValidStateTransitionResponse response = (IsValidStateTransitionResponse)service.Execute(request);
            bool isValid = response.IsValid;
        }
    
        /// <summary>
        /// 删除指定安全主体(用户或团队)对案例的所有访问权限
        /// </summary>
        /// <param name="revokee">用户或团队引用</param>
        public void RevokeAccess(EntityReference revokee)
        {
            RevokeAccessRequest request = new RevokeAccessRequest();
            request.Target = new EntityReference() { LogicalName = entityName, Id = incidentId };
            request.Revokee = revokee;
            RevokeAccessResponse response = (RevokeAccessResponse)service.Execute(request);
        }
    
        /// <summary>         /// 
        /// 删除案例         /// 
        /// </summary>         
        public void Delete() { service.Delete(entityName, incidentId); }
    }
  • 相关阅读:
    在.net 4.0程序中使用TPL Dataflow
    打算把我的视频工具整合一下
    Visual Studio 2012 Updater 2 发布了
    Entity Framework学习(二)基本操作
    Entity Framework学习(一)CodeFirst入门
    VS2012中对C++注释高亮的改进
    【翻译】(12)NDK GDB
    (3)NDK Development
    【翻译】(10)Import Module
    【翻译】(7)CPU Arch ABIs
  • 原文地址:https://www.cnblogs.com/bennylam/p/9920678.html
Copyright © 2020-2023  润新知