예제 #1
0
        public async Task <QueryResult <CrmEntity> > QueryCarmodelList()
        {
            var queryResult = new QueryResult <CrmEntity>();
            var result      = await _crmService.RetrieveMultiple("mcs_carmodel", string.Empty, null, dicHead);

            queryResult.Results = result.Results;
            return(queryResult);
        }
예제 #2
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);
        }