using System.Globalization;
using System.Collections.Generic;
public static void Main(string[] args)
CultureInfo provider = CultureInfo.InvariantCulture;
Console.WriteLine("Enter the start date");
instr = Console.ReadLine();
var startDate = DateTime.MinValue;
DateTime.TryParseExact(instr, "yyyy/MM/dd", provider, DateTimeStyles.None, out startDate);
Console.WriteLine("Enter the end date");
instr = Console.ReadLine();
var endDate = DateTime.MinValue;
DateTime.TryParseExact(instr, "yyyy/MM/dd", provider, DateTimeStyles.None, out endDate);
var queryFilter = "{_id:{$gte: ObjectId('" + dateConverter(startDate) + "0000000000000000'), $lte: ObjectId('" + dateConverter(endDate) + "ffffffffffffffff')}}";
var expstring = " --db yourDatabaseName --collection yourCollectionName --type json --query \"" + queryFilter + "\" --out yourFilePath --jsonArray";
Console.WriteLine(expstring);
Console.WriteLine("[ERROR]: " + ex.Message);
public static string dateConverter(DateTime dt)
long decimalNumber = (long)(dt.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
return (Convert.ToString(decimalNumber, 16));
interface ICombatBehaviour
class CombatBehaviour : ICombatBehaviour
static ICombatBehaviour combat;
private static string[] FindAllCombatOptions(out List<Type> existingTypes)
List<string> options = new List<string>();
existingTypes = new List<Type>();
var combatBehaviours = Assembly.GetAssembly(typeof(ICombatBehaviour)).GetTypes()
.Where(myType => myType.IsClass && !myType.IsAbstract && typeof(ICombatBehaviour).IsAssignableFrom(myType));
foreach (var behaviour in combatBehaviours)
existingTypes.Add(behaviour);
options.Add(behaviour.Name);
return options.ToArray();
private static void UpdateType(List<Type> types)
combat = Activator.CreateInstance(types[0]) as ICombatBehaviour;