public string CreateXmlDb(List<MagicCard> listOfCards, ProgressDialogController dialogController)
{
var curCard = 0;
var totalCards = listOfCards.Count;
foreach (var distinctSet in listOfCards.DistinctBy(o => o.Set))
{
var enumerable = listOfCards.Where(op => op.Set == distinctSet.Set && op.PathOfCardImage.Contains("original")).DistinctBy(o => o.Name);
foreach (var distinctCard in enumerable)
{
var cardElement = _xmlfile.CreateElement("card");
AddChildElementAndValue(cardElement, _util.GetVariableName(() => distinctCard.Name), distinctCard.Name);
AddChildElementAndValue(cardElement, _util.GetVariableName(() => distinctCard.Set), distinctCard.Set);
AddChildElementAndValue(cardElement, _util.GetVariableName(() => distinctCard.PathOfCardImage), distinctCard.PathOfCardImage);
var phashesElement = _xmlfile.CreateElement("phashes");
foreach (var magicCard in listOfCards.Where(o => o.Name == distinctCard.Name && o.Set == distinctSet.Set))
{
foreach (var phash in magicCard.PHashes)
{
AddChildElementAndValue(phashesElement, "phash", phash.ToString());
}
}
cardElement.AppendChild(phashesElement);
_rootNode.AppendChild(cardElement);
curCard++;
dialogController.SetProgress((double)curCard / totalCards);
dialogController.SetMessage("Creating a Simple Database of all those pHashes: " + curCard + "/" + totalCards);
}
}
SaveXmlFile();
return Path.GetFullPath(XmlDbPath);
}