博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MSCRM4 添加黑名单代码

Posted on 2012-10-25 20:38  Hamilton Tan  阅读(333)  评论(0编辑  收藏  举报

getcontactid.js 代码:

//window.onload = getGuid;
function getGuid() {
var selectValues;
var sGuids = "";
if (window.dialogArguments) {
selectValues = new Array(window.dialogArguments.length - 1);
} else {
alert("选择记录");
window.close();
}
selectValues = window.dialogArguments;
if (selectValues != null && selectValues != "undefined") {
for (i = 0; i < selectValues.length; i++) {
sGuids += selectValues[i] + ":";
}
document.getElementById("HiddenFieldGuid").value = sGuids;
}
else {
alert("选择记录");
window.close();
}
}
function closewin() {
this.window.close();
}

addBlacklistTip.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="addBlacklistTip.aspx.cs" Inherits="Frensworkz.CRM.XCMGCC.Web.ISV.tanhua.addBlacklistTip" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base target="_self"/>
<title>添加黑名单历史记录提示</title>
<link href="/ISV/tanhua/style/addblacklist.css" rel="stylesheet" type="text/css" />
<script src="/ISV/tanhua/js/getcontactid.js" type="text/javascript" language="javascript"></script>
</head>
<body onload="getGuid();">
<form id="form1" runat="server">
<div class="ContainerTip">
<div class="topTip">
<div class="ms-crm-dialog-header-title">Confirm Add Blacklist</div>
<div class="ms-crm-Dialog-Header-Desc">You have selected 1 Contact for Add Bad.</div>
</div>
<div class="ms-crm-dialog-main">
<div id="divWarning">The system will add this record. This action cannot be undone. To continue, click OK.</div>
<div class="hide">
<asp:HiddenField ID="HiddenFieldGuid" runat="server"/>
</div>
</div>

<div class="ms-crm-dialog-footer">
<div class="btnyesno">
<asp:Button ID="btnYes" runat="server" Text="YES" onclick="btnYes_Click" CssClass="buttonok"/>
<asp:Button ID="btnNo" runat="server" Text="NO" OnClientClick="closewin();" CssClass="buttonok"/>
</div>
</div>

</div>
</form>
</body>
</html>

C#代码:

using System;
using System.Collections.Generic;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Microsoft.Crm.Sdk;
using Microsoft.Crm.Sdk.Utility;
using Microsoft.Crm.Sdk.Query;
using Microsoft.Crm.Sdk.Metadata;
using Microsoft.Crm.SdkTypeProxy;
using Frensworkz.CRM.XCMGCC.Web.Common;

namespace Frensworkz.CRM.XCMGCC.Web.ISV.tanhua
{
public partial class addBlacklistTip : BasePage
{


protected void Page_Load(object sender, EventArgs e)
{

}

//是
protected void btnYes_Click(object sender, EventArgs e)
{
try
{
string hiddenValue = string.Empty;
if (HiddenFieldGuid.Value.ToString() == string.Empty) return;
hiddenValue = HiddenFieldGuid.Value.ToString();
string[] sarray = hiddenValue.Split(':');

foreach (var i in sarray)
{
if (i == string.Empty) continue;
Guid ccId = Guid.Empty;
ccId = new Guid(i.ToString());

//获取service
var service = OrgService;


//查询联系人的状态描述,main phone,telephone1
DynamicEntity dy = Query.instance.GetEntityrAttr(service, "contact", ccId, new string[] { "statuscode", "mobilephone", "telephone1" });

string telephone = string.Empty;
if (dy.Properties.Contains("mobilephone"))
{
telephone = dy.Properties["mobilephone"].ToString();
}
else if (dy.Properties.Contains("telephone1"))
{
telephone = dy.Properties["telephone1"].ToString();
}


if (telephone == string.Empty)
{
//修改联系人的状态描述的值
Moniker moniker2 = new Moniker();
moniker2.Id = ccId;
moniker2.Name = EntityName.contact.ToString();
Query.instance.SetStateDynamicEntity(service, moniker2, ContactState.Inactive.ToString(), 2);
}

if (telephone != string.Empty)
{
BusinessEntityCollection blacklists = Query.instance.QueryByAttributee(service, "new_blacklist", new string[] { "new_phone" }, new string[] { telephone }, null, null, new string[] { "new_blacklistid" });
//该联系人已经添加到黑名单,直接禁用
if (blacklists.BusinessEntities.Count > 0)
{
//修改联系人的状态描述的值
Moniker moniker = new Moniker();
moniker.Id = ccId;
moniker.Name = EntityName.contact.ToString();
Query.instance.SetStateDynamicEntity(service, moniker, ContactState.Inactive.ToString(), 2);
}

//该联系人没有添加到黑名单,则添加到黑名单历史记录
if (blacklists.BusinessEntities.Count <= 0)
{
//修改联系人的状态描述的值
Moniker moniker1 = new Moniker();
moniker1.Id = ccId;
moniker1.Name = EntityName.contact.ToString();
Query.instance.SetStateDynamicEntity(service, moniker1, ContactState.Inactive.ToString(), 2);

//把联系人记录添加到黑名单中
DynamicEntity blacklist = new DynamicEntity("new_blacklist");

blacklist.Properties["new_phone"] = telephone;

Guid bid = Query.instance.CreateDynamicEntity(service, blacklist);//创建记录到黑名单
}
}
ExecScritp("window.close();");

}

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}

}
}
}

css:

body{background-color:#E3EFFF;}
form{ margin:0; padding:0;}
.ContainerTip{ width:590px;height:211px; margin:0 auto;}
.topTip{background-color:#6693CF;color:#ffffff;border-bottom:1px solid #6693CF;height:51px;vertical-align:top;padding:5px;}
.ms-crm-dialog-header-title{font-weight:bold;font-size:13px;padding-left:5px;}
.ms-crm-Dialog-Header-Desc{padding-top:4px;padding-left:5px;}
.ms-crm-dialog-main{height:110px;vertical-align:top;padding:5px;overflow:auto;border-bottom:solid 1px #A7CDF0;}
.ms-crm-dialog-footer{height:30px;padding:10px 0 10px 10px;background-color:#E3EFFF;border-top:1px solid #ffffff; line-height:25px;}
.btnyesno{ width:184px; height:25px;float:right;}
.hide{ padding:0; margin:0;}
.buttonok{font-family: Tahoma;font-size: 11px;line-height: 18px;height: 20px;width: 84px;text-align: center;cursor: pointer;border: 1px #3366CC solid;background-color: #CEE7FF;background-image: url('images/btn_rest.gif');background-repeat: repeat-x;border: 1px #3366CC solid;overflow: visible; padding:0 5px 0 5px;}