Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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");
                    }
                }
            }));
        }
Exemple #5
0
        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));
            }
        }
Exemple #6
0
        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);
            }));
        }
Exemple #7
0
        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);
     }));
 }
Exemple #17
0
        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));
            }
        }
Exemple #18
0
        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");
                    }
                }
            }));
        }
Exemple #20
0
 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));
        }
Exemple #22
0
 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);
     }));
 }
Exemple #23
0
        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));
            }
        }
Exemple #24
0
        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);
            }));
        }
Exemple #26
0
        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));
            }
        }
Exemple #27
0
        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));
            }
        }
Exemple #28
0
        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));
            }
        }
Exemple #29
0
        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));
     }
 }