示例#1
0
        public async Task <long> CreateShipmentAsync(AShipment_CreateShipment createShipment)
        {
            using var log = BeginFunction(nameof(ShipmentAdminService), nameof(CreateShipmentAsync), createShipment);
            try
            {
                await Assert(SecurityPolicy.AllowEditFulfillment);

                var shipmentId = await FulfillmentMicroService.CreateShipmentAsync(createShipment.MCreateShipment);

                var result = shipmentId;

                log.Result(result);

                return(result);
            }
            catch (Exception ex)
            {
                log.Exception(ex);
                throw;
            }
        }
示例#2
0
        private async Task <long> SaveShipment(EditShipment model)
        {
            if (model.ShipmentId == null)
            {
                var mCreateShipmentItems = new List <MFulfillment_CreateShipmentItem>();
                foreach (var item in model.ShipmentItems)
                {
                    mCreateShipmentItems.Add(new MFulfillment_CreateShipmentItem()
                    {
                        ShipmentRequestItemId = item.ShipmentRequestItemId,
                        Quantity = item.Quantity
                    });
                }

                var mCreateShipment = new MFulfillment_CreateShipment()
                {
                    ShipmentDateTimeUtc = Locale.GetUtcFromLocalTime(model.ShipmentDate),
                    ShippingVendorId    = model.ShippingVendorId,
                    TrackingCode        = model.TrackingNumber,
                    CreateShipmentItems = mCreateShipmentItems
                };

                var aCreateShipment = new AShipment_CreateShipment()
                {
                    MCreateShipment = mCreateShipment
                };

                var shipmentId = await ShipmentAdminService.CreateShipmentAsync(aCreateShipment);

                return(shipmentId);
            }
            else
            {
                var mUpdateShipmentItems = new List <MFulfillment_UpdateShipmentItem>();
                foreach (var item in model.ShipmentItems)
                {
                    mUpdateShipmentItems.Add(new MFulfillment_UpdateShipmentItem()
                    {
                        ShipmentItemId = item.ShipmentItemId.Value,
                        Quantity       = item.Quantity
                    });
                }

                var mUpdateShipment = new MFulfillment_UpdateShipment()
                {
                    ShipmentDateTimeUtc = Locale.GetUtcFromLocalTime(model.ShipmentDate),
                    ShippingVendorId    = model.ShippingVendorId,
                    TrackingCode        = model.TrackingNumber,
                    UpdateShipmentItems = mUpdateShipmentItems
                };

                var aUpdateShipment = new AShipment_UpdateShipment()
                {
                    MUpdateShipment = mUpdateShipment
                };

                await ShipmentAdminService.UpdateShipmentAsync(aUpdateShipment);

                return(model.ShipmentId.Value);
            }
        }