示例#1
0
        public async Task <IActionResult> Post([FromBody] TaskModule module)
        {
            _db.TaskModules.Add(module);
            await _db.SaveChangesAsync();

            return(Created(module));
        }
示例#2
0
        public IList <TaskModule> GetTaskModules()
        {
            if (_taskModules != null)
            {
                return(_taskModules);
            }

            _taskModules = new List <TaskModule>();

            // taskModule #1
            var taskModule = new TaskModule
            {
                Id          = 1,
                Name        = "Изоморфизм",
                Description = "Даны два графа. Доказать их изоморфность путём наложения вершин одного графа на вершины другого, или обосновать, почему это невозможно.",
                Version     = "2.0"
            };

            _taskModules.Add(taskModule);

            // taskModule #2
            taskModule = new TaskModule
            {
                Id          = 2,
                Name        = "КСС",
                Description = "Дан граф. Найти все компоненты сильной связности.",
                Version     = "2.0"
            };
            _taskModules.Add(taskModule);

            return(_taskModules);
        }
示例#3
0
 public AssetBundleLoader(string bundleName)
 {
     status          = eLoadStatus.idle;
     this.bundleName = bundleName;
     path            = ResourceSetting.GetBundlePathByBundleName(bundleName);
     resourceModule  = Mango.GetModule <ResourceModule>();
     taskModule      = Mango.GetModule <TaskModule>();
 }
        public void Init()
        {
            _client = new client.client();
            Login          _login     = new Login();
            Room           _room      = new Room();
            MJHuan         _MJhuan    = new MJHuan();
            ChatRPC        chat       = new ChatRPC();
            PlayerBaseData PlayerData = new PlayerBaseData();
            Pay            plPay      = new Pay();
            BindAgent      bind       = new BindAgent();
            Signin         sign       = new Signin();
            TaskModule     task       = new TaskModule();
            LobbyModule    lobby      = new LobbyModule();
            GMModule       gmm        = new GMModule();
            RankModule     rank       = new RankModule();
            MatchGame      matchGame  = new MatchGame();

            _client.modulemanager.add_module("login", _login);
            _client.modulemanager.add_module("room", _room);
            _client.modulemanager.add_module("mj_huanghuang", _MJhuan);
            _client.modulemanager.add_module("player_data", PlayerData);
            _client.modulemanager.add_module("chat", chat);
            _client.modulemanager.add_module("pay", plPay);
            _client.modulemanager.add_module("agent", bind);
            _client.modulemanager.add_module("signin", sign);
            _client.modulemanager.add_module("task", task);
            _client.modulemanager.add_module("redpackets", lobby);
            _client.modulemanager.add_module("gm", gmm);
            _client.modulemanager.add_module("rank_msg", rank);
            _client.modulemanager.add_module("match", matchGame);
            _tick = Environment.TickCount;
            _client.onConnectHub  += onConnectHub;
            _client.onConnectGate += onGeteHandle;
            log.log.setLogHandle(brokenLine);

            System.Random ran    = new System.Random();
            int           index  = ran.Next(4);
            short         portIP = portIpList[index];

            try
            {
                if (_client.connect_server(serverIp, portIP, serverIp, (short)(portIP + 1), _tick))
                {
                    // EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent<string>(EventId.UIFrameWork_Bug, "connect_server_true");
                }
                else
                {
                    // EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent<string>(EventId.UIFrameWork_Bug, "connect_server_false");
                }
            }
            catch (Exception e)
            {
                // EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent<string>(EventId.UIFrameWork_Bug, e.Message);
            }
            //EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent<string>(EventId.UIFrameWork_Bug, "connect_server_no_erro!");
            _tickcount = 0;
        }
示例#5
0
        public void ShouldDeleteTask()
        {
            MockedDatabase <Task> database;
            TaskModule            module;

            database = new MockedDatabase <Task>(false, 1, (t) => new Task()
            {
                TaskID = t
            });
            module = new TaskModule(NullLogger.Instance, database);
            module.DeleteTask(1);
            Assert.AreEqual(1, database.DeletedCount);
        }
示例#6
0
        public void ShouldGetLastTask()
        {
            MockedDatabase <Task> database;
            TaskModule            module;
            Task result;

            database = new MockedDatabase <Task>(false, 5, (t) => new Task()
            {
                TaskID = t
            });
            module = new TaskModule(NullLogger.Instance, database);
            result = module.GetLastTask(1);
            Assert.IsNotNull(result);
            Assert.AreEqual(4, result.TaskID);
        }
示例#7
0
        public void ShouldNotGetTaskAndLogError()
        {
            MockedDatabase <Task> database;
            TaskModule            module;
            MemoryLogger          logger;


            logger   = new MemoryLogger();
            database = new MockedDatabase <Task>(true, 1, (t) => new Task()
            {
                TaskID = t
            });
            module = new TaskModule(logger, database);
            Assert.ThrowsException <PIODataException>(() => module.GetTask(1));
            Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Error) && (item.ComponentName == module.ModuleName)));
        }
示例#8
0
        public void ShouldNotCreateTaskAndLogError()
        {
            MockedDatabase <Task> database;
            TaskModule            module;
            MemoryLogger          logger;


            logger   = new MemoryLogger();
            database = new MockedDatabase <Task>(true, 1, (t) => new Task()
            {
                TaskID = t
            });
            module = new TaskModule(logger, database);
            Assert.ThrowsException <PIODataException>(() => module.CreateTask(TaskTypeIDs.Idle, 1, 3, 4, 5, ResourceTypeIDs.Coal, null, DateTime.Now));
            Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Error) && (item.ComponentName == module.ModuleName)));
        }
示例#9
0
        /// <summary>
        /// Creates the kernel that will manage your application.
        /// </summary>
        /// <returns>The created kernel.</returns>
        private static IKernel CreateKernel()
        {
            var kernel = new StandardKernel();

            try
            {
                NinjectModule taskModule    = new TaskModule();
                NinjectModule serviceModule = new ServiceModule(connectionString);
                kernel = new StandardKernel(taskModule, serviceModule);
                kernel.Bind <Func <IKernel> >().ToMethod(ctx => () => new Bootstrapper().Kernel);
                kernel.Bind <IHttpModule>().To <HttpApplicationInitializationHttpModule>();
                RegisterServices(kernel);
                GlobalConfiguration.Configuration.DependencyResolver = new NinjectResolver(kernel);
                return(kernel);
            }
            catch
            {
                kernel.Dispose();
                throw;
            }
        }
示例#10
0
        public void ShouldGetAllTasks()
        {
            MockedDatabase <Task> database;
            TaskModule            module;

            Task[] results;

            database = new MockedDatabase <Task>(false, 3, (t) => new Task()
            {
                TaskID = t
            });
            module  = new TaskModule(NullLogger.Instance, database);
            results = module.GetTasks();
            Assert.IsNotNull(results);
            Assert.AreEqual(3, results.Length);
            for (int t = 0; t < 3; t++)
            {
                Assert.IsNotNull(results[t]);
                Assert.AreEqual(t, results[t].TaskID);
            }
        }
示例#11
0
        public void ShouldCreateTask()
        {
            MockedDatabase <Task> database;
            TaskModule            module;
            Task     result;
            DateTime eta;

            database = new MockedDatabase <Task>(false, 1, (t) => new Task()
            {
                TaskID = t
            });
            module = new TaskModule(NullLogger.Instance, database);
            eta    = DateTime.Now;
            result = module.CreateTask(TaskTypeIDs.Idle, 1, 3, 4, 5, ResourceTypeIDs.Coal, null, eta);
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.WorkerID);
            Assert.AreEqual(5, result.BuildingID);
            Assert.AreEqual(3, result.X);
            Assert.AreEqual(4, result.Y);
            Assert.AreEqual(ResourceTypeIDs.Coal, result.ResourceTypeID);

            Assert.AreEqual(eta, result.ETA);
            Assert.AreEqual(1, database.InsertedCount);
        }
示例#12
0
文件: Program.cs 项目: dfgs/PIO
        static void Main(string[] args)
        {
            ILogger logger;
            VersionControlModule versionControlModule;
            ServiceHostModule    pioServiceHostModule;
            ServiceHostModule    taskCallbackServiceHostModule;
            SchedulerModule      schedulerModule;

            IPIOService          pioService;
            ITaskCallbackService taskCallbackService;
            IDatabase            database;
            IConnectionFactory   connectionFactory;
            ICommandBuilder      commandBuilder;
            IDatabaseCreator     databaseCreator;

            IPlanetGeneratorModule planetGeneratorModule;

            IPhraseModule       phraseModule;
            IPlanetModule       planetModule;
            ICellModule         cellModule;
            IBuildingModule     buildingModule;
            IWorkerModule       workerModule;
            IBuilderModule      factoryBuilderModule;
            IStackModule        stackModule;
            IResourceTypeModule resourceTypeModule;
            IBuildingTypeModule buildingTypeModule;
            ITaskTypeModule     taskTypeModule;
            IMaterialModule     materialModule;
            IIngredientModule   ingredientModule;
            IProductModule      productModule;
            ITaskModule         taskModule;

            IIdlerModule           idlerModule;
            IResourceCheckerModule resourceCheckerModule;
            ILocationCheckerModule locationCheckerModule;
            IProducerModule        producerModule;
            IHarvesterModule       harvesterModule;
            IMoverModule           moverModule;
            ITakerModule           takerModule;
            IStorerModule          storerModule;

            quitEvent = new AutoResetEvent(false);
            Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress);

            //logger = new ConsoleLogger(new DefaultLogFormatter());
            logger = new UnicastLogger(IPAddress.Loopback, Properties.Settings.Default.UnicastPort);
            //logger = new FileLogger(new DefaultLogFormatter(), "PIO.ServerHost.Log");

            databaseCreator   = new SqlDatabaseCreator(Properties.Settings.Default.Server, Properties.Settings.Default.DatabaseName);
            connectionFactory = new SqlConnectionFactory(Properties.Settings.Default.Server, Properties.Settings.Default.DatabaseName);
            commandBuilder    = new SqlCommandBuilder();
            database          = new Database(connectionFactory, commandBuilder);

            versionControlModule = new VersionControlModule(logger, databaseCreator, new PIOVersionControl(database));
            if (!versionControlModule.InitializeDatabase(Properties.Settings.Default.DropDatabase))
            {
                return;
            }


            phraseModule       = new PhraseModule(logger, database);
            planetModule       = new PlanetModule(logger, database);
            cellModule         = new CellModule(logger, database);
            buildingModule     = new BuildingModule(logger, database);
            workerModule       = new WorkerModule(logger, database);
            stackModule        = new StackModule(logger, database);
            resourceTypeModule = new ResourceTypeModule(logger, database);
            buildingTypeModule = new BuildingTypeModule(logger, database);
            taskTypeModule     = new TaskTypeModule(logger, database);
            materialModule     = new MaterialModule(logger, database);
            ingredientModule   = new IngredientModule(logger, database);
            productModule      = new ProductModule(logger, database);
            taskModule         = new TaskModule(logger, database);


            factoryBuilderModule  = new BuilderModule(logger, taskModule, workerModule, buildingModule, buildingTypeModule, stackModule, materialModule);;
            idlerModule           = new IdlerModule(logger, taskModule, workerModule);
            resourceCheckerModule = new ResourceCheckerModule(logger, buildingModule, stackModule, ingredientModule, materialModule);
            locationCheckerModule = new LocationCheckerModule(logger, workerModule, buildingModule);
            producerModule        = new ProducerModule(logger, taskModule, workerModule, buildingModule, buildingTypeModule, stackModule, ingredientModule, productModule);
            harvesterModule       = new HarvesterModule(logger, taskModule, workerModule, buildingModule, buildingTypeModule, stackModule, productModule);
            moverModule           = new MoverModule(logger, taskModule, workerModule, buildingModule);
            takerModule           = new TakerModule(logger, taskModule, workerModule, buildingModule, stackModule);
            storerModule          = new StorerModule(logger, taskModule, workerModule, buildingModule, stackModule);

            planetGeneratorModule = new PlanetGeneratorModule(logger, phraseModule, resourceTypeModule, buildingTypeModule, taskTypeModule, materialModule, ingredientModule, productModule, planetModule, cellModule, buildingModule, workerModule);
            if (!planetGeneratorModule.Generate())
            {
                return;
            }

            schedulerModule = new SchedulerModule(logger, taskModule, idlerModule, producerModule, harvesterModule, moverModule, takerModule, storerModule, factoryBuilderModule);
            schedulerModule.Start();


            pioService = new PIOService(
                logger, phraseModule, planetModule, cellModule, buildingModule, workerModule,
                stackModule, resourceTypeModule,
                buildingTypeModule, taskTypeModule, materialModule, ingredientModule, productModule, taskModule,
                schedulerModule,
                resourceCheckerModule, locationCheckerModule, idlerModule, producerModule, harvesterModule, moverModule, takerModule, storerModule,
                factoryBuilderModule);

            pioServiceHostModule = new ServiceHostModule(logger, pioService);
            pioServiceHostModule.Start();

            taskCallbackService           = new TaskCallbackService(logger, schedulerModule);
            taskCallbackServiceHostModule = new ServiceHostModule(logger, taskCallbackService);
            taskCallbackServiceHostModule.Start();

            WaitHandle.WaitAny(new WaitHandle[] { quitEvent }, -1);

            taskCallbackServiceHostModule.Stop();
            pioServiceHostModule.Stop();
            schedulerModule.Stop();

            Console.CancelKeyPress -= new ConsoleCancelEventHandler(Console_CancelKeyPress);
        }