| | 138 | |
| | 139 | === Креирање на нарачка (!PurchaseOrderService.cs) === |
| | 140 | |
| | 141 | Зошто Transaction? |
| | 142 | |
| | 143 | Насловот на нарачката и ставките (Items) претставуваат една целина. Ако едното се зачува, а другото не, ќе се создаде празна нарачка и податоците ќе бидат неконзистентни. |
| | 144 | |
| | 145 | {{{ |
| | 146 | public async Task<bool> CreatePurchaseOrderAsync(PurchaseOrder po) |
| | 147 | { |
| | 148 | using var transaction = await _context.Database.BeginTransactionAsync(); |
| | 149 | try |
| | 150 | { |
| | 151 | _context.PurchaseOrders.Add(po); |
| | 152 | await _context.SaveChangesAsync(); |
| | 153 | |
| | 154 | await transaction.CommitAsync(); |
| | 155 | return true; |
| | 156 | } |
| | 157 | catch |
| | 158 | { |
| | 159 | await transaction.RollbackAsync(); |
| | 160 | return false; |
| | 161 | } |
| | 162 | } |
| | 163 | }}} |