/* * 引数 accountID:ユーザID * 返値 return:作成された付箋のJSON out:HTTPのステータスコード * クライアント側から付箋作成要求が出されたときに呼ばれる * 空の付箋を生成、そのfusenIDを設定して、DBに保存、JSONにして送信 */ public static JObject CreateFusen(string accountID, out int statusCode) { //DBに接続してアカウントID,付箋IDを持つ行を追加 //成功したらそのまま返す/失敗したらJObjectに入れて返す //fusenidが一意になるように try { JObject jobj = new JObject(); using (var db = new KyomuDbContext()) { //accountがあるかの関数 if (!sAccount.accountIDExist(accountID)) { statusCode = 404; return(ServerMain.messagejson("存在しないアカウントIDです")); } //fusenidの発行をする) string FusenID; bool same = false; do { same = false; FusenID = Guid.NewGuid().ToString("N").Substring(0, 20); foreach (var fusen in db.Fusens) { if (fusen.fusenID.Equals(FusenID)) { same = true; } } } while (same); var newfusen = new Models.Fusen { userID = accountID, fusenID = FusenID, title = "", tag = new string[] { "" }, text = "", color = "" }; jobj = Util.FusenToJobj(newfusen); db.Fusens.Add(newfusen); db.SaveChanges(); statusCode = 200; } return(jobj); }catch (Exception e) { Console.WriteLine(e.Message); statusCode = 500; return(ServerMain.messagejson("データベースで異常が発生しました")); } }
// 付箋データをJSONに変換する関数 public static JObject FusenToJobj(Models.Fusen fusen) { var json = new JObject(); json.Add("userID", new JValue(fusen.userID)); json.Add("fusenID", new JValue(fusen.fusenID)); json.Add("title", new JValue(fusen.title)); json.Add("tag", new JArray(fusen.tag)); json.Add("text", new JValue(fusen.text)); json.Add("color", new JValue(fusen.color)); return(json); }