using New_College.Common; using New_College.IRepository.Base; using New_College.IRepository.UnitOfWork; using New_College.IServices; using New_College.Model; using New_College.Model.Models; using New_College.Services.BASE; using System; using System.Threading.Tasks; namespace New_College.Services { public class GuestbookServices : BaseServices, IGuestbookServices { private readonly IBaseRepository _dal; private readonly IUnitOfWork _unitOfWork; private readonly IBaseRepository _passwordLibRepository; public GuestbookServices(IUnitOfWork unitOfWork, IBaseRepository dal, IBaseRepository passwordLibRepository) { this._dal = dal; base.BaseDal = dal; _unitOfWork = unitOfWork; _passwordLibRepository = passwordLibRepository; } public async Task> TestTranInRepository() { try { Console.WriteLine($""); Console.WriteLine($"事务操作开始"); _unitOfWork.BeginTran(); Console.WriteLine($""); Console.WriteLine($"insert a data into the table PasswordLib now."); var insertPassword = await _passwordLibRepository.Add(new PasswordLib() { IsDeleted = false, plAccountName = "aaa", plCreateTime = DateTime.Now }); var passwords = await _passwordLibRepository.Query(d => d.IsDeleted == false); Console.WriteLine($"second time : the count of passwords is :{passwords.Count}"); //...... Console.WriteLine($""); var guestbooks = await _dal.Query(); Console.WriteLine($"first time : the count of guestbooks is :{guestbooks.Count}"); int ex = 0; Console.WriteLine($"\nThere's an exception!!"); int throwEx = 1 / ex; Console.WriteLine($"insert a data into the table Guestbook now."); var insertGuestbook = await _dal.Add(new Guestbook() { username = "bbb", blogId = 1, createdate = DateTime.Now, isshow = true }); guestbooks = await _dal.Query(); Console.WriteLine($"second time : the count of guestbooks is :{guestbooks.Count}"); _unitOfWork.CommitTran(); return new MessageModel() { success = true, msg = "操作完成" }; } catch (Exception) { _unitOfWork.RollbackTran(); var passwords = await _passwordLibRepository.Query(); Console.WriteLine($"third time : the count of passwords is :{passwords.Count}"); var guestbooks = await _dal.Query(); Console.WriteLine($"third time : the count of guestbooks is :{guestbooks.Count}"); return new MessageModel() { success = false, msg = "操作异常" }; } } [UseTran] public async Task TestTranInRepositoryAOP() { var passwords = await _passwordLibRepository.Query(); Console.WriteLine($"first time : the count of passwords is :{passwords.Count}"); Console.WriteLine($"insert a data into the table PasswordLib now."); var insertPassword = await _passwordLibRepository.Add(new PasswordLib() { IsDeleted = false, plAccountName = "aaa", plCreateTime = DateTime.Now }); passwords = await _passwordLibRepository.Query(d => d.IsDeleted == false); Console.WriteLine($"second time : the count of passwords is :{passwords.Count}"); //...... Console.WriteLine($""); var guestbooks = await _dal.Query(); Console.WriteLine($"first time : the count of guestbooks is :{guestbooks.Count}"); int ex = 0; Console.WriteLine($"\nThere's an exception!!"); int throwEx = 1 / ex; Console.WriteLine($"insert a data into the table Guestbook now."); var insertGuestbook = await _dal.Add(new Guestbook() { username = "bbb", blogId = 1, createdate = DateTime.Now, isshow = true }); guestbooks = await _dal.Query(); Console.WriteLine($"second time : the count of guestbooks is :{guestbooks.Count}"); return true; } } }