-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathStock.cs
More file actions
91 lines (81 loc) · 3.57 KB
/
Stock.cs
File metadata and controls
91 lines (81 loc) · 3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using Birko.SuperFaktura.Request;
using Birko.SuperFaktura.Request.Stock;
using Birko.SuperFaktura.Response;
using Birko.SuperFaktura.Response.Stock;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Threading.Tasks;
namespace Birko.SuperFaktura
{
public class Stock
{
private readonly AbstractSuperFaktura superFaktura;
public Stock(AbstractSuperFaktura superFaktura)
{
this.superFaktura = superFaktura;
}
public async Task<PagedResponse<ListItem>> List(Filter filter, bool listInfo = true)
{
var result = await superFaktura.Get(string.Format("stock_items/index.json{0}", filter.ToParameters(listInfo))).ConfigureAwait(false);
if (listInfo)
{
return superFaktura.DeserializeResult<PagedResponse<ListItem>>(result);
}
else
{
return new PagedResponse<ListItem> { Items = superFaktura.DeserializeResult<IEnumerable<ListItem>>(result) };
}
}
public async Task<Response.Stock.Item> View(int ID)
{
var result = await superFaktura.Get($"stock_items/view/{ID}").ConfigureAwait(false);
var data = superFaktura.DeserializeResult<Detail>(result);
return data.StockItem;
}
public async Task<Detail> Add(Request.Stock.Item item)
{
var result = await superFaktura.Post("stock_items/add", new StockItemData () { StockItem = item }).ConfigureAwait(false);
var data = superFaktura.DeserializeResult<Response<Detail>>(result);
return data.Data;
}
public async Task<Detail> Edit(int id, Request.Stock.Item item)
{
var result = await superFaktura.Patch($"stock_items/edit/{id}", new StockItemData() { StockItem = item }).ConfigureAwait(false);
var data = superFaktura.DeserializeResult<Response<Detail>>(result);
return data.Data;
}
public async Task<Detail> Delete(int ID)
{
var result = await superFaktura.Delete(string.Format("stock_items/delete/{0}", ID)).ConfigureAwait(false);
var data = superFaktura.DeserializeResult<Response<Detail>>(result);
return data.Data;
}
public async Task<IEnumerable<Response.Stock.Log>> AddStockMovement(IEnumerable<Request.Stock.Log> items)
{
if (!(items?.Any() ?? false))
{
return null;
}
var result = await superFaktura.Post("stock_items/addstockmovement", new StockLogsData { StockLog = items.ToArray() }).ConfigureAwait(false);
var data = superFaktura.DeserializeResult<Response<LogResponse>>(result);
return data.Data.StockLog;
}
public async Task<IEnumerable<Response.Stock.Log>> AddStockMovement(Request.Stock.Log item)
{
return await AddStockMovement(new[] { item }).ConfigureAwait(false);
}
public async Task<PagedResponse<LogData>> ListStockMovements(int id, PagedParameters filter, bool listInfo = true)
{
var result = await superFaktura.Get(string.Format($"stock_items/movements/{id}", filter.ToParameters(listInfo))).ConfigureAwait(false);
if (listInfo)
{
return superFaktura.DeserializeResult<PagedResponse<LogData>>(result);
}
else
{
return new PagedResponse<LogData> { Items = superFaktura.DeserializeResult<IEnumerable<LogData>>(result) };
}
}
}
}