public async Task <DeliveryListResponse> getlist(DeliveryListRequest deliveryListRequest) { try { var crmRequestHelper = new CrmRequestHelper(); var response = new DeliveryListResponse() { }; XDocument fetchXdoc = null; if (!string.IsNullOrWhiteSpace(deliveryListRequest.SearchKey)) { var deliveryListDtoModel = new DeliveryListDtoModel(); deliveryListDtoModel.vinEntitys = GetCrmEntities(vinEntityName, deliveryListRequest, crmRequestHelper).Result; deliveryListDtoModel.roEntitys = GetCrmEntities(roEntityName, deliveryListRequest, crmRequestHelper).Result; fetchXdoc = await _deliveryRepository.GetListFetchXml(deliveryListRequest, deliveryListDtoModel); } else { fetchXdoc = await _deliveryRepository.GetListFetchXml(deliveryListRequest, null); } var entities = await crmRequestHelper.ExecuteAsync(_crmService, entityName, fetchXdoc); response.Deliverys = entities.Results; response.ALLTotalCount = entities.Count; response.PageSize = deliveryListRequest.PageSize; response.CurrentPage = deliveryListRequest.PageIndex; return(response); } catch (Exception ex) { throw ex; } }
public async Task <XDocument> GetRoOrderListFetchXml(DeliveryListRequest deliveryListRequest) { return(await Task <XDocument> .Run(() => { var fetchXml = $@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'> <entity name='mcs_vehorder'> <attribute name='mcs_code' /> <order attribute='createdon' descending='true' /> <filter type='and'> <condition attribute='mcs_code' operator= 'like' value = '%{deliveryListRequest.SearchKey}%' /> </filter> </entity> </fetch>"; return XDocument.Parse(fetchXml); })); }
private async Task <List <CrmEntity> > GetCrmEntities(string entityName, DeliveryListRequest deliveryListRequest, CrmRequestHelper crmRequestHelper) { XDocument fetchXdoc = null; switch (entityName) { case "mcs_vehicle": fetchXdoc = await _deliveryRepository.GetVINListFetchXml(deliveryListRequest); break; case "mcs_vehorder": fetchXdoc = await _deliveryRepository.GetRoOrderListFetchXml(deliveryListRequest); break; } var entitys = await crmRequestHelper.ExecuteAsync(_crmService, entityName, fetchXdoc); return(entitys.Results); }
public async Task <XDocument> GetListFetchXml(DeliveryListRequest deliveryListRequest, DeliveryListDtoModel?deliveryListDtoModel) { return(await Task <XDocument> .Run(() => { var filterStr = ""; if (deliveryListRequest.DeliveryStatus != "-1") { filterStr += $@" <condition attribute='mcs_deliverystatus' operator='eq' value='{deliveryListRequest.DeliveryStatus}' />"; } if (deliveryListDtoModel != null) { if (deliveryListDtoModel.vinEntitys.Count > 0 || deliveryListDtoModel.roEntitys.Count > 0) { filterStr += $@"<filter type='or'>"; if (deliveryListDtoModel.vinEntitys.Count > 0) { filterStr += $@" <condition attribute='mcs_vin' operator='in'>"; foreach (var item in deliveryListDtoModel.vinEntitys) { filterStr += $@"<value >{item.Id}</value>"; } filterStr += "</condition>"; } if (deliveryListDtoModel.roEntitys.Count > 0) { filterStr += $@" <condition attribute='mcs_vehorder' operator='in'>"; foreach (var item in deliveryListDtoModel.roEntitys) { filterStr += $@"<value >{item.Id}</value>"; } filterStr += "</condition>"; } filterStr += $@" <condition attribute='mcs_code' operator= 'like' value = '%{deliveryListRequest.SearchKey}%' />"; filterStr += "</filter >"; } else { filterStr += $@" <condition attribute='mcs_code' operator= 'like' value = '%{deliveryListRequest.SearchKey}%' />"; } } var fetchXml = $@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' count='{deliveryListRequest.PageSize}' page='{deliveryListRequest.PageIndex}'> <entity name='mcs_vehdelivery'> <attribute name='mcs_code' /> <attribute name='createdon' /> <attribute name='mcs_vehorder' /> <attribute name='mcs_dealer' /> <attribute name='mcs_deliverystatus' /> <attribute name='mcs_deliveryon' /> <attribute name='mcs_vin' /> <attribute name='mcs_appointmenton' /> <attribute name='mcs_vehmaterial' /> <attribute name='mcs_pdiapproval' /> <attribute name='mcs_pdidetecton' /> <attribute name='mcs_serviceproxyid' /> <attribute name='mcs_vehdeliveryid' /> <order attribute='createdon' descending='true' /> <filter type='and'> <condition attribute='statecode' operator='eq' value='0' /> <condition attribute='mcs_dealer' operator='eq' value='{deliveryListRequest.DealerId}' /> {filterStr} </filter> <link-entity name='mcs_vehiclematerial' from='mcs_vehiclematerialid' to='mcs_vehmaterial' visible='false' link-type='outer' alias='mcs_vehiclematerial'> <attribute name='mcs_describe' /> <attribute name='mcs_carlr' /> <attribute name='mcs_excolourid' /> <attribute name='mcs_carmodelid' /> <attribute name='mcs_incolourid' /> </link-entity> </entity> </fetch>"; return XDocument.Parse(fetchXml); })); }
public DeliveryListResponse HandleDeliveryListRequest(DeliveryListRequest request) { SqlCommand com; if (request.State == DeliveryState.Alone) { com = new SqlCommand ($"select * from Delivery inner join Tranc on Delivery.TransactionId = Tranc.TransactionId inner join Materials on Tranc.MaterialId=Materials.MaterialId inner join Users on Delivery.DeliveryAdminId=Users.UserID where DeliveryState={(int)request.State}" , Connect.Connection); } else { com = new SqlCommand ($"select * from Delivery inner join Tranc on Delivery.TransactionId = Tranc.TransactionId inner join Materials on Tranc.MaterialId=Materials.MaterialId inner join Users on Delivery.DeliveryAdminId=Users.UserID where DeliverymanId={(int)request.DelivererId} and DeliveryState={(int)request.State}" , Connect.Connection); } SqlDataAdapter da = new SqlDataAdapter(com); DataSet ds = new DataSet(); da.Fill(ds, "DeliveryList"); List <Item> items = new List <Item>(); for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { Item it = new Item() { GUID = (int)ds.Tables[0].Rows[j]["TransactionId"], Name = ds.Tables[0].Rows[j]["MaterialName"].ToString(), Quantity = (int)ds.Tables[0].Rows[j]["MaterialQuantity"], State = (DeliveryState)ds.Tables[0].Rows[j]["TransactionState"] }; if ((TransactionType)ds.Tables[0].Rows[j]["TransactionType"] == TransactionType.DONATION) { it.StartID = (int)ds.Tables[0].Rows[j]["UserId"]; it.FinishID = (int)ds.Tables[0].Rows[j]["DeliveryAdminId"]; it.Departure = ds.Tables[0].Rows[j]["Address"].ToString(); it.Destination = ds.Tables[0].Rows[j]["HomeAddress"].ToString(); } else { it.StartID = (int)ds.Tables[0].Rows[j]["DeliveryAdminId"]; it.FinishID = (int)ds.Tables[0].Rows[j]["UserId"]; it.Departure = ds.Tables[0].Rows[j]["HomeAddress"].ToString(); it.Destination = ds.Tables[0].Rows[j]["Address"].ToString(); } if (ds.Tables[0].Rows[j]["DeliveryBeginDate"] != System.DBNull.Value) { it.StartTime = (string)ds.Tables[0].Rows[j]["DeliveryBeginDate"]; } if (ds.Tables[0].Rows[j]["DeliveryEndDate"] != System.DBNull.Value) { it.FinishTime = (string)ds.Tables[0].Rows[j]["DeliveryEndDate"]; } items.Add(it); } ds.Dispose(); return(new DeliveryListResponse() { Items = items }); }
public async Task <DeliveryListResponse> getlist(DeliveryListRequest deliveryListRequest) { return(await _service.getlist(deliveryListRequest)); }
public static DeliveryListResponse HandleDeliveryListRequest(DeliveryListRequest request) { //TODO:数据库 return(new DeliveryListResponse()); }
public async Task <NewtonsoftJsonActionResult <DeliveryListResponse> > getlist(DeliveryListRequest deliveryListRequest) { return(await _appDelivery.getlist(deliveryListRequest)); }