コード例 #1
0
        public async Task <ApiResultDTO <CustomerBasketDTO> > AddItemToBasket(BasketItemDTO basketItemDTO)
        {
            var saveItem = new ApiResultDTO <CustomerBasketDTO> {
                Result = new CustomerBasketDTO()
            };

            #region stock control

            var isProductStockExist =
                _basketService.CheckProductStock(new CheckProductStockDTO
            {
                ProductId = basketItemDTO.ProductId,
                Quantity  = basketItemDTO.Quantity
            });

            if (!isProductStockExist)
            {
                //If product is not enough or not exist
                saveItem.ResultType = DTO.ResultType.NotFound;
                saveItem.Message    = "Not enough product";
                return(saveItem);
            }

            #endregion

            var existBasketItems = await GetBasketAsync(basketItemDTO.CustomerId);

            //if there is not basket in Redis
            if (existBasketItems != null &&
                existBasketItems.BasketItems != null &&
                existBasketItems.BasketItems.Any())
            {
                //if same product added to card then it will sum existing and new quantity
                if (existBasketItems.BasketItems.Any(x => x.ProductId == basketItemDTO.ProductId))
                {
                    var existingProduct = existBasketItems
                                          .BasketItems.First(x => x.ProductId == basketItemDTO.ProductId);

                    existingProduct.Quantity += basketItemDTO.Quantity;
                }
                else
                {
                    existBasketItems.BasketItems.Add(basketItemDTO);
                }

                saveItem.Result  = existBasketItems;
                saveItem.Message = "Item successfully added.";
            }
            else
            {
                saveItem.Result.CustomerId = basketItemDTO.CustomerId;
                saveItem.Result.BasketItems.Add(basketItemDTO);
                saveItem.Message = "Item successfully added.";
            }

            saveItem.Result = await UpdateBasketAsync(saveItem.Result);

            return(saveItem);
        }
コード例 #2
0
        private static Task HandleExceptionAsync(HHttpContext context, int statusCode, string msg)
        {
            var data = new ApiResultDTO <string> {
                Code = statusCode.ToString(), IsSuccess = false, Message = msg
            };
            var result = JsonHelper.ToJson(data); // JsonConvert.SerializeObject(data);

            context.Response.ContentType = "application/json;charset=utf-8";

            return(context.Response.WriteAsync(result));
        }
コード例 #3
0
        public ApiResultDTO Adicionar(LibraryDTO entity)
        {
            var Apiresult = new ApiResultDTO();
            var categoria = new Category {
                Nombre = entity.Nombres, Descripcion = entity.Descripcion
            };

            bookStoreContext.Categories.Add(categoria);
            bookStoreContext.SaveChanges();
            Apiresult.Mensaje = Messages.RegistrosExitoso;
            return(Apiresult);
        }
コード例 #4
0
        public ApiResultDTO Listado()
        {
            var Apiresult = new ApiResultDTO();
            var listcategoriaresultado = this.bookStoreContext.Categories.Select(t => new CategoriesDTO
            {
                Descripcion = t.Descripcion,
                Nombre      = t.Nombre,
                IdCategoria = t.IdCategoria
            }).ToList();

            Apiresult.Mensaje   = Utilidades.MensajesResult(listcategoriaresultado);
            Apiresult.Resultado = listcategoriaresultado;
            return(Apiresult);
        }
コード例 #5
0
        public ApiResultDTO Listado()
        {
            var Apiresult          = new ApiResultDTO();
            var listAutorresultado = this.bookStoreContext.Authors.Select(t => new Author
            {
                Apellidos       = t.Apellidos,
                Nombre          = t.Nombre,
                FechaNacimiento = t.FechaNacimiento,
                IdAutor         = t.IdAutor
            }).ToList();

            Apiresult.Mensaje   = Utilidades.MensajesResult(listAutorresultado);
            Apiresult.Resultado = listAutorresultado;
            return(Apiresult);
        }
コード例 #6
0
        public ApiResultDTO Adicionar(LibraryDTO entity)
        {
            var Apiresult = new ApiResultDTO();
            var Autores   = new Author
            {
                Nombre          = entity.Nombres,
                Apellidos       = entity.Apellidos,
                FechaNacimiento = (DateTime)entity.FechaNacimiento
            };

            bookStoreContext.Authors.Add(Autores);
            bookStoreContext.SaveChanges();
            Apiresult.Mensaje = Messages.RegistrosExitoso;
            return(Apiresult);
        }
コード例 #7
0
        public ApiResultDTO Adicionar(LibraryDTO entity)
        {
            var Apiresult = new ApiResultDTO();
            var Book      = new Book
            {
                NombreLibro           = entity.Nombres,
                ISBN                  = entity.ISBN,
                AutoresIdAutor        = (int)entity.IdAutor,
                CategoriasIdCategoria = (int)entity.IdCategoria
            };

            this.bookStoreContext.Books.Add(Book);
            this.bookStoreContext.SaveChanges();
            Apiresult.Mensaje = Messages.RegistrosExitoso;
            return(Apiresult);
        }
コード例 #8
0
        public ApiResultDTO Listado()
        {
            var Apiresult = new ApiResultDTO();
            var listBook  = this.bookStoreContext.Books.Select(t => new BooksDTO
            {
                NombreLibro = t.NombreLibro,
                ISBN        = t.ISBN,
                Autor       = t.Autores.Nombre + " " + t.Autores.Apellidos,
                Categoria   = t.Categorias.Nombre,
                IdLibro     = t.IdLibro,
                IdCategoria = t.CategoriasIdCategoria,
                IdAutor     = t.AutoresIdAutor
            }).ToList();

            Apiresult.Mensaje   = Utilidades.MensajesResult(listBook);
            Apiresult.Resultado = listBook;
            return(Apiresult);
        }
コード例 #9
0
        public ApiResultDTO Editar(int id, LibraryDTO entity)
        {
            var Apiresult       = new ApiResultDTO();
            var editarcategoria = bookStoreContext.Categories.FirstOrDefault(t => t.IdCategoria == id);

            if (editarcategoria != null)
            {
                editarcategoria.Descripcion = entity.Descripcion;
                editarcategoria.Nombre      = entity.Nombres;
                Apiresult.Mensaje           = Messages.EdicionExitosa;
                bookStoreContext.SaveChanges();
            }
            else
            {
                Apiresult.Mensaje = Messages.NoExisteId;
            }
            return(Apiresult);
        }
コード例 #10
0
        public ApiResultDTO Eliminar(int id)
        {
            var Apiresult   = new ApiResultDTO();
            var editarAutor = bookStoreContext.Books.AsNoTracking().FirstOrDefault(t => t.IdLibro == id);

            if (editarAutor != null)
            {
                bookStoreContext.Books.Remove(new Book {
                    IdLibro = id
                });
                bookStoreContext.SaveChanges();
                Apiresult.Mensaje = Messages.EliminacionExitosa;
            }
            else
            {
                Apiresult.Mensaje = Messages.NoExisteId;
            }
            return(Apiresult);
        }
コード例 #11
0
        public ApiResultDTO BusquedaBook(string libro, int autor, int categoria)
        {
            var Apiresult     = new ApiResultDTO();
            var consultalibro = bookStoreContext.Books.Where(t => (categoria == 0 ? true : t.Categorias.IdCategoria == categoria) &&
                                                             (autor == 0 ? true : t.Autores.IdAutor == autor) && (String.IsNullOrEmpty(libro) ? true : t.NombreLibro == libro)).
                                Select(t => new BooksDTO
            {
                NombreLibro = t.NombreLibro,
                ISBN        = t.ISBN,
                Autor       = t.Autores.Nombre + " " + t.Autores.Apellidos,
                Categoria   = t.Categorias.Nombre,
                IdLibro     = t.IdLibro,
                IdCategoria = t.CategoriasIdCategoria,
                IdAutor     = t.AutoresIdAutor
            }).ToList();

            Apiresult.Resultado = consultalibro;
            return(Apiresult);
        }
コード例 #12
0
        public ApiResultDTO Editar(int id, LibraryDTO entity)
        {
            var Apiresult   = new ApiResultDTO();
            var editarAutor = bookStoreContext.Authors.FirstOrDefault(t => t.IdAutor == id);

            if (editarAutor != null)
            {
                editarAutor.Nombre          = entity.Nombres;
                editarAutor.Apellidos       = entity.Apellidos;
                editarAutor.FechaNacimiento = (DateTime)entity.FechaNacimiento;
                bookStoreContext.SaveChanges();
                Apiresult.Mensaje = Messages.EdicionExitosa;
            }
            else
            {
                Apiresult.Mensaje = Messages.NoExisteId;
            }
            return(Apiresult);
        }
コード例 #13
0
        public ApiResultDTO Editar(int id, LibraryDTO entity)
        {
            var Apiresult = new ApiResultDTO();
            var Book      = bookStoreContext.Books.FirstOrDefault(t => t.IdLibro == id);

            if (Book != null)
            {
                Book.NombreLibro           = entity.Nombres;
                Book.ISBN                  = entity.ISBN;
                Book.CategoriasIdCategoria = (int)entity.IdCategoria;
                Book.AutoresIdAutor        = (int)entity.IdAutor;
                Apiresult.Mensaje          = Messages.EdicionExitosa;
                bookStoreContext.SaveChanges();
            }
            else
            {
                Apiresult.Mensaje = Messages.NoExisteId;
            }
            return(Apiresult);
        }