Hi
I had question related to this
Refactor C# code.
The source classes for DTO's are the in the above question. I want to remove duplicates created in salesorders List based on productCode ( mapping values[1] )
The issue is each List has as child list variable called scns (values[5]) which also needs to be created from the source data
req.salesOrders = (from docArray in resp.transaction.quote_dat
a.sub_docu
ments
let document = Regex.Split(docArray, @"\$,\$")
let values = document.attributes[0].val
ue.ToStrin
g().Split(
new[] { "**" }, StringSplitOptions.None)
where (document.attributes != null && document.attributes.Length
> 0) && !string.IsNullOrWhiteSpace
(document.
attributes
[0].value.
ToString()
) && !string.IsNullOrEmpty(valu
es[3]) && (!string.IsNullOrWhiteSpac
e(values[5
]) && values[5] != "$$")
select new salesOrder()
{
productCode = values[1],
salesOrderType = values[2],
startDate = DateTime.Parse(values[3]).
ToString("
yyyy-MM-dd
"),
pays = !string.IsNullOrWhiteSpace
(values[4]
) ? int.Parse(values[4]) : 0,
scns = (from code in values[5].Split(new[] { "$$" }, StringSplitOptions.RemoveE
mptyEntrie
s)
select
new scns()
{
scnCode = code
}).GroupBy(o => o.scnCode).Select(g => g.First()).ToList()
}).ToList() ;
Example req.salesOrders should have single record for req.salesOrders=10 (product) this should be unique. All the req.scns
> 1**10**New Client**2016-11-02**250**F
0040Z$$F00
40Z$$F0014
1$,$1**,1W
**New Client - Add2 Product**2016-11-02**250**
F71900$$F0
070X
> 1**10**New Client**2016-11-02**250**F
00498$$F00
493$$F0014
1
Example in above it should return
{
productCode = 10
salesOrderType =New Client,
startDate = '2016-11-02',
pays = 250
scns = {F0040Z,F00141, F00498,F00493} //removed dups . this is implemented
}
{
productCode = 1W
salesOrderType =New Client - Add2 Product,
startDate = '2016-11-02',
pays = 250
scns = { F71900,F0070X}
}