public async Task <CrmEntity> QueryById(Guid entityId) { try { CrmEntity entity = null; var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo); entity = await _crmService.Retrieve(EntityName, entityId, "", userInfo != null?userInfo.systemuserid : null); return(entity); } catch (Exception ex) { throw ex; } }
/// <summary> /// 预约记录明细 /// </summary> /// <param name="entityid"></param> /// <returns></returns> public async Task <CrmEntity> QueryDetail(string entityid) { try { var fetchString = _appointmentInfoRepository.QueryDetail(entityid); CrmEntity entity = null; entity = await _crmService.Retrieve("mcs_appointmentinfo", Guid.Parse(entityid), fetchString, null, dicHead); return(entity); } catch (Exception ex) { throw ex; } }
public async Task <CrmEntity> Retrieve(ICrmService crmService, string entityName, Guid id, Guid?userId = null) { var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo); var dicHead = new Dictionary <string, IEnumerable <string> >(); dicHead.Add("Prefer", new List <string>() { "odata.include-annotations=\"*\"" }); CrmEntity entity = null; entity = await crmService.Retrieve(entityName, id, "", userInfo?.systemuserid, dicHead); return(entity); }
public async Task <OrderQueryInfoResponse> QueryOrderInfo(string guid) { var orderQueryInfoResponse = new OrderQueryInfoResponse(); var orderid = Guid.Parse(guid); var orderEntity = await _crmService.Retrieve("mcs_tc_order", orderid, string.Empty, null, dicHead); #region 跟进记录 var xdoc = await Task <XDocument> .Run(() => { var fetchXml = string.Empty; fetchXml = $@" <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' > <entity name='mcs_tc_productorderitem'> <filter type='and'> <condition attribute='mcs_order' operator='eq' value='{orderid}' /> </filter> </entity> </fetch>"; return(XDocument.Parse(fetchXml)); }); var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_tc_productorderitem", FetchXml = xdoc }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); var fetchResponse = await _crmService.Execute(fetchRequest); var productorderitemList = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion orderQueryInfoResponse.OrderInfo = orderEntity.Attributes; foreach (var orderitem in productorderitemList.Value.Results) { orderQueryInfoResponse.OrderItemArray.Add(orderitem.Attributes); } return(orderQueryInfoResponse); }
public async Task <CustomerQueryInfoResponse> QueryInfo(string guid) { var customerQueryInfoResponse = new CustomerQueryInfoResponse(); var carserviceadvisorGuid = Guid.Parse(guid); var carserviceadvisorEntity = await _crmService.Retrieve("mcs_carserviceadvisor", carserviceadvisorGuid, string.Empty, null, dicHead); var vehownerGuid = Guid.Parse(carserviceadvisorEntity.Attributes.Value <string>("_mcs_customerid_value")); var vehownerEntity = await _crmService.Retrieve("mcs_vehowner", vehownerGuid, string.Empty, null, dicHead); #region 跟进记录 var xdoc = await Task <XDocument> .Run(() => { var fetchXml = string.Empty; fetchXml = $@" <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' > <entity name='mcs_customerfollowuplog'> <order attribute='mcs_name' descending='false' /> <filter type='and'> <condition attribute='mcs_carserviceadvisorid' operator='eq' value='{carserviceadvisorGuid}' /> </filter> </entity> </fetch>"; return(XDocument.Parse(fetchXml)); }); var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_customerfollowuplog", FetchXml = xdoc }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); var fetchResponse = await _crmService.Execute(fetchRequest); var customerfollowuplogList = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion #region 标签 xdoc = await Task <XDocument> .Run(() => { var fetchXml = string.Empty; fetchXml = $@" <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' > <entity name='mcs_tag'> <order attribute='mcs_name' descending='false' /> <link-entity name='mcs_mcs_vehowner_mcs_tag' from='mcs_tagid' to='mcs_tagid' visible='false' intersect='true'> <filter type='and'> <condition attribute='mcs_vehownerid' operator='eq' value='{vehownerGuid}' /> </filter> </link-entity> </entity> </fetch>"; return(XDocument.Parse(fetchXml)); }); fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_tag", FetchXml = xdoc }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); fetchResponse = await _crmService.Execute(fetchRequest); var tagList = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion #region 维修履历 xdoc = await Task <XDocument> .Run(() => { var fetchXml = string.Empty; fetchXml = $@" <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' > <entity name='mcs_serviceproxy'> <order attribute='mcs_name' descending='false' /> <filter type='and'> <condition attribute='mcs_customerid' operator='eq' value='{vehownerGuid}' /> <condition attribute='mcs_currenttype' operator='eq' value='20' /> <condition attribute='mcs_status' operator='eq' value='180' /> </filter> </entity> </fetch>"; return(XDocument.Parse(fetchXml)); }); fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_serviceproxy", FetchXml = xdoc }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); fetchResponse = await _crmService.Execute(fetchRequest); var serviceproxyResumeResponse = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion customerQueryInfoResponse.Carserviceadvisor = carserviceadvisorEntity; customerQueryInfoResponse.Vehowner = vehownerEntity; customerQueryInfoResponse.CustomerfollowuplogList = customerfollowuplogList.Value.Results; customerQueryInfoResponse.TagList = tagList.Value.Results; customerQueryInfoResponse.ServiceproxyResumeList = serviceproxyResumeResponse.Value.Results; return(customerQueryInfoResponse); }