Sorting Materials in c#

Hi,

I have seen some post complaining on the impossibility to sort the material database by name.

As I'm learning the c# I've make a little code to sort the database that I want to share with you.

It seems to work correctly but the process is kind of wanky. (you have to rename files extensions )

Be sure to make a BACKUP before testing as I'm a noob developer. And to leave a feedback on what could I improve.

Tanks

Ps the code :

using System.Linq;

using System.Xml.Linq;

namespace SortXlm

{

class Program

{

static void Main(string[] args)

{

//Open the xml doc

XDocument doc = XDocument.Load("C:\\NAME OF THE BASE.XML");

//you have to change the extention of the material batabase from .sldmat to .xml (MAKE BACKUP!)

//sort the stuff

SortByName(doc.Root);

//save xml in another file

doc.Save("C:\\NEW SORTED XML.xml");

//you have to change the extention of the material batabase from .xml to .sldmat and put the file in the library directory

}

static void SortByName(XContainer container)

{

container.ReplaceNodes(

from childEl in container.Elements()

orderby childEl.Attributes("name").Select(a => a.Value).FirstOrDefault()

select childEl

);

foreach (XElement childEl in container.Elements().Where(e => e.HasElements))

{

if (childEl.Name == "classification" || childEl.Name == "material")

{

SortByName(childEl);

}

}

}

}

}

SolidworksApi/macros