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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }