public async Task DeleteFinishedModel_WithCorrectData_ShouldSuccessfullyDelete() { // Arrange var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var groupRepository = new EfDeletableEntityRepository <Product_Group>(context); var productRepository = new EfDeletableEntityRepository <Product>(context); var finishedModelsRepository = new EfDeletableEntityRepository <Finished_Model>(context); var groupService = new GroupService(groupRepository); var prodcutService = new ProductService(productRepository, groupService); var cloudinaryService = new FakeCloudinary(); var finishedModelsService = new FinishedModelService(finishedModelsRepository, prodcutService, groupService, cloudinaryService); var user = new ApplicationUser { Id = "abc", FirstName = "Nikolay", LastName = "Doychev", Email = "*****@*****.**", EmailConfirmed = true, }; var fileName = "Img"; IFormFile file = new FormFile( new MemoryStream(Encoding.UTF8.GetBytes("This is a dummy file")), 0, 0, fileName, "dummy.png"); var finishedModel = new DeleteFinishedViewModel { Id = "abc1", Description = "Some description test 1", TypeProject = TypeProject.Classic.ToString(), Name = "Model 1", }; var seeder = new DbContextTestsSeeder(); await seeder.SeedUsersAsync(context); await seeder.SeedGroupAsync(context); await seeder.SeedFinishedModelssAsync(context); // Act AutoMapperConfig.RegisterMappings(typeof(DeleteFinishedViewModel).Assembly); await finishedModelsService.DeleteAsync <DeleteFinishedViewModel>(finishedModel); int actual = context.Finished_Models.Count(); // Assert Assert.True(actual == 1, string.Format(ErrorMessage, "DeleteFinishedModel method")); }
public async Task DeleteFinishedModel_WithNonExistingFireplace_ShouldThrowException() { // Arrange var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var groupRepository = new EfDeletableEntityRepository <Product_Group>(context); var productRepository = new EfDeletableEntityRepository <Product>(context); var finishedModelsRepository = new EfDeletableEntityRepository <Finished_Model>(context); var groupService = new GroupService(groupRepository); var prodcutService = new ProductService(productRepository, groupService); var cloudinaryService = new FakeCloudinary(); var finishedModelsService = new FinishedModelService(finishedModelsRepository, prodcutService, groupService, cloudinaryService); var user = new ApplicationUser { Id = "abc", FirstName = "Nikolay", LastName = "Doychev", Email = "*****@*****.**", EmailConfirmed = true, }; var fileName = "Img"; IFormFile file = new FormFile( new MemoryStream(Encoding.UTF8.GetBytes("This is a dummy file")), 0, 0, fileName, "dummy.png"); var finishedModel = new DeleteFinishedViewModel { Id = "Test Id", Description = "Some description test 1", ImagePath = "Some dummy data", TypeProject = TypeProject.Classic.ToString(), Name = "Модел 1", }; var seeder = new DbContextTestsSeeder(); await seeder.SeedUsersAsync(context); await seeder.SeedGroupAsync(context); await seeder.SeedFinishedModelssAsync(context); // Act AutoMapperConfig.RegisterMappings(typeof(DeleteFinishedViewModel).Assembly); await Assert.ThrowsAsync <NullReferenceException>(() => finishedModelsService.DeleteAsync <DeleteFinishedViewModel>(finishedModel)); }
public async Task <IActionResult> Delete(DeleteFinishedViewModel model) { if (!this.ModelState.IsValid) { return(this.View(model)); } var typeOfProject = this.finishedModelService.GetById <DeleteFinishedViewModel>(model.Id).TypeProject; await this.finishedModelService.DeleteAsync <DeleteFinishedViewModel>(model); var type = Enum.Parse <TypeProject>(typeOfProject); return(this.RedirectToAction("All", "FinishedModels", new { type = typeOfProject, area = string.Empty })); }
public async Task DeleteAsync <T>(DeleteFinishedViewModel deleteModel) { var finishedModel = this.finishedModelRepository.All().Where(f => f.Id == deleteModel.Id).FirstOrDefault(); if (finishedModel == null) { throw new NullReferenceException(string.Format(ExceptionsServices.Null_Fireplace_Id_ErrorMessage, deleteModel.Id)); } finishedModel.IsDeleted = true; finishedModel.DeletedOn = DateTime.UtcNow; await this.productService.DeleteAsync(finishedModel.ProductId); this.finishedModelRepository.Update(finishedModel); await this.finishedModelRepository.SaveChangesAsync(); }