You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

51 lines
2.0 KiB

using System.Threading.Tasks;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Wms.Store.Domain.Acl.Location;
namespace Win_in.Sfs.Wms.Store.Event;
public static class IHasLocationExtensions
{
public static async Task TrySetLocationAsync(this IHasLocation hasLocation, ILocationAclService locationAclService, string locationCode)
{
if (string.IsNullOrEmpty(hasLocation.LocationErpCode))
{
var location = await locationAclService.GetByCodeAsync(locationCode).ConfigureAwait(false);
if (location != null)
{
hasLocation.LocationErpCode = location.ErpLocationCode;
hasLocation.WarehouseCode = location.WarehouseCode;
}
}
}
public static async Task TrySetLocationAsync(this IHasFromToLocation hasFromTolocation, ILocationAclService locationAclService)
{
if (string.IsNullOrEmpty(hasFromTolocation.FromLocationErpCode))
{
var location = await locationAclService.GetByCodeAsync(hasFromTolocation.FromLocationCode).ConfigureAwait(false);
if (location != null)
{
hasFromTolocation.FromLocationErpCode = location.ErpLocationCode;
if (string.IsNullOrEmpty(hasFromTolocation.FromWarehouseCode))
{
hasFromTolocation.FromWarehouseCode = location.WarehouseCode;
}
}
}
if (string.IsNullOrEmpty(hasFromTolocation.ToLocationErpCode))
{
var location = await locationAclService.GetByCodeAsync(hasFromTolocation.ToLocationCode).ConfigureAwait(false);
if (location != null)
{
hasFromTolocation.ToLocationErpCode = location.ErpLocationCode;
if (string.IsNullOrEmpty(hasFromTolocation.ToWarehouseCode))
{
hasFromTolocation.ToWarehouseCode = location.WarehouseCode;
}
}
}
}
}