public async Task <IActionResult> Delete(string news_id) { try { if (!ModelState.IsValid) { throw (new Exception("Bad Request,ModelState:" + ModelState.ToString())); } var newss = from row in _context.News where row.news_id == news_id select row; var news = newss.FirstOrDefault(); if (news == null) { throw (new Exception("未找到该对象")); } _context.News.Remove(news); if (!(await _context.SaveChangesAsync() > 0)) { throw (new Exception("数据库删除操作失败")); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(1, "成功删除新闻"); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public async Task <IActionResult> Delete(string ID) { try { if (!ModelState.IsValid) { throw (new Exception("Bad Request,ModelState:" + ModelState.ToString())); } var pedias = from row in _context.Encyclopedia where row.ID == ID select row; var pedia = pedias.FirstOrDefault(); if (pedia == null) { throw (new Exception("未找到待删除的对象")); } _context.Encyclopedia.Remove(pedia); if (!(await _context.SaveChangesAsync() > 0)) { throw (new Exception("数据库删除操作失败")); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(1, "成功删除百科"); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public async Task <IActionResult> Send([Required] int user_id, [Required][FromBody] SendingPrivateLetter letterInfo) { //TODO 需要验证登录态 //返回成功与否 int my_user_id = -1; if (HttpContext.User.Identity.IsAuthenticated) { my_user_id = int.Parse(HttpContext.User.Claims.ElementAt(0).Value); } else { //进入到这部分意味着用户登录态已经失效,需要返回给客户端信息,即需要登录。 RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "Need Authentication"; return(new JsonResult(rr)); } return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_ADD_PRIVATE_LETTER(sender_user_id in INTEGER, receiver_user_id in INTEGER, content in VARCHAR2(255)) //return INTEGER string procudureName = "FUNC_ADD_PRIVATE_LETTER"; OracleCommand cmd = new OracleCommand(procudureName, conn); cmd.CommandType = CommandType.StoredProcedure; //Add return value OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; //Add input parameter sender_user_id OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("sender_user_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = my_user_id; OracleParameter p3 = new OracleParameter(); //Add input parameter receiver_user_id p3 = cmd.Parameters.Add("receiver_user_id", OracleDbType.Int32); p3.Value = user_id; p3.Direction = ParameterDirection.Input; OracleParameter p4 = new OracleParameter(); //Add input parameter content p4 = cmd.Parameters.Add("content", OracleDbType.Varchar2); p4.Value = letterInfo.private_letter_content; p4.Direction = ParameterDirection.Input; await cmd.ExecuteReaderAsync(); Console.WriteLine(p1.Value); if (int.Parse(p1.Value.ToString()) == 0) { throw new Exception("failed"); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(200, "success"); return new JsonResult(rr); })); }
public static async Task <UserPublicInfo> getUserPublicInfo(int user_id) { return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_GET_USER_PUBLIC_INFO(user_id in INTEGER, info out sys_refcursor) //return INGETER string procedureName = "FUNC_GET_USER_PUBLIC_INFO"; OracleCommand cmd = new OracleCommand(procedureName, conn); cmd.CommandType = CommandType.StoredProcedure; OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("user_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = user_id; OracleParameter p3 = new OracleParameter(); p3 = cmd.Parameters.Add("info", OracleDbType.RefCursor); p3.Direction = ParameterDirection.Output; var reader = await cmd.ExecuteReaderAsync(); if (int.Parse(p1.Value.ToString()) == 0) { throw new Exception("failed"); } else { if (reader.Read()) { RestfulResult.RestfulData <UserPublicInfo> rr = new RestfulResult.RestfulData <UserPublicInfo>(); string[] temp = new string[reader.FieldCount]; for (int i = 0; i < reader.FieldCount; ++i) { temp[i] = reader.GetValue(i).ToString(); } rr.Data = new UserPublicInfo(); rr.Data.user_id = int.Parse(reader["USER_ID"].ToString()); rr.Data.nickname = reader["USER_NICKNAME"].ToString(); rr.Data.self_introction = reader["USER_SELF_INTRODUCTION"].ToString(); rr.Data.register_time = reader["USER_REGISTER_TIME"].ToString(); rr.Data.followers_num = int.Parse(reader["USER_FOLLOWERS_NUM"].ToString()); rr.Data.follows_num = int.Parse(reader["USER_FOLLOWS_NUM"].ToString()); rr.Data.messages_num = await getUserMessageNum(rr.Data.user_id); rr.Data.avatar_url = await getAvatarUrl(user_id); rr.Data.collection_num = await CollectionController.GetCollectionCount(user_id, conn); return rr.Data; } else { throw new Exception("failed"); } } })); }
public IActionResult Get(string keyword) { try { //如果keyword为空,不做要求 if (keyword == null) { keyword = ""; } var pediaList = from pedia in _context.Encyclopedia where KeywordSearch.ContainsKeywords(pedia.title + " " + pedia.content, keyword) orderby pedia.post_date descending select pedia; if (pediaList.Count() == 0) { throw (new Exception("没有找到满足条件的数据")); } List <EncyclopediaForShow> showList = new List <EncyclopediaForShow>(); string contract_content = new string(""); foreach (var nwsrow in pediaList) { if (nwsrow.content.Count() > 50) { contract_content = nwsrow.content.Substring(0, 50) + "..."; } else { contract_content = nwsrow.content; } EncyclopediaForShow temp = new EncyclopediaForShow() { author_name = nwsrow.author_name, author_id = nwsrow.author_id, content = contract_content, ID = nwsrow.ID, part = nwsrow.part, post_date = nwsrow.post_date.ToString(), title = nwsrow.title }; showList.Add(temp); } var rr = new RestfulResult.RestfulArray <EncyclopediaForShow>(); rr.code = 1; rr.message = "成功查询到结果"; rr.data = showList.ToArray(); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public async Task <IActionResult> QueryUserLikes([Required] int user_id, [Required] Range range) { return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_QUERY_MESSAGE_IDS_LIKES(user_id in INTEGER, startFrom in INTEGER, limitation in INTEGER, search_result out sys_refcursor) //return INTEGER string procudureName = "FUNC_QUERY_MESSAGE_IDS_LIKES"; OracleCommand cmd = new OracleCommand(procudureName, conn); cmd.CommandType = CommandType.StoredProcedure; //Add return value OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; //Add input parameter user_id OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("user_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = user_id; OracleParameter p3 = new OracleParameter(); //Add input parameter startFrom p3 = cmd.Parameters.Add("startFrom", OracleDbType.Int32); p3.Value = range.startFrom; p3.Direction = ParameterDirection.Input; OracleParameter p4 = new OracleParameter(); //Add input parameter limitation p4 = cmd.Parameters.Add("limitation", OracleDbType.Int32); p4.Value = range.limitation; p4.Direction = ParameterDirection.Input; //Add output parameter result OracleParameter p5 = new OracleParameter(); p5 = cmd.Parameters.Add("search_result", OracleDbType.RefCursor); p5.Direction = ParameterDirection.Output; OracleDataAdapter DataAdapter = new OracleDataAdapter(cmd); DataTable dt = new DataTable(); await Task.FromResult(DataAdapter.Fill(dt)); //dt: message_id int[] message_ids = new int[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; ++i) { message_ids[i] = int.Parse(dt.Rows[i][0].ToString()); } RestfulResult.RestfulData <Message_Id> rr = new RestfulResult.RestfulData <Message_Id>(); rr.Code = 200; rr.Message = "success"; rr.Data = new Message_Id(); rr.Data.like_message_id = message_ids; return new JsonResult(rr); })); }
public async Task <IActionResult> CancelLike([Required] int message_id) { //TODO 给某个推特取消点赞 // 需要身份验证 // 返回成功与否 int my_user_id = -1; if (HttpContext.User.Identity.IsAuthenticated) { my_user_id = int.Parse(HttpContext.User.Claims.ElementAt(0).Value); } else { //进入到这部分意味着用户登录态已经失效,需要返回给客户端信息,即需要登录。 RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "Need Authentication"; return(new JsonResult(rr)); } return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_DELETE_LIKE(user_id in INTEGER, like_message_id in INTEGER) //return INTEGER string procudureName = "FUNC_DELETE_LIKE"; OracleCommand cmd = new OracleCommand(procudureName, conn); cmd.CommandType = CommandType.StoredProcedure; //Add return value OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; //Add input parameter user_id OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("user_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = my_user_id; OracleParameter p3 = new OracleParameter(); //Add input parameter message_id p3 = cmd.Parameters.Add("like_message_id", OracleDbType.Int32); p3.Value = message_id; p3.Direction = ParameterDirection.Input; await cmd.ExecuteReaderAsync(); Console.WriteLine(p1.Value); if (int.Parse(p1.Value.ToString()) == 0) { throw new Exception("failed"); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(200, "success"); return new JsonResult(rr); })); }
public async Task <IActionResult> UploadAvatar([Required][FromForm] int user_id) { ////TODO 需要验证登录态 ////返回成功与否 //int userId = -1; //if (HttpContext.User.Identity.IsAuthenticated) //{ // //这里通过 HttpContext.User.Claims 可以将我们在Login这个Action中存储到cookie中的所有 // //claims键值对都读出来,比如我们刚才定义的UserName的值Wangdacui就在这里读取出来了 // userId = int.Parse(HttpContext.User.Claims.ElementAt(0).Value); //} //else //{ // //TODO // //进入到这部分意味着用户登录态已经失效,需要返回给客户端信息,即需要登录。 // RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); // rr.Code = 200; // rr.Message = "Need Authentication"; // return new JsonResult(rr); //} using (OracleConnection conn = new OracleConnection(ConnStr.getConnStr())) { try { conn.ConnectionString = ConnStr.getConnStr(); conn.Open(); RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "success"; var imgfile = Request.Form.Files[0]; int avatar_id = await addAvatarAndGetAvatarID(user_id); Directory.CreateDirectory(@"wwwroot\avatars\" + user_id.ToString()); if (imgfile.Length > 0) { var img_path = @"wwwroot\avatars\" + user_id.ToString() + @"\" + avatar_id.ToString() + ".jpg"; using (var stream = new FileStream(img_path, FileMode.Create)) { await imgfile.CopyToAsync(stream); } } await ChangeAvatar(avatar_id); return(new JsonResult(rr)); } catch (Exception e) { return(null); } } }
public async Task <IActionResult> CollectionCount([Required] int user_id) { return(await Wrapper.wrap(async (OracleConnection conn) => { RestfulResult.RestfulData <CollectionNum> rr = new RestfulResult.RestfulData <CollectionNum>(); rr.Code = 200; rr.Message = "success"; rr.Data = new CollectionNum(); rr.Data.collection_num = await GetCollectionCount(user_id, conn); return new JsonResult(rr); })); }
public async Task <IActionResult> FollowUser([Required] int user_id) { //TODO getAuthentication and do the CURD //Authentication int my_user_id = -1; if (HttpContext.User.Identity.IsAuthenticated) { my_user_id = int.Parse(HttpContext.User.Claims.ElementAt(0).Value); } else { //进入到这部分意味着用户登录态已经失效,需要返回给客户端信息,即需要登录。 RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "Need Authentication"; return(new JsonResult(rr)); } return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_Add_Relation(follower_id in INTEGER, be_followed_id in INTEGER) //return INTEGER string procudureName = "FUNC_ADD_RELATION"; OracleCommand cmd = new OracleCommand(procudureName, conn); cmd.CommandType = CommandType.StoredProcedure; //Add return value OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; //Add first parameter follower_id OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("follower_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = my_user_id; OracleParameter p3 = new OracleParameter(); //Add second parameter be_followed_id p3 = cmd.Parameters.Add("be_followed_id", OracleDbType.Int32); p3.Value = user_id; p3.Direction = ParameterDirection.Input; await cmd.ExecuteReaderAsync(); Console.WriteLine(p1.Value); if (int.Parse(p1.Value.ToString()) != 1) { throw new Exception("failed"); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(200, "success"); return new JsonResult(rr); })); }
public async Task <IActionResult> SignUp([FromBody] UserInfoForSignUp userInfoForSignUp) { //TODO 注册啦 //返回是否注册成功 return(await Wrapper.wrap(async (OracleConnection conn) => { if (!(ParameterChecker.CheckPara(userInfoForSignUp.email, ParameterChecker.ParaTpye.Email) && ParameterChecker.CheckPara(userInfoForSignUp.password, ParameterChecker.ParaTpye.Password))) { return new JsonResult(new RestfulResult.RestfulData(200, "Invalid Email or Password")); } if (await CheckUserEamil(userInfoForSignUp.email, conn)) { return new JsonResult(new RestfulResult.RestfulData(200, "The email is used")); } //FUNC_USER_SIGN_UP(email in VARCHAR, nickname in VARCHAR, password in VARCHAR) //return INGETER string procedureName = "FUNC_USER_SIGN_UP"; OracleCommand cmd = new OracleCommand(procedureName, conn); cmd.CommandType = CommandType.StoredProcedure; OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("email", OracleDbType.Varchar2); p2.Direction = ParameterDirection.Input; p2.Value = userInfoForSignUp.email; OracleParameter p3 = new OracleParameter(); p3 = cmd.Parameters.Add("nickname", OracleDbType.Varchar2); p3.Direction = ParameterDirection.Input; p3.Value = userInfoForSignUp.nickname; OracleParameter p4 = new OracleParameter(); p4 = cmd.Parameters.Add("password", OracleDbType.Varchar2); p4.Direction = ParameterDirection.Input; p4.Value = userInfoForSignUp.password; await cmd.ExecuteReaderAsync(); if (int.Parse(p1.Value.ToString()) == 0) { throw new Exception("failed"); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(200, "success"); return new JsonResult(rr); })); }
public async Task <IActionResult> QueryUnreadAt() { //TODO 需要身份验证 //查找At自己的在range范围内的message_id //按照时间排序 //返回包含这些id的Json对象 int my_user_id = -1; if (HttpContext.User.Identity.IsAuthenticated) { my_user_id = int.Parse(HttpContext.User.Claims.ElementAt(0).Value); } else { //进入到这部分意味着用户登录态已经失效,需要返回给客户端信息,即需要登录。 RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "Need Authentication"; return(new JsonResult(rr)); } return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_QUERY_UNREAD_AT(userid in INTEGER, unread_count out INTEGER) //return INTEGER string procudureName = "FUNC_QUERY_UNREAD_AT"; OracleCommand cmd = new OracleCommand(procudureName, conn); cmd.CommandType = CommandType.StoredProcedure; //Add return value OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; //Add input parameter follower_id OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("userid", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = my_user_id; OracleParameter p3 = new OracleParameter(); //Add input parameter be_followed_id p3 = cmd.Parameters.Add("unread_count", OracleDbType.Int32); p3.Direction = ParameterDirection.Output; await cmd.ExecuteReaderAsync(); RestfulResult.RestfulData <int> rr = new RestfulResult.RestfulData <int>(); rr.Code = 200; rr.Message = "success"; rr.Data = int.Parse(p3.Value.ToString()); return new JsonResult(rr); })); }
public async Task <IActionResult> QueryUser([Required] int user_id) { //TODO 查询可公开信息 //返回含有列表的Json对象 return(await Wrapper.wrap(async (OracleConnection conn) => { RestfulResult.RestfulData <UserPublicInfo> rr = new RestfulResult.RestfulData <UserPublicInfo>(); rr.Code = 200; rr.Message = "success"; rr.Data = await getUserPublicInfo(user_id); return new JsonResult(rr); })); }
public async Task <IActionResult> checkUserCollectMessge([Required] User_Collect_Message userCollectMessage) { return(await Wrapper.wrap(async (OracleConnection conn) => { RestfulResult.RestfulData <UserCollects> rr = new RestfulResult.RestfulData <UserCollects>(); rr.Code = 200; UserCollects l = new UserCollects(); l.favor = await checkUserCollectMessageBool(userCollectMessage.user_id, userCollectMessage.message_id); rr.Data = l; rr.Message = "success"; return new JsonResult(rr); })); }
public async Task <IActionResult> ChangeAvatar([Required] int avatar_id) { string userId; if (HttpContext.User.Identity.IsAuthenticated) { //这里通过 HttpContext.User.Claims 可以将我们在Login这个Action中存储到cookie中的所有 //claims键值对都读出来 userId = HttpContext.User.Claims.First().Value; } else { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "Need Authentication"; return(new JsonResult(rr)); } return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_SET_MAIN_AVATAR(user_id in INTEGER, avatar_id in INTEGER) //return INGETER string procedureName = "FUNC_SET_MAIN_AVATAR"; OracleCommand cmd = new OracleCommand(procedureName, conn); cmd.CommandType = CommandType.StoredProcedure; OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("user_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = userId; OracleParameter p3 = new OracleParameter(); p3 = cmd.Parameters.Add("avatar_id", OracleDbType.Int32); p3.Direction = ParameterDirection.Input; p3.Value = avatar_id; await cmd.ExecuteReaderAsync(); if (int.Parse(p1.Value.ToString()) == 0) { throw new Exception("failed"); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(200, "success"); return new JsonResult(rr); })); }
public async Task <IActionResult> GetAvatar([Required] int user_id) { //TODO 无需验证身份 //从数据库获得此人的正在使用头像 //返回头像的url return(await Wrapper.wrap(async (OracleConnection conn) => { string avatarUrl = await getAvatarUrl(user_id); RestfulResult.RestfulData <string> rr = new RestfulResult.RestfulData <string>(); rr.Code = 200; rr.Message = "success"; rr.Data = avatarUrl; return new JsonResult(rr); })); }
public async Task <IActionResult> Add([FromBody] dynamic _in) { try { if (!ModelState.IsValid) { throw (new Exception("Bad Request,ModelState:" + ModelState.ToString())); } string news_id = _in.news_id; var newss = from row in _context.News where row.news_id == news_id select row; var news = newss.FirstOrDefault(); if (news != null) { throw (new Exception("该对象ID已存在")); } var nws = new news() { author_name = _in.author_name, author_id = _in.author_id, content = _in.content, news_id = _in.news_id, part = _in.part, post_date = _in.post_date, title = _in.title, reader_num = 0, craze = 0 }; _context.News.Add(nws); if (!(await _context.SaveChangesAsync() > 0)) { throw (new Exception("插入到数据库失败")); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(1, "成功发布新闻"); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public async Task <IActionResult> Add([FromBody] dynamic _in) { try { if (!ModelState.IsValid) { throw (new Exception("Bad Request,ModelState:" + ModelState.ToString())); } string ID = _in.ID; var pedias = from row in _context.Encyclopedia where row.ID == ID select row; var pedia = pedias.FirstOrDefault(); if (pedia != null) { throw (new Exception("该对象ID已存在")); } var newpedia = new encyclopedia() { author_name = _in.author_name, author_id = _in.author_id, content = _in.content, ID = ID, part = _in.part, post_date = _in.post_date, title = _in.title, reader_num = 0 }; _context.Encyclopedia.Add(newpedia); if (!(await _context.SaveChangesAsync() > 0)) { throw (new Exception("插入到数据库失败")); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(1, "成功发布百科"); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.ToString()); return(new JsonResult(rr)); } }
public static async Task <int> getUserMessageNum(int user_id) { return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_GET_MESSAGE_NUMS(user_id in INTEGER, info out sys_refcursor) //return INGETER string procedureName = "FUNC_GET_MESSAGE_NUMS"; OracleCommand cmd = new OracleCommand(procedureName, conn); cmd.CommandType = CommandType.StoredProcedure; OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("user_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = user_id; OracleParameter p3 = new OracleParameter(); p3 = cmd.Parameters.Add("search_result", OracleDbType.RefCursor); p3.Direction = ParameterDirection.Output; var reader = await cmd.ExecuteReaderAsync(); if (int.Parse(p1.Value.ToString()) == 0) { throw new Exception("failed"); } else { if (reader.Read()) { RestfulResult.RestfulData <UserPublicInfo> rr = new RestfulResult.RestfulData <UserPublicInfo>(); string[] temp = new string[reader.FieldCount]; for (int i = 0; i < reader.FieldCount; ++i) { temp[i] = reader.GetValue(i).ToString(); } return int.Parse(reader["message_num"].ToString()); } else { throw new Exception("failed"); } } })); }
public IActionResult GetSell(string searchkey) { try { //在数据库搜索表单 var sellList = from sell in _context.car_data join vin in _context.car_vin_data on sell.car_vin equals vin.car_vin join user in _context.user_data on sell.user_id equals user.user_id where vin.brand == searchkey select new { sell, vin, user }; var showList = new List <CarSellForShow>(); //将表单转为显示形式 foreach (var row in sellList) { var temp = new CarSellForShow { car_id = row.sell.car_id, user_id = row.sell.user_id, user_name = row.user.user_name, phone = row.sell.phone, accident = row.sell.accident, car_condition = row.sell.car_condition, date_buyin = row.sell.date_buyin.ToString(), price = row.sell.price, car_name = row.vin.car_name, car_vin = row.sell.car_vin }; showList.Add(temp); } //排序 // var rr = new RestfulResult.RestfulArray <CarSellForShow>(); rr.code = 1; rr.message = "成功查询"; rr.data = showList.ToArray(); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public async Task <IActionResult> IfFollowing([Required] int be_followed_id) { int my_user_id = -1; if (HttpContext.User.Identity.IsAuthenticated) { my_user_id = int.Parse(HttpContext.User.Claims.ElementAt(0).Value); } else { //进入到这部分意味着用户登录态已经失效,需要返回给客户端信息,即需要登录。 RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "Need Authentication"; return(new JsonResult(rr)); } return(await IfFollowing(my_user_id, be_followed_id)); }
public async Task <IActionResult> getSearchResult(string searchKey, [FromBody] Range range) { return(await Wrapper.wrap(async (OracleConnection conn) => { MessageController.MessageForShow[] twitterResults = await GetTwitterResults(conn, searchKey, range); UserController.UserPublicInfo[] userResults = await GetUserResults(conn, searchKey, range); TopicResult[] topicResults = await GetTopicResults(conn, searchKey, range); ResultSet resultSet = new ResultSet(); resultSet.twitters = twitterResults; resultSet.users = userResults; resultSet.topics = topicResults; RestfulResult.RestfulData <ResultSet> rr = new RestfulResult.RestfulData <ResultSet>(); rr.Code = 200; rr.Data = resultSet; rr.Message = "success"; return new JsonResult(rr); })); }
public async Task <IActionResult> Add([FromBody] dynamic _in) { try { if (!ModelState.IsValid) { throw (new Exception("Bad Request,ModelState:" + ModelState.ToString())); } string post_id = _in.post_id; var posts = from row in _context.Post_data where row.post_id == post_id select row; var post = posts.FirstOrDefault(); if (post != null) { throw (new Exception("该对象ID已存在")); } var newpost = new post_data() { content = _in.content, title = _in.title, post_date = _in.post_date, post_id = _in.post_id, user_id = _in.user_id }; _context.Post_data.Add(newpost); if (!(await _context.SaveChangesAsync() > 0)) { throw (new Exception("插入到数据库失败")); } RestfulResult.RestfulData rr = new RestfulResult.RestfulData(1, "成功发布主题贴"); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public IActionResult Get_pageNews([FromBody] dynamic _in) { try { string keyword = _in.keyword; string author_id = _in.author_id; int page_num = _in.page_num; int page_size = _in.page_size; List <NewsForShow> showList = NewsSearch(keyword, author_id); int startIndex = (page_num - 1) * page_size; int endIndex = page_num * page_size; List <NewsForShow> pageList; if (showList.Count() < startIndex - 1) { throw (new Exception("超出范围")); } else if (showList.Count() < endIndex) { pageList = showList.GetRange(startIndex, showList.Count() - startIndex); } else { pageList = showList.GetRange(startIndex, page_size); } var resultData = new NewsPage { page_num = page_num, total = showList.Count(), newsSet = pageList.ToArray() }; var rr = new RestfulResult.RestfulData <NewsPage>(); rr.code = 1; rr.message = "成功获取新闻页"; rr.data = resultData; return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public async Task <IActionResult> IfFollowing(int follower_id, int be_followed_id) { return(await Wrapper.wrap(async (OracleConnection conn) => { //FUNC_REMOVE_RELATION(follower_id in INTEGER, be_followed_id in INTEGER) //return INTEGER string procudureName = "FUNC_IF_FOLLOWING"; OracleCommand cmd = new OracleCommand(procudureName, conn); cmd.CommandType = CommandType.StoredProcedure; //Add return value OracleParameter p1 = new OracleParameter(); p1 = cmd.Parameters.Add("state", OracleDbType.Int32); p1.Direction = ParameterDirection.ReturnValue; //Add first parameter follower_id OracleParameter p2 = new OracleParameter(); p2 = cmd.Parameters.Add("follower_id", OracleDbType.Int32); p2.Direction = ParameterDirection.Input; p2.Value = follower_id; OracleParameter p3 = new OracleParameter(); //Add second parameter be_followed_id p3 = cmd.Parameters.Add("be_followed_id", OracleDbType.Int32); p3.Value = be_followed_id; p3.Direction = ParameterDirection.Input; await cmd.ExecuteReaderAsync(); RestfulResult.RestfulData <FollowStatus> rr = new RestfulResult.RestfulData <FollowStatus>(); rr.Code = 200; rr.Data = new FollowStatus(); if (int.Parse(p1.Value.ToString()) > 0) { rr.Data.if_following = true; } else { rr.Data.if_following = false; } rr.Message = "success"; return new JsonResult(rr); })); }
public IActionResult GetBuy(string searchkey) { try { //在数据库搜索表单 var buyList = from buy in _context.buying_leads join user in _context.user_data on buy.user_id equals user.user_id where buy.brand == searchkey select new { buy, user }; var showList = new List <CarBuyForShow>(); //将表单转为显示形式 foreach (var row in buyList) { var temp = new CarBuyForShow { buy_id = row.buy.buy_id, car_name = row.buy.car_name, car_condition = row.buy.car_condition, color = row.buy.color, phone = row.buy.phone, price = row.buy.price, user_id = row.buy.user_id, user_name = row.user.user_name }; showList.Add(temp); } //排序 // var rr = new RestfulResult.RestfulArray <CarBuyForShow>(); rr.code = 1; rr.message = "成功查询"; rr.data = showList.ToArray(); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public IActionResult Get([FromBody] dynamic _in) { try { string keyword = _in.keyword; string author_id = _in.author_id; var showList = NewsSearch(keyword, author_id); RestfulResult.RestfulArray <NewsForShow> rr = new RestfulResult.RestfulArray <NewsForShow>(); rr.code = 1; rr.message = "成功查询到结果"; rr.data = showList.ToArray(); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public IActionResult GetReplys(string post_id) { try { var replyList = from reply in _context.Reply_data join user in _context.user_data on reply.user_id equals user.user_id where reply.post_id == post_id orderby reply.reply_date ascending select new { reply, user }; if (replyList.Count() == 0) { throw (new Exception("没找到回复贴")); } var showList = new List <ReplysForShow>(); foreach (var replyRow in replyList) { var temp = new ReplysForShow { content = replyRow.reply.content, reply_date = replyRow.reply.reply_date.ToString(), reply_id = replyRow.reply.reply_id, user_id = replyRow.reply.user_id, user_name = replyRow.user.user_name }; showList.Add(temp); } RestfulResult.RestfulArray <ReplysForShow> rr = new RestfulResult.RestfulArray <ReplysForShow>(); rr.code = 1; rr.message = "成功查询到结果"; rr.data = showList.ToArray(); return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public IActionResult GetPost(string post_id) { try { if (!ModelState.IsValid) { throw (new Exception("Bad Request,ModelState:" + ModelState.ToString())); } var post = _context.Post_data.Find(post_id); if (post == null) { throw (new Exception("没有找到满足条件的数据")); } // var user = _context.user_data.Find(post.user_id); var postshow = new PostForShow { content = post.content, post_date = post.post_date.ToString(), post_id = post.post_id, title = post.title, user_id = post.user_id, user_name = user.user_name }; RestfulResult.RestfulData <PostForShow> rr = new RestfulResult.RestfulData <PostForShow>(); rr.code = 1; rr.message = "成功查询到结果"; rr.data = postshow; return(new JsonResult(rr)); } catch (Exception exc) { RestfulResult.RestfulData rr = new RestfulResult.RestfulData(0, exc.Message); return(new JsonResult(rr)); } }
public IActionResult CheckLogin() { if (HttpContext.User.Identity.IsAuthenticated) { //这里通过 HttpContext.User.Claims 可以将我们在Login这个Action中存储到cookie中的所有 //claims键值对都读出来,比如我们刚才定义的UserName的值Wangdacui就在这里读取出来了 RestfulResult.RestfulData <UserId> rr = new RestfulResult.RestfulData <UserId>(); rr.Code = 200; rr.Data = new UserId(); rr.Data.user_id = int.Parse(HttpContext.User.Claims.ElementAt(0).Value); rr.Message = "Aready login"; return(new JsonResult(rr)); } else { //TODO //进入到这部分意味着用户登录态已经失效,需要返回给客户端信息,即需要登录。 RestfulResult.RestfulData rr = new RestfulResult.RestfulData(); rr.Code = 200; rr.Message = "Need Authentication"; return(new JsonResult(rr)); } }