コード例 #1
0
        /// <inheritdoc />
        public async Task <Result> AddBlogRewiew(BlogRewiewDto blogRewiewDto)
        {
            await using var transaction = await _context.Database.BeginTransactionAsync();

            try
            {
                var blogArticle = await _context.BlogArticles.FindAsync(blogRewiewDto.BlogArticleId);

                var blogReview = new BlogReview
                {
                    BlogArticle = blogArticle,
                    Author      = blogRewiewDto.Author,
                    DateCreate  = blogRewiewDto.DateCreate,
                    Rating      = blogRewiewDto.Rating,
                    Status      = blogRewiewDto.Status,
                    TextReview  = blogRewiewDto.TextReview
                };

                await _context.AddAsync(blogReview);

                await _context.SaveChangesAsync();

                await transaction.CommitAsync();

                return(Result.Ok());
            }
            catch (Exception e)
            {
                await transaction.RollbackAsync();

                throw new ApplicationException(e.InnerException.Message ?? e.Message);
            }
        }
コード例 #2
0
        /// <inheritdoc />
        public async Task <Result> AddOrder(OrderDto orderDto)
        {
            await using var transaction = await _context.Database.BeginTransactionAsync();

            try
            {
                var customer = await _context.Customers.FindAsync(orderDto.CustomerId);

                var productsQuery =
                    await _context.Products.Where(x => orderDto.ProductsId.Contains(x.Id)).ToListAsync();

                var order = new Order
                {
                    Customer   = customer ?? null,
                    Sum        = orderDto.Sum,
                    TimeAdd    = orderDto.TimeAdd,
                    TimeUpdate = orderDto.TimeUpdate
                };
                await _context.AddAsync(order);

                await _context.SaveChangesAsync();

                if (productsQuery.Count > 0)
                {
                    var products = productsQuery.Select(x => new OrderProduct
                    {
                        OrderId = order.Id, Order = order, Product = x, ProductId = x.Id
                    });

                    await _context.AddRangeAsync(products);

                    await _context.SaveChangesAsync();
                }

                transaction.Commit();
                return(Result.Ok());
            }
            catch (Exception e)
            {
                await transaction.RollbackAsync();

                throw new ApplicationException(e.InnerException.Message ?? e.Message);
            }
        }
コード例 #3
0
        /// <inheritdoc />
        public async Task <Result> AddManufacturer(ManufacturerDto manufacturerDto)
        {
            var manufacturer = new Manufacturer
            {
                Name   = manufacturerDto.Name,
                Sort   = manufacturerDto.Sort,
                Status = manufacturerDto.Status
            };
            await _context.AddAsync(manufacturer);

            await _context.SaveChangesAsync();

            return(Result.Ok());
        }
コード例 #4
0
        /// <inheritdoc />
        public async Task <Result> AddCustomer(CustomerDto customerDto)
        {
            await using var transaction = _context.Database.BeginTransaction();
            try
            {
                var customer = new Customer
                {
                    Address  = customerDto.Address,
                    City     = customerDto.City,
                    Company  = customerDto.Company,
                    Country  = customerDto.Country,
                    Email    = customerDto.Email,
                    Faxs     = customerDto.Faxs,
                    Ip       = customerDto.Ip,
                    LastName = customerDto.LastName,
                    Name     = customerDto.Name,
                    Phone    = customerDto.Phone,
                    Region   = customerDto.Region,
                    Sort     = customerDto.Sort,
                    Status   = customerDto.Status,
                    Zip      = customerDto.Zip
                };

                await _context.AddAsync(customer);

                await _context.SaveChangesAsync();

                await transaction.CommitAsync();

                return(Result.Ok());
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw new ApplicationException(e.InnerException.Message ?? e.Message);
            }
        }