예제 #1
0
        /// <summary>
        /// 安装单列表查询
        /// </summary>
        /// <param name="_request"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > GetInstallationorderList(InstallationorderRequest _request)
        {
            try
            {
                var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
                if (userInfo != null)
                {
                    _request.mcs_dealerid = userInfo.mcs_dealerid;
                }
                var fetchString = _InstallationRepository.GetInstallationorderList(_request);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "mcs_installationorder",
                    FetchXml    = fetchXdoc,
                    ProxyUserId = userInfo != null ? userInfo.systemuserid : null
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = _request.PageIndex;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        public async Task <ValidateResult <string> > Voice(VoiceRequest request)
        {
            var validateResult = new ValidateResult <string>();

            if (!string.IsNullOrEmpty(request.phone) && !string.IsNullOrEmpty(request.content))
            {
                var fetchXdoc    = _Repository.GetAccountFetchXml(request.phone);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "account",
                    FetchXml   = fetchXdoc.Result
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var detailResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                var entity       = detailResult.Value.Results[0];
                if (entity != null)
                {
                    //插入logcall数据
                    var logcall = new CrmExecuteEntity("mcs_logcall", Guid.NewGuid());
                    logcall.Attributes.Add("mcs_fullname", "爱车APP语音转换");
                    logcall.Attributes.Add("mcs_mobilephone", request.phone);
                    logcall.Attributes.Add("mcs_content", request.content);
                    logcall.Attributes.Add("mcs_results", request.content);
                    logcall.Attributes.Add("mcs_visittime", DateTime.Now.ToUniversalTime());
                    logcall.Attributes.Add("mcs_accountid", new CrmEntityReference(entity.EntityName, entity.Id));
                    await _crmService.Create(logcall, null);
                }
            }
            validateResult.Result      = true;
            validateResult.Description = "操作成功";
            return(validateResult);
        }
예제 #3
0
        /// <summary>
        /// 查询车型
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > QueryVehicletype(VehicleTypeRequest request)
        {
            try
            {
                var fetchString = _baseDataRepository.QueryVehicletype(request);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_vehicletype",
                    FetchXml   = fetchXdoc
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = request.page;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #4
0
        /// <summary>
        /// 唯一线索列表查询
        /// </summary>
        /// <param name="onlyLeadRequest"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > QueryList(OnlyLeadRequest onlyLeadRequest)
        {
            try
            {
                var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);

                var fetchString = _onlyLeadRepository.QueryList(onlyLeadRequest);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "mcs_onlylead",
                    FetchXml    = fetchXdoc,
                    ProxyUserId = userInfo?.systemuserid
                };
                fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = onlyLeadRequest.PageIndex;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #5
0
        /// <summary>
        /// 用户车辆列表查询
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > QueryList(UserCarInfoListRequest request)
        {
            try
            {
                var fetchString = _usercarinfoRepository.QueryList(request);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_usercarinfo",
                    FetchXml   = fetchXdoc
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = request.PageIndex;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #6
0
        /// <summary>
        /// 我的试乘试驾查询
        /// </summary>
        /// <param name="GetDriveRecordList"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > GetDriveRecordList(TestDriveRequest Request)
        {
            try
            {
                var userInfo     = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
                var ProxyUserId  = userInfo != null ? userInfo.systemuserid : null;
                var fetchString  = _Repository.GetDriveRecordList(Request);
                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "mcs_driverecord",
                    FetchXml    = fetchXdoc,
                    ProxyUserId = ProxyUserId
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = Request.PageIndex;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #7
0
        /// <summary>
        /// 查询试乘试驾附件
        /// </summary>
        /// <param name="driverecordid"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > QueryAttachment(string driverecordid)
        {
            var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);

            #region 查询结果集
            var fetchString = _driveRecordRepository.QueryAttachment(driverecordid);

            var fetchXdoc    = XDocument.Parse(fetchString);
            var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
            {
                EntityName  = "mcs_attachment",
                FetchXml    = fetchXdoc,
                ProxyUserId = userInfo?.systemuserid
            };
            fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
            var fetchResponse = await _crmService.Execute(fetchRequest);

            var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

            var queryResult = new QueryResult <CrmEntity>();
            queryResult.Results     = fetchResponseResult.Value.Results;
            queryResult.CurrentPage = 1;
            queryResult.TotalCount  = 0;
            return(queryResult);

            #endregion
        }
예제 #8
0
        public async Task <QueryResult <CrmEntity> > QueryList(int pageindex, string search, string dealeridGuid)
        {
            #region 获取记录结果集
            var filter = await GetQueryListFilter(search, dealeridGuid);

            var fetchXdoc = await GetQueryListFetchXml(pageindex, filter);

            var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
            {
                EntityName = "mcs_vehowner",
                FetchXml   = fetchXdoc
            };
            fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
            var fetchResponse = await _crmService.Execute(fetchRequest);

            var resultsList = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
            #endregion ;

            #region 组装返回结果集
            var queryResult = new QueryResult <CrmEntity>();
            queryResult.Results     = resultsList.Value.Results;
            queryResult.CurrentPage = pageindex;
            queryResult.TotalCount  = resultsList.Value.Results.Count;
            return(queryResult);

            #endregion
        }
예제 #9
0
        /// <summary>
        /// 获取预约跟进记录
        /// </summary>
        /// <param name="logRequest"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > GetLog(AppointmentInfoLogRequest logRequest)
        {
            try
            {
                var fetchString = _appointmentInfoRepository.Querylog(logRequest);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_appointmentinfolog",
                    FetchXml   = fetchXdoc
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = logRequest.page;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #10
0
        /// <summary>
        /// 试乘试驾路线
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > QueryDriveRouteList(DriveRouteRequest request)
        {
            var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);

            if (userInfo != null && !string.IsNullOrWhiteSpace(userInfo.mcs_dealerid))
            {
                // request.DealerId = Guid.Parse(userInfo.mcs_dealerid);
            }
            #region 查询结果集
            var fetchString = _driveRecordRepository.QueryDriveRouteList(request);

            var fetchXdoc    = XDocument.Parse(fetchString);
            var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
            {
                EntityName  = "mcs_driveroute",
                FetchXml    = fetchXdoc,
                ProxyUserId = userInfo?.systemuserid
            };
            fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
            var fetchResponse = await _crmService.Execute(fetchRequest);

            var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

            var queryResult = new QueryResult <CrmEntity>();
            queryResult.Results     = fetchResponseResult.Value.Results;
            queryResult.CurrentPage = request.PageIndex;
            queryResult.TotalCount  = 0;
            return(queryResult);

            #endregion
        }
예제 #11
0
        /// <summary>
        /// 试乘试驾明细查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <DriverecordDetailResponse> GetDetail(Guid id)
        {
            try
            {
                DriverecordDetailResponse model = new DriverecordDetailResponse();
                var fetchXdoc    = _driveRecordRepository.GetDriveRecordDetaill(id);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_driverecord",
                    FetchXml   = fetchXdoc.Result
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var detailResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                model.Detail = detailResult.Value.Results[0];

                fetchXdoc    = _driveRecordRepository.GetAttachmentDetaillFetchXml(id);
                fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_attachment",
                    FetchXml   = fetchXdoc.Result
                };
                fetchResponse = await _crmService.Execute(fetchRequest);

                detailResult           = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                model.AttachmentDetail = detailResult.Value.Results;
                return(model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #12
0
        /// <summary>
        /// 获取预约时段配置记录
        /// </summary>
        /// <param name="appointmentConfiggRequest"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > GetConfig(AppointmentConfigRequest appointmentConfiggRequest)
        {
            try
            {
                var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
                if (userInfo != null && !string.IsNullOrWhiteSpace(userInfo.mcs_dealerid))
                {
                    appointmentConfiggRequest.mcs_dealerid = Guid.Parse(userInfo.mcs_dealerid);
                }
                var fetchString = _appointmentInfoRepository.GetConfig(appointmentConfiggRequest);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_appointmentconfig",
                    FetchXml   = fetchXdoc
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = appointmentConfiggRequest.page;
                queryResult.TotalCount  = 0;

                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #13
0
        /// <summary>
        /// 列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > getlist(ActivityRequest request)
        {
            var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);

            try
            {
                var fetchXdoc    = _Repository.GetListFetchXml(request);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "mcs_activity",
                    FetchXml    = fetchXdoc.Result,
                    ProxyUserId = userInfo?.systemuserid
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                var queryResult         = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = request.PageSize;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #14
0
        public async Task <CrmEntityCollection> ExecuteAsync(ICrmService crmService, string entityName, XDocument document, Guid?userId = null)
        {
            try
            {
                var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
                var dicHead  = new Dictionary <string, IEnumerable <string> >();
                dicHead.Add("Prefer", new List <string>()
                {
                    "odata.include-annotations=\"*\""
                });
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = entityName,
                    FetchXml    = document,
                    ProxyUserId = userInfo?.systemuserid
                };
                fetchRequest.Headers.Add("Prefer", dicHead["Prefer"]);
                var crmResponseMessage = await crmService.Execute(fetchRequest);

                var resultsList = crmResponseMessage as CrmRetrieveMultipleFetchResponseMessage;
                return(resultsList.Value);
            }
            catch (Exception ex)
            {
                return(new CrmEntityCollection());
            }
        }
예제 #15
0
        /// <summary>
        /// 行政区域
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > QuerySysarea(SysareaRequest request)
        {
            try
            {
                if (string.IsNullOrEmpty(request.pid))
                {
                    request.pid = await GetCountryIdByCode("CN");//默认获取中国编码
                }
                var fetchString = _baseDataRepository.QuerySysarea(request);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_sysarea",
                    FetchXml   = fetchXdoc
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = request.page;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #16
0
        public async Task <int> GetUserNoticesNoReadCount(string userId)
        {
            int noreadTotalCount = 0;

            #region 查询总记录数

            var fetchXdoc = await GetGetQueryListCountFetchXml(userId);

            var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
            {
                EntityName = "mcs_user_msg",
                FetchXml   = fetchXdoc
            };
            fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
            var fetchResponse = await _crmService.Execute(fetchRequest);

            var result = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
            if (result != null)
            {
                noreadTotalCount = (int)result.Value.Results[0].Attributes["count"];
            }
            #endregion

            return(noreadTotalCount);
        }
예제 #17
0
        /// <summary>
        /// 列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > getlist(VehnetworkListRequest request)
        {
            try
            {
                var fetchXdoc = _Repository.GetListFetchXml(request);

                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_vehnetwork",
                    FetchXml   = fetchXdoc.Result
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                var queryResult         = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = request.PageSize;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #18
0
        public async Task <QueryResult <CrmEntity> > QueryListByPage(int orderstauts = 0, string searchkey = "", int pageSize = 10, int pageNum = 1, string sort = "", string token = "")
        {
            try
            {
                string filterstr = "";
                if (orderstauts > 0)
                {
                    filterstr += $"<condition attribute='mcs_orderstatus' operator='eq' value='{orderstauts}' />";
                }

                if (!string.IsNullOrEmpty(searchkey))
                {
                    filterstr += $"<filter type='or' >";
                    filterstr += $"<condition attribute='mcs_name' operator='like' value='%{searchkey}%' />";
                    filterstr += $"<condition attribute='mcs_title' operator='like' value='%{searchkey}%' />";
                    filterstr += $"</filter>";
                }

                var       fetchxml = string.Format($@"<fetch version=""1.0"" output-format=""xml-platform"" mapping=""logical"" distinct=""false"" count=""{pageSize}"" page=""{pageNum}"">
                                <entity name = ""mcs_supportorder"" >
                                    <attribute name = ""mcs_supportorderid"" />
                                    <attribute name = ""mcs_name"" />
                                    <attribute name = ""mcs_repairdate"" />
                                    <attribute name = ""mcs_orderstatus"" />
                                    <attribute name = ""mcs_title"" />    
                                <filter type = ""and"" >
                                  <condition attribute='statecode' operator='eq' value='0' />
                                  {filterstr}
                               </filter>
                                </entity>
                            </fetch>");
                XDocument xmlDoc   = XDocument.Parse(fetchxml);

                var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
                var request  = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = EntityName,
                    FetchXml    = xmlDoc,
                    ProxyUserId = userInfo != null ? userInfo.systemuserid : null
                };
                var crmResponse = await _crmService.Execute(request);

                CrmRetrieveMultipleFetchResponseMessage response = crmResponse as CrmRetrieveMultipleFetchResponseMessage;

                QueryResult <CrmEntity> queryResult = new QueryResult <CrmEntity>();
                if (response.Value != null)
                {
                    queryResult.Results     = response.Value.Results;
                    queryResult.TotalCount  = response.Value.Count;
                    queryResult.CurrentPage = pageNum;
                }
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #19
0
        public async Task <QueryResult <JObject> > QueryOrderList(int pageindex = 1, string search = "")
        {
            #region 组装filter
            var filter = string.Empty;
            if (!string.IsNullOrEmpty(search))
            {
                filter += $"<filter type='or'>";
                filter += $"<condition attribute='mcs_name' operator='like' value='%{search}%' />";
                filter += $"<condition attribute='mcs_purchasername' operator='like' value='%{search}%' />";
                filter += $"<condition attribute='mcs_purchaserphone' operator='like' value='%{search}%' />";
                filter += $"</filter>";
            }

            //if (!string.IsNullOrEmpty(filter))
            //{
            filter = @"<filter type='and'>
                           <condition attribute='mcs_orderclass' operator='eq' value='100' />" + filter;
            filter = filter + "</filter>";
            //}
            #endregion

            #region 组装FetchXml
            var xDoc = await Task <XDocument> .Run(() =>
            {
                var fetchXml = string.Empty;
                fetchXml     = $@"
            <fetch version='1.0' output-format='xml-platform' mapping='logical' count='{pageCount}' page='{pageindex}' >
              <entity name='mcs_tc_order'>
                <order attribute='mcs_ordertime' descending='true' />
                  {filter}
              </entity>
            </fetch>";
                return(XDocument.Parse(fetchXml));
            });;
            #endregion

            #region 获取记录结果集
            var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
            {
                EntityName = "mcs_tc_order",
                FetchXml   = xDoc
            };
            fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
            var fetchResponse = await _crmService.Execute(fetchRequest);

            var resultsList = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
            #endregion ;

            #region 组装数据返回
            var result = new QueryResult <JObject>();
            foreach (var entity in resultsList.Value.Results)
            {
                result.Results.Add(entity.Attributes);
            }
            return(result);

            #endregion
        }
예제 #20
0
        /// <summary>
        /// 分页查询用户列表数据
        /// </summary>
        /// <param name="searchkey"></param>
        /// <param name="pageSize"></param>
        /// <param name="pageNum"></param>
        /// <param name="sort"></param>
        /// <returns></returns>
        public async Task <QueryResult <CrmEntity> > QuerySystemUserByPage(string searchkey = "", string proxyUserId = "", string dealerId = "", int pageSize = 10, int pageNum = 1, string sort = "")
        {
            try
            {
                string filterstr = "";

                //if (!string.IsNullOrEmpty(dealerId))
                //{
                //    filterstr += $"<condition attribute='mcs_dealer' operator='eq' value='{dealerId}' />";
                //}

                if (!string.IsNullOrEmpty(searchkey))
                {
                    filterstr += $"<filter type='or' >";
                    filterstr += $"<condition attribute='fullname' operator='like' value='%{searchkey}%' />";
                    filterstr += $"</filter>";
                }

                var       fetchxml = string.Format($@"<fetch version=""1.0"" output-format=""xml-platform"" mapping=""logical"" distinct=""false"" count=""{pageSize}"" page=""{pageNum}"">
                                <entity name = ""systemuser"" >
                                    <attribute name = ""systemuserid"" />
                                    <attribute name = ""firstname"" />
                                    <attribute name = ""lastname"" />
                                    <attribute name = ""mcs_dealer"" />
                                    <attribute name = ""fullname"" />
                                <filter type = ""and"" >
                                  <condition attribute='isdisabled' operator='eq' value='0' />
                                  {filterstr}
                               </filter>
                                </entity>
                            </fetch>");
                XDocument xmlDoc   = XDocument.Parse(fetchxml);

                var request = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "systemuser",
                    FetchXml    = xmlDoc,
                    ProxyUserId = string.IsNullOrEmpty(proxyUserId)?Guid.Empty:Guid.Parse(proxyUserId)
                };
                var crmResponse = await _crmService.Execute(request);

                CrmRetrieveMultipleFetchResponseMessage response = crmResponse as CrmRetrieveMultipleFetchResponseMessage;

                QueryResult <CrmEntity> queryResult = new QueryResult <CrmEntity>();
                if (response.Value != null)
                {
                    queryResult.Results     = response.Value.Results;
                    queryResult.TotalCount  = response.Value.Count;
                    queryResult.CurrentPage = pageNum;
                }
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #21
0
        /// <summary>
        /// 明细获取
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <VehnetworkDetailRepository> getdetail(Guid id)
        {
            try
            {
                VehnetworkDetailRepository repository = new VehnetworkDetailRepository();
                #region 开票明细
                var fetchXdoc    = _Repository.GetDetaillFetchXml(id);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_vehnetwork",
                    FetchXml   = fetchXdoc.Result
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var detailResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                repository.Detail = detailResult.Value.Results[0];
                #endregion
                #region 身份附件
                fetchXdoc    = _Repository.GetAttachmentDetaillFetchXml(id, partnertype, "3");
                fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_attachment",
                    FetchXml   = fetchXdoc.Result
                };
                fetchResponse = await _crmService.Execute(fetchRequest);

                detailResult            = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                repository.CardNoDetail = detailResult.Value.Results;
                #endregion
                #region 发票附件
                fetchXdoc    = _Repository.GetAttachmentDetaillFetchXml(id, partnertype, "4");
                fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_attachment",
                    FetchXml   = fetchXdoc.Result
                };
                fetchResponse = await _crmService.Execute(fetchRequest);

                detailResult             = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                repository.InvoiceDetail = detailResult.Value.Results;
                #endregion

                return(repository);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #22
0
        public async Task <QueryResult <CrmEntity> > GetUserNotices(UserNoticeRequest request)
        {
            try
            {
                var fetchString = _repository.GetUserNotices(request);

                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_user_msg",
                    FetchXml   = fetchXdoc,
                };
                fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = request.PageIndex;
                queryResult.TotalCount  = 0;

                //更新消息为已读
                //if (queryResult.Results!=null && queryResult.Results.Count>0)
                //{
                //    foreach (var item in queryResult.Results)
                //    {
                //        if (int.Parse(item.Attributes["mcs_readstatus"].ToString()) ==0)
                //        {
                //            await UpdateUserNoticeReadStatus(new UserNoticeRequest() {
                //                Id= item.Id.ToString(),
                //                mcs_readstatus=1
                //            });;
                //        }
                //    }
                //}
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #23
0
        public async Task <TestDriveFeedbackDetailModel> GetDriveFeedbackDetail(string testdriveid)
        {
            try
            {
                TestDriveFeedbackDetailModel model = new TestDriveFeedbackDetailModel();
                #region 试驾反馈报告基本信息
                //var dicHead = new Dictionary<string, IEnumerable<string>>();
                //dicHead.Add("Prefer", new List<string>() { "odata.include-annotations=\"*\"" });
                //var VehorderData = await _crmService.Retrieve("mcs_testdrivefeedbackmaster", Guid.Parse(testdrivefeedbackmasterid), string.Empty, null, dicHead);

                var crmRequestHelper = new CrmRequestHelper();
                var fetchString_One  = await _Repository.GetDriveFeedbackByRecordId(testdriveid);

                var VehorderData = await crmRequestHelper.ExecuteAsync(_crmService, "mcs_testdrivefeedbackmaster", fetchString_One);

                if (VehorderData != null && VehorderData.Results != null && VehorderData.Results.Count > 0)
                {
                    model.TestDriveFeedbackInfo = VehorderData.Results[0];

                    #region 用户反馈问题项
                    var fetchString_Two = _Repository.GetDriveFeedbackItemList(model.TestDriveFeedbackInfo.Attributes["mcs_testdrivefeedbackmasterid"].ToString());

                    var fetchXdoc_One    = XDocument.Parse(fetchString_Two);
                    var fetchRequest_One = new CrmRetrieveMultipleFetchRequestMessage()
                    {
                        EntityName = "mcs_testdrivefeedback",
                        FetchXml   = fetchXdoc_One,
                    };
                    var fetchResponse = await _crmService.Execute(fetchRequest_One);

                    var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                    #endregion
                    model.DrivefeedbackList = fetchResponseResult.Value.Results;
                }
                #endregion
                return(model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #24
0
        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);
        }
예제 #25
0
        public async Task <CrmEntity> getaccountdetail(Guid id)
        {
            var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);

            try
            {
                var fetchXdoc    = _Repository.GetAccountFetchXml(id);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "account",
                    FetchXml    = fetchXdoc.Result,
                    ProxyUserId = userInfo?.systemuserid
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var detailResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                return(detailResult.Value.Results[0]);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #26
0
        /// <summary>
        /// 查询个人用户信息
        /// </summary>
        /// <param name="systemuserid"></param>
        /// <returns></returns>
        public async Task <CrmEntity> QuerySystemUser(string systemuserid)
        {
            try
            {
                var fetchString  = _baseDataRepository.QuerySystemUser(systemuserid);
                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "systemuser",
                    FetchXml    = fetchXdoc,
                    ProxyUserId = Guid.Parse(systemuserid)
                };
                fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var detailResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                return(detailResult.Value.Results[0]);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #27
0
        public async Task <QueryResult <CrmEntity> > GetDriveFeedbackList(TestDriveFeedbackRequest Request)
        {
            try
            {
                Guid?UserId;
                if (string.IsNullOrEmpty(Request.UserId))
                {
                    UserId = null;
                }
                else
                {
                    UserId = Guid.Parse(Request.UserId);
                }

                var fetchString  = _Repository.GetDriveFeedbackList(Request);
                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName  = "mcs_testdrivefeedbackmaster",
                    FetchXml    = fetchXdoc,
                    ProxyUserId = null
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

                var queryResult = new QueryResult <CrmEntity>();
                queryResult.Results     = fetchResponseResult.Value.Results;
                queryResult.CurrentPage = Request.PageIndex;
                queryResult.TotalCount  = 0;
                return(queryResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #28
0
        public async void CreateLead(TestDriveViewModel request, Guid?userid)
        {
            try
            {
                var createEntity = new CrmExecuteEntity("lead", Guid.NewGuid());

                createEntity.Attributes.Add("lastname", request.mcs_fullname);
                createEntity.Attributes.Add("mobilephone", request.mcs_mobilephone);

                if (!string.IsNullOrEmpty(request.mcs_dealerid))
                {
                    createEntity.Attributes.Add("mcs_dealerid", new CrmEntityReference("mcs_dealer", Guid.Parse(request.mcs_dealerid)));
                }

                #region 用户行为赋值
                var fetchString  = _Repository.GetDriveBehavior("test_drive_appointment");
                var fetchXdoc    = XDocument.Parse(fetchString);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_behavior",
                    FetchXml   = fetchXdoc
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                var queryResult         = new QueryResult <CrmEntity>();
                queryResult.Results = fetchResponseResult.Value.Results;
                var mcs_behaviorid = queryResult.Results[0].Id;
                createEntity.Attributes.Add("mcs_behaviorid", new CrmEntityReference("mcs_behavior", mcs_behaviorid));
                #endregion

                var entityId = await _crmService.Create(createEntity, userid);
            }
            catch (Exception ex)
            {
            }
        }
예제 #29
0
        /// <summary>
        /// 问题反馈
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <TestdrivefeedbackResponse> GetTestdrivefeedback(Guid id)
        {
            try
            {
                TestdrivefeedbackResponse model = new TestdrivefeedbackResponse();
                var fetchXdoc    = _driveRecordRepository.GetTestdrivefeedback(id);
                var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                {
                    EntityName = "mcs_testdrivefeedbackmaster",
                    FetchXml   = fetchXdoc.Result
                };
                var fetchResponse = await _crmService.Execute(fetchRequest);

                var detailResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                if (detailResult.Value.Results.Count > 0)
                {
                    model.Master = detailResult.Value.Results[0];
                    fetchXdoc    = _driveRecordRepository.GetTestdrivefeedbackDetail(detailResult.Value.Results[0].Id);
                    fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
                    {
                        EntityName = "mcs_testdrivefeedback",
                        FetchXml   = fetchXdoc.Result
                    };
                    fetchResponse = await _crmService.Execute(fetchRequest);

                    detailResult  = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;
                    model.Details = detailResult.Value.Results;
                }

                return(model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #30
0
        public async Task <JObject> QueryCepconfig(string key)
        {
            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_cepconfig'>
                <filter type='and'>
                <condition attribute='mcs_name' operator='eq' value='{key}' />
                </filter>
              </entity>
            </fetch>";
                return(XDocument.Parse(fetchXml));
            });

            var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage()
            {
                EntityName = "mcs_cepconfig",
                FetchXml   = xdoc
            };

            fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]);
            var fetchResponse = await _crmService.Execute(fetchRequest);

            var response = fetchResponse as CrmRetrieveMultipleFetchResponseMessage;

            if (response.Value.Results.Count > 0)
            {
                return(response.Value.Results[0].Attributes);
            }
            else
            {
                return(null);
            }
        }