public static MainWindowDataModel Load()
        {
            if (File.Exists(DataPath))
            {
                MainWindowDataModel model = DataSerializer.DeserializeItem(DataPath);
                ResourceList        list  = new ResourceList();
                model.resources.ForEach(r => list.add(new Resource(ResourceType.VALUES.Where(type => type.getName() == r.resource).First(), r.count)));
                Map map = new Map(10, 10);
                model.map.ForEach(item => {
                    MapEnum menum  = null;
                    MapObject mobj = null;
                    try
                    {
                        menum = BuildType.VALUES.Where(type => type.getName() == item.build).First();
                        if (menum != null)
                        {
                            mobj = new Build((BuildType)menum);
                        }
                    } catch (Exception) { }
                    try {
                        menum = ReliefType.VALUES.Where(type => type.getName() == item.build).First();
                        if (menum != null)
                        {
                            mobj = new Relief((ReliefType)menum);
                        }
                    } catch (Exception) { }

                    if (mobj != null)
                    {
                        map.set(mobj, item.x, item.y);
                    }
                });
                model.game = new Game(map, list);
                return(model);
            }
            return(new MainWindowDataModel());
        }
 public void Save()
 {
     DataSerializer.SerializeData(DataPath, this);
 }