public void Execute(int request) { var category = _context.Categories.Find(request); if (category == null) { throw new EntityNotFoundException(request, typeof(Category)); } using (var dbContextTransaction = _context.Database.BeginTransaction()) { category.IsActive = false; category.IsDeleted = true; category.DeletedAt = DateTime.Now; _context.SaveChanges(); var products = _context.Products.Where(p => p.CategoryId == category.Id); foreach (var product in products) { product.IsActive = false; product.IsDeleted = true; product.DeletedAt = DateTime.Now; } _context.SaveChanges(); dbContextTransaction.Commit(); } }
public void Execute(int request) { var role = _context.Roles.Find(request); if (role == null) { throw new EntityNotFoundException(request, typeof(Role)); } using (var dbContextTransaction = _context.Database.BeginTransaction()) { role.IsActive = false; role.IsDeleted = true; role.DeletedAt = DateTime.Now; _context.SaveChanges(); var users = _context.Users.Where(u => u.RoleId == role.Id); foreach (var user in users) { user.IsActive = false; user.IsDeleted = true; user.DeletedAt = DateTime.Now; } _context.SaveChanges(); dbContextTransaction.Commit(); } }
public void Log(IUseCase useCase, IApplicationActor actor, object useCaseData) { _context.UseCaseLogs.Add(new UseCaseLogs { Actor = actor.Identity, Data = JsonConvert.SerializeObject(useCaseData), Date = DateTime.UtcNow, UseCaseName = useCase.Name }); _context.SaveChanges(); }
public void Execute(RoleDto request) { _validator.ValidateAndThrow(request); var role = new Role { Name = request.Name }; _context.Roles.Add(role); _context.SaveChanges(); }
public void Execute(IEnumerable <ProductPictureDeleteDto> request) { var query = _context.Pictures; foreach (var item in request) { var productPicture = query.Find(item.IdPicture); _context.Pictures.Remove(productPicture); } _context.SaveChanges(); }
public void Execute(UserPutDto request) { _validator.ValidateAndThrow(request); var user = _context.Users.Find(request.Id); user.FirstName = request.FirstName; user.LastName = request.LastName; user.Email = request.Email; _context.SaveChanges(); }
public void Execute(CategoryDto request) { _validator.ValidateAndThrow(request); var category = new Category { Name = request.Name }; _context.Categories.Add(category); _context.SaveChanges(); }
public void Execute(UserPostDto request) { _validator.ValidateAndThrow(request); using (var dbContextTransaction = _context.Database.BeginTransaction()) { var user = new User { FirstName = request.FirstName, LastName = request.LastName, Email = request.Email, Pass = request.Pass, PID = request.PID, RoleId = 2 }; _context.Users.Add(user); _context.SaveChanges(); var authUseCases = new List <int> { 13, 17, 23, 7, 6, 18 }; foreach (var useCase in authUseCases) { var useCaseRow = new UserUseCase { UserId = user.Id, UseCaseId = useCase }; _context.UserUseCases.Add(useCaseRow); } _context.SaveChanges(); dbContextTransaction.Commit(); } _sender.Send(new SendEmailDto { Content = "<h1>You are successfully registrated now!</h1>", SendTo = request.Email, Subject = "E-store registration" }); }
public void Execute(ProductDto request) { _validator.ValidateAndThrow(request); var paths = UploadService.UploadImages(request.Images); var product = new Product { Name = request.Name, Description = request.Description, Stock = request.Stock, ImagePath = paths[0], CategoryId = request.CategoryId }; using (var dbContextTransaction = _context.Database.BeginTransaction()) { _context.Products.Add(product); _context.SaveChanges(); int LastProductId = product.Id; for (int i = 1; i < paths.Count; i++) { var productPicture = new Picture { ImagePath = paths[i], ProductId = LastProductId }; _context.Pictures.Add(productPicture); } _context.SaveChanges(); var price = new PriceHistory { Price = request.Price, ProductId = LastProductId }; _context.PriceHistory.Add(price); _context.SaveChanges(); dbContextTransaction.Commit(); } }
public void Execute(UpdateProductDto request) { if (_context.Products.Any(pr => pr.Name == request.Name)) { } _validator.ValidateAndThrow(request); var product = _context.Products.AsQueryable().Include(p => p.Prices).Where(p => p.Id == request.Id).FirstOrDefault(); var pathImage = product.ImagePath; if (request.Image != null) { pathImage = UploadService.UploadImage(request.Image); } using (var dbContextTransaction = _context.Database.BeginTransaction()) { product.Name = request.Name; product.Description = request.Description; product.Stock += request.Stock; product.ImagePath = pathImage; _context.SaveChanges(); if (!_context.PriceHistory.Where(prod => prod.ProductId == request.Id).Any(price => price.Price == request.Price)) { var price = new PriceHistory { Price = request.Price, ProductId = request.Id }; _context.PriceHistory.Add(price); _context.SaveChanges(); } dbContextTransaction.Commit(); } }
public void Execute(int request) { var user = _context.Users.Find(request); if (user == null) { throw new EntityNotFoundException(request, typeof(User)); } user.IsDeleted = true; user.IsActive = false; user.DeletedAt = DateTime.Now; _context.SaveChanges(); }
public void Execute(CategoryPutDto request) { _validator.ValidateAndThrow(request); var category = _context.Categories.Find(request.Id); if (category == null) { throw new EntityNotFoundException(request.Id, typeof(Category)); } category.Name = request.Name; _context.SaveChanges(); }
public void Execute(int request) { var product = _context.Products.Find(request); if (product == null) { throw new EntityNotFoundException(request, typeof(Product)); } product.IsDeleted = true; product.IsActive = false; product.DeletedAt = DateTime.Now; _context.SaveChanges(); }
public void Execute(RolePutDto request) { _validator.ValidateAndThrow(request); var role = _context.Roles.Find(request.Id); if (role == null) { throw new EntityNotFoundException(request.Id, typeof(Role)); } role.Name = request.Name; _context.SaveChanges(); }
public void Execute(NewProductPictureDto request) { var paths = UploadService.UploadImages(request.Pictures); for (int i = 0; i < paths.Count; i++) { var productPicture = new Picture { ImagePath = paths[i], ProductId = request.ProductId }; _context.Pictures.Add(productPicture); } _context.SaveChanges(); }
public void Execute(OrderDto request) { _validator.ValidateAndThrow(request); var userId = _actor.Id; using (var dbContextTransaction = _context.Database.BeginTransaction()) { var order = new Order { Address = request.Address, UserId = userId, OrderStatus = OrderStatus.OnHold, PaymentOption = request.PaymentOption }; _context.Orders.Add(order); _context.SaveChanges(); foreach (var line in request.OrderLines) { var product = _context.Products.Include(p => p.Prices).Where(p => p.Id == line.ProductId).FirstOrDefault(); var orderLine = new OrderLine { Name = product.Name, Price = product.Prices.OrderByDescending(date => date.CreatedAt).FirstOrDefault().Price, OrderId = order.Id, ProductId = product.Id, Quantity = line.Quantity }; product.Stock -= line.Quantity; _context.OrderLines.Add(orderLine); } _context.SaveChanges(); dbContextTransaction.Commit(); } }
public void Execute(ChangeOStatusDto request) { var order = _context.Orders.AsQueryable().Include(o => o.OrderLines).ThenInclude(order => order.Product).FirstOrDefault(o => o.Id == request.OrderId); if (order == null) { throw new EntityNotFoundException(request.OrderId, typeof(Order)); } if (order.OrderStatus == OrderStatus.Delivered) { throw new ConflictOrderStatusException("Cannot change status of delivered order!"); } if (order.OrderStatus == OrderStatus.OnHold) { if (request.Status == OrderStatus.Delivered) { throw new ConflictOrderStatusException("Order cannot be changed from recieved to delivered directly!"); } } if (request.Status == OrderStatus.Canceled || request.Status == OrderStatus.Shipped) { order.OrderStatus = request.Status; if (request.Status == OrderStatus.Canceled) { foreach (var item in order.OrderLines) { item.Product.Stock += item.Quantity; } } _context.SaveChanges(); } }