C# DB Advanced Exam - 08 August 2020 - Последната задача
Здравейте колеги,
на последната задача от този изпит - ExportUserPurchasesByType
получавам пълно съвпадение на Export Result и Expected Result,
двата файла са напълно идентични, но Джъдж не ми дава точките
и ми изкарва това съобщение:
1) Failed : Export_000_002.ExportUserPurchasesByType : ExportUserPurchasesByType output is incorrect! Expected string length 10349 but was 9163. Strings differ at index 23.
Някой може ли да помогне със съвет какво трябва
да се направи в този случай?
Много благодаря!
Ето го и кода на задачката:
public static string ExportUserPurchasesByType(VaporStoreDbContext context, string storeType)
{
var users = context.Users.ToArray()
.Where(u => u.Cards.Any(c => c.Purchases.Any
(p => p.Type.ToString() == storeType)))
.Select(u => new ExportUserDto
{
Username = u.Username,
TotalSpent = u.Cards.Sum(c => c.Purchases
.Where(p => p.Type.ToString() == storeType)
.Sum(p => p.Game.Price)),
Purchases = u.Cards.SelectMany(c => c.Purchases)
.Where(p => p.Type.ToString() == storeType)
.Select(p => new ExportUserPurchaseDto
{
CardNumber = p.Card.Number,
CardCvc = p.Card.Cvc,
Date = p.Date.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture),
Game = new ExportUserPurchaseGameDto
{
Name = p.Game.Name,
Genre = p.Game.Genre.Name,
Price = p.Game.Price
}
}).OrderBy(x => x.Date).ToArray(),
})
.OrderByDescending(u => u.TotalSpent)
.ThenBy(u => u.Username)
.ToArray();
var serializer = new XmlSerializer(typeof(ExportUserDto[]), new XmlRootAttribute("Users"));
var ns = new XmlSerializerNamespaces();
ns.Add(string.Empty, string.Empty);
var writer = new StringWriter();
serializer.Serialize(writer, users, ns);
return writer.ToString().TrimEnd();
[XmlType("User")]
public class ExportUserDto
{
[XmlAttribute("username")]
public string Username { get; set; }
[XmlArray("Purchases")]
public ExportUserPurchaseDto[] Purchases { get; set; }
[XmlElement("TotalSpent")]
public decimal TotalSpent { get; set; }
}
[XmlType("Purchase")]
public class ExportUserPurchaseDto
{
[XmlElement("Card")]
public string CardNumber { get; set; }
[XmlElement("Cvc")]
public string CardCvc { get; set; }
[XmlElement("Date")]
public string Date { get; set; }
[XmlElement("Game")]
public ExportUserPurchaseGameDto Game { get; set; }
}
[XmlType("Game")]
public class ExportUserPurchaseGameDto
{
[XmlAttribute("title")]
public string Name { get; set; }
[XmlElement("Genre")]
public string Genre { get; set; }
[XmlElement("Price")]
public decimal Price { get; set; }
}