//Kiểm tra collection truyền vào có tên trùng trong database không //KQ: false = TruyenID hoặc TheLoaiID không tồn tại, true: thêm thành công public ResponseDetails CreatePhuLuc(IEnumerable <PhuLuc> phuLucs) { foreach (var phuLuc in phuLucs) { /*Bắt lỗi [ID]*/ var truyenRepo = new TruyenRepository(_context); var theLoaiRepo = new TheLoaiRepository(_context); if (!truyenRepo.FindByCondition(t => t.TruyenID.Equals(phuLuc.TruyenID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID truyện không tồn tại", Value = phuLuc.TruyenID.ToString() }); } if (!theLoaiRepo.FindByCondition(t => t.TheLoaiID.Equals(phuLuc.TheLoaiID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID thể loại không tồn tại", Value = phuLuc.TheLoaiID.ToString() }); } if (FindByCondition(m => m.TheLoaiID == phuLuc.TheLoaiID && m.TruyenID == phuLuc.TruyenID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Truyện này đã tồn tại thể loại này", Value = "ID truyện: " + phuLuc.TruyenID + "/ ID thể loại: " + phuLuc.TheLoaiID.ToString() }); } /*End*/ Create(phuLuc); } return(new ResponseDetails() { StatusCode = ResponseCode.Success }); }
//Kiểm tra object truyền vào có tên trùng trong database không //KQ: false: TenTacGia bị trùng, true: cập nhật thành công public ResponseDetails UpdatePhuLuc(IEnumerable <PhuLuc> phuLucs) { foreach (var phuLuc in phuLucs) { /*Bắt lỗi [ID]*/ var truyenRepo = new TruyenRepository(_context); var theLoaiRepo = new TheLoaiRepository(_context); if (!truyenRepo.FindByCondition(t => t.TruyenID.Equals(phuLuc.TruyenID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID truyện không tồn tại", Value = phuLuc.TruyenID.ToString() }); } if (!theLoaiRepo.FindByCondition(t => t.TheLoaiID.Equals(phuLuc.TheLoaiID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID thể loại không tồn tại", Value = phuLuc.TheLoaiID.ToString() }); } /*End*/ //Nếu phụ lục nhập vào chưa có if (!FindByCondition(m => m.TheLoaiID == phuLuc.TheLoaiID && m.TruyenID == phuLuc.TruyenID).Any()) { Create(phuLuc); } else { Update(phuLuc); } } return(new ResponseDetails() { StatusCode = ResponseCode.Success, Message = "Sửa phụ lục thành công" }); }
//Kiểm tra object truyền vào có tên trùng trong database không //KQ: false: TenChuong bị trùng, true: cập nhật thành công public ResponseDetails UpdateChuong(Chuong chuong) { /*Bắt lỗi [ID]*/ var truyenRepo = new TruyenRepository(_context); if (!truyenRepo.FindByCondition(t => t.TruyenID.Equals(chuong.TruyenID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID truyện không tồn tại", Value = chuong.TruyenID.ToString() }); } /*End*/ /*Bắt lỗi [Tên chương]*/ if (FindByCondition(t => t.TenChuong.Equals(chuong.TenChuong) && t.TruyenID.Equals(chuong.TruyenID) && t.ChuongID != chuong.ChuongID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Tên chương bị trùng" }); } /*End*/ chuong.TenChuong = chuong.TenChuong.ToLower(); var chuongOld = FindByCondition(m => m.ChuongID.Equals(chuong.ChuongID)).FirstOrDefault(); chuong.ThoiGianCapNhat = (chuong.ThoiGianCapNhat == "" || chuong.ThoiGianCapNhat == null) ? chuongOld.ThoiGianCapNhat: DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); chuong.LuotXem = chuong.LuotXem == 0 ? chuongOld.LuotXem: chuong.LuotXem; //Tạo bản ghi mới nhưng chưa update vào CSDL Update(chuong); return(new ResponseDetails() { StatusCode = ResponseCode.Success, Message = "Sửa chương thành công" }); }
//Kiểm tra object truyền vào có tên trùng trong database không //KQ: false: TenTheoDoi bị trùng, true: cập nhật thành công public ResponseDetails UpdateTheoDoi(TheoDoi theoDoi) { var userRepo = new UserRepository(_context); var truyenRepo = new TruyenRepository(_context); if (!userRepo.FindByCondition(t => t.UserID == theoDoi.UserID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID User không tồn tại", Value = theoDoi.UserID.ToString() }); } if (!truyenRepo.FindByCondition(t => t.TruyenID == theoDoi.TruyenID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID Truyện không tồn tại", Value = theoDoi.TruyenID.ToString() }); } if (FindByCondition(t => t.UserID == theoDoi.UserID && t.TruyenID == theoDoi.TruyenID & t.TheoDoiID != theoDoi.TheoDoiID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Bạn đã theo dõi truyện này", Value = theoDoi.TruyenID.ToString() }); } theoDoi.ThoiGian = DateTime.Now; Update(theoDoi); return(new ResponseDetails() { StatusCode = ResponseCode.Success, Message = "Sửa TheoDoi thành công" }); }
//Xóa logic public ResponseDetails DeleteTacGia(TacGia tacGia) { //Kiểm tra [id tác giả] hiện tại có nằm trong [truyện] không? Nếu không thì cho phép xóa var truyenRepo = new TruyenRepository(_context); if (!truyenRepo.FindByCondition(t => t.TacGiaID.Equals(tacGia.TacGiaID) && !t.TinhTrang).Any()) { tacGia.TinhTrang = true; Update(tacGia); return(new ResponseDetails() { StatusCode = ResponseCode.Success, Message = "Xóa tác giả thành công" }); } else { return(new ResponseDetails() { StatusCode = ResponseCode.Success, Message = "Tác giả này đang tồn tại ở Truyện" }); } }
//Kiểm tra collection truyền vào có tên trùng trong database không //KQ: !null = TenChuong bị trùng, null: thêm thành công public ResponseDetails CreateChuong(IEnumerable <Chuong> chuongs) { /*Kiểm tra xem chuỗi json nhập vào có bị trùng tên chương không*/ foreach (var dup in chuongs.GroupBy(p => p.TenChuong)) { if (dup.Count() - 1 > 0) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Chuỗi json nhập vào bị trùng tên chương", Value = dup.Key.ToString() }); } } /*End*/ foreach (var chuong in chuongs) { /*Bắt lỗi [ID]*/ var truyenRepo = new TruyenRepository(_context); if (!truyenRepo.FindByCondition(t => t.TruyenID.Equals(chuong.TruyenID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID truyện không tồn tại", Value = chuong.TruyenID.ToString() }); } /*End*/ /*Bắt lỗi [Tên chương]*/ if (FindByCondition(t => t.TenChuong.Equals(chuong.TenChuong) && t.TruyenID.Equals(chuong.TruyenID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Tên chương bị trùng", Value = chuong.TenChuong }); } /*End*/ var found = FindByCondition(m => m.TruyenID.Equals(chuong.TruyenID)); if (found.Count() > 0) { chuong.STT = found.Max(m => m.STT) + 1; } else { chuong.STT = 1; } chuong.ThoiGianCapNhat = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); Random r = new Random(); chuong.LuotXem = r.Next(5000, 15000); //Tạo dữ liệu nhưng chưa add vào CSDL Create(chuong); _context.SaveChanges(); } return(new ResponseDetails() { StatusCode = ResponseCode.Success }); }
//Kiểm tra collection truyền vào có tên trùng trong database không //KQ: !null = TenBinhLuan bị trùng, null: thêm thành công public ResponseDetails CreateBinhLuan(BinhLuan binhLuan) { /*Bắt lỗi ký tự đặc biệt*/ if (ValidationExtensions.isSpecialChar(binhLuan.NoiDung)) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Không được chứa ký tự đặc biệt", Value = binhLuan.NoiDung.ToString() }); } /*End*/ /*Bắt lỗi [ID]*/ var userRepo = new UserRepository(_context); var chuongRepo = new ChuongRepository(_context); var truyenRepo = new TruyenRepository(_context); if (!userRepo.FindByCondition(t => t.UserID == binhLuan.UserID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID User không tồn tại", Value = binhLuan.UserID.ToString() }); } if (binhLuan.ChuongID == null && binhLuan.TruyenID == null) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Vui lòng cung cấp ChuongID hoặc TruyenID", Value = "" }); } if (binhLuan.ChuongID != null && !chuongRepo.FindByCondition(t => t.ChuongID == binhLuan.ChuongID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID Chương không tồn tại", Value = binhLuan.ChuongID.ToString() }); } if (binhLuan.TruyenID != null && !truyenRepo.FindByCondition(t => t.TruyenID == binhLuan.TruyenID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID Truyện không tồn tại", Value = binhLuan.ChuongID.ToString() }); } if (binhLuan.NoiDung == "" || binhLuan.NoiDung == null) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Nội dung bình luận không được để trống", Value = "" }); } /*End*/ binhLuan.NgayBL = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss"); Create(binhLuan); return(new ResponseDetails() { StatusCode = ResponseCode.Success }); }
//Kiểm tra object truyền vào có tên trùng trong database không //KQ: false: TenBinhLuan bị trùng, true: cập nhật thành công public ResponseDetails UpdateBinhLuan(BinhLuan binhLuan) { /*Bắt lỗi ký tự đặc biệt*/ if (ValidationExtensions.isSpecialChar(binhLuan.NoiDung)) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Không được chứa ký tự đặc biệt", Value = binhLuan.NoiDung.ToString() }); } /*End*/ /*Bắt lỗi [ID]*/ var userRepo = new UserRepository(_context); var chuongRepo = new ChuongRepository(_context); var truyenRepo = new TruyenRepository(_context); if (!userRepo.FindByCondition(t => t.UserID == binhLuan.UserID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID User không tồn tại", Value = binhLuan.UserID.ToString() }); } if (binhLuan.ChuongID == null && binhLuan.TruyenID == null) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Vui lòng cung cấp ChuongID hoặc TruyenID", Value = "" }); } if (binhLuan.ChuongID != null && !chuongRepo.FindByCondition(t => t.ChuongID == binhLuan.ChuongID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID Chương không tồn tại", Value = binhLuan.ChuongID.ToString() }); } if (binhLuan.TruyenID != null && !truyenRepo.FindByCondition(t => t.TruyenID == binhLuan.TruyenID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID Truyện không tồn tại", Value = binhLuan.ChuongID.ToString() }); } if (binhLuan.NoiDung == "" || binhLuan.NoiDung == null) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Nội dung bình luận không được để trống", Value = "" }); } /*End*/ var binhLuanOld = FindByCondition(m => m.BinhLuanID.Equals(binhLuan.BinhLuanID)).FirstOrDefault(); binhLuan.NgayBL = (binhLuan.NgayBL == "" || binhLuan.NgayBL == null) ? binhLuanOld.NgayBL : binhLuan.NgayBL; Update(binhLuan); return(new ResponseDetails() { StatusCode = ResponseCode.Success, Message = "Sửa bình luận thành công" }); }