//Kiểm tra object truyền vào có tên trùng trong database không //KQ: false: TenTruyen bị trùng, true: cập nhật thành công public ResponseDetails UpdateTruyen(Truyen truyen) { /*Bắt lỗi [ID]*/ var tacGiaRepo = new TacGiaRepository(_context); if (!tacGiaRepo.FindByCondition(t => t.TacGiaID.Equals(truyen.TacGiaID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID tác giả không tồn tại", Value = truyen.TacGiaID.ToString() }); } /*End*/ /*Bắt lỗi [Tên truyện]*/ if (FindByCondition(t => t.TenTruyen.Equals(truyen.TenTruyen) && t.TruyenID != truyen.TruyenID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Tên truyện bị trùng" }); } /*End*/ /*Bắt lỗi [Hình ảnh]*/ if (FindByCondition(t => t.HinhAnh.Equals(truyen.HinhAnh) && t.TruyenID != truyen.TruyenID).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Hình ảnh này đã tồn tại", Value = truyen.TenTruyen + ": " + truyen.HinhAnh }); } /*End*/ //Tạo bản ghi mới nhưng chưa update vào CSDL Update(truyen); return(new ResponseDetails() { StatusCode = ResponseCode.Success, Message = "Sửa truyện thành công" }); }
//Kiểm tra collection truyền vào có tên trùng trong database không //KQ: !null = TenTruyen bị trùng, null: thêm thành công public ResponseDetails CreateTruyen(IEnumerable <Truyen> truyens) { /*Kiểm tra xem chuỗi json nhập vào có bị trùng tên truyện không*/ foreach (var dup in truyens.GroupBy(p => p.TenTruyen)) { if (dup.Count() - 1 > 0) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Chuỗi json nhập vào bị trùng tên truyện", Value = dup.Key.ToString() }); } } /*End*/ /*Kiểm tra xem chuỗi json nhập vào có bị trùng hình ảnh không*/ foreach (var dup in truyens.GroupBy(p => p.HinhAnh)) { if (dup.Count() - 1 > 0) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Chuỗi json nhập vào bị trùng hình ảnh truyện", Value = dup.Key.ToString() }); } } /*End*/ var tacGiaRepo = new TacGiaRepository(_context); foreach (var truyen in truyens) { /*Bắt lỗi [ID]*/ if (!tacGiaRepo.FindByCondition(t => t.TacGiaID.Equals(truyen.TacGiaID)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "ID tác giả không tồn tại", Value = truyen.TacGiaID.ToString() }); } /*End*/ /*Bắt lỗi [Tên truyện]*/ if (FindByCondition(t => t.TenTruyen.Equals(truyen.TenTruyen)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Tên truyện bị trùng", Value = truyen.TenTruyen }); } /*End*/ /*Bắt lỗi [Hình ảnh]*/ if (FindByCondition(t => t.HinhAnh.Equals(truyen.HinhAnh)).Any()) { return(new ResponseDetails() { StatusCode = ResponseCode.Error, Message = "Hình ảnh này đã tồn tại", Value = truyen.TenTruyen + ": " + truyen.HinhAnh }); } /*End*/ truyen.TenTruyen = truyen.TenTruyen.ToLower(); Create(truyen); _context.SaveChanges(); } return(new ResponseDetails() { StatusCode = ResponseCode.Success }); }