public ActionResult Edit(int id)
        {
            var sql    = $@"SELECT * FROM dbo.Tags";
            var dtTags = DBLibs.GetDataBy_DataAdapter(sql, _cnn);

            ViewBag.DsTags = dtTags;

            sql = $@"SELECT id, title FROM News WHERE id <> {id} AND id NOT IN (SELECT related_news FROM News WHERE id = {id}) AND PublishAt BETWEEN {CLibs.DatetimeToTimestampOrgin(DateTime.Now.AddMonths(-1))} AND {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}";
            var dtDsBaiViet = DBLibs.GetDataBy_DataAdapter(sql, _cnn);

            ViewBag.DsBaiViet = dtDsBaiViet;

            sql = $@"SELECT id, title FROM News WHERE id IN (SELECT related_news FROM News WHERE id = {id})";
            var dtRelatedNews = DBLibs.GetDataBy_DataAdapter(sql, _cnn);

            ViewBag.DsBaiVietLienQuan = dtRelatedNews;

            #region Get item infos
            var dtInfos = DBLibs.GetDataBy_DataAdapter($@"SELECT TOP 1 * FROM News WHERE id = {id}", _cnn);
            ViewBag.Infos = dtInfos.Rows[0];
            #endregion

            ViewBag.Images = $"{Server.MapPath(@"\")}UserData\\{SysBaseInfor.GetIdNguoiDung()}\\{id}";
            ViewBag.Cates  = Request["_cates"];
            ViewBag.Id     = id;
            return(View());
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="type">0: Images; 1: Documents</param>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult UploadFile(int type = 0, int id = 0)
        {
            bool   isSavedSuccessfully = true;
            string fName = "";
            var    msg   = "";

            try
            {
                foreach (string fileName in Request.Files)
                {
                    HttpPostedFileBase file = Request.Files[fileName];
                    //Save file content goes here
                    //fName = file.FileName;
                    if (file != null && file.ContentLength > 0)
                    {
                        var path = "";
                        if (type == 0) // images
                        {
                            path = Server.MapPath("~") + $"UserData/{SysBaseInfor.GetIdNguoiDung()}/{id}/";
                        }
                        else if (type == 1) // documents
                        {
                            path = Server.MapPath("~") + $"TaiLieu/{id}/";
                        }

                        var ext = Path.GetExtension(file.FileName);
                        fName = file.FileName;// "FileDiemChuanBiDongBo" + ext;
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }
                        if (System.IO.File.Exists(fName))
                        {
                            System.IO.File.Delete(fName);
                        }

                        var fullpath = string.Format("{0}\\{1}", path, fName);
                        file.SaveAs(fullpath);
                    }
                }
            }
            catch (Exception ex)
            {
                isSavedSuccessfully = false;
                msg = ex.Message;
            }

            if (isSavedSuccessfully)
            {
                return(Json(new { Message = fName }));
            }
            else
            {
                return(Json(new { Message = msg }));
            }
        }
Ejemplo n.º 3
0
        public ActionResult Index()
        {
            var dtBaiGiang = DBLibs.GetDataBy_DataAdapter($@"
            SELECT bg.*, dt.TenDotThi 
            FROM dbo.BaiGiang bg LEFT OUTER JOIN DotThi dt ON dt.id = bg.idDotThi 
            WHERE idGvienChinh = {SysBaseInfor.GetIdNguoiDung()} 
            ORDER BY updated_at DESC", _cnn);

            ViewBag.DsBaiGiang = dtBaiGiang;

            return(View());
        }
Ejemplo n.º 4
0
        public JsonResult ChamBaiGiang(int _idbg = 0, int _diem = -1)
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (_idbg == 0 || _diem < 0 || _diem > 100)
            {
                msg = "Sai ID bài giảng hoặc điểm sai định dạng!";
            }
            else
            {
                #region Update
                var sql = $@"
                UPDATE BaiGiang 
                SET 
                    Diem1 = {_diem} , -- Diem1 - int
                    NgayChamDiem1 = '{CLibs.DatetimeToTimestampOrgin(DateTime.Now)}' -- NgayChamDiem1 - datetime
                WHERE
                    id = {_idbg} AND idGiamKhao1 = {SysBaseInfor.GetIdNguoiDung()}

                UPDATE BaiGiang 
                SET 
                    Diem2 = {_diem} , -- Diem2 - int
                    NgayChamDiem2 = '{CLibs.DatetimeToTimestampOrgin(DateTime.Now)}' -- NgayChamDiem2 - datetime
                WHERE
                    id = {_idbg} AND idGiamKhao2 = {SysBaseInfor.GetIdNguoiDung()}";

                var eff = DBLibs.ExecuteNonQuery(sql, _cnn);
                if (eff > 0)
                {
                    stt = true;
                }
                else
                {
                    msg = "Không cập nhật dữ liệu được!";
                }
                #endregion
            }
            #endregion

            return(Json(new
            {
                status = stt,
                message = msg
            }));
        }
Ejemplo n.º 5
0
        public ActionResult Edit(int id)
        {
            #region Lấy ra các danh mục cho vào box chọn
            var sql       = "SELECT * FROM DanhMucChung WHERE LoaiDanhMuc IN (3,4,5)";
            var dtDanhMuc = DBLibs.GetDataBy_DataAdapter(sql, _cnn);
            var dtCoQuan  = dtDanhMuc.Clone();
            var dtLoaiVb  = dtDanhMuc.Clone();
            var dtLinhVuc = dtDanhMuc.Clone();

            foreach (DataRow dr in dtDanhMuc.Rows)
            {
                if (dr["LoaiDanhMuc"].ToString() == "3")
                {
                    dtCoQuan.ImportRow(dr);
                }
                else if (dr["LoaiDanhMuc"].ToString() == "4")
                {
                    dtLoaiVb.ImportRow(dr);
                }
                else if (dr["LoaiDanhMuc"].ToString() == "5")
                {
                    dtLinhVuc.ImportRow(dr);
                }
            }

            ViewBag.DsCoQuanBh   = dtCoQuan;
            ViewBag.DsLoaiVanBan = dtLoaiVb;
            ViewBag.DsLinhVuc    = dtLinhVuc;
            #endregion

            #region Get item infos
            var dtInfos = DBLibs.GetDataBy_DataAdapter($@"SELECT TOP 1 * FROM News WHERE id = {id}", _cnn);
            ViewBag.Infos = dtInfos.Rows[0];
            #endregion

            ViewBag.Files = $"{Server.MapPath(@"\")}UserData\\{SysBaseInfor.GetIdNguoiDung()}\\{id}";
            ViewBag.Id    = id;
            return(View());
        }
Ejemplo n.º 6
0
        public ActionResult BaiGiangChuaCham()
        {
            var dtBaiGiang = DBLibs.GetDataBy_DataAdapter($@"
            SELECT
                bg.id,
                bg.TenBaiGiang,
                bg.submit_at,
                bg.FilePathBaiGiang,
                CASE WHEN bg.idGiamKhao1 = {SysBaseInfor.GetIdNguoiDung()} THEN bg.Diem1 ELSE CASE WHEN bg.idGiamKhao2 = {SysBaseInfor.GetIdNguoiDung()} THEN bg.Diem2 ELSE '' END END Diem,
                CASE WHEN bg.idGiamKhao1 = {SysBaseInfor.GetIdNguoiDung()} THEN bg.idGiamKhao1 ELSE CASE WHEN bg.idGiamKhao2 = {SysBaseInfor.GetIdNguoiDung()} THEN bg.idGiamKhao2 ELSE '' END END idGiamKhao,
                CASE WHEN bg.idGiamKhao1 = {SysBaseInfor.GetIdNguoiDung()} THEN bg.NgayChamDiem1 ELSE CASE WHEN bg.idGiamKhao2 = {SysBaseInfor.GetIdNguoiDung()} THEN bg.NgayChamDiem2 ELSE '' END END NgayChamDiem,
                dt.TenDotThi 
            FROM dbo.BaiGiang bg 
                LEFT OUTER JOIN DotThi dt ON dt.id = bg.idDotThi 
            WHERE
                bg.idGiamKhao1 = {SysBaseInfor.GetIdNguoiDung()} OR
                bg.idGiamKhao2 = {SysBaseInfor.GetIdNguoiDung()} 
            ORDER BY
                bg.updated_at DESC", _cnn);

            ViewBag.DsBaiGiang = dtBaiGiang;

            return(View());
        }
Ejemplo n.º 7
0
        public JsonResult Save(
            int id                   = 0,
            int status               = 0,
            string _title            = "",
            string _slug             = "",
            string _thumbnail        = "",
            string _sapo             = "",
            string _content          = "",
            string _related          = "",
            string _cates            = "",
            string _cates_slug       = "",
            string _tags             = "",
            string _tags_slug        = "",
            string _meta_keywords    = "",
            string _meta_description = "")
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (_title == null || _title.Trim() == "")
            {
                msg = "Tên gian hàng không được để trống";
            }
            if (_slug == null || _slug.Trim() == "")
            {
                msg = "Slug không được để trống";
            }
            else
            {
                if (id < 1)
                {
                    #region Thêm bài viết
                    var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM News WHERE slug = N'{_slug.Replace("'", "''").Trim()}' OR title = N'{_title.Replace("'", "''").Trim()}'", _cnn);
                    if (exited != null && int.Parse(exited.ToString()) > 0)
                    {
                        return(Json(new
                        {
                            status = false,
                            message = "Đã có bài viết có cùng tiêu đề hoặc url!"
                        }));
                    }
                    var newid = DBLibs.ExecuteScalar($@"
                    INSERT INTO dbo.News
                    (
                        Slug ,
                        UnitId ,
                        Title ,
                        Thumbnail ,
                        Summary ,
                        FullContent ,
                        related_news ,
                        Cates ,
                        Tags ,
                        Status ,
                        CreatedAt ,
                        CreatedBy ,
                        PublishAt,
                        meta_keywords ,
                        meta_descriptions
                    )
                    VALUES
                    (
                        '{_slug.Replace("'", "''").Trim()}' , -- Slug - varchar(250)
                        {SysBaseInfor.GetCurrentUnitId()} , -- UnitId - int
                        N'{_title.Replace("'", "''").Trim()}' , -- Title - nvarchar(200)
                        N'{_thumbnail.Replace("'", "''").Trim()}' , -- Thumbnail - nvarchar(500)
                        N'{_sapo.Replace("'", "''").Trim()}' , -- Summary - nvarchar(1000)
                        N'{_content.Replace("'", "''").Trim()}' , -- FullContent - ntext
                        N'{_related.Replace("'", "''").Trim()}' , -- related_news - nvarchar(45)
                        N'{_cates.Replace("'", "''").Trim()}' , -- Cates - nvarchar(1000)
                        N'{_tags.Replace("'", "''").Trim()}' , -- Tags - nvarchar(1000)
                        {status} , -- Status - tinyint
                        {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- CreatedAt - int
                        {(status == 1 ? CLibs.DatetimeToTimestampOrgin(DateTime.Now) : 0)} , -- PublishAt - int
                        {SysBaseInfor.GetIdNguoiDung()} , -- CreatedBy - int
                        N'{_meta_keywords.Replace("'", "''").Trim()}' , -- meta_keywords - nvarchar(50)
                        N'{_meta_description.Replace("'", "''").Trim()}'  -- meta_descriptions - nvarchar(550)
                    )  SELECT SCOPE_IDENTITY() ", _cnn);
                    int.TryParse(newid == null ? "0" : newid.ToString(), out id);
                    if (newid != null)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không thêm dữ liệu vào được!";
                    }
                    #endregion
                }
                else
                {
                    #region Update bài viết
                    var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM News WHERE id <> {id} AND (slug = N'{_slug.Replace("'", "''").Trim()}' OR title = N'{_title.Replace("'", "''").Trim()}')", _cnn);
                    if (exited != null && int.Parse(exited.ToString()) > 0)
                    {
                        return(Json(new
                        {
                            status = false,
                            message = "Đã có bài viết có cùng tiêu đề hoặc url!"
                        }));
                    }
                    var eff = DBLibs.ExecuteNonQuery($@"
                    UPDATE News 
                    SET 
                        Slug = '{_slug.Replace("'", "''").Trim()}' , -- Slug - varchar(250)
                        Title = N'{_title.Replace("'", "''").Trim()}' , -- Title - nvarchar(200)
                        Thumbnail = N'{_thumbnail.Replace("'", "''").Trim()}' , -- Thumbnail - nvarchar(500)
                        Summary = N'{_sapo.Replace("'", "''").Trim()}' , -- Summary - nvarchar(1000)
                        FullContent = N'{_content.Replace("'", "''").Trim()}' , -- FullContent - ntext
                        related_news = N'{_related.Replace("'", "''").Trim()}' , -- related_news - nvarchar(45)
                        Cates = N'{_cates.Replace("'", "''").Trim()}' , -- Cates - nvarchar(1000)
                        Tags = N'{_tags.Replace("'", "''").Trim()}' , -- Tags - nvarchar(1000)
                        Status = {status} , -- Status - tinyint
                        UpdatedAt = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- UpdatedAt - int
                        PublishAt = {(status == 1 ? CLibs.DatetimeToTimestampOrgin(DateTime.Now) : 0)} , -- PublishAt - int
                        UpdatedBy = {SysBaseInfor.GetIdNguoiDung()} , -- UpdatedBy - int
                        meta_keywords = N'{_meta_keywords.Replace("'", "''").Trim()}' , -- meta_keywords - nvarchar(50)
                        meta_descriptions = N'{_meta_description.Replace("'", "''").Trim()}'  -- meta_descriptions - nvarchar(550)
                    WHERE
                        id = {id}", _cnn);
                    if (eff > 0)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không cập nhật dữ liệu được!";
                    }
                    #endregion
                }

                #region Cache lại ảnh trong bài viết
                var h = new WebLibs.HttpRequest();
                foreach (Match m in Regex.Matches(_content, "<img.+?src=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase | RegexOptions.Multiline))
                {
                    string src = m.Groups[1].Value.Trim();
                    if (src.StartsWith("/UserData/"))
                    {
                        continue;
                    }

                    if (!src.ToLower().StartsWith(Request.Url.Host.ToLower()))
                    {
                        var path     = Server.MapPath("~") + $"UserData/{SysBaseInfor.GetIdNguoiDung()}/{id}/";
                        var fullpath = path + CLibs.GenPassCode(false, 12);
                        fullpath += (src.Contains(".jpg") || src.Contains(".jpeg") || src.Contains(".gif") || src.Contains(".png") ? src.Substring(src.LastIndexOf('.')).Trim() : ".jpg");
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }
                        h.DownloadFileFullToDisk(src.Replace("&amp;", "&"), fullpath);
                        var dest = fullpath.Replace(Server.MapPath("~"), "/");
                        _content = _content.Replace(src, dest);
                    }
                }
                foreach (Match m in Regex.Matches(_content, "<img.+?rel=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase | RegexOptions.Multiline))
                {
                    string src = m.Groups[1].Value.Trim();
                    if (src.StartsWith("/UserData/"))
                    {
                        continue;
                    }

                    if (!src.ToLower().StartsWith(Request.Url.Host.ToLower()))
                    {
                        var path     = Server.MapPath("~") + $"UserData/{SysBaseInfor.GetIdNguoiDung()}/{id}/";
                        var fullpath = path + CLibs.GenPassCode(false, 12);
                        fullpath += (src.Contains(".jpg") || src.Contains(".jpeg") || src.Contains(".gif") || src.Contains(".png") ? src.Substring(src.LastIndexOf('.')).Trim() : ".jpg");
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }
                        h.DownloadFileFullToDisk(src.Replace("&amp;", "&"), fullpath);
                        var dest = fullpath.Replace(Server.MapPath("~"), "/");
                        _content = _content.Replace(src, dest);
                    }
                }
                foreach (Match m in Regex.Matches(_content, "<img.+?data-original=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase | RegexOptions.Multiline))
                {
                    string src = m.Groups[1].Value.Trim();
                    if (src.StartsWith("/UserData/"))
                    {
                        continue;
                    }

                    if (!src.ToLower().StartsWith(Request.Url.Host.ToLower()))
                    {
                        var path     = Server.MapPath("~") + $"UserData/{SysBaseInfor.GetIdNguoiDung()}/{id}/";
                        var fullpath = path + CLibs.GenPassCode(false, 12);
                        fullpath += (src.Contains(".jpg") || src.Contains(".jpeg") || src.Contains(".gif") || src.Contains(".png") ? src.Substring(src.LastIndexOf('.')).Trim() : ".jpg");
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }
                        h.DownloadFileFullToDisk(src.Replace("&amp;", "&"), fullpath);
                        var dest = fullpath.Replace(Server.MapPath("~"), "/");
                        _content = _content.Replace(src, dest);
                    }
                }
                DBLibs.ExecuteNonQuery($"UPDATE News SET FullContent = N'{_content.Replace("'", "''").Trim()}' WHERE id = {id}", _cnn);
                #endregion

                #region Update/Insert tags
                var tags       = _tags.Split(',');
                var tags_slug  = _tags_slug.Split(',');
                var cates      = (_cates == "0" ? "" : _cates).Split(',');
                var cates_slug = (_cates_slug == "0" ? "" : _cates_slug).Split(',');
                for (int i = 0; i < tags.Length; i++)
                {
                    if (tags_slug[i].Trim(" -".ToCharArray()).ToLower() == "")
                    {
                        continue;
                    }
                    DBLibs.ExecuteNonQuery($@"
                    BEGIN TRAN
                       UPDATE Tags WITH (SERIALIZABLE) SET [used] = ([used] + 1) WHERE slug = '{tags_slug[i].Trim(" -".ToCharArray()).ToLower()}'

                       IF @@rowcount = 0
                       BEGIN
                          INSERT INTO Tags ([name], [slug], created_at) VALUES (N'{tags[i].Trim(" -".ToCharArray()).ToLower()}', '{tags_slug[i].Trim(" -".ToCharArray()).ToLower()}', {CLibs.DatetimeToTimestampOrgin(DateTime.Now)})
                       END
                    COMMIT TRAN
                    ", _cnn);
                }

                for (int i = 0; i < cates.Length; i++)
                {
                    if (cates_slug[i].Trim(" -".ToCharArray()).ToLower() == "")
                    {
                        continue;
                    }
                    DBLibs.ExecuteNonQuery($@"
                    BEGIN TRAN
                       UPDATE Tags WITH (SERIALIZABLE) SET [used] = ([used] + 1) WHERE slug = '{cates_slug[i].Trim(" -".ToCharArray()).ToLower()}'

                       IF @@rowcount = 0
                       BEGIN
                          INSERT INTO Tags ([name], [slug], created_at) VALUES (N'{cates[i].Trim(" -".ToCharArray()).ToLower()}', '{cates_slug[i].Trim(" -".ToCharArray()).ToLower()}', {CLibs.DatetimeToTimestampOrgin(DateTime.Now)})
                       END
                    COMMIT TRAN
                    ", _cnn);
                }
                #endregion
            }
            #endregion

            return(Json(new
            {
                status = stt,
                message = msg
            }));
        }
Ejemplo n.º 8
0
        public JsonResult Save(
            int id                = 0,
            int _coquan           = 0,
            int _status           = 1,
            int _loaivb           = 0,
            int _linhvuc          = 0,
            int _tinhtrang        = 0,
            string _trichyeu      = "",
            string _summary       = "",
            string _trichyeu_slug = "",
            string _sovb          = "",
            string _kyhieu        = "",
            string _ngaybanhanh   = "")
        {
            var stt    = false;
            var msg    = "";
            var new_id = 0;

            #region Phân tích request/submit form (nếu có)
            if (_trichyeu == null || _trichyeu.Trim() == "" || _trichyeu_slug == null || _trichyeu_slug.Trim() == "")
            {
                msg = "Nội dung trích yếu cho văn bản không được để trống";
            }
            else
            {
                if (_ngaybanhanh == "")
                {
                    _ngaybanhanh = DateTime.Now.ToString("dd/MM/yyyy");
                }
                var tmp = DateTime.Now;
                if (!DateTime.TryParseExact(_ngaybanhanh, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out tmp))
                {
                    _ngaybanhanh = DateTime.Now.ToString("dd/MM/yyyy");
                }
                if (id < 1)
                {
                    #region Thêm thông tin văn bản
                    //var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM News WHERE slug = N'{_slug.Replace("'", "''").Trim()}' OR title = N'{_title.Replace("'", "''").Trim()}'", _cnn);
                    //if (exited != null && int.Parse(exited.ToString()) > 0)
                    //{
                    //    return Json(new
                    //    {
                    //        status = false,
                    //        message = "Đã có văn bản có cùng nội dung trích yếu hoặc url!"
                    //    });
                    //}
                    var newid = DBLibs.ExecuteScalar($@"
                    INSERT INTO dbo.News
                    (
                        Slug ,
                        UnitId ,
                        Title ,
                        Summary ,
                        Cates ,
                        Type ,
                        Status ,
                        CreatedAt ,
                        CreatedBy ,
                        PublishAt ,

                        vb_coquan ,
                        vb_loaivb ,
                        vb_linhvuc ,
                        vb_tinhtrang ,
                        vb_sovb ,
                        vb_kyhieu ,
                        vb_ngaybanhanh 
                    )
                    VALUES
                    (
                        '{_trichyeu_slug.Replace("'", "''").Trim()}' , -- Slug - varchar(250)
                        {SysBaseInfor.GetCurrentUnitId()} , -- UnitId - int
                        N'{_trichyeu.Replace("'", "''").Trim()}' , -- Title - nvarchar(200)
                        N'{_summary.Replace("'", "''").Trim()}' , -- Summary - nvarchar(1000)
                        N'Văn bản' , -- Cates - nvarchar(1000)
                        1 , -- Type - tinyint
                        1 , -- Status - tinyint
                        {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- CreatedAt - int
                        {SysBaseInfor.GetIdNguoiDung()} , -- CreatedBy - int
                        {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- PublishAt - int

                        {_coquan} , -- vb_coquan - int
                        {_loaivb} , -- vb_loaivb - int
                        {_linhvuc} , -- vb_linhvuc - int
                        {_tinhtrang} , -- vb_tinhtrang - int
                        N'{_sovb.Replace("'", "''").Trim()}' , -- vb_sovb - nvarchar(200)
                        N'{_kyhieu.Replace("'", "''").Trim()}' , -- vb_kyhieu - nvarchar(200)
                        {CLibs.DatetimeToTimestampOrgin(DateTime.ParseExact(_ngaybanhanh, "dd/MM/yyyy", CultureInfo.InvariantCulture))}  -- vb_ngaybanhanh - int
                    )  SELECT SCOPE_IDENTITY() ", _cnn);
                    int.TryParse(newid == null ? "0" : newid.ToString(), out id);
                    if (newid != null)
                    {
                        stt = true; new_id = id;
                    }
                    else
                    {
                        msg = "Không thêm dữ liệu vào được!";
                    }
                    #endregion
                }
                else
                {
                    #region Update thông tin văn bản
                    //var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM News WHERE id <> {id} AND (slug = N'{_slug.Replace("'", "''").Trim()}' OR title = N'{_title.Replace("'", "''").Trim()}')", _cnn);
                    //if (exited != null && int.Parse(exited.ToString()) > 0)
                    //{
                    //    return Json(new
                    //    {
                    //        status = false,
                    //        message = "Đã có bài viết có cùng tiêu đề hoặc url!"
                    //    });
                    //}
                    var eff = DBLibs.ExecuteNonQuery($@"
                    UPDATE News 
                    SET 
                        Slug = '{_trichyeu_slug.Replace("'", "''").Trim()}' , -- Slug - varchar(250)
                        Title = N'{_trichyeu.Replace("'", "''").Trim()}' , -- Title - nvarchar(200)
                        Summary = N'{_summary.Replace("'", "''").Trim()}' , -- Summary - nvarchar(1000)
                        Status = {_status} , -- Status - tinyint
                        UpdatedAt = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- UpdatedAt - int
                        PublishAt = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- PublishAt - int
                        UpdatedBy = {SysBaseInfor.GetIdNguoiDung()} , -- UpdatedBy - int

                        vb_coquan = {_coquan} , -- vb_coquan - int
                        vb_loaivb = {_loaivb} , -- vb_loaivb - int
                        vb_linhvuc = {_linhvuc} , -- vb_linhvuc - int
                        vb_tinhtrang = {_tinhtrang} , -- vb_tinhtrang - int
                        vb_sovb = N'{_sovb.Replace("'", "''").Trim()}' , -- vb_sovb - nvarchar(200)
                        vb_kyhieu = N'{_kyhieu.Replace("'", "''").Trim()}' , -- vb_kyhieu - nvarchar(200)
                        vb_ngaybanhanh = {CLibs.DatetimeToTimestampOrgin(DateTime.ParseExact(_ngaybanhanh, "dd/MM/yyyy", CultureInfo.InvariantCulture))}  -- vb_ngaybanhanh - int
                    WHERE
                        id = {id}", _cnn);
                    if (eff > 0)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không cập nhật dữ liệu được!";
                    }
                    #endregion
                }
            }
            #endregion

            return(Json(new
            {
                status = stt,
                newid = new_id,
                message = msg
            }));
        }
Ejemplo n.º 9
0
        public JsonResult Delete(int id)
        {
            var stt = false;
            var msg = "";

            #region Kiểm tra quyền được xóa (chỉ admin & người tạo mới xóa được)
            if (
                SysBaseInfor.GetCurrentUserName().StartsWith("admin@") ||
                int.Parse(DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM TaiLieu WHERE id = {id} AND CreatedBy = '{SysBaseInfor.GetCurrentUserId()}'", _cnn).ToString()) > 0)
            {
                #region Xóa các file ảnh
                try
                {
                    var path_imgs = Server.MapPath("~") + $"UserData/{SysBaseInfor.GetIdNguoiDung()}/{id}/";
                    var di        = new DirectoryInfo(path_imgs);
                    foreach (FileInfo file in di.GetFiles())
                    {
                        file.Delete();
                    }
                    foreach (DirectoryInfo dir in di.GetDirectories())
                    {
                        dir.Delete(true);
                    }
                }
                catch { }
                #endregion

                #region Xóa các file tài liệu
                try
                {
                    var path_docs = Server.MapPath("~") + $"TaiLieu/{id}/";
                    var di        = new DirectoryInfo(path_docs);
                    foreach (FileInfo file in di.GetFiles())
                    {
                        file.Delete();
                    }
                    foreach (DirectoryInfo dir in di.GetDirectories())
                    {
                        dir.Delete(true);
                    }
                }
                catch { }
                #endregion

                var eff = DBLibs.ExecuteNonQuery($"DELETE TaiLieu WHERE id = {id}", _cnn);
                if (eff < 1)
                {
                    msg = "Lỗi không xác định, không xóa được tài liệu";
                }
                else
                {
                    stt = true;
                }
            }
            else
            {
                msg = "Không có quyền xóa tài liệu";
            }
            #endregion

            return(Json(new
            {
                status = stt,
                message = msg
            }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Save(
            int id = 0,

            string _title    = "",
            string _DateShow = "",
            string _DateHide = "",
            string _content  = "",

            int status = 0)

        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (_title == null || _title.Trim() == "")
            {
                msg = "Tên tiêu đề không được để trống";
            }

            else
            {
                if (id < 1)
                {
                    #region Thêm bài viết

                    var newid = DBLibs.ExecuteScalar($@"
                    INSERT INTO dbo.NotifiPopup
                    (
                       
                        Title ,
                       DateShow ,
                        DateHide ,
                        FullContent ,
                        Status ,
                    
                    )
                    VALUES
                    (
                        N'{_title.Replace("'", "''").Trim()}' , 
                   
                        '{ _DateShow.MapDate().ToString("yyyy-dd-MM")}' , 
                         '{_DateHide.MapDate().ToString("yyyy-dd-MM")}' , 
                       
                        N'{_content.Replace("'", "''").Trim()}' ,
                       
                        {status}
                    
                    )  SELECT SCOPE_IDENTITY() ", _cnn);
                    int.TryParse(newid == null ? "0" : newid.ToString(), out id);
                    if (newid != null)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không thêm dữ liệu vào được!";
                    }
                    #endregion
                }
                else
                {
                    #region Update bài viết
                    var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM News WHERE id <> {id} AND (title = N'{_title.Replace("'", "''").Trim()}')", _cnn);
                    if (exited != null && int.Parse(exited.ToString()) > 0)
                    {
                        return(Json(new
                        {
                            status = false,
                            message = "Đã có bài viết có cùng tiêu đề !"
                        }));
                    }
                    var eff = DBLibs.ExecuteNonQuery($@"
                    UPDATE NotifiPopup 
                    SET 
                        Title = N'{_title.Replace("'", "''").Trim()}' , 
                        DateShow = '{_DateShow.MapDate().ToString("yyyy-dd-MM")}' , -- Title - nvarchar(200)
                        DateHide = '{_DateHide.MapDate().ToString("yyyy-dd-MM")}' , -- Thumbnail - nvarchar(500)
                        
                        FullContent = N'{_content.Replace("'", "''").Trim()}' , -- FullContent - ntext
                        Status = {status}
            
                    WHERE
                        id = {id}", _cnn);
                    if (eff > 0)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không cập nhật dữ liệu được!";
                    }
                    #endregion
                }

                #region Cache lại ảnh trong bài viết
                var h = new WebLibs.HttpRequest();

                foreach (Match m in Regex.Matches(_content, "<img.+?src=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase | RegexOptions.Multiline))
                {
                    string src = m.Groups[1].Value.Trim();
                    if (src.StartsWith("/UserData/"))
                    {
                        continue;
                    }

                    if (!src.ToLower().StartsWith(Request.Url.Host.ToLower()))
                    {
                        var path     = Server.MapPath("~") + $"UserData\\{SysBaseInfor.GetIdNguoiDung()}\\{id}\\";
                        var fullpath = path + CLibs.GenPassCode(false, 12);
                        fullpath += (src.Contains(".jpg") || src.Contains(".jpeg") || src.Contains(".gif") || src.Contains(".png") ? src.Substring(src.LastIndexOf('.')).Trim() : ".jpg");
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }

                        var base64Data = Regex.Match(src.Replace("&amp;", "&"), @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
                        var binData    = Convert.FromBase64String(base64Data);
                        using (var stream = new MemoryStream(binData))
                        {
                            Bitmap bitmap = new Bitmap(stream);
                            bitmap.Save(fullpath);
                        }

                        var dest = fullpath.Replace(Server.MapPath("~"), "\\").Replace("\\", "/");
                        _content = _content.Replace(src, dest);
                    }
                }

                foreach (Match m in Regex.Matches(_content, "<input.+?src=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase | RegexOptions.Multiline))
                {
                    string src = m.Groups[1].Value.Trim();
                    if (src.StartsWith("/UserData/"))
                    {
                        continue;
                    }

                    if (!src.ToLower().StartsWith(Request.Url.Host.ToLower()))
                    {
                        var path     = Server.MapPath("~") + $"UserData\\{SysBaseInfor.GetIdNguoiDung()}\\{id}\\";
                        var fullpath = path + CLibs.GenPassCode(false, 12);
                        fullpath += (src.Contains(".jpg") || src.Contains(".jpeg") || src.Contains(".gif") || src.Contains(".png") ? src.Substring(src.LastIndexOf('.')).Trim() : ".jpg");
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }

                        var base64Data = Regex.Match(src.Replace("&amp;", "&"), @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
                        var binData    = Convert.FromBase64String(base64Data);
                        using (var stream = new MemoryStream(binData))
                        {
                            Bitmap bitmap = new Bitmap(stream);
                            bitmap.Save(fullpath);
                        }
                        var dest = fullpath.Replace(Server.MapPath("~"), "\\").Replace("\\", "/");
                        _content = _content.Replace(src, dest);
                    }
                }
                foreach (Match m in Regex.Matches(_content, "<img.+?rel=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase | RegexOptions.Multiline))
                {
                    string src = m.Groups[1].Value.Trim();
                    if (src.StartsWith("/UserData/"))
                    {
                        continue;
                    }

                    if (!src.ToLower().StartsWith(Request.Url.Host.ToLower()))
                    {
                        var path     = Server.MapPath("~") + $"UserData/{SysBaseInfor.GetIdNguoiDung()}/{id}/";
                        var fullpath = path + CLibs.GenPassCode(false, 12);
                        fullpath += (src.Contains(".jpg") || src.Contains(".jpeg") || src.Contains(".gif") || src.Contains(".png") ? src.Substring(src.LastIndexOf('.')).Trim() : ".jpg");
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }

                        var base64Data = Regex.Match(src.Replace("&amp;", "&"), @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
                        var binData    = Convert.FromBase64String(base64Data);
                        using (var stream = new MemoryStream(binData))
                        {
                            Bitmap bitmap = new Bitmap(stream);
                            bitmap.Save(fullpath);
                        }
                        var dest = fullpath.Replace(Server.MapPath("~"), "\\").Replace("\\", "/");
                        _content = _content.Replace(src, dest);
                    }
                }
                foreach (Match m in Regex.Matches(_content, "<img.+?data-original=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase | RegexOptions.Multiline))
                {
                    string src = m.Groups[1].Value.Trim();
                    if (src.StartsWith("/UserData/"))
                    {
                        continue;
                    }

                    if (!src.ToLower().StartsWith(Request.Url.Host.ToLower()))
                    {
                        var path     = Server.MapPath("~") + $"UserData/{SysBaseInfor.GetIdNguoiDung()}/{id}/";
                        var fullpath = path + CLibs.GenPassCode(false, 12);
                        fullpath += (src.Contains(".jpg") || src.Contains(".jpeg") || src.Contains(".gif") || src.Contains(".png") ? src.Substring(src.LastIndexOf('.')).Trim() : ".jpg");
                        if (!System.IO.Directory.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }

                        var base64Data = Regex.Match(src.Replace("&amp;", "&"), @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
                        var binData    = Convert.FromBase64String(base64Data);
                        using (var stream = new MemoryStream(binData))
                        {
                            Bitmap bitmap = new Bitmap(stream);
                            bitmap.Save(fullpath);
                        }
                        var dest = fullpath.Replace(Server.MapPath("~"), "\\").Replace("\\", "/");
                        _content = _content.Replace(src, dest);
                    }
                }
                DBLibs.ExecuteNonQuery($"UPDATE News SET FullContent = N'{_content.Replace("'", "''").Trim()}' WHERE id = {id}", _cnn);
                #endregion
            }
            #endregion

            return(Json(new
            {
                status = stt,
                message = msg
            }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 11
0
        public JsonResult Xoa_FileBaiGiang(string _filename = "")
        {
            var stt = false;
            var msg = "";

            var fullPath = Path.Combine(Server.MapPath(@"\"), _diruploadpath.ToString(), SysBaseInfor.GetIdNguoiDung(), _filename);

            if (System.IO.File.Exists(fullPath))
            {
                try
                {
                    System.IO.File.Delete(fullPath);
                    stt = true;
                }
                catch (Exception ex) { msg = ex.Message; }
            }

            return(Json(new
            {
                status = stt,
                message = msg
            }));
        }
Ejemplo n.º 12
0
        public ActionResult UploadFiles(int id = 0)
        {
            if (id == 0)
            {
                return(Json(new { Message = "File bài giảng phải được gắn kết vào bài giảng cụ thể!" }));
            }

            bool isSavedSuccessfully = true;
            var  fName = "";

            try
            {
                foreach (string fileName in Request.Files)
                {
                    HttpPostedFileBase file = Request.Files[fileName];
                    //Save file content goes here
                    fName = file.FileName;
                    if (file != null && file.ContentLength > 0)
                    {
                        var pathString = Path.Combine(Server.MapPath(@"\"), _diruploadpath.ToString(), SysBaseInfor.GetIdNguoiDung(), id.ToString());
                        if (!Directory.Exists(pathString))
                        {
                            Directory.CreateDirectory(pathString);
                        }

                        var fullPath = string.Format("{0}\\{1}", pathString, file.FileName);
                        try
                        {
                            if (System.IO.File.Exists(fullPath))
                            {
                                System.IO.File.Delete(fullPath);
                            }
                        }
                        catch { }

                        file.SaveAs(fullPath);
                    }
                }
            }
            catch (Exception ex)
            {
                isSavedSuccessfully = false;
            }

            if (isSavedSuccessfully)
            {
                return(Json(new { Message = "Đăng thành công bài giảng: " + fName }));
            }
            else
            {
                return(Json(new { Message = "Không đăng bài giảng lên được!" }));
            }
        }
Ejemplo n.º 13
0
        public ActionResult Edit(int id)
        {
            #region Get item infos
            var dtInfos = DBLibs.GetDataBy_DataAdapter($@"SELECT TOP 1 * FROM BaiGiang WHERE id = {id}", _cnn);
            ViewBag.Infos = dtInfos.Rows[0];
            #endregion

            #region Lấy danh sách các đợt thi còn hạn nộp
            var dtDotThi = DBLibs.GetDataBy_DataAdapter($@"SELECT * FROM DotThi WHERE ThoiHanNop > '{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' ORDER BY ThoiHanNop DESC", _cnn);
            ViewBag.DotThi = dtDotThi;
            #endregion

            #region Lay danh sach file bai giang da duoc upload
            var pathString = Path.Combine(Server.MapPath(@"\"), _diruploadpath.ToString(), SysBaseInfor.GetIdNguoiDung(), id.ToString());
            var dtFiles    = new DataTable();
            dtFiles.Columns.Add("TenFile");
            dtFiles.Columns.Add("FilePath");
            if (Directory.Exists(pathString))
            {
                var        dir   = new DirectoryInfo(pathString);
                FileInfo[] files = dir.GetFiles();
                foreach (FileInfo f in files)
                {
                    var dr = dtFiles.NewRow();
                    dr["TenFile"]  = f.Name;
                    dr["FilePath"] = f.FullName.Replace(Server.MapPath(@"\"), "/");
                    dtFiles.Rows.Add(dr);
                }
            }
            ViewBag.DsFile = dtFiles;
            #endregion

            ViewBag.IdDm = id;
            return(View());
        }