Beispiel #1
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);
        }
Beispiel #2
0
        /// <summary>
        /// 新增或编辑 logcall
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ValidateResult <CrmEntity> > AddOrEditEntity(LogCallRequest request)
        {
            var validateResult = new ValidateResult <CrmEntity>();
            var userInfo       = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);

            try
            {
                Guid             guid   = string.IsNullOrEmpty(request.mcs_logcallid) ? Guid.NewGuid() : Guid.Parse(request.mcs_logcallid);
                CrmExecuteEntity Entity = new CrmExecuteEntity("mcs_logcall", guid);
                if (!string.IsNullOrEmpty(request.mcs_onlyleadid))
                {
                    Entity.Attributes.Add("mcs_onlyleadid", new CrmEntityReference("mcs_onlylead", Guid.Parse(request.mcs_onlyleadid)));
                }
                if (!string.IsNullOrEmpty(request.accountid))
                {
                    Entity.Attributes.Add("mcs_accountid", new CrmEntityReference("account", Guid.Parse(request.accountid)));
                }
                if (!string.IsNullOrEmpty(request.mcs_content))
                {
                    Entity.Attributes.Add("mcs_content", request.mcs_content);
                }
                if (!string.IsNullOrEmpty(request.mcs_fullname))
                {
                    Entity.Attributes.Add("mcs_fullname", request.mcs_fullname);
                }
                if (!string.IsNullOrEmpty(request.mcs_mobilephone))
                {
                    Entity.Attributes.Add("mcs_mobilephone", request.mcs_mobilephone);
                }
                if (!string.IsNullOrEmpty(request.mcs_results))
                {
                    Entity.Attributes.Add("mcs_results", request.mcs_results);
                }
                if (request.mcs_visittime.HasValue)
                {
                    Entity.Attributes.Add("mcs_visittime", request.mcs_visittime.Value);
                }

                if (!string.IsNullOrEmpty(request.mcs_logcallid))
                {
                    await _crmService.Update(Entity, userInfo?.systemuserid);
                }
                else
                {
                    guid = await _crmService.Create(Entity, userInfo?.systemuserid);
                }

                validateResult.Result      = true;
                validateResult.Description = "操作成功";
            }
            catch (Exception ex)
            {
                validateResult.Result      = false;
                validateResult.Description = "操作失败,原因:" + ex.Message;
                throw ex;
            }


            return(validateResult);
        }
Beispiel #3
0
        public async Task AddToDead(SQueue queue, SMessage message)
        {
            if (!queue.IsDead)
            {
                throw new Exception(string.Format("SQueue {0}.{1} is not dead, can't be used in SMessageStoreForSQLDB.AddToDead", queue.GroupName, queue.Name));
            }

            var crmService = await getCrmService(queue.ServerName);

            CrmExecuteEntity entity = new CrmExecuteEntity(queue.Name, message.ID)
            {
                IsActivity = false,
                Attributes = new Dictionary <string, object>()
                {
                    { "ms_name", message.Key },
                    { "ms_type", message.Type },
                    { "ms_data", message.Data },
                    { "ms_delaymessageid", message.DelayMessageID?.ToString() },
                    { "ms_exceptionmessage", message.ExceptionMessage },
                    { "ms_expectationexecutetime", message.ExpectationExecuteTime },
                    { "ms_extensionmessage", message.ExtensionMessage },
                    { "ms_lastexecutetime", null },
                    { "ms_retrynumber", 0 },
                    { "ms_isdead", true },
                }
            };

            var newID = await crmService.Create(entity);

            message.ID = newID;
        }
Beispiel #4
0
        public async Task AddRetry(SQueue queue, Guid id, string exceptionMessage)
        {
            var crmService = await getCrmService(queue.ServerName);

            CrmRetrieveSignleAttributeRequestMessage request = new CrmRetrieveSignleAttributeRequestMessage()
            {
                EntityName    = queue.Name,
                EntityId      = id,
                AttributeName = "ms_retrynumber"
            };
            var response = (CrmRetrieveSignleAttributeResponseMessage)await crmService.Execute(request);

            var objRetry = response.Value.ToObject <int?>();
            int retry    = 0;

            if (objRetry.HasValue)
            {
                retry = objRetry.Value;
            }

            CrmExecuteEntity entity = new CrmExecuteEntity(queue.Name, id)
            {
                IsActivity = false,
                Attributes = new Dictionary <string, object>()
                {
                    { "ms_retrynumber", retry++ },
                }
            };
            await crmService.Update(entity);
        }
Beispiel #5
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ValidateResult> Add(UsermessageRequest model)
        {
            var userInfo       = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
            var validateResult = new ValidateResult();


            try
            {
                Guid id     = Guid.NewGuid();
                var  entity = new CrmExecuteEntity(entityName, id);
                if (!string.IsNullOrEmpty(model.phone))
                {
                    entity.Attributes.Add("mcs_phone", model.phone);
                }
                if (!string.IsNullOrEmpty(model.valcode))
                {
                    entity.Attributes.Add("mcs_name", model.valcode);
                }
                entity.Attributes.Add("mcs_type", model.type);
                await _crmService.Create(entity, userInfo?.systemuserid);


                #region 组装数据返回
                validateResult.Result      = true;
                validateResult.Description = "操作成功";
                #endregion
            }
            catch (Exception e)
            {
                validateResult.Result      = false;
                validateResult.Description = e.Message;
            }

            return(validateResult);
        }
Beispiel #6
0
        public async Task <CrmActionParameterHandleResult> Convert(string name, object parameter)
        {
            CrmExecuteEntity realParameter = parameter as CrmExecuteEntity;

            JObject valueResult = new JObject();

            if (realParameter.Id != Guid.Empty)
            {
                if (realParameter.IsActivity)
                {
                    valueResult["activityid"] = JToken.FromObject(realParameter);
                }
                else
                {
                    valueResult[$"{realParameter.EntityName}id"] = JToken.FromObject(realParameter);
                }
            }

            valueResult["@odata.type"] = JToken.FromObject($"Microsoft.Dynamics.CRM.{realParameter.EntityName}");

            foreach (var attributeItem in realParameter.Attributes)
            {
                var attributeResult = await _crmActionParameterHandle.Convert(attributeItem.Key, attributeItem.Value);

                valueResult[attributeResult.Name] = attributeResult.Value;
            }

            CrmActionParameterHandleResult result = new CrmActionParameterHandleResult()
            {
                Name  = name,
                Value = valueResult
            };

            return(result);
        }
Beispiel #7
0
        public async Task Add(SQueue queue, SMessage message)
        {
            var crmService = await getCrmService(queue.ServerName);

            CrmExecuteEntity entity = new CrmExecuteEntity(queue.Name, message.ID)
            {
                IsActivity = false,
                Attributes = new Dictionary <string, object>()
                {
                    { "ms_name", message.Key },
                    { "ms_type", message.Type },
                    { "ms_data", message.Data },
                    { "ms_delaymessageid", message.DelayMessageID?.ToString() },
                    { "ms_exceptionmessage", message.ExceptionMessage },
                    { "ms_expectationexecutetime", message.ExpectationExecuteTime },
                    { "ms_extensionmessage", message.ExtensionMessage },
                    { "ms_lastexecutetime", message.LastExecuteTime },
                    { "ms_retrynumber", message.RetryNumber },
                    { "ms_isdead", message.IsDead },
                }
            };

            var newID = await crmService.Create(entity);

            message.ID = newID;
        }
Beispiel #8
0
        /// <summary>
        /// 用户消息新增编辑
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ValidateResult <CrmEntity> > AddAndEdit(UserMsgequest request)
        {
            var validateResult  = new ValidateResult <CrmEntity>();
            var reusetCrmEntity = new CrmEntity("mcs_user_msg", new Guid());

            //新增
            if (string.IsNullOrWhiteSpace(request.mcs_user_msgid))
            {
                var createEntity = new CrmExecuteEntity("mcs_user_msg", Guid.NewGuid());
                BasicAssignment(createEntity, request);
                var reuset = await _crmService.Create(createEntity);

                reusetCrmEntity.Id = createEntity.Id;
            }
            //编辑
            if (!string.IsNullOrWhiteSpace(request.mcs_user_msgid))
            {
                var updateEntity = new CrmExecuteEntity("mcs_user_msg", Guid.Parse(request.mcs_user_msgid));
                BasicAssignment(updateEntity, request);
                await _crmService.Update(updateEntity);

                reusetCrmEntity.Id = updateEntity.Id;
            }
            validateResult.Data        = reusetCrmEntity;
            validateResult.Result      = true;
            validateResult.Description = "操作成功";
            return(validateResult);
        }
        public async Task <JObject> Convert(CrmExecuteEntity entity)
        {
            var convertResult = await _crmExecuteEntityTypeHandle.Convert(string.Empty, entity);

            var result = JsonConvert.DeserializeObject <JObject>(convertResult.Value.ToString());

            return(result);
        }
Beispiel #10
0
        /// <summary>
        /// 增减用户积分记录
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ValidateResult> DeDucationIntegral(UserDeDucationIntegralRequest request)
        {
            var validateResult = new ValidateResult();

            try
            {
                var entity = new CrmExecuteEntity("mcs_memberintegraldetail", Guid.NewGuid());
                if (!string.IsNullOrEmpty(request.UserId))
                {
                    var       crmRequestHelper = new CrmRequestHelper();
                    XDocument fetchXdoc        = null;
                    fetchXdoc = await _repository.getuserscorebalance(new UserDetailRequest { id = request.UserId });

                    var entities = await crmRequestHelper.ExecuteAsync(_crmService, "mcs_member", fetchXdoc);

                    if (entities.Results != null && entities.Results.Count > 0)
                    {
                        entity.Attributes.Add("mcs_memberid", new CrmEntityReference("mcs_member", entities.Results[0].Id));
                        var bonuspoint = entities.Results[0].Attributes["mcs_bonuspoint"];
                        var balance    = bonuspoint == null ? 0 : (Int32)bonuspoint;
                        entity.Attributes.Add("mcs_bonuspoint", balance);
                        entity.Attributes.Add("mcs_integralpointname", "积分支付");
                        var updateEntity = new CrmExecuteEntity("mcs_member", entities.Results[0].Id);
                        if (request.IntegralType != null)
                        {
                            entity.Attributes.Add("mcs_integraltype", request.IntegralType);
                        }
                        if (request.Integral != 0)
                        {
                            entity.Attributes.Add("mcs_num", request.Integral);
                            updateEntity.Attributes.Add("mcs_bonuspoint", balance - request.Integral);
                        }
                        await _crmService.Update(updateEntity);

                        await _crmService.Create(entity);

                        validateResult.Result      = true;
                        validateResult.Description = "操作成功";
                    }
                    else
                    {
                        validateResult.Result      = false;
                        validateResult.Description = "用户不存在";
                    }
                }
                else
                {
                    validateResult.Result      = false;
                    validateResult.Description = "用户Id不存在";
                }
            }
            catch (Exception e)
            {
                validateResult.Result      = false;
                validateResult.Description = e.Message;
            }
            return(validateResult);
        }
Beispiel #11
0
        public async Task <ValidateResult <CrmEntity> > AddOrUpdate(JObject jo)
        {
            var actionCode = jo.Value <int>("actionCode");
            var vehownerJo = jo.Value <JObject>("Vehowner");

            var vehownerGuid = Guid.NewGuid();

            var vehownerEntity = new CrmExecuteEntity("mcs_vehlisense", vehownerGuid);

            var validateResult = new ValidateResult <CrmEntity>();

            if (actionCode == 2)
            {
                vehownerGuid      = Guid.Parse(vehownerJo.Value <string>("mcs_vehlisenseid"));
                vehownerEntity.Id = vehownerGuid;
            }
            if (vehownerJo.ContainsKey("mcs_name"))
            {
                vehownerEntity.Attributes.Add("mcs_name", vehownerJo.Value <string>("mcs_name"));
            }
            if (vehownerJo.ContainsKey("mcs_idcard"))
            {
                vehownerEntity.Attributes.Add("mcs_idcard", vehownerJo.Value <string>("mcs_idcard"));
            }
            if (vehownerJo.ContainsKey("mcs_lisensedate"))
            {
                vehownerEntity.Attributes.Add("mcs_lisensedate", vehownerJo.Value <DateTime?>("mcs_lisensedate"));
            }


            if (vehownerJo.ContainsKey("mcs_address"))
            {
                vehownerEntity.Attributes.Add("mcs_address", vehownerJo.Value <string>("mcs_address"));
            }
            if (vehownerJo.ContainsKey("mcs_fee"))
            {
                vehownerEntity.Attributes.Add("mcs_fee", vehownerJo.Value <decimal>("mcs_fee"));
            }


            if (actionCode == 1)
            {
                //var dealeridGuid = Guid.Parse(jo.Value<string>("dealerid"));
                //vehownerEntity.Attributes.Add("mcs_dealer", new CrmEntityReference("mcs_dealer", dealeridGuid));
                //await _crmService.Create(vehownerEntity, null);
            }
            else
            {
                await _crmService.Update(vehownerEntity, null);
            }

            #region 组装数据返回
            validateResult.Result      = true;
            validateResult.Description = "操作成功";
            #endregion

            return(validateResult);
        }
Beispiel #12
0
 /// <summary>
 /// 基础字段
 /// </summary>
 /// <param name="updateEntity"></param>
 /// <param name="request"></param>
 private void BasicAssignment(CrmExecuteEntity updateEntity, OnlyLeadEditRequest request)
 {
     // 姓名
     if (!string.IsNullOrWhiteSpace(request.onlylead.mcs_name))
     {
         updateEntity.Attributes.Add("mcs_name", request.onlylead.mcs_name);
     }
     // 线索来源
     if (request.onlylead.mcs_leadorigin != null)
     {
         updateEntity.Attributes.Add("mcs_leadorigin", request.onlylead.mcs_leadorigin);
     }
     // 性别
     if (request.onlylead.mcs_gender != null)
     {
         updateEntity.Attributes.Add("mcs_gender", request.onlylead.mcs_gender);
     }
     // 邮箱
     if (!string.IsNullOrWhiteSpace(request.onlylead.mcs_emailaddress1))
     {
         updateEntity.Attributes.Add("mcs_emailaddress1", request.onlylead.mcs_emailaddress1);
     }
     // 评分
     if (request.onlylead.mcs_accountpoints != null)
     {
         updateEntity.Attributes.Add("mcs_accountpoints", request.onlylead.mcs_accountpoints);
     }
     // 用车省份
     if (!string.IsNullOrWhiteSpace(request.onlylead.mcs_usecarprovince))
     {
         updateEntity.Attributes.Add("mcs_usecarprovince", request.onlylead.mcs_usecarprovince);
     }
     // 用车城市
     if (!string.IsNullOrWhiteSpace(request.onlylead.mcs_usecarcity))
     {
         updateEntity.Attributes.Add("mcs_usecarcity", request.onlylead.mcs_usecarcity);
     }
     // 省份ID
     if (request.onlylead.mcs_provinceid != null)
     {
         var provinceEntityRf = new CrmEntityReference("mcs_sysarea", (Guid)request.onlylead.mcs_provinceid);
         updateEntity.Attributes.Add("mcs_provinceid", provinceEntityRf);
     }
     // 市ID
     if (request.onlylead.mcs_cityid != null)
     {
         var cityEntityRf = new CrmEntityReference("mcs_sysarea", (Guid)request.onlylead.mcs_cityid);
         updateEntity.Attributes.Add("mcs_cityid", cityEntityRf);
     }
     // 区ID
     if (request.onlylead.mcs_districtid != null)
     {
         var districtEntityRf = new CrmEntityReference("mcs_sysarea", (Guid)request.onlylead.mcs_districtid);
         updateEntity.Attributes.Add("mcs_districtid", districtEntityRf);
     }
 }
Beispiel #13
0
 /// <summary>
 /// 基础字段赋值
 /// </summary>
 /// <param name="createEntity"></param>
 /// <param name="request"></param>
 private void BasicAssignment(CrmExecuteEntity entity, UserMsgequest request)
 {
     //消息标题
     if (!string.IsNullOrWhiteSpace(request.mcs_name))
     {
         entity.Attributes["mcs_name"] = request.mcs_name;
     }
     //C端用户Id
     if (!string.IsNullOrWhiteSpace(request.mcs_user))
     {
         var useref = new CrmEntityReference("mcs_user", Guid.Parse(request.mcs_user));
         entity.Attributes["mcs_user"] = useref;
     }
     //跳转链接
     if (!string.IsNullOrWhiteSpace(request.mcs_url))
     {
         entity.Attributes["mcs_url"] = request.mcs_url;
     }
     //阅读时间
     if (request.mcs_readdate != null)
     {
         var readdate = request.mcs_readdate.Value.ToUniversalTime();
         entity.Attributes["mcs_readdate"] = readdate;
     }
     //导航图片Url
     if (!string.IsNullOrWhiteSpace(request.mcs_head_imageurl))
     {
         entity.Attributes["mcs_head_imageurl"] = request.mcs_head_imageurl;
     }
     //消息内容
     if (!string.IsNullOrWhiteSpace(request.mcs_content))
     {
         entity.Attributes["mcs_content"] = request.mcs_content;
     }
     //删除时间
     if (request.mcs_deletedate != null)
     {
         var deletedate = request.mcs_deletedate.Value.ToUniversalTime();
         entity.Attributes["mcs_deletedate"] = deletedate;
     }
     //消息类型
     if (request.mcs_type != null)
     {
         entity.Attributes["mcs_type"] = request.mcs_type;
     }
     //阅读状态
     if (request.mcs_readstatus != null)
     {
         entity.Attributes["mcs_readstatus"] = request.mcs_readstatus;
     }
     //删除状态
     if (request.mcs_deletestatus != null)
     {
         entity.Attributes["mcs_deletestatus"] = request.mcs_deletestatus;
     }
 }
Beispiel #14
0
        public async Task <ValidateResult <string> > addorderpay(OrderPayEditRequest orderPayEditRequest)
        {
            try
            {
                var validateResult   = new ValidateResult <string>();
                var crmRequestHelper = new CrmRequestHelper();
                var entity           = await crmRequestHelper.Retrieve(_crmService, entityName, Guid.Parse(orderPayEditRequest.delivery));

                if (entity != null)
                {
                    var deliverystatus = entity.Attributes.Value <int>("mcs_deliverystatus");
                    //已检测
                    if (deliverystatus >= 5)
                    {
                        validateResult.Result      = false;
                        validateResult.Description = "交车单状态不符合!";
                        return(validateResult);
                    }
                    var deliveryef   = new CrmEntityReference(entity.EntityName, entity.Id);
                    var createentity = new CrmExecuteEntity(orderpayEntityName, Guid.NewGuid());
                    createentity.Attributes.Add("mcs_paycategory", orderPayEditRequest.paycategory);
                    createentity.Attributes.Add("mcs_payon", orderPayEditRequest.payon.ToUniversalTime());
                    createentity.Attributes.Add("mcs_vehdelivery", deliveryef);
                    var vehorderId = entity.Attributes.Value <string>("_mcs_vehorder_value");
                    if (!string.IsNullOrEmpty(vehorderId))
                    {
                        var vehorderrf = new CrmEntityReference(roEntityName, Guid.Parse(vehorderId));
                        createentity.Attributes.Add("mcs_vehorder", vehorderrf);
                    }
                    var dealerid = entity.Attributes.Value <string>("_mcs_dealer_value");
                    if (!string.IsNullOrEmpty(dealerid))
                    {
                        var dealerrf = new CrmEntityReference(dealerEntityName, Guid.Parse(dealerid));
                        createentity.Attributes.Add("mcs_dealer", dealerrf);
                    }
                    createentity.Attributes.Add("mcs_amount", orderPayEditRequest.amount);
                    createentity.Attributes.Add("mcs_batchcode", orderPayEditRequest.batchcode);
                    await _crmService.Create(createentity);

                    validateResult.Result      = true;
                    validateResult.Description = "操作成功";
                    return(validateResult);
                }
                else
                {
                    validateResult.Result      = false;
                    validateResult.Description = "交车单不存在!";
                    return(validateResult);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #15
0
        /// <summary>
        /// 创建原始线索
        /// </summary>
        public async Task <OriginalclueCreateResponse> create(OriginalclueCreateRequest originalclueCreateRequest)
        {
            try
            {
                var createEntity = new CrmExecuteEntity(entityName, Guid.NewGuid());

                createEntity.Attributes.Add("lastname", originalclueCreateRequest.username);
                createEntity.Attributes.Add("mobilephone", originalclueCreateRequest.mobile);
                if (!string.IsNullOrEmpty(originalclueCreateRequest.mail))
                {
                    createEntity.Attributes.Add("emailaddress1", originalclueCreateRequest.mail);
                }
                createEntity.Attributes.Add("mcs_leadorigin", Int32.Parse(originalclueCreateRequest.clues));
                createEntity.Attributes.Add("mcs_accountpoints", Int32.Parse(originalclueCreateRequest.score));
                createEntity.Attributes.Add("description", originalclueCreateRequest.describe);
                createEntity.Attributes.Add("mcs_gender", originalclueCreateRequest.gender);
                if (!string.IsNullOrWhiteSpace(originalclueCreateRequest.province))
                {
                    var salesarea = new CrmEntityReference("mcs_salesarea", Guid.Parse(originalclueCreateRequest.province));
                    createEntity.Attributes.Add("mcs_provinceid", salesarea);
                }
                if (!string.IsNullOrWhiteSpace(originalclueCreateRequest.city))
                {
                    var salesarea = new CrmEntityReference("mcs_salesarea", Guid.Parse(originalclueCreateRequest.city));
                    createEntity.Attributes.Add("mcs_cityid", salesarea);
                }
                if (!string.IsNullOrWhiteSpace(originalclueCreateRequest.area))
                {
                    var salesarea = new CrmEntityReference("mcs_salesarea", Guid.Parse(originalclueCreateRequest.area));
                    createEntity.Attributes.Add("mcs_districtid", salesarea);
                }
                var dealer = new CrmEntityReference("mcs_dealer", Guid.Parse(originalclueCreateRequest.dealerid));
                createEntity.Attributes.Add("mcs_dealerid", dealer);

                //var mcs_behaviorEntityRefence = new CrmEntityReference("mcs_behavior", Guid.Parse(originalclueCreateRequest.behaviorid));

                var mcs_behaviorEntityRefence = await GetBehaviorEntityByCode(originalclueCreateRequest.behaviorcode);

                if (mcs_behaviorEntityRefence != null)
                {
                    createEntity.Attributes.Add("mcs_behaviorid", mcs_behaviorEntityRefence);
                }
                var entityId = await _crmService.Create(createEntity, Guid.Parse(originalclueCreateRequest.UserId));

                return(new OriginalclueCreateResponse()
                {
                    Id = entityId.ToString()
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #16
0
        /// <summary>
        /// 登陆日志
        /// </summary>
        /// <param name="model"></param>
        /// <param name="id"></param>
        /// <param name="type">1 成功;2失败</param>
        public void LoginLog(UserLoginRequest model, Guid userid, int type)
        {
            var  userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
            Guid logid    = Guid.NewGuid();
            var  entity   = new CrmExecuteEntity("mcs_userloginlog", logid);

            entity.Attributes.Add("mcs_userid", new CrmEntityReference(entityName, userid));
            entity.Attributes.Add("mcs_ip", model.ip);
            entity.Attributes.Add("mcs_loginresult", type);
            entity.Attributes.Add("mcs_logintime", DateTime.Now.ToUniversalTime());
            _crmService.Create(entity, userInfo?.systemuserid);
        }
Beispiel #17
0
        /// <summary>
        /// 新建附件
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ValidateResult> Add(List <AttachmentAddResponse> model)
        {
            var validateResult = new ValidateResult();

            try
            {
                foreach (var item in model)
                {
                    var entity = new CrmExecuteEntity("mcs_attachment", Guid.NewGuid());
                    if (item.attrname != null)
                    {
                        entity.Attributes.Add(item.attrname, new CrmEntityReference(item.entitylookup, Guid.Parse(item.id)));
                    }
                    if (item.filename != null)
                    {
                        entity.Attributes.Add("mcs_filename", item.filename);
                    }
                    if (item.filesize != null)
                    {
                        entity.Attributes.Add("mcs_filesize", item.filesize);
                    }
                    entity.Attributes.Add("mcs_filetype", item.filename.Split('.')[1]);
                    if (item.url != null)
                    {
                        entity.Attributes.Add("mcs_fileurl", item.url);
                    }
                    if (item.mcs_partnertype != null)
                    {
                        entity.Attributes.Add("mcs_partnertype", item.mcs_partnertype);
                    }
                    if (item.mcs_filecategory != null)
                    {
                        entity.Attributes.Add("mcs_filecategory", item.mcs_filecategory);
                    }

                    await _crmService.Create(entity, null);
                }

                #region 组装数据返回
                validateResult.Result      = true;
                validateResult.Description = "操作成功";
                #endregion
            }
            catch (Exception e)
            {
                validateResult.Result      = false;
                validateResult.Description = e.Message;
            }

            return(validateResult);
        }
Beispiel #18
0
        public async Task UpdateLastExecuteTime(SQueue queue, Guid id)
        {
            var crmService = await getCrmService(queue.ServerName);

            CrmExecuteEntity entity = new CrmExecuteEntity(queue.Name, id)
            {
                IsActivity = false,
                Attributes = new Dictionary <string, object>()
                {
                    { "ms_lastexecutetime", DateTime.UtcNow },
                }
            };
            await crmService.Update(entity);
        }
Beispiel #19
0
        /// <summary>
        /// 密码修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ValidateResult> UpdateUserPwd(UserLoginRequest model)
        {
            var userInfo       = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
            var validateResult = new ValidateResult();

            try
            {
                var       crmRequestHelper = new CrmRequestHelper();
                XDocument fetchXdoc        = null;
                fetchXdoc = await _repository.GetUserPwd(model);

                var entities = await crmRequestHelper.ExecuteAsync(_crmService, "mcs_userkeys", fetchXdoc);

                if (entities.Results.Count > 0)
                {
                    var res    = entities.Results[0];
                    var entity = new CrmExecuteEntity("mcs_userkeys", res.Id);
                    model.pwd = EncrypHelper.encrypt(model.pwd);
                    if (!string.IsNullOrEmpty(model.pwd))
                    {
                        entity.Attributes.Add("mcs_hashvalue", model.pwd);
                    }
                    //c端用户实体
                    await _crmService.Update(entity, userInfo?.systemuserid);

                    #region 组装数据返回
                    validateResult.Result      = true;
                    validateResult.Description = "操作成功";
                }
                else
                {
                    validateResult.Result      = false;
                    validateResult.Description = "操作失败";
                }

                #endregion
            }
            catch (Exception e)
            {
                validateResult.Result      = false;
                validateResult.Description = e.Message;
            }

            return(validateResult);
        }
Beispiel #20
0
        /// <summary>
        /// 预约单创建与修改(包括取消预约)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ValidateResult <CrmEntity> > AddOrEdit(AppointmentInfoAddOrEditRequest request)
        {
            var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);

            if (userInfo != null && !string.IsNullOrWhiteSpace(userInfo.mcs_dealerid))
            {
                request.appointmentinfo.mcs_dealerid = Guid.Parse(userInfo.mcs_dealerid);
            }
            if (userInfo != null && userInfo.systemuserid != null)
            {
                request.appointmentinfo.mcs_serviceadvisorid = userInfo.systemuserid;
            }
            var validateResult  = new ValidateResult <CrmEntity>();
            var reusetCrmEntity = new CrmEntity("mcs_appointmentinfo", new Guid());

            //新增预约单
            if (request.appointmentinfo.mcs_appointmentinfoid == null)
            {
                var createEntity = new CrmExecuteEntity("mcs_appointmentinfo", Guid.NewGuid());
                //预约状态 创建默认是待跟进
                createEntity.Attributes.Add("mcs_status", 10);
                BasicAssignment(createEntity, request);
                var reuset = await _crmService.Create(createEntity, userInfo?.systemuserid);

                reusetCrmEntity.Id = createEntity.Id;
            }
            //编辑预约单
            if (request.appointmentinfo.mcs_appointmentinfoid != null)
            {
                var updateEntity = new CrmExecuteEntity("mcs_appointmentinfo", (Guid)request.appointmentinfo.mcs_appointmentinfoid);
                //预约状态
                if (request.appointmentinfo.mcs_status != null)
                {
                    updateEntity.Attributes.Add("mcs_status", request.appointmentinfo.mcs_status);
                }
                BasicAssignment(updateEntity, request);
                await _crmService.Update(updateEntity, userInfo?.systemuserid);

                reusetCrmEntity.Id = (Guid)request.appointmentinfo.mcs_appointmentinfoid;
            }
            validateResult.Data        = reusetCrmEntity;
            validateResult.Result      = true;
            validateResult.Description = "操作成功";
            return(validateResult);
        }
Beispiel #21
0
        public async Task <ValidateResult <string> > submitpdi(DeliveryEditRequest deliveryEditRequest)
        {
            try
            {
                var validateResult   = new ValidateResult <string>();
                var crmRequestHelper = new CrmRequestHelper();
                var entity           = await crmRequestHelper.Retrieve(_crmService, entityName, Guid.Parse(deliveryEditRequest.id));

                if (entity != null)
                {
                    var deliverystatus = entity.Attributes.Value <int>("mcs_deliverystatus");
                    //待检测
                    if (deliverystatus != 2)
                    {
                        validateResult.Result      = false;
                        validateResult.Description = "交车单状态不符合!";
                        return(validateResult);
                    }
                    var delivery   = new CrmExecuteEntity(entityName, Guid.Parse(deliveryEditRequest.id));
                    var systemuser = new CrmEntityReference(systemuserEntityName, Guid.Parse(deliveryEditRequest.adviser));
                    delivery.Attributes.Add("mcs_serviceproxyid", systemuser);
                    delivery.Attributes.Add("mcs_deliverystatus", 3);
                    delivery.Attributes.Add("mcs_submitpdi", true);
                    delivery.Attributes.Add("mcs_submitpdion", DateTime.UtcNow);
                    await _crmService.Update(delivery);

                    validateResult.Result      = true;
                    validateResult.Description = "操作成功";
                    return(validateResult);
                }
                else
                {
                    validateResult.Result      = false;
                    validateResult.Description = "交车单不存在!";
                    return(validateResult);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #22
0
        public async Task <ValidateResult <string> > appointment(DeliveryEditRequest deliveryEditRequest)
        {
            try
            {
                var validateResult   = new ValidateResult <string>();
                var crmRequestHelper = new CrmRequestHelper();
                var entity           = await crmRequestHelper.Retrieve(_crmService, entityName, Guid.Parse(deliveryEditRequest.id));

                if (entity != null)
                {
                    var deliverystatus = entity.Attributes.Value <int>("mcs_deliverystatus");
                    //已检测
                    if (deliverystatus != 3)
                    {
                        validateResult.Result      = false;
                        validateResult.Description = "交车单状态不符合!";
                        return(validateResult);
                    }
                    var delivery = new CrmExecuteEntity(entityName, Guid.Parse(deliveryEditRequest.id));
                    delivery.Attributes.Add("mcs_customerrequest", deliveryEditRequest.customerrequest);
                    delivery.Attributes.Add("mcs_appointmenton", deliveryEditRequest.appointmenton.ToUniversalTime());
                    delivery.Attributes.Add("mcs_deliverystatus", 4);
                    await _crmService.Update(delivery);

                    validateResult.Result      = true;
                    validateResult.Description = "操作成功";
                    return(validateResult);
                }
                else
                {
                    validateResult.Result      = false;
                    validateResult.Description = "交车单不存在!";
                    return(validateResult);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #23
0
        /// <summary>
        /// 唯一线索编辑
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ValidateResult <CrmEntity> > Edit(OnlyLeadEditRequest request)
        {
            var validateResult  = new ValidateResult <CrmEntity>();
            var userInfo        = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo);
            var reusetCrmEntity = new CrmEntity("mcs_onlylead", request.onlylead.mcs_onlyleadid);

            //编辑
            if (request.onlylead.mcs_onlyleadid != null)
            {
                var updateEntity = new CrmExecuteEntity("mcs_onlylead", request.onlylead.mcs_onlyleadid);

                BasicAssignment(updateEntity, request);
                await _crmService.Update(updateEntity, userInfo?.systemuserid);

                reusetCrmEntity.Id = updateEntity.Id;
            }

            validateResult.Data        = reusetCrmEntity;
            validateResult.Result      = true;
            validateResult.Description = "操作成功";
            return(validateResult);
        }
Beispiel #24
0
        public async Task <ValidateResult <string> > moneycompleted(DeliveryDetailRequest deliveryDetailRequest)
        {
            try
            {
                var validateResult   = new ValidateResult <string>();
                var crmRequestHelper = new CrmRequestHelper();
                var entity           = await crmRequestHelper.Retrieve(_crmService, entityName, Guid.Parse(deliveryDetailRequest.Id));

                if (entity != null)
                {
                    var deliverystatus = entity.Attributes.Value <int>("mcs_deliverystatus");
                    //待检测
                    if (deliverystatus != 4)
                    {
                        validateResult.Result      = false;
                        validateResult.Description = "交车单状态不符合!";
                        return(validateResult);
                    }
                    var delivery = new CrmExecuteEntity(entityName, Guid.Parse(deliveryDetailRequest.Id));
                    delivery.Attributes.Add("mcs_settlestatus", 1);
                    delivery.Attributes.Add("mcs_deliverystatus", 5);
                    await _crmService.Update(delivery);

                    validateResult.Result      = true;
                    validateResult.Description = "操作成功";
                    return(validateResult);
                }
                else
                {
                    validateResult.Result      = false;
                    validateResult.Description = "交车单不存在!";
                    return(validateResult);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #25
0
        public async Task <bool> UpdateUserNoticeReadStatus(UserNoticeRequest request)
        {
            bool result = false;

            try
            {
                Guid guid = Guid.Empty;
                if (!string.IsNullOrEmpty(request.Id))
                {
                    guid = Guid.Parse(request.Id);
                }
                CrmExecuteEntity updateEntity = new CrmExecuteEntity("mcs_user_msg", guid);
                updateEntity.Attributes.Add("mcs_readstatus", request.mcs_readstatus);
                await _crmService.Update(updateEntity);

                result = true;
            }
            catch (Exception ex)
            {
                result = false;
            }
            return(result);
        }
Beispiel #26
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)
            {
            }
        }
Beispiel #27
0
        /// <summary>
        /// 创建或编辑实体
        /// </summary>
        /// <param name="crmEntity"></param>
        /// <returns></returns>
        public async Task <ValidateResult <CrmEntity> > AddOrUpdate(JObject jo)
        {
            var supportorderGuid   = Guid.NewGuid();
            var supportorderEntity = new CrmExecuteEntity("mcs_supportorder", supportorderGuid);
            var outGuid            = Guid.NewGuid();

            #region 更新主要实体
            if (jo.ContainsKey("Id") && Guid.TryParse(jo["Id"].ToString(), out outGuid))
            {
                supportorderGuid      = Guid.Parse(jo.Value <string>("Id"));
                supportorderEntity.Id = supportorderGuid;
            }
            if (jo.ContainsKey("mcs_title"))
            {
                supportorderEntity.Attributes.Add("mcs_title", jo.Value <string>("mcs_title"));
            }
            if (jo.ContainsKey("mcs_serviceadvisorid") && Guid.TryParse(jo["mcs_serviceadvisorid"].ToString(), out outGuid))
            {
                supportorderEntity.Attributes.Add("mcs_serviceadvisorid", new CrmEntityReference("systemuser", Guid.Parse(jo.Value <string>("mcs_serviceadvisorid"))));
            }
            if (jo.ContainsKey("mcs_repairnameid") && Guid.TryParse(jo["mcs_repairnameid"].ToString(), out outGuid))
            {
                supportorderEntity.Attributes.Add("mcs_repairnameid", new CrmEntityReference("systemuser", Guid.Parse(jo.Value <string>("mcs_repairnameid"))));
            }
            if (jo.ContainsKey("mcs_serviceorderid") && Guid.TryParse(jo["mcs_serviceorderid"].ToString(), out outGuid))
            {
                supportorderEntity.Attributes.Add("mcs_serviceorderid", new CrmEntityReference("mcs_serviceproxy", Guid.Parse(jo.Value <string>("mcs_serviceorderid"))));
            }
            if (jo.ContainsKey("mcs_batterymodel"))
            {
                supportorderEntity.Attributes.Add("mcs_batterymodel", jo.Value <string>("mcs_batterymodel"));
            }
            if (jo.ContainsKey("mcs_batteryserialnumber"))
            {
                supportorderEntity.Attributes.Add("mcs_batteryserialnumber", jo.Value <string>("mcs_batteryserialnumber"));
            }
            if (jo.ContainsKey("mcs_carplate"))
            {
                supportorderEntity.Attributes.Add("mcs_carplate", jo.Value <string>("mcs_carplate"));
            }
            if (jo.ContainsKey("mcs_customerid") && Guid.TryParse(jo["mcs_customerid"].ToString(), out outGuid))
            {
                supportorderEntity.Attributes.Add("mcs_customerid", new CrmEntityReference("mcs_vehowner", Guid.Parse(jo.Value <string>("mcs_customerid"))));
            }
            if (jo.ContainsKey("mcs_customername"))
            {
                supportorderEntity.Attributes.Add("mcs_customername", jo.Value <string>("mcs_customername"));
            }
            if (jo.ContainsKey("mcs_customerphone"))
            {
                supportorderEntity.Attributes.Add("mcs_customerphone", jo.Value <string>("mcs_customerphone"));
            }
            if (jo.ContainsKey("mcs_diagnosiscontent"))
            {
                supportorderEntity.Attributes.Add("mcs_diagnosiscontent", jo.Value <string>("mcs_diagnosiscontent"));
            }
            if (jo.ContainsKey("mcs_email"))
            {
                supportorderEntity.Attributes.Add("mcs_email", jo.Value <string>("mcs_email"));
            }
            if (jo.ContainsKey("mcs_enginenumber"))
            {
                supportorderEntity.Attributes.Add("mcs_enginenumber", jo.Value <string>("mcs_enginenumber"));
            }
            if (jo.ContainsKey("mcs_ismodifiedparts"))
            {
                supportorderEntity.Attributes.Add("mcs_ismodifiedparts", jo.Value <bool?>("mcs_ismodifiedparts"));
            }
            if (jo.ContainsKey("mcs_malfunctioncontent"))
            {
                supportorderEntity.Attributes.Add("mcs_malfunctioncontent", jo.Value <string>("mcs_malfunctioncontent"));
            }
            if (jo.ContainsKey("mcs_malfunctiontypeid"))
            {
                supportorderEntity.Attributes.Add("mcs_malfunctiontypeid", new CrmEntityReference("mcs_malfunctiontype", Guid.Parse(jo.Value <string>("mcs_malfunctiontypeid"))));
            }
            if (jo.ContainsKey("mcs_mileage"))
            {
                supportorderEntity.Attributes.Add("mcs_mileage", jo.Value <decimal?>("mcs_mileage"));
            }
            if (jo.ContainsKey("mcs_modifiedpartscontent"))
            {
                supportorderEntity.Attributes.Add("mcs_modifiedpartscontent", jo.Value <string>("mcs_modifiedpartscontent"));
            }
            if (jo.ContainsKey("mcs_phone"))
            {
                supportorderEntity.Attributes.Add("mcs_phone", jo.Value <string>("mcs_phone"));
            }
            if (jo.ContainsKey("mcs_repairdate"))
            {
                supportorderEntity.Attributes.Add("mcs_repairdate", jo.Value <DateTime?>("mcs_repairdate").Value.ToUniversalTime());
            }
            if (jo.ContainsKey("mcs_techsystem"))
            {
                supportorderEntity.Attributes.Add("mcs_techsystem", jo.Value <int?>("mcs_techsystem"));
            }
            if (jo.ContainsKey("mcs_cartypeid") && Guid.TryParse(jo["mcs_cartypeid"].ToString(), out outGuid))
            {
                supportorderEntity.Attributes.Add("mcs_cartypeid", new CrmEntityReference("mcs_cartype", Guid.Parse(jo.Value <string>("mcs_cartypeid"))));
            }
            if (jo.ContainsKey("Id") && Guid.TryParse(jo["Id"].ToString(), out outGuid))
            {
                await _crmService.Update(supportorderEntity);
            }
            else
            {
                await _crmService.Create(supportorderEntity);
            }
            #endregion

            #region  除旧的经销商附件
            var deleteAttachmentList = await _crmService.RetrieveMultiple("mcs_attachment", $"$filter=_mcs_supportorderid_value eq {supportorderGuid}");

            foreach (var deleteAttachment in deleteAttachmentList.Results)
            {
                await _crmService.Delete("mcs_attachment", deleteAttachment.Id);
            }
            #endregion

            #region 更新经销商附件

            if (jo.ContainsKey("fileEntityArray"))
            {
                var fileArray = jo.Value <JArray>("fileEntityArray");
                foreach (var attachmentJo in fileArray)
                {
                    var attachmentGuid   = Guid.NewGuid();
                    var attachmentEntity = new CrmExecuteEntity("mcs_attachment", attachmentGuid);
                    attachmentEntity.Attributes.Add("mcs_supportorderid", new CrmEntityReference("mcs_supportorder", supportorderGuid));
                    attachmentEntity.Attributes.Add("mcs_filename", attachmentJo.Value <string>("mcs_filename"));
                    attachmentEntity.Attributes.Add("mcs_filesize", attachmentJo.Value <string>("mcs_filesize"));
                    attachmentEntity.Attributes.Add("mcs_fileurl", attachmentJo.Value <string>("mcs_fileurl"));
                    await _crmService.Create(attachmentEntity);
                }
            }
            #endregion


            var validateResult  = new ValidateResult <CrmEntity>();
            var reusetCrmEntity = await _crmService.Retrieve("mcs_supportorder", supportorderGuid, "$select=mcs_supportorderid,mcs_name");

            validateResult.Data        = reusetCrmEntity;
            validateResult.Result      = true;
            validateResult.Description = "操作成功";
            return(validateResult);
        }
Beispiel #28
0
        /// <summary>
        /// 创建或编辑实体
        /// </summary>
        /// <param name="crmEntity"></param>
        /// <returns></returns>
        public async Task <Guid> AddOrEditEntity(TechnicalSupportRequest request)
        {
            #region 创建编辑主要实体
            Guid guid = Guid.Empty;
            try
            {
                guid = string.IsNullOrEmpty(request.Id) ? Guid.NewGuid() : Guid.Parse(request.Id);
                CrmExecuteEntity createorUpdateEntity = new CrmExecuteEntity(request.EntityName, guid);

                if (!string.IsNullOrEmpty(request.mcs_title))
                {
                    createorUpdateEntity.Attributes.Add("mcs_title", request.mcs_title);
                }

                if (!string.IsNullOrEmpty(request.mcs_serviceadvisorid))
                {
                    createorUpdateEntity.Attributes.Add("mcs_serviceadvisorid", new CrmEntityReference("systemuser", Guid.Parse(request.mcs_serviceadvisorid)));
                }

                if (!string.IsNullOrEmpty(request.mcs_repairnameid))
                {
                    createorUpdateEntity.Attributes.Add("mcs_repairnameid", new CrmEntityReference("systemuser", Guid.Parse(request.mcs_repairnameid)));
                }
                if (!string.IsNullOrEmpty(request.mcs_serviceorderid))
                {
                    createorUpdateEntity.Attributes.Add("mcs_serviceorderid", new CrmEntityReference("mcs_serviceproxy", Guid.Parse(request.mcs_serviceorderid)));
                }
                if (!string.IsNullOrEmpty(request.mcs_batterymodel))
                {
                    createorUpdateEntity.Attributes.Add("mcs_batterymodel", request.mcs_batterymodel);
                }
                if (!string.IsNullOrEmpty(request.mcs_batteryserialnumber))
                {
                    createorUpdateEntity.Attributes.Add("mcs_batteryserialnumber", request.mcs_batteryserialnumber);
                }
                if (!string.IsNullOrEmpty(request.mcs_carplate))
                {
                    createorUpdateEntity.Attributes.Add("mcs_carplate", request.mcs_carplate);
                }
                if (!string.IsNullOrEmpty(request.mcs_customerid))
                {
                    createorUpdateEntity.Attributes.Add("mcs_customerid", new CrmEntityReference("mcs_vehowner", Guid.Parse(request.mcs_customerid)));
                }
                if (!string.IsNullOrEmpty(request.mcs_customername))
                {
                    createorUpdateEntity.Attributes.Add("mcs_customername", request.mcs_customername);
                }
                if (!string.IsNullOrEmpty(request.mcs_customerphone))
                {
                    createorUpdateEntity.Attributes.Add("mcs_customerphone", request.mcs_customerphone);
                }
                if (!string.IsNullOrEmpty(request.mcs_diagnosiscontent))
                {
                    createorUpdateEntity.Attributes.Add("mcs_diagnosiscontent", request.mcs_diagnosiscontent);
                }
                if (!string.IsNullOrEmpty(request.mcs_email))
                {
                    createorUpdateEntity.Attributes.Add("mcs_email", request.mcs_email);
                }
                if (!string.IsNullOrEmpty(request.mcs_enginenumber))
                {
                    createorUpdateEntity.Attributes.Add("mcs_enginenumber", request.mcs_enginenumber);
                }
                if (request.mcs_ismodifiedparts.HasValue)
                {
                    createorUpdateEntity.Attributes.Add("mcs_ismodifiedparts", request.mcs_ismodifiedparts.Value);
                }
                if (!string.IsNullOrEmpty(request.mcs_malfunctioncontent))
                {
                    createorUpdateEntity.Attributes.Add("mcs_malfunctioncontent", request.mcs_malfunctioncontent);
                }
                if (!string.IsNullOrEmpty(request.mcs_malfunctiontypeid))
                {
                    createorUpdateEntity.Attributes.Add("mcs_malfunctiontypeid", new CrmEntityReference("mcs_malfunctiontype", Guid.Parse(request.mcs_malfunctiontypeid)));
                }
                if (request.mcs_mileage.HasValue)
                {
                    createorUpdateEntity.Attributes.Add("mcs_mileage", request.mcs_mileage.Value);
                }
                if (!string.IsNullOrEmpty(request.mcs_modifiedpartscontent))
                {
                    createorUpdateEntity.Attributes.Add("mcs_modifiedpartscontent", request.mcs_modifiedpartscontent);
                }
                if (!string.IsNullOrEmpty(request.mcs_phone))
                {
                    createorUpdateEntity.Attributes.Add("mcs_phone", request.mcs_phone);
                }
                if (request.mcs_repairdate.HasValue)
                {
                    createorUpdateEntity.Attributes.Add("mcs_repairdate", request.mcs_repairdate.Value);
                }
                if (!string.IsNullOrEmpty(request.mcs_techsystem))
                {
                    createorUpdateEntity.Attributes.Add("mcs_techsystem", int.Parse(request.mcs_techsystem));
                }
                if (!string.IsNullOrEmpty(request.mcs_cartypeid))
                {
                    createorUpdateEntity.Attributes.Add("mcs_cartypeid", new CrmEntityReference("mcs_cartype", Guid.Parse(request.mcs_cartypeid)));
                }

                if (!string.IsNullOrEmpty(request.Id))
                {
                    await _crmService.Update(createorUpdateEntity);
                }
                else
                {
                    guid = await _crmService.Create(createorUpdateEntity);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            #endregion



            return(guid);
        }
Beispiel #29
0
        /// <summary>
        /// 预约单基础数据赋值
        /// </summary>
        /// <param name="createEntity"></param>
        /// <param name="request"></param>
        private CrmExecuteEntity BasicAssignment(CrmExecuteEntity entity, AppointmentInfoAddOrEditRequest request)
        {
            //VIN码
            if (request.appointmentinfo.mcs_customerid != null)
            {
                var vinEntityRef = new CrmEntityReference("mcs_vehowner", (Guid)request.appointmentinfo.mcs_customerid);
                entity.Attributes.Add("mcs_customerid", vinEntityRef);
            }
            //车主
            if (!string.IsNullOrWhiteSpace(request.appointmentinfo.mcs_customername))
            {
                entity.Attributes.Add("mcs_customername", request.appointmentinfo.mcs_customername);
            }
            //车牌
            if (!string.IsNullOrWhiteSpace(request.appointmentinfo.mcs_carplate))
            {
                entity.Attributes.Add("mcs_carplate", request.appointmentinfo.mcs_carplate);
            }
            //车型
            if (request.appointmentinfo.mcs_cartype != null)
            {
                var carTypeEntityRef = new CrmEntityReference("mcs_carmodel", (Guid)request.appointmentinfo.mcs_cartype);
                entity.Attributes.Add("mcs_cartype", carTypeEntityRef);
            }
            //手机号
            if (!string.IsNullOrWhiteSpace(request.appointmentinfo.mcs_customerphone))
            {
                entity.Attributes.Add("mcs_customerphone", request.appointmentinfo.mcs_customerphone);
            }
            //客户标签
            if (!string.IsNullOrWhiteSpace(request.appointmentinfo.mcs_tag))
            {
                entity.Attributes.Add("mcs_tag", request.appointmentinfo.mcs_tag);
            }
            //预约服务类型
            if (request.appointmentinfo.mcs_ordertype != null)
            {
                entity.Attributes.Add("mcs_ordertype", request.appointmentinfo.mcs_ordertype);
            }
            //预约日期
            if (request.appointmentinfo.mcs_appointmentat != null)
            {
                var mcs_appointmentat = request.appointmentinfo.mcs_appointmentat.Value.ToUniversalTime();//.ToString("yyyy-MM-dd");
                entity.Attributes.Add("mcs_appointmentat", mcs_appointmentat);
            }
            //预约时段
            if (request.appointmentinfo.mcs_appointmentconfigid != null)
            {
                var configEntityRef = new CrmEntityReference("mcs_appointmentconfig", (Guid)request.appointmentinfo.mcs_appointmentconfigid);
                entity.Attributes.Add("mcs_appointmentconfigid", configEntityRef);
            }
            //可预约数量
            if (request.appointmentinfo.mcs_surplusnum != null)
            {
                entity.Attributes.Add("mcs_surplusnum", request.appointmentinfo.mcs_surplusnum);
            }
            //客户要求
            if (!string.IsNullOrWhiteSpace(request.appointmentinfo.mcs_customercomment))
            {
                entity.Attributes.Add("mcs_customercomment", request.appointmentinfo.mcs_customercomment);
            }
            //问题描述
            if (!string.IsNullOrWhiteSpace(request.appointmentinfo.mcs_appointmendescript))
            {
                entity.Attributes.Add("mcs_appointmendescript", request.appointmentinfo.mcs_appointmendescript);
            }
            //取消原因
            if (request.appointmentinfo.mcs_cancelreasonnew != null)
            {
                entity.Attributes.Add("mcs_cancelreasonnew", request.appointmentinfo.mcs_cancelreasonnew);
            }
            //取消描述
            if (!string.IsNullOrWhiteSpace(request.appointmentinfo.mcs_canceldes))
            {
                entity.Attributes.Add("mcs_canceldes", request.appointmentinfo.mcs_canceldes);
            }

            //预约厅店
            if (request.appointmentinfo.mcs_dealerid != null)
            {
                var dealerEntityEF = new CrmEntityReference("mcs_dealer", (Guid)request.appointmentinfo.mcs_dealerid);
                entity.Attributes.Add("mcs_dealerid", dealerEntityEF);
            }
            //服务顾问
            if (request.appointmentinfo.mcs_serviceadvisorid != null)
            {
                var systemUserEntityEF = new CrmEntityReference("systemuser", (Guid)request.appointmentinfo.mcs_serviceadvisorid);
                entity.Attributes.Add("mcs_serviceadvisorid", systemUserEntityEF);
            }

            return(entity);
        }
Beispiel #30
0
        public async Task <ValidateResult <CrmEntity> > AddOrUpdate(JObject jo)
        {
            var actionCode          = jo.Value <int>("actionCode");
            var vehownerJo          = jo.Value <JObject>("Vehowner");
            var carserviceadvisorJo = jo.Value <JObject>("Carserviceadvisor");

            var vehownerGuid          = Guid.NewGuid();
            var carserviceadvisorGuid = Guid.NewGuid();

            var vehownerEntity          = new CrmExecuteEntity("mcs_vehowner", vehownerGuid);
            var carserviceadvisorEntity = new CrmExecuteEntity("mcs_carserviceadvisor", carserviceadvisorGuid);
            var validateResult          = new ValidateResult <CrmEntity>();

            if (actionCode == 2)
            {
                vehownerGuid      = Guid.Parse(vehownerJo.Value <string>("mcs_vehownerid"));
                vehownerEntity.Id = vehownerGuid;

                carserviceadvisorGuid      = Guid.Parse(carserviceadvisorJo.Value <string>("mcs_carserviceadvisorid"));
                carserviceadvisorEntity.Id = carserviceadvisorGuid;
            }
            if (vehownerJo.ContainsKey("mcs_fullname"))
            {
                vehownerEntity.Attributes.Add("mcs_fullname", vehownerJo.Value <string>("mcs_fullname"));
                carserviceadvisorEntity.Attributes.Add("mcs_fullname", vehownerJo.Value <string>("mcs_fullname"));
            }
            if (vehownerJo.ContainsKey("mcs_vehplate"))
            {
                vehownerEntity.Attributes.Add("mcs_vehplate", vehownerJo.Value <string>("mcs_vehplate"));
            }
            if (vehownerJo.ContainsKey("mcs_mobilephone"))
            {
                vehownerEntity.Attributes.Add("mcs_mobilephone", vehownerJo.Value <string>("mcs_mobilephone"));
                carserviceadvisorEntity.Attributes.Add("mcs_mobilephone", vehownerJo.Value <string>("mcs_mobilephone"));
            }
            if (vehownerJo.ContainsKey("mcs_name"))
            {
                vehownerEntity.Attributes.Add("mcs_name", vehownerJo.Value <string>("mcs_name"));
            }
            if (vehownerJo.ContainsKey("mcs_enginennumber"))
            {
                vehownerEntity.Attributes.Add("mcs_enginennumber", vehownerJo.Value <string>("mcs_enginennumber"));
            }
            if (vehownerJo.ContainsKey("mcs_prodtime"))
            {
                vehownerEntity.Attributes.Add("mcs_prodtime", vehownerJo.Value <DateTime?>("mcs_prodtime"));
            }
            if (vehownerJo.ContainsKey("mcs_salesdate"))
            {
                vehownerEntity.Attributes.Add("mcs_salesdate", vehownerJo.Value <DateTime?>("mcs_salesdate"));
            }
            if (vehownerJo.ContainsKey("_mcs_vehtype_value"))
            {
                vehownerEntity.Attributes.Add("mcs_vehtype", new CrmEntityReference("mcs_carmodel", Guid.Parse(vehownerJo.Value <string>("_mcs_vehtype_value"))));
            }
            if (vehownerJo.ContainsKey("mcs_shuttlename"))
            {
                vehownerEntity.Attributes.Add("mcs_shuttlename", vehownerJo.Value <string>("mcs_shuttlename"));
                carserviceadvisorEntity.Attributes.Add("mcs_shuttlename", vehownerJo.Value <string>("mcs_shuttlename"));
            }
            if (vehownerJo.ContainsKey("mcs_shuttlephone"))
            {
                vehownerEntity.Attributes.Add("mcs_shuttlephone", vehownerJo.Value <string>("mcs_shuttlephone"));
                carserviceadvisorEntity.Attributes.Add("mcs_shuttlephone", vehownerJo.Value <string>("mcs_shuttlephone"));
            }


            if (actionCode == 1)
            {
                var dealeridGuid = Guid.Parse(jo.Value <string>("dealerid"));
                vehownerEntity.Attributes.Add("mcs_dealer", new CrmEntityReference("mcs_dealer", dealeridGuid));
                await _crmService.Create(vehownerEntity, null);

                carserviceadvisorEntity.Attributes.Add("mcs_customerid", new CrmEntityReference("mcs_vehowner", vehownerGuid));
                carserviceadvisorEntity.Attributes.Add("mcs_dealerid", new CrmEntityReference("mcs_dealer", dealeridGuid));
                await _crmService.Create(carserviceadvisorEntity, null);
            }
            else
            {
                await _crmService.Update(vehownerEntity, null);

                await _crmService.Update(carserviceadvisorEntity, null);
            }

            #region 组装数据返回
            validateResult.Result      = true;
            validateResult.Description = "操作成功";
            #endregion

            return(validateResult);
        }