protected void RegisterExternal(string path) { try { ConsoleCommandHandler handler = CoreService.Find <ConsoleCommandHandler>(path); if (handler != null) { Register(handler); } else { HostContext.AddUnhandeldException(new SystemException(string.Format("Cannot find console command: {0}", path))); } } catch (Exception e) { //do nothing here HostContext.AddUnhandeldException(e); } }
protected override void Load() { try { //ADD THE DATABASE PROVIDER if (!InternalDatabaseProvider.Connect(info)) { WriteError("DatabaseManager", "Server failed to connect to the database server"); } else if (!InternalDatabaseProvider.CheckServerVersion()) { WriteError("DatabaseManager", "Database version is incorrect"); } else if (!InternalDatabaseProvider.CheckDatabaseFields()) { WriteError("DatabaseManager", "Database is missing tables or required table fields"); } } catch (Exception e) { HostContext.AddUnhandeldException(e); } }
protected override void ParseAsCsvStream(Stream stream, FactoryBase.ReportProgress ProgressReport) { using (StreamReader c = new StreamReader(stream)) { c.ReadLine(); while (c.Peek() > 0) { //REPORT PROGRESS ProgressReport.Invoke(); String row = c.ReadLine(); String[] fields = row.Split(','); try { int Flags = 0; byte eventid = Convert.ToByte(fields[0]); //Unique id of the event byte UseDate = Convert.ToByte(fields[6]); //1 - Use a date to check byte UseTime = Convert.ToByte(fields[7]); //2 - Use a timespan to check byte EnableMonday = Convert.ToByte(fields[8]); //4 - Is active on monday byte EnableThuesday = Convert.ToByte(fields[9]); //8 - Is active on thuesday byte EnableWednesday = Convert.ToByte(fields[10]); //16 - Is active on wednessday byte EnableThursday = Convert.ToByte(fields[11]); //32 - Is active on thursday byte EnableFriday = Convert.ToByte(fields[12]); //64 - Is active on friday byte EnableSaturday = Convert.ToByte(fields[13]); //128 - Is active on saturday byte EnableSunday = Convert.ToByte(fields[14]); //256 - Is active on sunday string EventName = fields[1]; //Name of the event if (UseDate == 1) { Flags |= 1; } if (UseTime == 1) { Flags |= 2; } if (EnableMonday == 1) { Flags |= 4; } if (EnableThuesday == 1) { Flags |= 8; } if (EnableWednesday == 1) { Flags |= 16; } if (EnableThursday == 1) { Flags |= 32; } if (EnableFriday == 1) { Flags |= 64; } if (EnableSaturday == 1) { Flags |= 128; } if (EnableSunday == 1) { Flags |= 256; } DateTime eventstart = DateTime.Parse(fields[2], CultureInfo.InvariantCulture); DateTime eventend = DateTime.Parse(fields[3], CultureInfo.InvariantCulture); TimeSpan timestart = TimeSpan.Parse(fields[4]); TimeSpan timetend = TimeSpan.Parse(fields[5]); EventDateTime date = new EventDateTime(); date.end = eventend.Add(timetend); date.start = eventstart.Add(timestart); date.eventname = EventName; date.Flags = Flags; if (CanCheckTimespan(date)) { date.IsActive = IsActiveToday(date) && IsBetweenDateTime(date) && IsBetweenTimeStamp(date); } else { date.IsActive = true; } _eventdates.Add(eventid, date); } catch (Exception e) { HostContext.AddUnhandeldException(e); } } } }
/// <summary> /// Default included event that invokes a csv based stream. /// </summary> /// <param name="stream">Stream to read data from</param> /// <param name="ProgressReport">Class to report the state of reading</param> protected override void ParseAsCsvStream(Stream stream, FactoryBase.ReportProgress ProgressReport) { using (StreamReader c = new StreamReader(stream)) { c.ReadLine(); while (c.Peek() > 0) { //REPORT PROGRESS ProgressReport.Invoke(); String row = c.ReadLine(); String[] fields = row.Split(','); //LOAD A HEIGHTMAP HeightMap heightmap = new HeightMap(); HeightMap.HeightMapInfo info = new HeightMap.HeightMapInfo(); try { //FILL OUT HEIGHTMAP INFORMATION string filename = Path.Combine(Environment.CurrentDirectory, dirHeightmap); if (fields[10].Length > 0) { info.location[0] = float.Parse(fields[12], NumberFormatInfo.InvariantInfo); info.location[1] = float.Parse(fields[13], NumberFormatInfo.InvariantInfo); info.location[2] = float.Parse(fields[14], NumberFormatInfo.InvariantInfo); info.scale[0] = int.Parse(fields[15], NumberFormatInfo.InvariantInfo); info.scale[1] = int.Parse(fields[16], NumberFormatInfo.InvariantInfo); info.scale[2] = int.Parse(fields[17], NumberFormatInfo.InvariantInfo); info.size = int.Parse(fields[11], NumberFormatInfo.InvariantInfo); filename = Path.Combine(filename, fields[10]); //IF HEIGHTMAP IS NOT LOADED PROCEED HeightMap.LoadFromFile(filename, info, out heightmap); } float catheleyax = float.Parse(fields[2], NumberFormatInfo.InvariantInfo); float catheleyay = float.Parse(fields[3], NumberFormatInfo.InvariantInfo); float catheleyaz = float.Parse(fields[4], NumberFormatInfo.InvariantInfo); float promisex = float.Parse(fields[6], NumberFormatInfo.InvariantInfo); float promisey = float.Parse(fields[7], NumberFormatInfo.InvariantInfo); float promizez = float.Parse(fields[8], NumberFormatInfo.InvariantInfo); byte catheleyamap = byte.Parse(fields[5], NumberFormatInfo.InvariantInfo); byte promisemap = byte.Parse(fields[9], NumberFormatInfo.InvariantInfo); uint regioncode = uint.Parse(fields[19], NumberFormatInfo.InvariantInfo); uint zoneid = uint.Parse(fields[0], NumberFormatInfo.InvariantInfo); ZoneType zonetype = (ZoneType)Enum.Parse(typeof(ZoneType), fields[18], true); Zone zone; if (TryFindZoneString(fields[1], out zone)) { SetMembers(zone, (byte)zoneid, heightmap, zonetype, catheleyamap, new Point(catheleyax, catheleyay, catheleyaz), promisemap, new Point(promisex, promisey, promizez), regioncode); maps.Add(zoneid, zone); } } catch (Exception e) { HostContext.AddUnhandeldException(e); } } } }