/// <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); } }
/// <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); } }
/// <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()); }
/// <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); } }