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}
}
Our community of experts have been thoroughly vetted for their expertise and industry experience.
The Distinguished Expert awards are presented to the top veteran and rookie experts to earn the most points in the top 50 topics.