Esempio n. 1
0
        public IActionResult CommentSubmit([FromForm] CommentSubmitParameter parameter)
        {
            Debug.WriteLine(parameter.ArticleId);
            Debug.WriteLine(parameter.Comment);
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"] = user;
                    if (parameter.Comment != null && !String.IsNullOrEmpty(parameter.Comment))
                    {
                        Comment comment = new Comment
                        {
                            ArticleId = parameter.ArticleId,
                            Content   = parameter.Comment,
                            UserId    = user.Id
                        };
                        _commentcontext.Comments.Add(comment);
                        _commentcontext.SaveChanges();
                        Article article = _articlecontext.Articles.FirstOrDefault(a => a.Id == parameter.ArticleId);
                        article.CommentCount = _commentcontext.Comments.Where(c => c.ArticleId == article.Id).Count();
                        _articlecontext.Articles.Update(article);
                        _articlecontext.SaveChanges();
                    }
                }
            }
            ViewData["Controller"] = "Article";
            ViewData["Action"]     = "Read";
            return(RedirectToAction("Read", new { id = parameter.ArticleId }));
        }
Esempio n. 2
0
        public IActionResult Download([FromRoute] string page)
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"]       = user;
                    ViewData["Title"]      = "一站式编程学习平台|下载";
                    ViewData["Controller"] = "Download";
                    ViewData["Action"]     = "Download";
                    ViewData["Tab"]        = page;
                    List <DownloadItem> items = _downloaditemcontext.DownloadItems.AsEnumerable().ToList();
                    ViewData["Items"] = items;
                    List <User> users = new List <User>();
                    foreach (var d in items)
                    {
                        users.Add(_usercontext.Users.AsEnumerable().FirstOrDefault(u => u.Id == d.UserId));
                    }
                    ViewData["Users"] = users;
                    return(View());
                }
            }
            return(RedirectToAction("Login", "Login"));
        }
Esempio n. 3
0
        public IActionResult UpdateImg()
        {
            StringValues file;

            Request.Form.TryGetValue("file", out file);
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    string filePath = hostingEnvironment.WebRootPath + @"\data\image";
                    if (!Directory.Exists(filePath))
                    {
                        Directory.CreateDirectory(filePath);
                    }
                    var match = Regex.Match(HttpUtility.UrlDecode(file.ToString()), "data:image/(\\w{2,4});base64,([\\w\\W]*)$");
                    if (match.Success)
                    {
                        using (FileStream fs = System.IO.File.Create(filePath + $@"\{user.Id}.{match.Groups[1].Value}"))
                        {
                            fs.Write(Convert.FromBase64String(match.Groups[2].Value));
                            fs.Flush();
                        }
                        user.UserImgURL = $@"\data\image\{user.Id}.{match.Groups[1].Value}";
                        _usercontext.Users.Update(user);
                        _usercontext.SaveChanges();
                    }
                }
            }
            return(RedirectToAction("Info"));
        }
Esempio n. 4
0
        public IActionResult Index()
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"] = user;
                }
            }
            ViewData["Title"] = "一站式编程学习平台|首页";
            int count = _articlecontext.Articles.AsEnumerable().Count();

            ViewData["NewArticleList"] = _articlecontext.Articles.AsEnumerable().OrderBy(a => a.CreateDate).Reverse().ToList().GetRange(0, count > 10 ? 10 : count);
            ViewData["HotArticleList"] = _articlecontext.Articles.AsEnumerable().OrderBy(a => a.LookCount).Reverse().ToList().GetRange(0, count > 10 ? 10 : count);
            count = _downloaditemcontext.DownloadItems.AsEnumerable().Count();
            ViewData["DownloadItem"] = _downloaditemcontext.DownloadItems.AsEnumerable().OrderBy(d => d.CreateDate).Reverse().ToList().GetRange(0, count > 10 ? 10 : count);
            ViewData["Controller"]   = "Main";
            ViewData["Action"]       = "Index";
            return(View());
        }
Esempio n. 5
0
        public IActionResult ArticleSubmit([FromForm] ArticleEditSubmitParameter parameter)
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["Nick"]       = user.Nick;
                    ViewData["ATitle"]     = parameter.Title;
                    ViewData["KeyWord"]    = parameter.KeyWord;
                    ViewData["IsOriginal"] = parameter.IsOriginal == null ? false : parameter.IsOriginal.Equals("on");
                    ViewData["Content"]    = parameter.Content;
                    ViewData["Family"]     = parameter.Family;
                    if (parameter.Title == null || String.IsNullOrEmpty(parameter.Title.Trim()))
                    {
                        ViewData["Msg"] = "标题不能为空";
                        return(View("Editor"));
                    }
                    if (parameter.KeyWord == null || String.IsNullOrEmpty(parameter.KeyWord.Trim()))
                    {
                        ViewData["Msg"] = "关键词不能为空";
                        return(View("Editor"));
                    }
                    if (parameter.Content == null || String.IsNullOrEmpty(parameter.Content.Trim()))
                    {
                        ViewData["Msg"] = "内容不能为空";
                        return(View("Editor"));
                    }
                    Article article = new Article
                    {
                        IsOriginal = parameter.IsOriginal != null && parameter.IsOriginal.Equals("on"),
                        Title      = parameter.Title,
                        Content    = parameter.Content,
                        KeyWord    = parameter.KeyWord,
                        Family     = parameter.Family,
                        User       = user.Nick,
                        UserId     = user.Id,
                    };
                    _articlecontext.Articles.Add(article);
                    _articlecontext.SaveChanges();
                    return(RedirectToAction("Article"));
                }
            }
            ViewData["Controller"] = "Article";
            ViewData["Action"]     = "Editor";
            return(RedirectToAction("Login", "Login"));
        }
Esempio n. 6
0
        public IActionResult Login()
        {
            string sessionCode;

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            if (!string.IsNullOrEmpty(sessionCode))
            {
                if (UserServer.CheckSessionCode(sessionCode, _usercontext) != null)
                {
                    return(RedirectToAction("Index", "Main"));
                }
            }
            return(View());
        }
Esempio n. 7
0
        public IActionResult Index()
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"]  = user;
                    ViewData["Title"] = "一站式编程学习平台|知识竞赛";
                    return(View());
                }
            }
            return(RedirectToAction("Login", "Login"));
        }
Esempio n. 8
0
        public IActionResult Editor()
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"] = user;
                }
            }
            ViewData["Title"]      = "一站式编程学习平台|写文章";
            ViewData["Controller"] = "Article";
            ViewData["Action"]     = "Editor";
            return(View());
        }
Esempio n. 9
0
        public IActionResult Read([FromRoute] int id)
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"] = user;
                }
            }
            Article article = _articlecontext.Articles.AsEnumerable().FirstOrDefault(a => a.Id == id);

            article.LookCount++;
            _articlecontext.Articles.Update(article);
            _articlecontext.SaveChanges();
            ViewData["Article"] = article;
            int commentCount = _commentcontext.Comments.AsEnumerable().Where(c => c.ArticleId == article.Id).Count();

            ViewData["CommentCount"] = commentCount;
            List <Comment> commments = _commentcontext.Comments.AsEnumerable().Where(c => c.ArticleId == article.Id).OrderBy(c => c.CreateDate).Reverse().ToList().GetRange(0, commentCount > 10 ? 10 : commentCount);

            ViewData["Comments"] = commments;
            List <User> users = new List <User>();

            foreach (Comment comment in commments)
            {
                users.Add(_usercontext.Users.AsEnumerable().FirstOrDefault(u => u.Id == comment.UserId));
            }
            ViewData["Users"]      = users;
            ViewData["Title"]      = "一站式编程学习平台|文章";
            ViewData["Controller"] = "Article";
            ViewData["Action"]     = "Read";
            return(View());
        }
Esempio n. 10
0
        public IActionResult UpdateInfo([FromForm] UpdateInfoParameter parameter)
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["Nick"] = "";
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    user.Nick              = parameter.Nick == null ? "" : parameter.Nick;
                    user.Name              = parameter.Name == null ? "" : parameter.Name;
                    user.Birthday          = parameter.Birthday;
                    user.Sex               = parameter.sex;
                    user.Synopsis          = parameter.Synopsis == null ? "" : parameter.Synopsis;
                    ViewData["User"]       = user;
                    ViewData["Title"]      = "一站式编程学习平台|我";
                    ViewData["Controller"] = "Me";
                    ViewData["Action"]     = "Info";
                    if (string.IsNullOrEmpty(parameter.Nick))
                    {
                        ViewData["Msg"] = "昵称不能为空";
                        return(View("Info"));
                    }
                    if (_usercontext.Users.Where(u => u.Nick != null && u.Nick.Equals(parameter.Nick) && u.Id != user.Id).Count() >= 1)
                    {
                        ViewData["Msg"] = "该昵称已经被使用了";
                        return(View("Info"));
                    }
                    _usercontext.Users.Update(user);
                    _usercontext.SaveChanges();
                    return(View("Info"));
                }
            }
            return(RedirectToAction("Login", "Login"));
        }
Esempio n. 11
0
        public IActionResult Article([FromRoute] string key)
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"] = user;
                }
            }
            int count = _articlecontext.Articles.AsEnumerable().Count();

            ViewData["NewArticleList"] = _articlecontext.Articles.AsEnumerable().OrderBy(a => a.CreateDate).Reverse().ToList().GetRange(0, count > 10 ? 10 : count);
            ViewData["HotArticleList"] = _articlecontext.Articles.AsEnumerable().OrderBy(a => a.LookCount).Reverse().ToList().GetRange(0, count > 10 ? 10 : count);
            if (key.Equals("new"))
            {
                ViewData["ArticleList"] = ViewData["NewArticleList"];
            }
            else if (key.Equals("hot"))
            {
                count = _articlecontext.Articles.AsEnumerable().Count();
                ViewData["ArticleList"] = ViewData["HotArticleList"];
            }
            else
            {
                List <Article> articles = _articlecontext.Articles.AsEnumerable().Where(a => a.Title.IndexOf(key) >= 0 || a.KeyWord.IndexOf(key) >= 0 || a.Family.IndexOf(key) >= 0 || a.Content.IndexOf(key) >= 0).OrderBy(a => a.LookCount).Reverse().ToList();
                ViewData["ArticleList"] = articles.GetRange(0, articles.Count > 10 ? 10 : articles.Count);
            }
            ViewData["Title"]      = "一站式编程学习平台|文章";
            ViewData["Controller"] = "Article";
            ViewData["Action"]     = "Article";
            return(View());
        }
Esempio n. 12
0
        public async Task <IActionResult> UploadFileAsync([FromForm] UploadFileParameter parameter)
        {
            string sessionCode = "";

            Request.Cookies.TryGetValue("SessionCode", out sessionCode);
            ViewData["User"] = null;
            if (!string.IsNullOrEmpty(sessionCode))
            {
                User user = UserServer.CheckSessionCode(sessionCode, _usercontext);
                if (user != null)
                {
                    ViewData["User"]       = user;
                    ViewData["Title"]      = "一站式编程学习平台|下载";
                    ViewData["Controller"] = "Download";
                    ViewData["Action"]     = "Download";
                    List <DownloadItem> items = _downloaditemcontext.DownloadItems.AsEnumerable().ToList();
                    ViewData["Items"] = items;
                    List <User> users = new List <User>();
                    foreach (var d in items)
                    {
                        users.Add(_usercontext.Users.AsEnumerable().FirstOrDefault(u => u.Id == d.UserId));
                    }
                    ViewData["Users"] = users;

                    ViewData["Parameter"] = parameter;
                    if (parameter.Title == null || string.IsNullOrEmpty(parameter.Title.Trim()))
                    {
                        ViewData["Tip"] = new Tip("提示", "上传文件", "标题不能为空", "text-danger", 5000);
                        ViewData["Tab"] = "upload-file";
                        return(View("Download"));
                    }
                    if (parameter.Tag == null || string.IsNullOrEmpty(parameter.Tag.Trim()))
                    {
                        ViewData["Tip"] = new Tip("提示", "上传文件", "标签不能为空", "text-danger", 5000);
                        ViewData["Tab"] = "upload-file";
                        return(View("Download"));
                    }
                    if (parameter.Describe == null || string.IsNullOrEmpty(parameter.Describe.Trim()))
                    {
                        ViewData["Tip"] = new Tip("提示", "上传文件", "描述不能为空", "text-danger", 5000);
                        ViewData["Tab"] = "upload-file";
                        return(View("Download"));
                    }
                    var files = Request.Form.Files;
                    Debug.WriteLine($"文件数量{files.Count}");
                    if (files.Count != 1)
                    {
                        ViewData["Tip"] = new Tip("提示", "上传文件", "只能上传单个文件", "text-danger", 5000);
                        ViewData["Tab"] = "upload-file";
                        return(View("Download"));
                    }
                    var  file = files[0];
                    long size = file.Length;
                    if (size > 50 * 1024 * 1024)
                    {
                        ViewData["Tip"] = new Tip("提示", "上传文件", "文件大小不能超过50MB", "text-danger", 5000);
                        ViewData["Tab"] = "upload-file";
                        return(View("Download"));
                    }
                    if (size > 0)
                    {
                        string dicPath  = hostingEnvironment.WebRootPath + @$ "\data\file\{user.Id}";
                        string filePath = $@"{dicPath}\{file.FileName}";
                        if (!Directory.Exists(dicPath))
                        {
                            Directory.CreateDirectory(dicPath);
                        }
                        using (var stream = System.IO.File.Create(filePath))
                        {
                            await file.CopyToAsync(stream);
                        }
                        DownloadItem downloadItem = new DownloadItem
                        {
                            Describe = parameter.Describe,
                            Size     = size,
                            Tag      = parameter.Tag,
                            Title    = parameter.Title,
                            Url      = @$ "\data\file\{user.Id}\{file.FileName}",
                            Type     = parameter.Type,
                            UserId   = user.Id,
                            ImgUrl   = $"/image/resources_{parameter.Type.ToString().ToLower()}.png"
                        };
                        _downloaditemcontext.DownloadItems.Add(downloadItem);
                        _downloaditemcontext.SaveChanges();
                        ViewData["Tip"]       = new Tip("提示", "上传文件", "上传成功", "text-success", 5000);
                        ViewData["Parameter"] = null;
                        items.Add(downloadItem);
                        users.Add(user);
                        return(View("Download"));
                    }
                    ViewData["Tip"] = new Tip("提示", "上传文件", "上传失败", "text-danger", 5000);
                    ViewData["Tab"] = "upload-file";
                    return(View("Download"));
                }