WYB
2021-03-22 91b8cdad021ab052e4991f3d41834a6f0ddc36b8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using JiepeiWMS.Common;
using JiepeiWMS.IRepository.Base;
using JiepeiWMS.IRepository.UnitOfWork;
using JiepeiWMS.IServices;
using JiepeiWMS.Model;
using JiepeiWMS.Model.Models;
using JiepeiWMS.Services.BASE;
using System;
using System.Threading.Tasks;
 
namespace JiepeiWMS.Services
{
    public class GuestbookServices : BaseServices<Guestbook>, IGuestbookServices
    {
        private readonly IBaseRepository<Guestbook> _dal;
        private readonly IUnitOfWork _unitOfWork;
        private readonly IBaseRepository<PasswordLib> _passwordLibRepository;
        public GuestbookServices(IUnitOfWork unitOfWork, IBaseRepository<Guestbook> dal, IBaseRepository<PasswordLib> passwordLibRepository)
        {
            this._dal = dal;
            base.BaseDal = dal;
            _unitOfWork = unitOfWork;
            _passwordLibRepository = passwordLibRepository;
        }
 
        public async Task<MessageModel<string>> 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<string>()
                {
                    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<string>()
                {
                    success = false,
                    msg = "操作异常"
                };
            }
        }
 
        [UseTran]
        public async Task<bool> 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;
        }
 
    }
}