public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();

            if (model.Invalid)
            {
                return(new ResultViewModel
                {
                    Success = false,
                    Message = "Não foi possível alterar o produto",
                    Data = model.Notifications
                });
            }

            var product = _prodRepo.Get(model.Id);

            product.Title          = model.Title;
            product.CategoryId     = model.CategoryId;
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            this._prodRepo.Update(product);

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto alterado  com sucesso",
                Data = product
            });
        }
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();

            if (!model.Valid)
            {
                return(new ResultViewModel {
                    Success = false,
                    Message = "Error on attempt create a new product",
                    Data = model.Notifications
                });
            }

            var product = new Product();

            product.Title       = model.Title;
            product.CategoryId  = model.CategoryId;
            product.Description = model.Description;
            product.Image       = model.Image;
            product.Price       = model.Price;
            product.Quantity    = model.Quantity;
            product.CreatedAt   = DateTime.Now;
            product.UpdatedAt   = DateTime.Now;

            _context.Products.Add(product);
            _context.SaveChanges();

            return(new ResultViewModel
            {
                Success = true,
                Message = "Product created with success",
                Data = product
            });
        }
示例#3
0
        public ResultViewModel Delete([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Success = false,
                           Message = "Não foi possível remover o produto",
                           Data    = model.Notifications
                       }
            }
            ;

            var product = _repository.Get(model.Id);

            product.Title      = model.Title;
            product.CategoryId = model.CategoryId;
            //product.CreateDate = DateTime.Now
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            _repository.Excluir(product);

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto removido com sucesso!",
                Data = product
            });
        }
    }
示例#4
0
        public async Task <ActionResult <Product> > Post([FromBody] EditorProductViewModel model)
        {
            var searchCategory = await _categoryRepository.Get(model.CategoryId);

            if (searchCategory == null)
            {
                return(NotFound(new { message = "Categoria não encontrada" }));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                var product = new Product();
                product.Title          = model.Title;
                product.Description    = model.Description;
                product.Price          = model.Price;
                product.Quantity       = model.Quantity;
                product.Image          = model.Image;
                product.CreateDate     = DateTime.Now; // Nunca recebe esta informação
                product.LastUpdateDate = DateTime.Now; // Nunca recebe esta informação
                product.CategoryId     = model.CategoryId;

                await _repository.Save(product);

                return(Ok(product));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possível cadastrar o produto" }));
            }
        }
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return(new ResultViewModel
                {
                    Success = false,
                    Message = "Falha ao cadastrar um produto",
                    Data = model.Notifications
                });
            }
            Product product = new Product
            {
                Title          = model.Title,
                Description    = model.Description,
                Price          = model.Price,
                Quantity       = model.Quantity,
                Image          = model.Image,
                CreateDate     = DateTime.Now,
                LastUpdateDate = DateTime.Now,
                CategoryId     = model.CategoryId
            };

            _context.Products.Add(product);
            _context.SaveChanges();
            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto Cadastrado com sucesso!",
                Data = product
            });
        }
        public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Success = false,
                           Message = "teste",
                           Data    = model.Notifications
                       }
            }
            ;

            var product = repository.Get(model.Id);

            product.Title      = model.Title;
            product.CategoryId = model.CategoryId;
            // product.CreateDate = DateTime.Now; // Nunca altera a data de criação
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now; // Nunca recebe esta informação
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;


            repository.Update(product);
            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto alterado com sucesso!",
                Data = product
            });
        }
    }
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return(new ResultViewModel(
                           false,
                           "Não foi possível cadastrar o produto",
                           model.Notifications));
            }

            var product = new Product
            {
                Title         = model.Title,
                CategoryId    = model.CategoryId,
                CreateDate    = DateTime.Now,
                Description   = model.Description,
                Image         = model.Image,
                LasUpdateDate = DateTime.Now,
                Price         = model.Price,
                Quantity      = model.Quantity
            };

            _repository.Save(product);

            return(new ResultViewModel
                   (
                       true,
                       "Produto cadastrado com sucesso!",
                       product
                   ));
        }
示例#8
0
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Data    = model.Notifications,
                           Message = "Wasn't possible save product!",
                           Success = false
                       }
            }
            ;

            Product product = model.ConvertNewViewModelToModel();

            _repository.Save(product);

            return(new ResultViewModel
            {
                Data = product,
                Message = "Successfull to register Product",
                Success = true
            });
        }
示例#9
0
        public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Data    = model.Notifications,
                           Message = "Wasn't possible update product!",
                           Success = false
                       }
            }
            ;

            Product product = _repository.Get(model.Id);

            product = model.ConvertUsedViewModelToModel(product);
            _repository.Update(product);

            return(new ResultViewModel
            {
                Data = product,
                Message = "Successfull to update Product",
                Success = true
            });
        }
    }
        public async Task <ActionResult <ResultViewModel> > Post([FromServices] IProductRepository repository,
                                                                 [FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return(new ResultViewModel
                {
                    Success = false,
                    Message = "Não foi possível cadastrar o produto!",
                    Data = model.Notifications
                });
            }
            else
            {
                var product = new Product();
                product.Title          = model.Title;
                product.Description    = model.Description;
                product.Image          = model.Image;
                product.Price          = model.Price;
                product.Quantity       = model.Quantity;
                product.CategoryId     = model.CategoryId;
                product.CreateDate     = DateTime.Now;
                product.LastUpdateDate = DateTime.Now;
                await repository.Save(product);

                return(new ResultViewModel
                {
                    Success = true,
                    Message = "Produto foi salvo com sucesso!",
                    Data = product
                });
            }
        }
示例#11
0
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.invalid)
            {
                Success = false,
                Message = "Não foi possivel cadastrar o Produto",
                Data    = model.Notifications
            }
            ;

            var product = new Product();

            product.Title          = model.Title;
            product.CategoyId      = model.CategoyId;
            product.CreateDate     = DateTime.Now;
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Quantity       = model.Quantity;

            _context.Products.Add(product);
            _context.SaveChanges();

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto cadastrado com sucesso",
                Data = product
            });
        }
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Success = false,
                           Message = "Não foi possível cadastrar o produto",
                           Data    = model.Notifications
                       }
            }
            ;

            var produto = new Produto();

            produto.Titulo    = model.Titulo;
            produto.Descricao = model.Descricao;
            produto.Valor     = model.Valor;
            produto.Imagem    = model.Imagem;
            _repository.Save(produto);

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto cadastrado com sucesso!",
                Data = produto
            });
        }
    }
        public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return(new ResultViewModel
                {
                    Success = false,
                    Message = "Falha ao editar um produto",
                    Data = model.Notifications
                });
            }
            Product product = _context.Products.Find(model.Id);

            product.Title          = model.Title;
            product.Description    = model.Description;
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;
            product.Image          = model.Image;
            product.CreateDate     = DateTime.Now;
            product.LastUpdateDate = DateTime.Now;
            product.CategoryId     = model.CategoryId;

            _context.Entry <Product>(product).State = EntityState.Modified;
            _context.SaveChanges();

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto alterado com sucesso!",
                Data = product
            });
        }
        public ResultViewModel Put([FromBody] EditorProductViewModel productViewModel)
        {
            if (productViewModel.Invalid)
            {
                return(new ResultViewModel()
                {
                    Data = productViewModel.Notifications,
                    Message = "Não foi possível cadastrar o produto",
                    Success = false
                });
            }

            var product = _repository.Find(productViewModel.Id).Result;

            product.CategoryId     = productViewModel.CategoryId;
            product.Description    = productViewModel.Description;
            product.Image          = productViewModel.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Price          = productViewModel.Price;
            product.Quantity       = productViewModel.Quantity;
            product.Title          = productViewModel.Title;

            _repository.Update(product);

            return(new ResultViewModel()
            {
                Success = true,
                Data = product,
                Message = "Operação realizada com sucesso."
            });
        }
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Sucess  = false,
                           Message = "Não foi possicel cadastrar o produto",
                           Data    = model.Notifications
                       }
            }
            ;
            var product = new Product()
            {
                Tittle         = model.Title,
                CategoryId     = model.CategoryId,
                CreateDate     = DateTime.Now,
                Description    = model.Description,
                Image          = model.Image,
                LastUpdateDate = DateTime.Now,
                Price          = model.Price,
                Quantity       = model.Quantity
            };

            _repository.Save(product);

            return(new ResultViewModel
            {
                Sucess = true,
                Message = "Produto cadastrado com sucesso",
                Data = product
            });
        }
        public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Sucess  = false,
                           Message = "Não foi possicel cadastrar o produto",
                           Data    = model.Notifications
                       }
            }
            ;
            var product = _repository.GetById(model.Id);

            product.Tittle         = model.Title;
            product.CategoryId     = model.CategoryId;
            product.CreateDate     = DateTime.Now;
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            _repository.Update(product);

            return(new ResultViewModel
            {
                Sucess = true,
                Message = "Produto cadastrado com sucesso",
                Data = product
            });
        }
        public ResultViewModel Post([FromBody] EditorProductViewModel productViewModel)
        {
            productViewModel.Validate();
            if (productViewModel.Invalid)
            {
                return(new ResultViewModel()
                {
                    Data = productViewModel.Notifications,
                    Message = "Não foi possível cadastrar o produto",
                    Success = false
                });
            }
            var product = new Product()
            {
                CategoryId = productViewModel.CategoryId,
                //CreateDate = DateTime.Now,
                Description = productViewModel.Description,
                Image       = productViewModel.Image,
                //LastUpdateDate = DateTime.Now,
                Price    = productViewModel.Price,
                Quantity = productViewModel.Quantity,
                Title    = productViewModel.Title,
            };

            _repository.Save(product);
            return(new ResultViewModel()
            {
                Success = true,
                Data = product,
                Message = "Operação realizada com sucesso."
            });
        }
示例#18
0
        public ResultViewModel Put([FromBody] EditorProductViewModel productVM)
        {
            productVM.Validate();
            if (productVM.Invalid)
            {
                return(new ResultViewModel
                {
                    Success = false,
                    Message = "Não foi possível cadastrar este Produto.",
                    Data = productVM.Notifications
                });
            }
            var product = _context.Products.Find(productVM.Id);

            {
                product.Description = productVM.Description;
                product.CategoryId  = productVM.CategoryId;
                product.UpdateDate  = DateTime.Now;
                product.Image       = productVM.Image;
                product.Price       = productVM.Price;
                product.Quantity    = productVM.Quantity;
                product.Title       = productVM.Title;
            };
            _context.Products.Update(product);
            _context.SaveChanges();

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto cadastrado com sucesso!",
                Data = product
            });
        }
示例#19
0
        public ResultViewModel Post([FromBody] EditorProductViewModel productVM)
        {
            productVM.Validate();
            if (productVM.Invalid)
            {
                return(new ResultViewModel
                {
                    Success = false,
                    Message = "Não foi possível cadastrar este Produto.",
                    Data = productVM.Notifications
                });
            }
            Product product = new Product
            {
                Description = productVM.Description,
                CategoryId  = productVM.CategoryId,
                InsertDate  = DateTime.Now,
                UpdateDate  = DateTime.Now,
                Image       = productVM.Image,
                Price       = productVM.Price,
                Quantity    = productVM.Quantity,
                Title       = productVM.Title
            };

            _context.Products.Add(product);
            _context.SaveChanges();

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto cadastrado com sucesso!",
                Data = product
            });
        }
        public ResultViewModel Post([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Success = false,
                           Message = "Não foi possível cadastrar o produto",
                           Data    = model.Notifications
                       }
            }
            ;

            var product = new Product();

            product.Title          = model.Title;
            product.CategoryId     = model.CategoryId;
            product.CreateDate     = DateTime.Now; // Nunca recebe esta informação
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now; // Nunca recebe esta informação
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;


            repository.Save(product);
            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto cadastrado com sucesso!",
                Data = product
            });
        }
        public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return(new ResultViewModel(
                           false,
                           "Não foi possível atualizar o produto",
                           model.Notifications));
            }

            var product = _repository.GetProductById(model.Id);

            product.Title         = model.Title;
            product.Description   = model.Description;
            product.Price         = model.Price;
            product.Quantity      = model.Quantity;
            product.Image         = model.Image;
            product.LasUpdateDate = DateTime.Now;
            product.CategoryId    = model.CategoryId;

            _repository.Update(product);

            return(new ResultViewModel
                   (
                       true,
                       "Produto atualizado com sucesso!",
                       product
                   ));
        }
        public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Success = false,
                           Message = "Could not change product",
                           Data    = model.Notifications
                       }
            }
            ;

            var product = _repository.Get(model.Id);

            product.Title      = model.Title;
            product.CategoryId = model.CategoryId;
            // product.CreateDate = DateTime.Now;
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            _repository.Update(product);

            return(new ResultViewModel
            {
                Success = true,
                Message = "Product changed successfully!",
                Data = product
            });
        }
    }
        public ResultViewModel Delete([FromBody] EditorProductViewModel model)
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Success = false,
                           Message = "Não foi possível excluir o produto.",
                           Data    = model.Notifications
                       }
            }
            ;

            var product = _repository.GetById(model.Id);

            _repository.Delete(product);

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto excluido com sucesso.",
                Data = product
            });
        }
    }
示例#24
0
        public Product Post([FromBody] EditorProductViewModel editorProductViewModel)
        {
            var product = _mapper.Map <EditorProductViewModel, Product>(editorProductViewModel);

            _context.Products.Add(product);
            _context.SaveChanges();

            return(product);
        }
示例#25
0
        public ResultViewModel Post(
            [FromBody] EditorProductViewModel model,
            [FromServices] IUnitOfWork uow
            )
        {
            model.Validate();
            if (model.Invalid)
            {
                return new ResultViewModel
                       {
                           Success = false,
                           Message = "Não foi possível cadastrar o produto",
                           Data    = model.Notifications
                       }
            }
            ;

            var product = new Product();

            product.Title          = model.Title;
            product.CategoryId     = model.CategoryId;
            product.CreateDate     = DateTime.Now; // Nunca recebe esta informação
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now; // Nunca recebe esta informação
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            try
            {
                _repository.Save(product);

                uow.Commit(); // Irá Utilizar o UnitOfWork para salvar, o UnitOfWork controla a transaçao no banco de dados.

                return(new ResultViewModel
                {
                    Success = true,
                    Message = "Produto cadastrado com sucesso!",
                    Data = product
                });
            }
            catch (Exception ex)
            {
                uow.Rollback(); // Irá Utilizar o UnitOfWork para salvar, o UnitOfWork controla a transaçao no banco de dados.

                return(new ResultViewModel
                {
                    Success = false,
                    Message = "Erro ao cadastrar Produto: " + ex.Message,
                    Data = product
                });
            }
        }
        public ResultViewModel Delete([FromBody] EditorProductViewModel model)
        {
            //Product product = ;
            _context.Products.Remove(_context.Products.Find(model.Id));
            _context.SaveChanges();

            return(new ResultViewModel
            {
                Success = true,
                Message = "Produto deletado com sucesso!",
                Data = null
            });
        }
示例#27
0
        public ResultViewModel Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();

            if (model.Invalid)
            {
                return new ResultViewModel {
                           Success = false,
                           Message = "Não foi possivel atualizar o produto!",
                           Data    = model.Notifications
                }
            }
            ;

            var product = _repository.Get(model.Id);

            product.Title      = model.Title;
            product.CategoryId = model.CategoryId;
            // product.CreateDate = DateTime.Now;
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            //update
            _repository.Update(product);

            return(new ResultViewModel {
                Success = true,
                Message = "Produto alterado com sucesso!",
                Data = product
            });
        }

        // [Route("v1/products")]
        // [HttpDelete]
        // public ResultViewModel Delete([FromBody]EditorProductViewModel model)
        // {

        //     _context.Products.Remove(_context.Products.Find(model.Id));
        //     _context.SaveChanges();

        //      return new ResultViewModel{
        //         Success = true,
        //         Message= "Produto removido com sucesso!",
        //         Data = null
        //     };
        // }
    }
        public ResultViewModel Post([FromBody] EditorProductViewModel model, [FromServices] ICategoryRepository categoryRepository)
        {
            model.Validate();

            if (model.Invalid)
            {
                return(new ResultViewModel()
                {
                    Success = false,
                    Message = "Não foi possível cadastrar o produto",
                    Data = model
                });
            }

            if (categoryRepository.NotExists(model.CategoryId))
            {
                model.AddNotification("CategoryId", "Categoria não encontrada");

                return(new ResultViewModel()
                {
                    Success = false,
                    Message = "Não foi possível cadastrar o produto",
                    Data = model
                });
            }

            var product = new Product()
            {
                Title       = model.Title,
                Description = model.Description,
                Price       = model.Price,
                Quantity    = model.Quantity,
                Image       = model.Image,
                CategoryId  = model.CategoryId,

                CreateDate     = DateTime.Now,
                LastUpdateDate = DateTime.Now
            };

            _productRepository.Create(product);

            return(new ResultViewModel()
            {
                Success = true,
                Message = "Produto criado com sucesso.",
                Data = product
            });
        }
示例#29
0
        public ActionResult Put([FromBody] EditorProductViewModel model)
        {
            var product = _repository.Get(model.ProductId);

            product.ProductName = model.ProductName;
            product.CategoryId  = model.CategoryId;
            //product.CreateDate = DateTime.Now; //Never receive this info
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now; //Never receive this info
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            _repository.Update(product);

            return(Ok(product));
        }
示例#30
0
        public async Task <ResultViewModel> Put([FromBody] EditorProductViewModel model)
        {
            model.Validate();

            if (model.IsValid)
            {
                return(new ResultViewModel {
                    Success = false,
                    Message = "Não foi possível cadastrar o produto",
                    Data = model.Notifications
                });
            }

            var product = _context.Products.Find(model.Id);

            if (product == null)
            {
                return(new ResultViewModel()
                {
                    Success = false,
                    Data = model,
                    Message = "Produto não encontrado"
                });
            }
            product.Title          = model.Title;
            product.CategoryId     = model.CategoryId;
            product.CreateDate     = DateTime.Now;
            product.Description    = model.Description;
            product.Image          = model.Image;
            product.LastUpdateDate = DateTime.Now;
            product.Price          = model.Price;
            product.Quantity       = model.Quantity;

            _context.Entry <Product>(product).State = EntityState.Modified;

            await _context.SaveChangesAsync();


            return(await Task.FromResult(new ResultViewModel()
            {
                Success = true,
                Message = "Produto atualizado com sucesso",
                Data = product
            }));
        }