У меня есть сценарий в CRM, где у меня есть приложение MVC, которое подключается к CRM, и пользователь загружает файл excel с данными, эти данные проверяются на proc, прошедший проверку результаты (записи) затем создаются в CRM с использованием приложения MVC. После создания записей я отправляю электронное письмо зарегистрированному менеджеру пользователя, это электронное письмо должно содержать URL/ссылку на представление, в котором только что были созданы записи, что является обновлением моих активных поставщиков в моем экземпляре. Как сделать Я запрашиваю CRM, чтобы получить URL-адрес View для этого зарегистрированного пользователя непосредственно перед отправкой электронной почты. Пожалуйста, см. Мой код ниже о том, как далеко я получил, я немного застрял в этом шаге.CRM Dynamics Как получить текущий URL-адрес пользователя в коде C#
public ActionResult ImportDataToCRM(CRM_Embrace_IntegrationEntities1 db)
{
int sessionIdentifier = (int)Session["sessionID"];
var claimsRecords = db.GPClaimsReadyToImports.Where(x => x.CleanSupplierClaimSessionID == sessionIdentifier).ToList();
CrmConnection conn = new CrmConnection("CRM");
var service = new OrganizationService(conn);
OrganizationServiceProxy proxy;// = new OrganizationServiceProxy;
WhoAmIRequest whoReq = new WhoAmIRequest();
WhoAmIResponse whoResp = (WhoAmIResponse)service.Execute(whoReq);
Guid userid = whoResp.UserId;
proxy = service.InnerService as OrganizationServiceProxy;
proxy.CallerId = whoResp.UserId;
conn.CallerId = userid;
var cleanClaimsFromDB = claimsRecords;
foreach (var claim in cleanClaimsFromDB)
{
new_supplierclaimsupdate CRMSupplierClaimsData = new new_supplierclaimsupdate()
{
new_Action = claim.Action.Trim(),
new_InvoiceNumebr = claim.Line_Number.Trim(),
new_Warning = claim.Warning.Trim(),
new_TotalClaim = Convert.ToDecimal(claim.Total_Claim).ToString(),
new_Currency = claim.Currency.Trim(),
new_Supplier = claim.Claim_Reference.Trim(),
OwnerId = new EntityReference(SystemUser.EntityLogicalName, userid),
};
Guid _supplierClaimID = service.Create(CRMSupplierClaimsData);
TempData["supplierClaimID"] = _supplierClaimID;
}
Guid supplierClaimsRecordId = Guid.Parse(TempData["supplierClaimID"].ToString());
Email email = new Email();
ActivityParty from = new ActivityParty();
email.OwnerId = from.PartyId = new EntityReference("systemuser", Guid.Parse("B8CB8298-43F4-E211-A707-D067E5EBE694"));
ActivityParty to = new ActivityParty();
to.PartyId = new EntityReference("systemuser", Guid.Parse("C4354817-147E-E511-80D4-00155D060AC7"));
email.From = new ActivityParty[] { from };
email.DirectionCode = true;
email.To = new ActivityParty[] { to };
email.Subcategory = "Manager To Review Claims Updated By User";
email.Description = //The URL VIEW WILL BE ADDED HERE.
email.RegardingObjectId = new EntityReference("new_supplierclaimsupdate", supplierClaimsRecordId);
service.Create(email);
return View("ImportReadyClaims", cleanClaimsFromDB);
}
Как это сделать в коде C#. Я знаю способ OOTB в CRM, но он использует рабочий процесс On-Demand, и это не является частью этого требования, так как это должно быть автоматизировано. Я бы очень признателен вам за вашу помощь.