public static DataEntities.FileLists.FileList GetRandom(DataEntities.FileLists.FileList.FileTypes fileTypes, Dictionary <string, object> options) { DataEntities.FileLists.FileList ret = null; var filesLookingFor = new List <DataEntities.FileLists.FileList>(); var fileTypeType = GetTypeFromFileType(fileTypes); foreach (var file in _FileLists) { if (file.GetType() == fileTypeType) { if (file.AllowedToAdd(options)) { filesLookingFor.Add(file); } } } Random rand = new Random(); var r = rand.Next(0, filesLookingFor.Count); if (filesLookingFor.Any()) //Check if any were found { ret = filesLookingFor[r]; } else //Error { } return(ret); }
public static string GetFileNameFromFileType(DataEntities.FileLists.FileList.FileTypes fileTypes) { switch (fileTypes) { case DataEntities.FileLists.FileList.FileTypes.Game: return("game.json"); case DataEntities.FileLists.FileList.FileTypes.Names: return("names.json"); case DataEntities.FileLists.FileList.FileTypes.Genders: return("genders.json"); case DataEntities.FileLists.FileList.FileTypes.Races: return("races.json"); } return("ThisShouldntBeHere.txt"); }
public List <DataEntities.FileLists.FileList> GetGameFileList(DataEntities.FileLists.FileList.FileTypes fileType) { List <DataEntities.FileLists.FileList> ret = new List <DataEntities.FileLists.FileList>(); var fileName = FileHandler.GetFileNameFromFileType(fileType); var filePath = Path.Combine(FileHandler._FilesDirectory, fileName); var cereal = File.ReadAllText(filePath); var type = FileHandler.GetTypeFromFileType(fileType); Type genericType = typeof(List <>).MakeGenericType(new[] { type }); IList list = (IList)Activator.CreateInstance(genericType); var listType = list.GetType(); var decereal = Newtonsoft.Json.JsonConvert.DeserializeObject(cereal, listType); if (decereal is List <DataEntities.FileLists.NameFile> ) { var s = (List <DataEntities.FileLists.NameFile>)decereal; s.ForEach(x => { x.FileName = "Game"; x.FileType = DataEntities.FileLists.FileList.FileTypes.Names; }); ret.AddRange(s); } else if (decereal is List <DataEntities.FileLists.GenderFile> ) { var s = (List <DataEntities.FileLists.GenderFile>)decereal; s.ForEach(x => { x.FileName = "Game"; x.FileType = DataEntities.FileLists.FileList.FileTypes.Genders; }); ret.AddRange(s); } else if (decereal is List <DataEntities.FileLists.RaceFile> ) { var s = (List <DataEntities.FileLists.RaceFile>)decereal; s.ForEach(x => { x.FileName = "Game"; x.FileType = DataEntities.FileLists.FileList.FileTypes.Races; }); ret.AddRange(s); } return(ret); }
public static DataEntities.FileLists.FileList GetClassFromFileType(DataEntities.FileLists.FileList.FileTypes fileTypes) { DataEntities.FileLists.FileList ret = null; switch (fileTypes) { case DataEntities.FileLists.FileList.FileTypes.Names: ret = new DataEntities.FileLists.NameFile(); break; case DataEntities.FileLists.FileList.FileTypes.Genders: ret = new DataEntities.FileLists.GenderFile(); break; case DataEntities.FileLists.FileList.FileTypes.Races: ret = new DataEntities.FileLists.RaceFile(); break; } return(ret); }
public static System.Type GetTypeFromFileType(DataEntities.FileLists.FileList.FileTypes fileTypes) { System.Type ret = null; switch (fileTypes) { case DataEntities.FileLists.FileList.FileTypes.Names: ret = typeof(DataEntities.FileLists.NameFile); break; case DataEntities.FileLists.FileList.FileTypes.Genders: ret = typeof(DataEntities.FileLists.GenderFile); break; case DataEntities.FileLists.FileList.FileTypes.Races: ret = typeof(DataEntities.FileLists.RaceFile); break; } return(ret); }