Exemple #1
0
 public async Task <int> GetAllCount(FilterShipment filter)
 {
     using (IDbConnection cn = new SqlConnection(ConnectionString))
     {
         cn.Open();
         DynamicParameters d = new DynamicParameters();
         {
             if (filter.TransporterStatus == ShipmentTransporterStatus.Unassigned)
             {
                 d.Add("@StatusCode", "UAS");
             }
             if (filter.TransporterStatus == ShipmentTransporterStatus.Assigned)
             {
                 d.Add("@StatusCode", "ASS");
             }
             if (filter.TransporterStatus == ShipmentTransporterStatus.OpenMarket)
             {
                 d.Add("@StatusCode", "OPEN");
             }
             if (filter.TransporterStatus == ShipmentTransporterStatus.Completed)
             {
                 d.Add("@StatusCode", "COM");
             }
             if (!string.IsNullOrEmpty(filter.ShipmentStatus))
             {
                 d.Add("@ShipmentStatus", filter.ShipmentStatus);
             }
         }
         return((await cn.QueryAsync <int>(GetShipmentQueryFilteredCount(filter), d)).Count());
     }
 }
        public async Task <IEnumerable <ShipmentModel> > GetAll(int customerId, int filterType, bool inPending, int startItem, int numberOfRetrievedItems,
                                                                string language)
        {
            var currentUser = await _authenticationService.GetUser(User.Identity.Name);

            if (currentUser.CustomerId != customerId)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError, "Provided customer is not assigned to your account");
            }
            language.ConvertLocaleStringToServerLanguage();

            if (currentUser.CustomerId != customerId)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError, "Provided customer is not assigned to your account");
            }

            var searchFilter = new FilterShipment
            {
                CustomerId        = currentUser.CustomerId.Value,
                StartItem         = startItem,
                Amount            = numberOfRetrievedItems,
                TransporterStatus = (ShipmentTransporterStatus)filterType,
                Pending           = inPending,
                Declined          = !inPending
            };
            var shipments = await _shipmentService.GetAll(searchFilter);

            return(shipments.OrderByDescending(item => item.Id));
        }
Exemple #3
0
        private string GetShipmentQueryFilteredCount(FilterShipment filter)
        {
            if (filter.StartItem < 0)
            {
                filter.StartItem = 0;
            }
            if (filter.Amount < 0)
            {
                filter.Amount = 9999;
            }
            var sb = new StringBuilder();

            sb.Append(@"SELECT  
      [Shipment].[Id]
from Shipment 
where 1=1");
            if (filter.CustomerId.HasValue)
            {
                sb.Append(" and Shipment.CustomerId=" + filter.CustomerId.Value);
            }
            if (!string.IsNullOrEmpty(filter.ShipmentStatus))
            {
                sb.Append(" and Shipment.ShipmentStatus=@ShipmentStatus");
            }
            if (filter.TransporterId.HasValue)
            {
                sb.Append(" and Shipment.TransporterId=" + filter.TransporterId.Value);
            }

            if (filter.TransporterStatus == ShipmentTransporterStatus.Assigned)
            {
                sb.Append(" and Shipment.ShipmentStatus=@StatusCode");
                if (filter.Declined)
                {
                    sb.Append(@" and exists (select ShipmentTransporter.Id from ShipmentTransporter 
                    where  Shipment.Id=ShipmentTransporter.ShipmentId and ShipmentTransporter.Declined=1)");
                }
                else if (filter.Pending)
                {
                    sb.Append(@" and exists (select ShipmentTransporter.Id from ShipmentTransporter 
                    where Shipment.Id=ShipmentTransporter.ShipmentId and ShipmentTransporter.Declined=0)");
                }
            }
            if (filter.TransporterStatus == ShipmentTransporterStatus.OpenMarket ||
                filter.TransporterStatus == ShipmentTransporterStatus.Completed ||
                filter.TransporterStatus == ShipmentTransporterStatus.Unassigned)
            {
                sb.Append(" and Shipment.ShipmentStatus=@StatusCode");
            }

            return(sb.ToString());
        }
        public async Task Test_GetShipmentByStatuses_Is_Ok()
        {
            try
            {
                FilterShipment f = new FilterShipment {
                    CustomerId        = 1, StartItem = 0,
                    Amount            = 5,
                    TransporterStatus = ShipmentTransporterStatus.Unassigned
                };
                List <ShipmentModel> model =
                    await _shipmentService.GetAll(f);

                f.TransporterStatus = ShipmentTransporterStatus.Completed;
                model =
                    await _shipmentService.GetAll(f);

                f.TransporterStatus = ShipmentTransporterStatus.OpenMarket;
                model =
                    await _shipmentService.GetAll(f);

                f.TransporterStatus = ShipmentTransporterStatus.Unassigned;
                model =
                    await _shipmentService.GetAll(f);

                f.TransporterStatus = ShipmentTransporterStatus.Assigned;
                model =
                    await _shipmentService.GetAll(f);

                f.Declined = true;
                model      =
                    await _shipmentService.GetAll(f);

                f.Declined = false;
                f.Pending  = true;
                model      =
                    await _shipmentService.GetAll(f);
            }
            catch (Exception ex)
            {
                Assert.IsFalse(true);
            }
            Assert.IsTrue(true);
        }
        public async Task <int> GetCount(int customerId, int filterType,
                                         string language)
        {
            var currentUser = await _authenticationService.GetUser(User.Identity.Name);

            if (currentUser.CustomerId != customerId)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError, "Provided customer is not assigned to your account");
            }
            language.ConvertLocaleStringToServerLanguage();

            var searchFilter = new FilterShipment
            {
                CustomerId        = currentUser.CustomerId.Value,
                StartItem         = 0,
                Amount            = 10000,
                TransporterStatus = (ShipmentTransporterStatus)filterType
            };
            var shipmentsCount = await _shipmentService.GetAllCount(searchFilter);

            return(shipmentsCount);
        }
Exemple #6
0
        private string GetQueryFiltered(FilterShipment filter)
        {
            if (filter.StartItem < 0)
            {
                filter.StartItem = 0;
            }
            if (filter.Amount < 0)
            {
                filter.Amount = 9999;
            }
            var sb = new StringBuilder();

            sb.Append(@"SELECT  RowConstrainedResult.* from (select  ROW_NUMBER() OVER 
( ORDER BY Shipment.Id ) AS RowNum
      ,[Shipment].[Id]
      ,[Shipment].[Reference]
      ,[Shipment].[PoNumber]
      ,[Shipment].[PickUpDate]
      ,[Shipment].[DeliveryDate]
      ,[Shipment].[CustomerId]
      ,[Shipment].[SenderAddressId]
      ,[Shipment].[SenderContactPerson]
      ,[Shipment].[SenderPhone]
      ,[Shipment].[SenderRemark]
      ,[Shipment].[ReceiverAddressId]
      ,[Shipment].[ReceiverContactPerson]
      ,[Shipment].[ReceiverPhone]
      ,[Shipment].[ReceiverRemark]
      ,isnull([Shipment].[TotalPrice],ShipmentTransporter.Price) as TotalPrice
      ,[Shipment].[TotalVolume]
      ,[Shipment].[TotalQuatity]
      ,[Shipment].[TotalWeight]
      ,[Shipment].[ShipmentStatus]
      ,[Shipment].[TransporterId]
      ,[Shipment].[UserIdCreated]
      ,[Shipment].[DateCreated]
      ,[Shipment].[UserIdModified]
      ,[Shipment].[InvoiceAmount]
      ,[Shipment].[InvoiceComment]
      ,[Shipment].[InvoiceDate]
      ,[Shipment].[PickUpComment]
      ,[Shipment].[DeliveryComment]
      ,[Shipment].[DeliveryPod]
      ,[Shipment].[DateModified]
      ,isnull(UserCreatedTable.FirstName,'') + ' '+isnull(UserCreatedTable.LastName,'') as UserCreated
	  ,isnull(UserModifiedTable.FirstName,'') + ' '+isnull(UserModifiedTable.LastName,'') as UserModified
      ,isnull(Transporter.Name,AssignedTransporter.Name) as TransporterName
      ,FromAddress.Name as AddressFrom
      ,ToAddress.Name as AddressTo");
            if (filter.TransporterStatus == ShipmentTransporterStatus.OpenMarket)
            {
                sb.Append(@" ,(select count(ShipmentTransporter.Id) As OfferCount from ShipmentTransporter where 
                        ShipmentTransporter.ShipmentId=Shipment.Id) as OfferCount");
            }

            sb.Append(@" from Shipment 
left outer join [ApplicationUser] as UserCreatedTable on UserCreatedTable.Id=Shipment.UserIdCreated
left outer join [ApplicationUser] as UserModifiedTable on UserModifiedTable.Id=Shipment.UserIdModified
left outer join [Transporter] on Transporter.Id=Shipment.TransporterId
left outer join [Address] as FromAddress on FromAddress.Id=Shipment.SenderAddressId
left outer join [Address] as ToAddress on ToAddress.Id=Shipment.ReceiverAddressId
left outer join ShipmentTransporter on ShipmentTransporter.ShipmentId =Shipment.Id and ShipmentTransporter.Assigned=1
left outer join Transporter as AssignedTransporter on AssignedTransporter.Id=ShipmentTransporter.TransporterId ");

            sb.Append(@" where 1=1");
            if (filter.CustomerId.HasValue)
            {
                sb.Append(" and Shipment.CustomerId=" + filter.CustomerId.Value);
            }
            if (!string.IsNullOrEmpty(filter.ShipmentStatus))
            {
                sb.Append(" and Shipment.ShipmentStatus=@ShipmentStatus");
            }
            if (filter.TransporterId.HasValue)
            {
                sb.Append(" and Shipment.TransporterId=" + filter.TransporterId.Value);
            }

            if (filter.TransporterStatus == ShipmentTransporterStatus.Assigned)
            {
                sb.Append(" and  Shipment.ShipmentStatus=@StatusCode");
                if (filter.Declined)
                {
                    sb.Append(@" and exists (select ShipmentTransporter.Id from ShipmentTransporter 
                    where  Shipment.Id=ShipmentTransporter.ShipmentId and ShipmentTransporter.Declined=1)");
                }
                else if (filter.Pending)
                {
                    sb.Append(@" and exists (select ShipmentTransporter.Id from ShipmentTransporter 
                    where Shipment.Id=ShipmentTransporter.ShipmentId and ShipmentTransporter.Declined=0)");
                }
            }
            if (filter.TransporterStatus == ShipmentTransporterStatus.OpenMarket ||
                filter.TransporterStatus == ShipmentTransporterStatus.Completed ||
                filter.TransporterStatus == ShipmentTransporterStatus.Unassigned)
            {
                sb.Append(" and  Shipment.ShipmentStatus=@StatusCode");
            }

            sb.Append(@" ) AS RowConstrainedResult
WHERE  RowNum between " + filter.StartItem + @" and " + (filter.StartItem + filter.Amount - 1) + @" ORDER BY RowNum ");
            return(sb.ToString());
        }