示例#1
0
        private static string PostApi(KptRepository db, HttpListenerRequest req, Command cmd)
        {
            if (!req.HasEntityBody)
            {
                throw new ArgumentException("指定したAPIに必要なデータがありません。POST " + cmd.ToString());
            }
            var body      = new StreamReader(req.InputStream).ReadToEnd();
            var keyValues = HttpUtility.ParseQueryString(body);

            if (cmd.IsUsers && cmd.UserId == 0 && !cmd.IsKptBoards && cmd.KptBoardId == 0)
            {
                // POST /v1/users/
                Console.WriteLine("人追加");

                int?age = null;
                if (keyValues.Get("age") != null)
                {
                    age = int.Parse(keyValues.Get("age"));
                }

                var user = new User
                {
                    Name = keyValues.Get("name"),
                    Age  = age
                };
                db.AddUser(user);
                return("");
            }
            if (cmd.IsUsers && cmd.UserId != 0 && cmd.IsKptBoards && cmd.KptBoardId == 0)
            {
                // POST /v1/users/n/kptboards/
                Console.WriteLine("ボード追加");

                var kptBoard = new KptBoard
                {
                    Time    = DateTime.Now,
                    Keep    = keyValues.Get("keep"),
                    Problem = keyValues.Get("problem"),
                    Try     = keyValues.Get("try"),
                    UserId  = cmd.UserId
                };
                db.AddKptBoard(kptBoard);
                return("");
            }

            throw new ArgumentException("指定したAPIがありません。POST " + cmd.ToString());
        }
示例#2
0
        private string DeleteApi(KptRepository db, HttpListenerRequest req, Command cmd)
        {
            if (cmd.IsUsers && cmd.UserId != 0 && cmd.IsKptBoards && cmd.KptBoardId != 0)
            {
                // DELETE /v1/users/n/kptboards/n
                Console.WriteLine("ボード削除");

                var kptBoard = new KptBoard
                {
                    KptBoardId = cmd.KptBoardId
                };

                db.DeleteKptBoard(kptBoard);
                return("");
            }
            throw new ArgumentException("指定したAPIがありません。DELETE " + cmd.ToString());
        }