Example #1
0
        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;
            }
        }
Example #2
0
        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);
            }));
        }
Example #3
0
        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);
        }
Example #4
0
        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);
            }));
        }
Example #5
0
        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
            });
        }
Example #6
0
 public async Task <DeliveryListResponse> getlist(DeliveryListRequest deliveryListRequest)
 {
     return(await _service.getlist(deliveryListRequest));
 }
Example #7
0
 public static DeliveryListResponse HandleDeliveryListRequest(DeliveryListRequest request)
 {
     //TODO:数据库
     return(new DeliveryListResponse());
 }
Example #8
0
 public async Task <NewtonsoftJsonActionResult <DeliveryListResponse> > getlist(DeliveryListRequest deliveryListRequest)
 {
     return(await _appDelivery.getlist(deliveryListRequest));
 }