83 lines
3.3 KiB
C#
83 lines
3.3 KiB
C#
using SytelineSaAppEfDataModel.Dtos;
|
|
|
|
namespace OrdersManagement.Services;
|
|
|
|
public class WarehouseService(IHttpClientFactory httpClientFactory)
|
|
{
|
|
private readonly HttpClient _httpClient = httpClientFactory.CreateClient("FaKrosnoApi");
|
|
|
|
public async Task<IEnumerable<WzClientDto>> GetAllClientsAsync()
|
|
{
|
|
var response = await _httpClient.GetAsync($"api/WzClient");
|
|
response.EnsureSuccessStatusCode();
|
|
return await response.Content.ReadFromJsonAsync<IEnumerable<WzClientDto>>();
|
|
}
|
|
|
|
public async Task<IEnumerable<MaterialTransactionDto>> GetAllClientWzsAsync(string customerNumber, int customerSequence)
|
|
{
|
|
var response = await _httpClient.GetAsync(
|
|
$"api/WzHeader/by-customer-number?customerNumber={customerNumber}&customerSequence={customerSequence}");
|
|
response.EnsureSuccessStatusCode();
|
|
return await response.Content.ReadFromJsonAsync<IEnumerable<MaterialTransactionDto>>();
|
|
}
|
|
|
|
public async Task CreateWzHeaderAsync(WzHeaderDto wzHeader)
|
|
{
|
|
var response = await _httpClient.PostAsJsonAsync("api/WzHeader", wzHeader);
|
|
response.EnsureSuccessStatusCode();
|
|
if (response.StatusCode != System.Net.HttpStatusCode.Created)
|
|
{
|
|
throw new Exception("Failed to create WzHeader");
|
|
}
|
|
}
|
|
|
|
public async Task CreateWzRowsMeyleAsync(IEnumerable<WzRowMeyleDto> wzRowMeyles)
|
|
{
|
|
if (wzRowMeyles == null || !wzRowMeyles.Any())
|
|
{
|
|
throw new ArgumentException("No rows provided to create.");
|
|
}
|
|
|
|
var response = await _httpClient.PostAsJsonAsync("api/WzRowMeyle", wzRowMeyles);
|
|
if (!response.IsSuccessStatusCode)
|
|
{
|
|
var errorContent = await response.Content.ReadAsStringAsync();
|
|
throw new HttpRequestException($"Failed to create WzRowMeyle: {response.StatusCode}, Content: {errorContent}");
|
|
}
|
|
|
|
}
|
|
|
|
public async Task<CustomerOrderDto> GetCustomerOrder(string customerOrderNumber)
|
|
{
|
|
var response = await _httpClient.GetAsync(
|
|
$"api/CustomerOrders/by-co-number/?customerOrderNumber={customerOrderNumber}");
|
|
response.EnsureSuccessStatusCode();
|
|
return await response.Content.ReadFromJsonAsync<CustomerOrderDto>();
|
|
}
|
|
|
|
public async Task<ItemCustDto> GetItem(string itemNumber, string customerNumber)
|
|
{
|
|
var response = await _httpClient.GetAsync(
|
|
$"api/ItemCust?itemNumber={itemNumber}&customerNumber={customerNumber}");
|
|
response.EnsureSuccessStatusCode();
|
|
return await response.Content.ReadFromJsonAsync<ItemCustDto>();
|
|
}
|
|
|
|
public async Task<IEnumerable<WzRowMeyleDto>> GetWzRowsByWzHeaderId(Guid wzHeaderId)
|
|
{
|
|
var response = await _httpClient.GetAsync($"api/WzRowMeyle/by-wz-header-id?wzHeaderId={wzHeaderId}");
|
|
response.EnsureSuccessStatusCode();
|
|
return await response.Content.ReadFromJsonAsync<IEnumerable<WzRowMeyleDto>>();
|
|
}
|
|
|
|
public async Task UpdateWzRowsMeyleAsync(IEnumerable<WzRowMeyleDto> wzRowsMeyle)
|
|
{
|
|
if (wzRowsMeyle == null || !wzRowsMeyle.Any())
|
|
{
|
|
throw new ArgumentException("No rows provided to update.");
|
|
}
|
|
|
|
var response = await _httpClient.PutAsJsonAsync("api/WzRowMeyle", wzRowsMeyle);
|
|
response.EnsureSuccessStatusCode();
|
|
}
|
|
} |