public async Task <ActionResult> CustomerProductsCreate(UsersDto customer, ProductsDto product) { var customerResult = await _customersRepository.GetAsync(customer.Id); TempData["customer"] = customerResult.Data; var productResult = await _productsRepository.GetAllAsync(); ViewBag.Products = productResult.Data; var customerProducts = await _customersProductsRepository.GetAllByCustomerIdAsync(customer.Id); var customerAlreadyHasProduct = customerProducts.Data.Exists(e => e.ProductsId == product.Id); if (customerAlreadyHasProduct) { var modelResult = new TaskResult <CustomersProductsDto> { Message = "El cliente ya tiene este producto", Success = false }; return(View("CustomerProductsCreate", modelResult)); } var customerProduct = new CustomersProductsDto { ProductsId = product.Id, ApplicationUserId = customer.Id }; var relResult = await _customersProductsRepository.SaveAsync(customerProduct); return(View("CustomerProductsCreate", relResult)); }
public async Task <TaskResult <CustomersProductsDto> > SaveAsync(CustomersProductsDto customersProductsDto) { var costumer = new CustomersProducts { Active = customersProductsDto.Active, CreatedAt = customersProductsDto.CreatedAt, ApplicationUserId = customersProductsDto.ApplicationUserId, ProductsId = customersProductsDto.ProductsId, Id = customersProductsDto.Id, UpdatedAt = customersProductsDto.UpdatedAt }; var result = new TaskResult <CustomersProductsDto>(); try { _context.CustomersProducts.Add(costumer); await _context.SaveChangesAsync(); result.Message = $"Se agregó el producto al cliente de forma exitosa!"; } catch (Exception e) { result.Success = false; result.Message = $"Error al intentar agregar el producto: {e.Message}"; } return(result); }
public async Task <TaskResult <CustomersProductsDto> > UpdateAsync(CustomersProductsDto customersProductsDto) { var costumer = new CustomersProducts { Active = customersProductsDto.Active, CreatedAt = customersProductsDto.CreatedAt, Id = customersProductsDto.Id, UpdatedAt = customersProductsDto.UpdatedAt }; var result = new TaskResult <CustomersProductsDto>(); try { _context.CustomersProducts.Add(costumer); _context.Entry(costumer).State = System.Data.Entity.EntityState.Modified; await _context.SaveChangesAsync(); result.Data = customersProductsDto; result.Message = "El registro fue actualizado correctamente"; } catch (Exception e) { result.Success = false; result.Message = $"Error al intentar actualizar información del cliente: {e.Message}"; } return(result); }