public IActionResult Create([Bind("Id,Description")] Room room)
 {
     if (ModelState.IsValid)
     {
         _roomManager.Add(room);
         return(RedirectToAction(nameof(Index)));
     }
     return(View(room));
 }
示例#2
0
 private void ReadXml_Rooms(XmlReader reader)
 {
     if (reader.ReadToDescendant("Room"))
     {
         do
         {
             Room r = new Room();
             RoomManager.Add(r);
             r.ReadXml(reader);
         }while (reader.ReadToNextSibling("Room"));
     }
 }
示例#3
0
        /// <summary>
        /// 部屋作成要求の受信処理を実行します。
        /// </summary>
        /// <returns>部屋作成応答</returns>
        /// <param name="request">部屋作成要求</param>
        public CreateRoomResponse Receive(CreateRoomRequest request)
        {
            var key  = Guid.NewGuid();
            var room = DiProvider.GetContainer().GetInstance <Room>();

            room.Key  = key;
            room.Name = request.RoomName;
            RoomManager.Add(key, room);
            var response = DiProvider.GetContainer().GetInstance <CreateRoomResponse>();

            response.RoomKey = key;
            return(response);
        }
示例#4
0
 public ActionResult Create(RoomEntity room)
 {
     try
     {
         RoomManager.Add(room);
         return(RedirectToAction("Index"));
     }
     catch (Exception ex)
     {
         ViewBag.Error = ex.Message;
         room.hotel1   = HotelManager.GetList();
         return(View(room));
     }
 }
示例#5
0
        public void 最後の捨牌の位置を記録できる()
        {
            var key  = Guid.NewGuid();
            var room = DiProvider.GetContainer().GetInstance <Room>();

            RoomManager.Add(key, room);
            var request = DiProvider.GetContainer().GetInstance <DiscardRequest>();

            request.RoomKey = key;
            request.Context = this.LoadFieldContext(2, 1, ResourceType.In);
            request.Wind    = Wind.Index.East;
            request.Tile    = Tile.BuildTile("1萬");
            var expected = DiProvider.GetContainer().GetInstance <RiverPosition>();

            expected.Wind  = Wind.Index.East;
            expected.Index = 8;
            this.Target.Receive(request);
            Assert.AreEqual(expected, room.LastDiscardPosition);
        }
示例#6
0
        private static void Main(string[] args)
        {
            LogFile file = null;

            foreach (string arg in args)
            {
                var a = arg.ToLower().Trim();
                if (a == "-headless")
                {
                    HeadLess = true;
                }
                else if (a == "-external")
                {
                    External = true;
                }
                else if (a == "-log")
                {
                    LogFile = true;
                    file    = new LogFile(Environment.CurrentDirectory, "log.txt");
                }
            }

            _assembly = Assembly.GetEntryAssembly();


            Log.Start(LogTypes.All, file);
            Log.Message(LogTypes.None, "Server started.");
            Log.Message(LogTypes.None, "");
            Log.Message(LogTypes.None, "");

            Log.Message(LogTypes.None, "Info:");
            Log.Message(LogTypes.None, "\t- OS:\t" + RuntimeInformation.OSDescription + " " + RuntimeInformation.OSArchitecture);
            Log.Message(LogTypes.None, "\t- Process architecture:\t" + RuntimeInformation.ProcessArchitecture);
            Log.Message(LogTypes.None, "\t- Cores count:\t" + Environment.ProcessorCount);
            Log.Message(LogTypes.None, "\t- Root folder:\t" + RootPath);


            Log.Message(LogTypes.None, "");
            Log.Message(LogTypes.None, "");

            AppDomain.CurrentDomain.UnhandledException += async(sender, e) =>
            {
                string msg = e.ExceptionObject.ToString();

                Log.Message(LogTypes.Error, msg);

                using (LogFile crashfile = new LogFile(Environment.CurrentDirectory, "crash.txt"))
                {
                    await crashfile.WriteAsync(msg);
                }

                Shutdown(true);
            };


            SettingsManager.Init();
            RoomManager.Init();
            AccountManager.Init();


            IsRunning = true;
            ServerInizialized.Raise();

            if (RoomManager.Get("General") == null)
            {
                RoomManager.Add(new Room("General", "general"));
            }


            using (Server = new Server(SettingsManager.Configuration))
            {
                ServerHandler serverHandler = _serverHandler = new ServerHandler(Server);
                SaveManager.Init();
                ConsoleManager.Init();

                while (IsRunning)
                {
                    _waitHandle.WaitOne(1);

                    CoroutineManager.Update();

                    serverHandler.Slice();

                    Server.Flush();
                    Server.CheckSessionsAlive();
                    Server.ReleaseDisposed();
                }
            }

            Log.Message(LogTypes.Info, "Server closed.");
            _waitHandle.WaitOne();
        }
示例#7
0
 private void OnEnable()
 {
     RoomManager.Add(this);
 }
 public void Put([FromBody] Room room)
 {
     _repo.Add(room);
 }