< Summary

Information
Class: Services.TransactionUtilsServices.TransactionManager
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/TransactionUtilsServices/TransactionManager.cs
Line coverage
100%
Covered lines: 39
Uncovered lines: 0
Coverable lines: 39
Total lines: 120
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/TransactionUtilsServices/TransactionManager.cs

#LineLine coverage
 1using OzonDomains;
 2using OzonDomains.Models;
 3using Services.DataServices;
 4
 5namespace Services.TransactionUtilsServices
 6{
 7    public class TransactionManager : ITransactionManager
 8    {
 9        private readonly ITransactionDataServices _transactionDataServices;
 10
 3511        public TransactionManager(ITransactionDataServices transactionDataServices)
 12        {
 3513            _transactionDataServices = transactionDataServices;
 3514        }
 15
 16        private async Task<(int, string, int)> CreateTransaction(
 17            TransactionType type,
 18            List<Order> orders,
 19            string userName,
 20            DateTime createDateTime,
 21            string comment)
 22        {
 3523            var transaction = new Transaction
 3524            {
 3525                Type = type,
 3526                CreateBy = userName,
 3527                CreatedDateTime = createDateTime,
 3528                Comment = TransactionCommentNormalizer.NormalizeUserComment(comment)
 3529            };
 30
 3531            await _transactionDataServices.AddTransaction(transaction);
 3532            var result = await _transactionDataServices.SaveChanges();
 33
 34            // Attach transaction ID to orders and mark as accepted
 15235            foreach (var order in orders)
 36            {
 4137                order.TransactionId = transaction.Id;
 4138                ConfirmAccepted(order);
 39            }
 40
 3541            result = await _transactionDataServices.SaveChanges();
 3542            return (result, $"{transaction.FormattedCreatedDate}\t{transaction.FormattedCreatedTime}", transaction.Id);
 3543        }
 44
 45        public Task<(int, string, int)> CreateOrderToSupplierTransaction(List<Order> orders, string userName,
 46            DateTime createDateTime, string comment)
 1647            => CreateTransaction(TransactionType.OrderedToSupplier, orders, userName, createDateTime, comment);
 48
 49        public Task<(int, string, int)> CreateShippedBySupplierTransaction(List<Order> orders, string userName,
 50            DateTime createDateTime, string comment)
 151            => CreateTransaction(TransactionType.ShippedBySupplier, orders, userName, createDateTime, comment);
 52
 53        public Task<(int, string, int)> CreateShippedToSellerTransaction(List<Order> orders, string userName,
 54            DateTime createDateTime, string comment)
 255            => CreateTransaction(TransactionType.ShippedToSeller, orders, userName, createDateTime, comment);
 56
 57        public Task<(int, string, int)> CreateOrderedToSellerTransaction(List<Order> orders, string userName,
 58            DateTime createDateTime, string comment)
 159            => CreateTransaction(TransactionType.OrderedToSeller, orders, userName, createDateTime, comment);
 60
 61        public Task<(int, string, int)> CreateShippedToClientTransaction(List<Order> orders, string userName,
 62            DateTime createDateTime, string comment)
 263            => CreateTransaction(TransactionType.ShippedToClient, orders, userName, createDateTime, comment);
 64
 65        public Task<(int, string, int)> CreatePercentageTransaction(List<Order> orders, string userName,
 66            DateTime createDateTime, string comment)
 167            => CreateTransaction(TransactionType.Percentage, orders, userName, createDateTime, comment);
 68
 69        public Task<(int, string, int)> AcceptedToWarehouseTransaction(List<Order> orders, string userName,
 70            DateTime createDateTime, string comment)
 271            => CreateTransaction(TransactionType.AcceptedToWarehouse, orders, userName, createDateTime, comment);
 72
 73        public Task<(int, string, int)> CreateToCancellationTransaction(List<Order> orders, string userName,
 74            DateTime createDateTime, string comment)
 175            => CreateTransaction(TransactionType.ToCancellation, orders, userName, createDateTime, comment);
 76
 77        public Task<(int, string, int)> CreateCancelledTransaction(List<Order> orders, string userName,
 78            DateTime createDateTime, string comment)
 179            => CreateTransaction(TransactionType.Cancelled, orders, userName, createDateTime, comment);
 80
 81        public Task<(int, string, int)> CreateCustomerReturnTransaction(List<Order> orders, string userName,
 82            DateTime createDateTime, string comment)
 183            => CreateTransaction(TransactionType.CustomerReturn, orders, userName, createDateTime, comment);
 84
 85        public Task<(int, string, int)> CreateWarehouseChangeTransaction(List<Order> orders, string userName,
 86            DateTime createDateTime, string comment)
 187            => CreateTransaction(TransactionType.WarehouseChange, orders, userName, createDateTime, comment);
 88
 89        public Task<(int, string, int)> CreateReturnToSupplierTransaction(List<Order> orders, string userName,
 90            DateTime createDateTime, string comment)
 191            => CreateTransaction(TransactionType.ReturnToSupplier, orders, userName, createDateTime, comment);
 92
 93        public Task<(int, string, int)> CreateReturnToWarehouseTransaction(List<Order> orders, string userName,
 94            DateTime createDateTime, string comment)
 195            => CreateTransaction(TransactionType.ReturnToWarehouse, orders, userName, createDateTime, comment);
 96
 97        public Task<(int, string, int)> CreateWarehouseTransferTransaction(List<Order> orders, string userName,
 98            DateTime createDateTime, string comment)
 199            => CreateTransaction(TransactionType.WarehouseTransfer, orders, userName, createDateTime, comment);
 100
 101        public Task<(int, string, int)> CreateShippedToCommissionerTransaction(List<Order> orders, string userName,
 102            DateTime createDateTime, string comment)
 1103            => CreateTransaction(TransactionType.ShippedToCommissioner, orders, userName, createDateTime, comment);
 104
 105        public Task<(int, string, int)> CreateReturnTransferTransaction(List<Order> orders, string userName,
 106            DateTime createDateTime, string comment)
 1107            => CreateTransaction(TransactionType.ReturnTransfer, orders, userName, createDateTime, comment);
 108
 109        public Task<(int, string, int)> CreateLostByCommissionerTransaction(List<Order> orders, string userName,
 110            DateTime createDateTime, string comment)
 1111            => CreateTransaction(TransactionType.LostByCommissioner, orders, userName, createDateTime, comment);
 112
 113        private void ConfirmAccepted(Order order)
 114        {
 41115            order.IsAccepted = true;
 41116            order.IsVerified = true;
 41117            order.UpdatedColumns = null;
 41118        }
 119    }
 120}

Methods/Properties

.ctor(Services.DataServices.ITransactionDataServices)
CreateTransaction()
CreateOrderToSupplierTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateShippedBySupplierTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateShippedToSellerTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateOrderedToSellerTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateShippedToClientTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreatePercentageTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
AcceptedToWarehouseTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateToCancellationTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateCancelledTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateCustomerReturnTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateWarehouseChangeTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateReturnToSupplierTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateReturnToWarehouseTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateWarehouseTransferTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateShippedToCommissionerTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateReturnTransferTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
CreateLostByCommissionerTransaction(System.Collections.Generic.List`1<OzonDomains.Models.Order>,System.String,System.DateTime,System.String)
ConfirmAccepted(OzonDomains.Models.Order)