Beispiel #1
0
        private static void Build(BuilderController builderController)
        {
            var dbChunk = new DbChunk(Settings.Current.Building.BuilderConnectionString);
             int? chunkId = null;
             while (true)
             {
            try
            {
               builderController.RefreshState();
               if (builderController.Builder.State == BuilderState.Stopping)
                  break;

               if (builderController.Builder.State == BuilderState.Stopped)
                  break;

               if (builderController.Builder.State == BuilderState.Error)
                  break;

               if (builderController.Builder.State == BuilderState.Unknown || builderController.Builder.State == BuilderState.Idle)
                  continue;

               chunkId = dbChunk.TakeChunk(Settings.Current.Building.Id.Value);
               if (!chunkId.HasValue) break;

               var builder = new ChunkBuilder(new ChunkData { Id = chunkId.Value }, GetBuilderType(Settings.Current.Building.Vendor));
               var loaded_chunk = builder.Load();
               var built_chunk = loaded_chunk.Build();
               var task = built_chunk.Save();
               tasks.Add(task);
            }
            catch (Exception e)
            {
               if (chunkId.HasValue)
                  Logger.WriteError(chunkId, e);
               else
                  Logger.Write(null, Settings.Current.Building.Id.Value, null, LogMessageTypes.Error, Logger.CreateExceptionString(e));

               builderController.UpdateState(BuilderState.Error);
            }
             }
        }
Beispiel #2
0
 public BuildingController()
 {
     builderController = new BuilderController();
     Building          = new Building();
 }
Beispiel #3
0
        static void Main(string[] inputArgs)
        {
            if (inputArgs.Length > 0)
             {
            Settings.Initialize(string.Join(" ", inputArgs), Environment.MachineName);
             }
             else
             {
            Settings.Initialize(ConfigurationManager.ConnectionStrings["Builder"].ConnectionString, Environment.MachineName);
             }

             var builderController = new BuilderController();
             try
             {
            var vocabulary = new Vocabulary();
            vocabulary.Initialize();

            Build(builderController);
            Task.WaitAll(tasks.ToArray());
             }
             catch (Exception e)
             {
            Logger.WriteError(e);

            builderController.UpdateState(BuilderState.Error);
             }
        }
 public BuildingController()
 {
     builderController = new BuilderController();
      Building = new Building();
 }