public ActionResult Sua(FormCollection frm, int id)
        {
            var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM News WHERE id <> {id} AND (slug = N'{frm["slug"]}' OR title = N'{frm["title"]}')", _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 = '{frm["slug"].Trim()}' , -- Slug - varchar(250)
                        Title = N'{frm["title"].Trim()}' , -- Title - nvarchar(200)
                        Thumbnail = N'{frm["url"]}' , -- Thumbnail - nvarchar(500)
                        Summary = N'{frm["noidung"].Trim()}' , -- Summary - nvarchar(1000)
                        FullContent = N'{frm["sapo"].Replace("'", "''").Trim()}' , -- FullContent - ntext
                        related_news = N'' , -- related_news - nvarchar(45)
                        Cates = N'{frm["cates"].Replace("'", "''").Trim()}' , -- Cates - nvarchar(1000)
                        Tags = N'{frm["tag"].Replace("'", "''").Trim()}' , -- Tags - nvarchar(1000)
                        Status = 1, -- Status - tinyint
                        UpdatedAt = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- UpdatedAt - int
                        PublishAt = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- PublishAt - int
                        UpdatedBy = 0 , -- UpdatedBy - int
                        meta_keywords = N'{frm["meta_keywords"].Replace("'", "''").Trim()}' , -- meta_keywords - nvarchar(50)
                        meta_descriptions = N'{frm["meta_descriptions"].Replace("'", "''").Trim()}'  -- meta_descriptions - nvarchar(550)
                    WHERE
                        id = {id}", _cnn);

            return(RedirectToAction("Index"));
        }
示例#2
0
        public ActionResult BaiGiangDaNop()
        {
            #region danh sach giam thi
            var dtDsGiaoVien = DBLibs.GetDataBy_DataAdapter($@"
            SELECT id, TenGiaoVien text FROM GiaoVien WHERE TrangThai = 9 ORDER BY TenGiaoVien
            ", _cnn);
            ViewBag.DsGiaoVien = CLibs.ConvertDatatableToJson(dtDsGiaoVien);
            #endregion

            var dtBaiGiang = DBLibs.GetDataBy_DataAdapter($@"
            SELECT
                bg.*,
                dt.TenDotThi,
                gv.TenGiaoVien,
                gv1.TenGiaoVien TenGiamKhao1,
                gv2.TenGiaoVien TenGiamKhao2,
                gv1.id idGiamKhao1,
                gv2.id idGiamKhao2
            FROM dbo.BaiGiang bg 
                LEFT OUTER JOIN DotThi dt ON dt.id = bg.idDotThi 
                LEFT OUTER JOIN GiaoVien gv ON gv.id = bg.idGvienChinh 
                LEFT OUTER JOIN GiaoVien gv1 ON gv1.id = bg.idGiamKhao1 
                LEFT OUTER JOIN GiaoVien gv2 ON gv2.id = bg.idGiamKhao2
            WHERE 
                submit_at IS NOT NULL
            ORDER BY dt.TenDotThi, bg.submit_at DESC", _cnn);
            ViewBag.DsBaiGiang = dtBaiGiang;

            return(View());
        }
        public ActionResult ResultSearchCustomer(string name, string phone, string fromDate, string toDate)
        {
            int dateFrom = 0; int dateTo = 0;

            if (fromDate != "" && fromDate != null)
            {
                dateFrom = CLibs.DatetimeToTimestamp(DateTime.Parse(fromDate, new CultureInfo("fr-FR")));
            }
            if (toDate != "" && toDate != null)
            {
                dateTo = CLibs.DatetimeToTimestamp(DateTime.Parse(toDate, new CultureInfo("fr-FR")).AddDays(1));
            }
            var result = CustomerService.Instance.SearhDataCustomer(name, phone, dateFrom, dateTo);

            return(PartialView(result));
        }
示例#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
            }));
        }
示例#5
0
        /// <summary>
        /// Ghi log lai, co the dung de recovery
        /// </summary>
        /// <param name="type">Loại logs, vd: log_diem, log_access, log_ips, log_nhanxet, log_sms,..</param>
        /// <param name="modifier_guid">GUID của tài khoản thực hiện hành động</param>
        /// <param name="modifier_id">ID dạng số của tài khoản thực hiện hành động</param>
        /// <param name="newer_value">Giá trị mới</param>
        /// <param name="older_value">Giá trị trước đây</param>
        /// <param name="table_name_of_value_modified">Tên của bảng trong CSDL lưu giá trị</param>
        /// <param name="column_name_of_value_modified">Tên của cột trong CSDL lưu giá trị</param>
        /// <param name="id_of_row_modified">ID dạng số của giá trị thay đổi</param>
        /// <param name="time">Thời điểm xảy ra sự thay đổi (0: thoi diem hien tai)</param>
        public static void SetLogs(string type, string modifier_guid, string modifier_id, string newer_value, string older_value = "", string table_name_of_value_modified = "", string column_name_of_value_modified = "", string id_of_row_modified = "", int time = 0, string client_ip = "")
        {
            #region Set client_ip
            if (client_ip == "")
            {
                var context   = HttpContext.Current;
                var ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

                if (string.IsNullOrEmpty(ipAddress))
                {
                    client_ip = context.Request.ServerVariables["REMOTE_ADDR"];
                }
                else
                {
                    var addresses = ipAddress.Split(',');
                    client_ip = addresses.Length != 0 ? addresses[0] : context.Request.ServerVariables["REMOTE_ADDR"];
                }
            }
            #endregion
            try
            {
                if (time == 0)
                {
                    time = CLibs.DatetimeToTimestamp(DateTime.Now);
                }

                var args = new Hashtable
                {
                    { "type", type },
                    { "modifier_guid", modifier_guid },
                    { "modifier_id", modifier_id },
                    { "newer_value", newer_value },
                    { "older_value", older_value },
                    { "table_name", table_name_of_value_modified },
                    { "column_name", column_name_of_value_modified },
                    { "id_of_row", id_of_row_modified },
                    { "timestamp", time },
                    { "client_ip", client_ip }
                };
                DBLibs.ExecuteStoreProcedure("Proc_SetLogs", args, ConfigurationManager.ConnectionStrings["LogsConnection"].ConnectionString);
            }
            catch
            {
                // ignored
            }
        }
        public ActionResult Index(int t = 0)
        {
            if (t == 0)
            {
                int diff   = (7 + (DateTime.Now.DayOfWeek - DayOfWeek.Monday)) % 7;
                var monday = DateTime.Now.AddDays(-1 * diff).Date;
                Response.Redirect("/LichCongTac?t=" + CLibs.DatetimeToTimestampOrgin(monday));
            }
            var sql            = $@"SELECT TOP 1 * FROM LichCongTac WHERE T2DauTuan = {t}";
            var dtCalendarInfo = DBLibs.GetDataBy_DataAdapter(sql, _cnn);

            if (dtCalendarInfo != null && dtCalendarInfo.Rows.Count > 0)
            {
                ViewBag.CalInfo = dtCalendarInfo.Rows[0];
            }


            return(View());
        }
示例#7
0
        public DataTable get_alllogs(int startTimestame = 0, int endTimestame = 0, int limit = 1000)
        {
            if (startTimestame == 0)
            {
                startTimestame = CLibs.DatetimeToTimestamp(DateTime.Now.AddMonths(-6));
            }
            if (endTimestame == 0)
            {
                endTimestame = CLibs.DatetimeToTimestamp(DateTime.Now);
            }

            var args = new Hashtable
            {
                { "start_time", startTimestame },
                { "end_time", endTimestame },
                { "top", limit }
            };
            var dt = DBLibs.ExecuteStoreProcedure_Select("sp_get_tracelogs_all", args, _cnn);

            return(dt);
        }
示例#8
0
        public JsonResult NopBaiGiang(int id = 0, int _dotthi = 0)
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (id < 1 || _dotthi < 1)
            {
                msg = "Chưa chọn đợt thi hoặc bài giảng!";
            }
            else
            {
                #region Update
                var eff = DBLibs.ExecuteNonQuery($@"
                UPDATE BaiGiang 
                SET 
                    idDotThi = {_dotthi} , -- idDotThi - int
	                submit_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- submit_at - int
                WHERE
                    id = {Request["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,
                message = msg
            }));
        }
示例#9
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
            }));
        }
示例#10
0
        public JsonResult CacheViewTemp(int id = 0, int _view_temp = 0)
        {
            var stt = false;
            var msg = "";

            var sql = $"UPDATE News SET view_total = ISNULL(view_total,0) + {_view_temp}, view_temp = 0, last_sync_time = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} WHERE id = {id}";
            var eff = DBLibs.ExecuteNonQuery(sql, _cnn);

            if (eff > 0)
            {
                stt = true;
            }
            else
            {
                msg = "Không cập nhật dữ liệu được!";
            }

            return(Json(new
            {
                status = stt,
                message = msg
            }));
        }
示例#11
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
            }));
        }
示例#12
0
        public ActionResult Public(
            int coquan      = 0,
            int loaivb      = 0,
            int linhvuc     = 0,
            int tinhtrang   = 1,
            string trichyeu = "",
            string sovb     = "",
            string kyhieu   = "",
            string nbh_s    = "",
            string nbh_e    = "",
            int thutu       = 0
            )
        {
            var where = $" n.[Type] = 1 AND n.vb_tinhtrang = {tinhtrang} ";
            var order = " n.id DESC ";

            #region Tạo câu lệnh query
            if (coquan > 0)
            {
                where += $" AND n.vb_coquan = {coquan} ";
            }
            if (loaivb > 0)
            {
                where += $" AND n.vb_loaivb = {loaivb} ";
            }
            if (linhvuc > 0)
            {
                where += $" AND n.vb_linhvuc = {linhvuc} ";
            }

            if (trichyeu != "")
            {
                where += $" AND n.Title LIKE N'%{trichyeu.Replace("'", "''")}%' ";
            }
            if (sovb != "")
            {
                where += $" AND n.vb_sovb LIKE N'%{sovb.Replace("'", "''")}%' ";
            }
            if (kyhieu != "")
            {
                where += $" AND n.vb_kyhieu LIKE N'%{kyhieu.Replace("'", "''")}%' ";
            }

            if (nbh_s != "" && nbh_e != "")
            {
                where += $" AND n.vb_ngaybanhanh BETWEEN '{CLibs.DatetimeToTimestampOrgin(DateTime.ParseExact(nbh_s.Trim(), "dd/MM/yyyy", CultureInfo.InvariantCulture))}' AND '{CLibs.DatetimeToTimestampOrgin(DateTime.ParseExact(nbh_e.Trim(), "dd/MM/yyyy", CultureInfo.InvariantCulture).AddDays(1))}' ";
            }

            // Thu tu:
            // 0: ngay xuat ban - desc
            // 1: ngay ban hanh - desc
            // 2: ngay het hieu luc - desc (ko dùng)
            // 3: trich yeu - asc
            if (thutu == 0)
            {
                order = " n.CreatedAt DESC ";
            }
            else if (thutu == 1)
            {
                order = " n.vb_ngaybanhanh DESC ";
            }
            else if (thutu == 2)
            {
                order = " n.Title ";
            }
            #endregion

            var sql       = $@"
            SELECT
                n.* ,
                cq.TenDanhMuc title_coquan ,
                l.TenDanhMuc title_loaivb ,
                lv.TenDanhMuc title_linhvuc
            FROM dbo.News n 
                LEFT OUTER JOIN DanhMucChung cq ON cq.id = n.vb_coquan 
                LEFT OUTER JOIN DanhMucChung l ON l.id = n.vb_loaivb 
                LEFT OUTER JOIN DanhMucChung lv ON lv.id = n.vb_linhvuc 
            WHERE {where}
            ORDER BY {order}";
            var dtBaiViet = DBLibs.GetDataBy_DataAdapter(sql, _cnn);
            ViewBag.DsBaiViet = dtBaiViet;

            #region Lấy ra các danh mục cho vào box chọn
            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

            return(View());
        }
        public JsonResult Save(int id = 0, int _loaidanhmuc = 0, int _danhmuccha = 0, string _tendanhmuc = "", int _sothutu = 0, int _trangthai = 1, string _thongtinthem = "")
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (_tendanhmuc == null || _tendanhmuc.Trim() == "")
            {
                msg = "Tên danh mục không được để trống";
            }
            else
            {
                if (id < 1)
                {
                    #region Thêm danh mục
                    var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM DanhMucChung WHERE TenDanhMuc = N'{_tendanhmuc.Replace("'", "''").Trim()}'", _cnn);
                    if (exited != null && int.Parse(exited.ToString()) > 0)
                    {
                        return(Json(new
                        {
                            status = false,
                            message = "Tên danh mục đã tồn tại!"
                        }));
                    }
                    var eff = DBLibs.ExecuteNonQuery($@"
                    INSERT INTO dbo.DanhMucChung
                    (
                        TenDanhMuc ,
                        LoaiDanhMuc ,
                        SoThuTu ,
                        TrangThai ,
                        ThongTinThem ,
                        idDanhMucCha ,
                        created_at
                    )
                    VALUES  
                    (
                        N'{_tendanhmuc.Replace("'", "''").Trim()}' , -- TenDanhMuc - nvarchar(500)
                        {_loaidanhmuc} , -- LoaiDanhMuc - smallint
                        {_sothutu} , -- SoThuTu - smallint
                        {_trangthai} , -- TrangThai - bit
                        N'{_thongtinthem.Replace("'", "''").Trim()}' , -- ThongTinThem - nvarchar(1500)
                        {_danhmuccha} , -- idDanhMucCha - bigint
                        {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- created_at - int
                    )", _cnn);
                    if (eff > 0)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không thêm dữ liệu vào được!";
                    }
                    #endregion
                }
                else
                {
                    #region Update danh muc
                    var eff = DBLibs.ExecuteNonQuery($@"
                    UPDATE DanhMucChung 
                    SET 
                        TenDanhMuc = N'{_tendanhmuc.Replace("'", "''").Trim()}',
                        LoaiDanhMuc = {_loaidanhmuc} ,
                        SoThuTu = {_sothutu} ,
                        TrangThai = {_trangthai} ,
                        ThongTinThem = N'{_thongtinthem.Replace("'", "''").Trim()}' ,
                        idDanhMucCha = {_danhmuccha} ,
                        updated_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}
                    WHERE
                        id = {Request["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,
                message = msg
            }));
        }
示例#14
0
        public JsonResult Save(
            int id               = 0,
            int _loaidanhmuc     = 0,
            int _danhmuccha      = 0,
            string _tendanhmuc   = "",
            string _dstendanhmuc = "",
            int _sothutu         = 0,
            int _trangthai       = 1,
            string _thongtinthem = "")
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (_tendanhmuc.Trim() == "" && _dstendanhmuc.Trim() == "")
            {
                msg = "Tên danh mục không được để trống";
            }
            else
            {
                if (id < 1)
                {
                    if (_dstendanhmuc == "")
                    {
                        #region Thêm danh mục
                        // Bỏ phần check trùng tên bên dưới do có những danh mục khác loại
                        // vd: Thiết bị chữa cháy & thiết bị ngoài ngành
                        //var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM DanhMucChung WHERE TenDanhMuc = N'{_tendanhmuc.Replace("'", "''").Trim()}'", _cnn);
                        //if (exited != null && int.Parse(exited.ToString()) > 0)
                        //{
                        //    return Json(new
                        //    {
                        //        status = false,
                        //        message = "Tên danh mục đã tồn tại!"
                        //    });
                        //}
                        var eff = DBLibs.ExecuteNonQuery($@"
                        INSERT INTO dbo.DanhMucChung
                        (
                            TenDanhMuc ,
                            LoaiDanhMuc ,
                            SoThuTu ,
                            TrangThai ,
                            ThongTinThem ,
                            idDanhMucCha ,
                            created_at
                        )
                        VALUES  
                        (
                            N'{_tendanhmuc.Replace("'", "''").Trim()}' , -- TenDanhMuc - nvarchar(500)
                            {_loaidanhmuc} , -- LoaiDanhMuc - smallint
                            {_sothutu} , -- SoThuTu - smallint
                            {_trangthai} , -- TrangThai - bit
                            N'{_thongtinthem.Replace("'", "''").Trim()}' , -- ThongTinThem - nvarchar(1500)
                            {_danhmuccha} , -- idDanhMucCha - bigint
                            {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- created_at - int
                        )", _cnn);
                        if (eff > 0)
                        {
                            stt = true;
                        }
                        else
                        {
                            msg = "Không thêm dữ liệu vào được!";
                        }
                    }
                    else
                    {
                        var stt_ = _sothutu;
                        foreach (string tdm in _dstendanhmuc.Split('\n'))
                        {
                            if (tdm.Trim() == "")
                            {
                                continue;
                            }
                            DBLibs.ExecuteNonQuery($@"
                            INSERT INTO dbo.DanhMucChung
                            (
                                TenDanhMuc ,
                                LoaiDanhMuc ,
                                SoThuTu ,
                                TrangThai ,
                                ThongTinThem ,
                                idDanhMucCha ,
                                created_at
                            )
                            VALUES  
                            (
                                N'{tdm.Replace("'", "''").Trim()}' , -- TenDanhMuc - nvarchar(500)
                                {_loaidanhmuc} , -- LoaiDanhMuc - smallint
                                {stt_} , -- SoThuTu - smallint
                                {_trangthai} , -- TrangThai - bit
                                N'{_thongtinthem.Replace("'", "''").Trim()}' , -- ThongTinThem - nvarchar(1500)
                                {_danhmuccha} , -- idDanhMucCha - bigint
                                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- created_at - int
                            )", _cnn);
                            stt_++;
                        }
                        stt = true;
                    }
                    #endregion
                }
                else
                {
                    #region Update danh muc
                    var eff = DBLibs.ExecuteNonQuery($@"
                    UPDATE DanhMucChung 
                    SET 
                        TenDanhMuc = N'{_tendanhmuc.Replace("'", "''").Trim()}',
                        LoaiDanhMuc = {_loaidanhmuc} ,
                        SoThuTu = {_sothutu} ,
                        TrangThai = {_trangthai} ,
                        ThongTinThem = N'{_thongtinthem.Replace("'", "''").Trim()}' ,
                        idDanhMucCha = {_danhmuccha} ,
                        updated_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}
                    WHERE
                        id = {Request["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,
                message = msg
            }));
        }
        public ActionResult Themmoi(FormCollection frm)
        {
            DBLibs.ExecuteScalar($@"
            INSERT INTO dbo.News
            (
                Slug ,
                UnitId ,
                Title ,
                Thumbnail ,
                Summary ,
                FullContent ,
                related_news ,
                Cates ,
                Tags ,
                Type ,
                Status ,
                [Read] ,
                CreatedAt ,
                UpdatedBy ,
                PublishAt ,
                meta_keywords ,
                meta_descriptions ,
                show_athome ,
                view_total ,
                view_temp ,
                last_visisted ,
                last_sync_time ,
                vb_coquan ,
                vb_loaivb ,
                vb_linhvuc ,
                vb_tinhtrang ,
                vb_sovb ,
                vb_kyhieu ,
                vb_ngaybanhanh ,
                vb_nguoiky
            )
            VALUES
            (
                '{frm["slug"].Replace("'", "''").Trim()}' , -- Slug - varchar(250)
                0, -- UnitId - int
                N'{frm["title"].Replace("'", "''").Trim()}' , -- Title - nvarchar(200)
                N'{frm["url"].Replace("'", "''").Trim()}' , -- Thumbnail - nvarchar(500)
                N'{frm["noidung"].Replace("'", "''").Trim()}' , -- Summary - nvarchar(1000)
                N'{frm["sapo"].Replace("'", "''").Trim()}' , -- FullContent - ntext
                '' , -- related_news - varchar(45)
                N'{frm["cates"].Replace("'", "''").Trim()}' , -- Cates - nvarchar(1000)
                N'{frm["tag"].Replace("'", "''").Trim()}' , -- Tags - nvarchar(1000)
                0 , -- Type - tinyint
                1 , -- Status - tinyint
                0 , -- Read - int
                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}  , -- CreatedAt - int

                0 , -- CreatedBy - int
                0 , -- UpdatedBy - int
                0 , -- PublishAt - int
                N'{frm["meta_keywords"].Replace("'", "''").Trim()}' , -- meta_keywords - nvarchar(250)
                N'{frm["meta_descriptions"].Replace("'", "''").Trim()}' , -- meta_descriptions - nvarchar(550)
                NULL , -- show_athome - bit
                0 , -- view_total - bigint
                0 , -- view_temp - int
                0 , -- last_visisted - int
                0 , -- last_sync_time - int
                0 , -- vb_coquan - int
                0 , -- vb_loaivb - int
                0 , -- vb_linhvuc - int
                0 , -- vb_tinhtrang - int
                N'' , -- vb_sovb - nvarchar(150)
                N'' , -- vb_kyhieu - nvarchar(150)
                0 , -- vb_ngaybanhanh - int
                N''  -- vb_nguoiky - nvarchar(250)
            )  SELECT SCOPE_IDENTITY() ", _cnn);
            return(RedirectToAction("Index"));
        }
示例#16
0
        public JsonResult Save(
            int id = 0,
            string _tenbaigiang = "",
            string[] _cacmonhoc = null,
            string _cactacgia   = "")
        {
            var stt    = false;
            var msg    = "";
            var strMon = ";";

            foreach (string m in _cacmonhoc)
            {
                strMon += m + ";";
            }
            strMon += ";";
            while (strMon.Contains(";;"))
            {
                strMon = strMon.Replace(";;", ";");
            }

            #region Phân tích request/submit form (nếu có)
            if (id < 1)
            {
                #region Thêm
                var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM BaiGiang WHERE TenBaiGiang = N'{_tenbaigiang.Replace("'", "''").Trim()}'", _cnn);
                if (exited != null && int.Parse(exited.ToString()) > 0)
                {
                    return(Json(new
                    {
                        status = false,
                        message = "Tên bài giảng đã tồn tại!"
                    }));
                }
                var eff = DBLibs.ExecuteNonQuery($@"
                INSERT INTO dbo.BaiGiang
                (
	                TenBaiGiang ,
	                MonHoc ,
	                TacGia ,
                    idGvienChinh ,
	                created_at ,
	                updated_at 
                )
                VALUES
                (
	                N'{_tenbaigiang.Trim().Replace("'", "''")}' , -- TenDotThi - nvarchar(250)
	                N'{strMon.Trim().Replace("'", "''")}' , -- MonHoc - nvarchar(500)
	                N'{_cactacgia.Trim().Replace("'", "''")}' , -- TacGia - nvarchar(500)
	                {SysBaseInfor.GetCurrentUserTypeInfo().ToString()} , -- idGvienChinh - int
	                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- created_at - int
	                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- updated_at - int
                )
                ", _cnn);
                if (eff > 0)
                {
                    stt = true;
                }
                else
                {
                    msg = "Không thêm dữ liệu vào được!";
                }
                #endregion
            }
            else
            {
                #region Kiem tra xem bai giang da duoc nop chua (bai giang nop roi thi ko cho update)
                var submit_at = DBLibs.ExecuteScalar($"SELECT submit_at FROM BaiGiang WHERE id = {id}", _cnn);
                if (submit_at != null)
                {
                    return(Json(new
                    {
                        status = false,
                        message = "Bài giảng đã nộp rồi, không được sửa!"
                    }));
                }
                #endregion
                #region Update
                var eff = DBLibs.ExecuteNonQuery($@"
                UPDATE BaiGiang 
                SET 
                    TenBaiGiang = N'{_tenbaigiang.Trim().Replace("'", "''")}' , -- TenBaiGiang - nvarchar(250)
	                MonHoc = N'{strMon.Trim().Replace("'", "''")}' , -- MonHoc - nvarchar(500)
	                TacGia = N'{_cactacgia.Trim().Replace("'", "''")}' , -- TacGia - nvarchar(500)
	                updated_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- updated_at - int
                WHERE
                    id = {Request["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,
                message = msg
            }));
        }
示例#17
0
        public JsonResult Save(
            int id               = 0,
            int _loaidanhmuc     = 0,
            int _danhmuccha      = 0,
            string _tendanhmuc   = "",
            string _dstendanhmuc = "",
            string _slug         = "",
            int _home_ishow      = 0,
            int _home_index      = 0,
            int _cot_trangchu    = 0)
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (_tendanhmuc.Trim() == "" && _dstendanhmuc.Trim() == "")
            {
                msg = "Tên danh mục không được để trống";
            }
            else
            {
                if (id < 1)
                {
                    if (_dstendanhmuc == "")
                    {
                        #region Thêm danh mục đơn lẻ
                        var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM Tags WHERE name = N'{_tendanhmuc.Replace("'", "''").Trim()}'", _cnn);
                        if (exited != null && int.Parse(exited.ToString()) > 0)
                        {
                            return(Json(new
                            {
                                status = false,
                                message = "Tên danh mục đã tồn tại!"
                            }));
                        }
                        var eff = DBLibs.ExecuteNonQuery($@"
                        INSERT INTO dbo.Tags
                        (
                            name ,
                            slug ,
                            type ,
                            col_athome,
                            index_athome,
                            show_athome,
                            parent_id ,
                            created_at
                        )
                        VALUES  
                        (
                            N'{_tendanhmuc.Replace("'", "''").Trim()}' , -- TenDanhMuc - nvarchar(150)
                            N'{_slug.Replace("'", "''").Trim()}' , -- slug - varchar(150)
                            {_loaidanhmuc} , -- type - smallint
                            {_cot_trangchu} , -- col_athome - tinyint
                            {_home_index} , -- index_athome - tinyint
                            {_home_ishow} , -- show_athome - bit
                            {_danhmuccha} , -- parent_id - bigint
                            {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- created_at - int
                        )", _cnn);
                        if (eff > 0)
                        {
                            stt = true;
                        }
                        else
                        {
                            msg = "Không thêm dữ liệu vào được!";
                        }
                        #endregion
                    }
                    else
                    {
                        // Thêm danh mục hàng loạt
                        foreach (string tdm in _dstendanhmuc.Split('\n'))
                        {
                            if (tdm.Trim() == "")
                            {
                                continue;
                            }
                            var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM Tags WHERE name = N'{tdm.Replace("'", "''").Trim()}'", _cnn);
                            if (exited != null && int.Parse(exited.ToString()) > 0)
                            {
                                continue;
                            }
                            var eff = DBLibs.ExecuteNonQuery($@"
                            INSERT INTO dbo.Tags
                            (
                                name ,
                                slug ,
                                type ,
                                col_athome ,
                                index_athome,
                                show_athome,
                                parent_id ,
                                created_at
                            )
                            VALUES  
                            (
                                N'{tdm.Replace("'", "''").Trim()}' , -- name - nvarchar(150)
                                N'{Extension.GenerateSlug(tdm.Trim()).Replace("'", "''").Trim()}' , -- slug - varchar(150)
                                {_loaidanhmuc} , -- type - smallint
                                {_cot_trangchu} , -- col_athome - tinyint
                                {_home_index} , -- index_athome - tinyint
                                {_home_ishow} , -- show_athome - bit
                                {_danhmuccha} , -- parent_id - bigint
                                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- created_at - int
                            )", _cnn);
                        }
                        stt = true;
                    }
                }
                else
                {
                    #region Update danh muc
                    var eff = DBLibs.ExecuteNonQuery($@"
                    UPDATE dbo.Tags 
                    SET 
                        name = N'{_tendanhmuc.Replace("'", "''").Trim()}' , -- name - nvarchar(150)
                        slug = N'{_slug.Trim().Replace("'", "''").Trim()}' , -- slug - varchar(150)
                        type = {_loaidanhmuc} , -- type - smallint
                        col_athome = {_cot_trangchu} , -- col_athome - tinyint
                        index_athome = {_home_index} , -- index_athome - tinyint
                        show_athome = {_home_ishow} , -- show_athome - bit
                        parent_id = {_danhmuccha} , -- parent_id - bigint
                        updated_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}
                    WHERE
                        id = {Request["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,
                message = msg
            }));
        }
        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());
        }
示例#19
0
        public JsonResult Save(
            int id            = 0, int _status         = 0, int _show_athome = 0, int _price         = 0, int _price_src = 0, int _chapter = 0, int _page = 0, int _view_temp = 0,
            string _title     = "", string _author     = "", string _slug    = "", string _sapo      = "", string _content = "",
            string _cates     = "", string _cates_slug = "", string _tags    = "", string _tags_slug = "", string _related = "", string _meta_keywords = "", string _meta_description = "",
            int _cate_id      = 0,
            string _thumbnail = "", string _preview_urls = "", string _loai_file = "", int _type = 0, int _top_level = 0, int _order = 0, int _hot_kind = 0, int _luot_mua = 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 không được để trống";
            }
            if (_slug == null || _slug.Trim() == "")
            {
                msg = "Slug không được để trống";
            }
            else
            {
                #region Update/Insert tags
                var tags      = _tags.Trim().Split(',');
                var tags_slug = new string[tags.Length];// _tags.ToLower().Trim().Split(',');
                for (int i = 0; i < tags.Length; i++)
                {
                    tags_slug[i] = PLibs.GenerateSlug(tags[i].ToLower());
                }

                var cates = (_cates.Trim() == "0" || _cates.Trim() == "" ? "" : _cates.Trim()).Split(',');
                //var cates_slug = (_cates_slug.Trim() == "0" || _cates_slug.Trim() == "" ? "" : _cates_slug.ToLower().Trim()).Split(',');
                var cates_slug = new string[cates.Length];// _tags.ToLower().Trim().Split(',');
                for (int i = 0; i < cates.Length; i++)
                {
                    cates_slug[i] = PLibs.GenerateSlug(cates[i].ToLower());
                }

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

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

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

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

                //#region Tính toán lại cateid
                //if (_cate_id == 0 && _cates_slug.Length > 0)
                //{
                //    var sql = $@"SELECT id FROM Tags WHERE slug = '{cates_slug[0].Trim()}'";
                //    var tmp = DBLibs.ExecuteScalar(sql, _cnn);
                //    if (tmp != null)
                //        int.TryParse(tmp.ToString(), out _cate_id);
                //}
                //#endregion

                if (id < 1)
                {
                    #region Thêm tài liệu
                    var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM TaiLieu 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ó tài liệu có cùng tiêu đề hoặc url!"
                        }));
                    }
                    var sql   = $@"
                    INSERT INTO dbo.TaiLieu
                    (
	                    Slug ,			    UnitId ,			    TacGia ,			Title ,
	                    Thumbnail ,		    Summary ,				FullContent ,		Tags ,				Price ,
	                    Price_Src ,		    Price_Sale_Percent ,	[Status] ,          CreatedAt ,			UpdatedAt ,
                        CreatedBy ,			UpdatedBy ,             show_athome ,	    SoChapter ,		    SoPage ,
                        meta_keywords ,	    meta_descriptions ,     view_temp
                    ) VALUES (
                        '{_slug.Replace("'", "''")}' , -- Slug - varchar(250)
	                    {SysBaseInfor.GetCurrentUnitId()} , -- UnitId - int
	                    N'{_author.Replace("'", "''")}' , -- TacGia - nvarchar(500)
	                    N'{_title.Replace("'", "''")}' , -- Title - nvarchar(200)
	                    N'' , -- Thumbnail - nvarchar(500)
	                    N'{_sapo.Replace("'", "''")}' , -- Summary - nvarchar(1000)
	                    N'{_content.Replace("'", "''")}' , -- FullContent - ntext
	                    N'{_tags.Replace("'", "''")}' , -- Tags - nvarchar(1000)
	                    {_price} , -- Price - bigint
	                    {_price_src} , -- Price_Src - bigint
	                    {(_price == 0 ? 0 : (_price_src * 100 / _price))} , -- Price_Sale_Percent - tinyint
	                    {_status} , -- Status - tinyint
	                    GETDATE() , -- CreatedAt - datetime
	                    GETDATE() , -- UpdatedAt - datetime
	                    N'{(string.IsNullOrEmpty(SysBaseInfor.GetCurrentUserId()) ? "0" : SysBaseInfor.GetCurrentUserId())}' , -- CreatedBy - nvarchar(128)
	                    N'{(string.IsNullOrEmpty(SysBaseInfor.GetCurrentUserId()) ? "0" : SysBaseInfor.GetCurrentUserId())}' , -- UpdatedBy - nvarchar(128)
	                    {(_show_athome > 0 ? 1 : 0)} , -- show_athome - bit
	                    {_chapter} , -- SoChapter - smallint
	                    {_page} , -- SoPage - smallint
	                    N'{_meta_keywords.Replace("'", "''")}' , -- meta_keywords - nvarchar(250)
	                    N'{_meta_description.Replace("'", "''")}' , -- meta_descriptions - nvarchar(250)
	                    {_view_temp} -- view_temp - int
                    )  SELECT SCOPE_IDENTITY() ";
                    var newid = DBLibs.ExecuteScalar(sql, _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 tài liệu
                    var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM TaiLieu 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ó tài liệu có cùng tiêu đề hoặc url!"
                        }));
                    }
                    var sql = $@"
                    UPDATE TaiLieu 
                    SET 
                        Slug = '{_slug.Replace("'", "''")}' , -- Slug - varchar(250)
	                    --CategoryID = {_cate_id} , -- CategoryID - int
	                    TacGia = N'{_author.Trim().Replace("'", "''")}' , -- TacGia - nvarchar(500)
	                    Title = N'{_title.Trim().Replace("'", "''")}' , -- Title - nvarchar(200)
	                    Thumbnail = N'{_thumbnail.Trim().Replace("'", "''")}' , -- Thumbnail - nvarchar(500)
	                    Summary = N'{_sapo.Trim().Replace("'", "''")}' , -- Summary - nvarchar(1000)
	                    FullContent = N'{_content.Trim().Replace("'", "''")}' , -- FullContent - ntext
	                    Tags = N'{_tags.Trim().Replace("'", "''")}' , -- Tags - nvarchar(1000)
	                    Price = {_price} , -- Price - bigint
	                    Price_Src = {_price_src} , -- Price_Src - bigint
	                    Price_Sale_Percent = {(_price == 0 ? 0 : (_price_src * 100 / _price))} , -- Price_Sale_Percent - tinyint
	                    PreviewLinks = N'{_preview_urls.Trim().Replace("'", "''")}' , -- PreviewLinks - nvarchar(max)
	                    Type = {_type} , -- Type - tinyint
	                    Status = {_status} , -- Status - tinyint
	                    UpdatedAt = GETDATE() , -- UpdatedAt - datetime
	                    UpdatedBy = N'{(string.IsNullOrEmpty(SysBaseInfor.GetCurrentUserId()) ? "0" : SysBaseInfor.GetCurrentUserId())}' , -- UpdatedBy - nvarchar(128)
	                    show_athome = {(_show_athome > 0 ? 1 : 0)} , -- show_athome - bit
	                    TopLevel = {_top_level} , -- TopLevel - tinyint
	                    --Order = {_order} , -- Order - int
	                    HotKind = {_hot_kind} , -- HotKind - tinyint
	                    SoChapter = {_chapter} , -- SoChapter - smallint
	                    SoPage = {_page} , -- SoPage - smallint
	                    LuotMua = {_luot_mua} , -- LuotMua - int
	                    LoaiFile = '{_loai_file.Replace("'", "''")}' , -- LoaiFile - varchar(4)
	                    meta_keywords = N'{_meta_keywords.Replace("'", "''")}' , -- meta_keywords - nvarchar(250)
	                    meta_descriptions = N'{_meta_description.Replace("'", "''")}' , -- meta_descriptions - nvarchar(250)
	                    view_temp = {_view_temp} -- view_temp - int
                    WHERE
                        id = {id}";

                    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
            {
                newid = id,
                status = stt,
                message = msg
            }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Save(
            int id               = 0,
            int page_kind        = 0,
            int col_kind         = 0,
            int order            = 0,
            int type             = 0,
            string title         = "",
            string main_content  = "",
            string alter_content = "",
            string url           = "",
            string weekdays      = "",
            int hour_on          = 0,
            int hour_off         = 0,
            string groupAlbumid  = "",
            double size          = 0,
            int width            = 0,
            int height           = 0
            )
        {
            var stt     = false;
            var msg     = "";
            var alBumId = groupAlbumid.Split(',');

            DBLibs.ExecuteNonQuery($"Delete From GroupAlbumImg WHERE ImagId = {id}", _cnn);
            if (id <= 0)
            {
                var sql   = $@" INSERT INTO dbo.Images
				         ( page_kind_appear ,
				           position_inpage ,
				           order_inpage ,
                           type,
				           main_content ,
				           alter_content ,
				           url ,
				           tooltip ,
                            size,
                            width,
                            height,
				           display_weekday ,
				           display_time_on ,
				           display_time_off ,
				           created_at ,
				           updated_at,
                            GroupAlbumID,
                            AlbumId
				         )
				 VALUES  ( {page_kind} , 
				           {col_kind} ,
				           {order} , 
                           {type}, 
				           N'{main_content.Replace("'", "''").Trim()}' ,
				           N'{alter_content.Replace("'", "''").Trim()}' ,
				           N'{url.Replace("'", "''").Trim()}' ,
				           N'{title.Replace("'", "''").Trim()}' , 
                            {size},
                            {width},
                             {height},
				           '{weekdays.Replace("'", "''").Trim()}' ,
				           {hour_on} , 
				           {hour_off} ,
				           {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , 
				           {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}, 
				           N'{groupAlbumid.Replace("'", "''").Trim()}' ,
                            0
				            ) SELECT SCOPE_IDENTITY()"                ;
                var newid = DBLibs.ExecuteScalar(sql, _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!";
                }
                for (int i = 0; i < alBumId.Length; i++)
                {
                    var qr   = $@"INSERT INTO GroupAlbumImg (ImagId,AlbumId) VALUES ({id},{alBumId[i]})";
                    var eff1 = DBLibs.ExecuteScalar(qr, _cnn);
                }
            }
            else
            {
                var sql = $@"
                UPDATE dbo.Images
                SET
                    page_kind_appear = {page_kind} ,
	                position_inpage = {col_kind} , 
	                order_inpage = {order} , 
	                type = {type} ,
	                main_content = N'{main_content.Replace("'", "''").Trim()}' ,
	                alter_content = N'{alter_content.Replace("'", "''").Trim()}' , 
	                url = N'{url.Replace("'", "''").Trim()}' , 
	                tooltip = N'{title.Replace("'", "''").Trim()}' ,
	                display_weekday = '{weekdays.Replace("'", "''").Trim()}' ,
	                display_time_on = {hour_on} ,
	                display_time_off = {hour_off} , 
	                created_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , 
	                updated_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}, 
	                GroupAlbumID = N'{groupAlbumid.Replace("'", "''").Trim()}' ,
                    AlbumId = 0
                WHERE
                    id = {id}";

                var eff = DBLibs.ExecuteNonQuery(sql, _cnn);
                if (eff > 0)
                {
                    stt = true;
                }
                else
                {
                    msg = "Không cập nhật dữ liệu được!";
                }
                for (int i = 0; i < alBumId.Length; i++)
                {
                    var qr   = $@"INSERT INTO GroupAlbumImg (ImagId,AlbumId) VALUES ({id},{alBumId[i]})";
                    var eff1 = DBLibs.ExecuteScalar(qr, _cnn);
                }
            }
            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));
        }
        public JsonResult Save(
            int id              = 0,
            string _tendotthi   = "",
            string _thoihannop  = "",
            string _thoihancham = "",
            string[] _cacmonthi = null,
            int _diemchenhlech  = 0,
            string _thele       = "",
            string _gioithieu   = "")
        {
            var stt    = false;
            var msg    = "";
            var strMon = ";";

            foreach (string m in _cacmonthi)
            {
                strMon += m + ";";
            }
            strMon += ";";
            while (strMon.Contains(";;"))
            {
                strMon = strMon.Replace(";;", ";");
            }

            #region Phân tích request/submit form (nếu có)
            if (id < 1)
            {
                #region Thêm
                var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM DotThi WHERE TenDotThi = N'{_tendotthi.Replace("'", "''").Trim()}'", _cnn);
                if (exited != null && int.Parse(exited.ToString()) > 0)
                {
                    return(Json(new
                    {
                        status = false,
                        message = "Tên đợt thi đã tồn tại!"
                    }));
                }
                var eff = DBLibs.ExecuteNonQuery($@"
                INSERT INTO dbo.DotThi
                (
	                TenDotThi ,
	                ThoiHanNop ,
	                ThoiHanCham ,
	                CacMonThi ,
	                DiemChenh ,
                    TheLe ,
                    GioiThieu ,
	                created_at 
                )
                VALUES
                (
	                N'{_tendotthi.Trim().Replace("'", "''")}' , -- TenDotThi - nvarchar(250)
	                '{DateTime.ParseExact(_thoihannop, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")}' , -- ThoiHanNop - date
	                '{DateTime.ParseExact(_thoihancham, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")}' , -- ThoiHanCham - date
	                N'{strMon.Trim().Replace("'", "''")}' , -- CacMonThi - nvarchar(500)
	                {_diemchenhlech} , -- DiemChenh - tinyint
	                N'{_thele.Trim().Replace("'", "''")}' , -- TheLe - nvarchar(500)
	                N'{_gioithieu.Trim().Replace("'", "''")}' , -- GioiThieu - nvarchar(500)
	                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- created_at - int
                )
                ", _cnn);
                if (eff > 0)
                {
                    stt = true;
                }
                else
                {
                    msg = "Không thêm dữ liệu vào được!";
                }
                #endregion
            }
            else
            {
                #region Update
                var eff = DBLibs.ExecuteNonQuery($@"
                UPDATE DotThi 
                SET 
                    TenDotThi = N'{_tendotthi.Trim().Replace("'", "''")}' , -- TenDotThi - nvarchar(250)
	                ThoiHanNop = '{DateTime.ParseExact(_thoihannop, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")}' , -- ThoiHanNop - date
	                ThoiHanCham = '{DateTime.ParseExact(_thoihancham, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")}' , -- ThoiHanCham - date
	                CacMonThi = N'{strMon.Trim().Replace("'", "''")}' , -- CacMonThi - nvarchar(500)
	                DiemChenh = {_diemchenhlech} , -- DiemChenh - tinyint
	                TheLe = N'{_thele.Trim().Replace("'", "''")}' , -- TheLe - nvarchar(500)
	                GioiThieu = N'{_gioithieu.Trim().Replace("'", "''")}' , -- GioiThieu - nvarchar(500)
	                updated_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} -- updated_at - int
                WHERE
                    id = {Request["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,
                message = msg
            }));
        }
        public JsonResult Save(
            int id               = 0,
            int page_kind        = 0,
            int col_kind         = 0,
            int order            = 0,
            int type             = 0,
            string title         = "",
            string main_content  = "",
            string alter_content = "",
            string url           = "",
            string weekdays      = "",
            int hour_on          = 0,
            int hour_off         = 0)
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (id < 1)
            {
                #region Thêm banner
                var newid = DBLibs.ExecuteScalar($@"
                INSERT INTO dbo.Banners
                (
	                page_kind_appear ,
	                position_inpage ,
	                order_inpage ,
	                type ,
	                main_content ,
	                alter_content ,
	                url ,
	                tooltip ,
	                display_weekday ,
	                display_time_on ,
	                display_time_off ,
	                created_at ,
	                updated_at
                ) VALUES (
	                {page_kind} , -- page_kind_appear - tinyint
	                {col_kind} , -- position_inpage - smallint
	                {order} , -- order_inpage - smallint
	                {type} , -- type - smallint
	                N'{main_content.Replace("'", "''").Trim()}' , -- main_content - nvarchar(2500)
	                N'{alter_content.Replace("'", "''").Trim()}' , -- alter_content - nvarchar(2500)
	                N'{url.Replace("'", "''").Trim()}' , -- url - nvarchar(2500)
	                N'{title.Replace("'", "''").Trim()}' , -- tooltip - nvarchar(450)
	                '{weekdays.Replace("'", "''").Trim()}' , -- display_weekday - varchar(16)
	                {hour_on} , -- display_time_on - smallint
	                {hour_off} , -- display_time_off - smallint
	                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- created_at - int
	                {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}  -- updated_at - int
                )
                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 sql = $@"
                UPDATE Banners 
                SET 
                    page_kind_appear = {page_kind} , -- page_kind_appear - tinyint
	                position_inpage = {col_kind} , -- position_inpage - smallint
	                order_inpage = {order} , -- order_inpage - smallint
	                type = {type} , -- type - smallint
	                main_content = N'{main_content.Replace("'", "''").Trim()}' , -- main_content - nvarchar(2500)
	                alter_content = N'{alter_content.Replace("'", "''").Trim()}' , -- alter_content - nvarchar(2500)
	                url = N'{url.Replace("'", "''").Trim()}' , -- url - nvarchar(2500)
	                tooltip = N'{title.Replace("'", "''").Trim()}' , -- tooltip - nvarchar(450)
	                display_weekday = '{weekdays.Replace("'", "''").Trim()}' , -- display_weekday - varchar(16)
	                display_time_on = {hour_on} , -- display_time_on - smallint
	                display_time_off = {hour_off} , -- display_time_off - smallint
	                created_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- created_at - int
	                updated_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}  -- updated_at - int
                WHERE
                    id = {id}";
                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
            }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Save(
            int t2dautuan  = 0,
            string _t2sang = "", string _t2chieu = "", string _t3sang = "", string _t3chieu = "",
            string _t4sang = "", string _t4chieu = "", string _t5sang = "", string _t5chieu = "",
            string _t6sang = "", string _t6chieu = "", string _t7sang = "", string _t7chieu = "",
            string _cnsang = "", string _cnchieu = "")
        {
            var stt = false;
            var msg = "";

            #region Phân tích request/submit form (nếu có)
            if (t2dautuan == 0)
            {
                msg = "Sai thông tin";
            }
            else
            {
                #region Thêm / cập nhật lịch công tác
                var exited = DBLibs.ExecuteScalar($"SELECT COUNT(*) FROM LichCongTac WHERE T2DauTuan = {t2dautuan}", _cnn);
                if (exited != null && int.Parse(exited.ToString()) > 0)
                {
                    var eff = DBLibs.ExecuteNonQuery($@"
                    UPDATE LichCongTac 
                    SET 
	                    T2Sang = N'{_t2sang.Replace("'", "''")}' , -- T2Sang - ntext
	                    T2Chieu = N'{_t2chieu.Replace("'", "''")}' , -- T2Chieu - ntext
	                    T3Sang = N'{_t3sang.Replace("'", "''")}' , -- T3Sang - ntext
	                    T3Chieu = N'{_t3chieu.Replace("'", "''")}' , -- T3Chieu - ntext
	                    T4Sang = N'{_t4sang.Replace("'", "''")}' , -- T4Sang - ntext
	                    T4Chieu = N'{_t4chieu.Replace("'", "''")}' , -- T4Chieu - ntext
	                    T5Sang = N'{_t5sang.Replace("'", "''")}' , -- T5Sang - ntext
	                    T5Chieu = N'{_t5chieu.Replace("'", "''")}' , -- T5Chieu - ntext
	                    T6Sang = N'{_t6sang.Replace("'", "''")}' , -- T6Sang - ntext
	                    T6Chieu = N'{_t6chieu.Replace("'", "''")}' , -- T6Chieu - ntext
	                    T7Sang = N'{_t7sang.Replace("'", "''")}' , -- T7Sang - ntext
	                    T7Chieu = N'{_t7chieu.Replace("'", "''")}' , -- T7Chieu - ntext
	                    CnSang = N'{_cnsang.Replace("'", "''")}' , -- CnSang - ntext
	                    CnChieu = N'{_cnchieu.Replace("'", "''")}' , -- CnChieu - ntext
                        update_at = {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}  -- update_at - int
                    WHERE
                        T2DauTuan = {t2dautuan}", _cnn);
                    if (eff > 0)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không cập nhật dữ liệu vào được!";
                    }
                }
                else
                {
                    var eff = DBLibs.ExecuteNonQuery($@"
                    INSERT INTO dbo.LichCongTac
                    (
	                    T2DauTuan ,
	                    T2Sang ,	                    T2Chieu ,
	                    T3Sang ,	                    T3Chieu ,
	                    T4Sang ,	                    T4Chieu ,
	                    T5Sang ,	                    T5Chieu ,
	                    T6Sang ,	                    T6Chieu ,
	                    T7Sang ,	                    T7Chieu ,
	                    CnSang ,	                    CnChieu ,
                        created_at ,                    update_at
                    )
                    VALUES  
                    (
	                    {t2dautuan} , -- T2DauTuan - int
	                    N'{_t2sang.Replace("'", "''")}' , -- T2Sang - ntext
	                    N'{_t2chieu.Replace("'", "''")}' , -- T2Chieu - ntext
	                    N'{_t3sang.Replace("'", "''")}' , -- T3Sang - ntext
	                    N'{_t3chieu.Replace("'", "''")}' , -- T3Chieu - ntext
	                    N'{_t4sang.Replace("'", "''")}' , -- T4Sang - ntext
	                    N'{_t4chieu.Replace("'", "''")}' , -- T4Chieu - ntext
	                    N'{_t5sang.Replace("'", "''")}' , -- T5Sang - ntext
	                    N'{_t5chieu.Replace("'", "''")}' , -- T5Chieu - ntext
	                    N'{_t6sang.Replace("'", "''")}' , -- T6Sang - ntext
	                    N'{_t6chieu.Replace("'", "''")}' , -- T6Chieu - ntext
	                    N'{_t7sang.Replace("'", "''")}' , -- T7Sang - ntext
	                    N'{_t7chieu.Replace("'", "''")}' , -- T7Chieu - ntext
	                    N'{_cnsang.Replace("'", "''")}' , -- CnSang - ntext
	                    N'{_cnchieu.Replace("'", "''")}' , -- CnChieu - ntext
	                    {CLibs.DatetimeToTimestampOrgin(DateTime.Now)} , -- created_at - int
	                    {CLibs.DatetimeToTimestampOrgin(DateTime.Now)}  -- update_at - int
                    )", _cnn);
                    if (eff > 0)
                    {
                        stt = true;
                    }
                    else
                    {
                        msg = "Không thêm dữ liệu vào được!";
                    }
                }
                #endregion
            }
            #endregion

            return(Json(new
            {
                status = stt,
                message = msg
            }, JsonRequestBehavior.AllowGet));
        }