public async Task <IActionResult> DeleteById([FromRoute] Int32 id)
        {
            try
            {
                AccessResult <EstadoCompra> result = await Estados.Delete(id);

                if (!result.IsValid)
                {
                    return(BadRequest(result.Fault));
                }

                EstadoCompra item = result.Result;
                return(Ok(new
                {
                    id = item.Id,
                    nombre = item.Nombre,
                    fecha = DateTime.UtcNow.ToString()
                }));
            }
            catch (ArgumentNullException)
            {
                return(BadRequest(new AccessFault("Solicitud incompleta o inválida")));
            }
            catch (Exception e)
            {
                return(BadRequest(new AccessFault($"Error no controlado: {e.GetType()}")));
            }
        }
        public async Task <IActionResult> Post([FromBody] Transfer.PostEnum data)
        {
            EstadoCompra item;

            try
            {
                item = new EstadoCompra {
                    Nombre = data.Nombre
                };

                AccessResult <EstadoCompra> result = await Estados.Post(item);

                if (!result.IsValid)
                {
                    return(BadRequest(result.Fault));
                }

                item = result.Result;
                return(CreatedAtAction(nameof(GetById), new { id = item.Id }, new
                {
                    id = item.Id,
                    nombre = item.Nombre,
                    creacion = DateTime.UtcNow.ToString()
                }));
            }
            catch (ArgumentNullException)
            {
                return(BadRequest(new AccessFault("Datos incompletos o inválidos")));
            }
            catch (Exception e)
            {
                return(BadRequest(new AccessFault($"Error no controlado: {e.GetType()}")));
            }
        }
        public async Task <CompraUsuario> ProdutosCompradosPorEstado(string userId, EstadoCompra estado)
        {
            using (var banco = new ApplicationContext(_optionsbuilder))
            {
                var compraUsuario = new CompraUsuario();
                compraUsuario.ListaProdutos = new List <Produto>();

                var produtosCarrinhoUsuario = await(from p in banco.Produtos
                                                    join c in banco.ComprasUsuarios on p.Id equals c.IdProduto
                                                    where c.UserId.Equals(userId) && c.Situacao == estado
                                                    select new Produto
                {
                    Id                = p.Id,
                    Nome              = p.Nome,
                    Descricao         = p.Descricao,
                    Observacao        = p.Observacao,
                    Valor             = p.Valor,
                    QtdCompra         = p.QtdCompra,
                    IdProdutoCarrinho = p.IdProdutoCarrinho,
                    Url               = p.Url
                }).AsNoTracking().ToListAsync();

                compraUsuario.ListaProdutos   = produtosCarrinhoUsuario;
                compraUsuario.ApplicationUser = await banco.ApplicationUser.FirstOrDefaultAsync(u => u.Id.Equals(userId));

                compraUsuario.QuantidadeProdutos = produtosCarrinhoUsuario.Count();
                compraUsuario.EnderecoCompleto   = string.Concat(compraUsuario.ApplicationUser.Endereco, " - ", compraUsuario.ApplicationUser.ComplementoEndereco, " - Cep: ", compraUsuario.ApplicationUser.CEP);
                compraUsuario.ValorTotal         = produtosCarrinhoUsuario.Sum(v => v.Valor);
                compraUsuario.Situacao           = estado;
                return(compraUsuario);
            }
        }
        public async Task <CompraUsuario> ProdutosCompradosPorEstado(string userId, EstadoCompra estado, int?compraId = null)
        {
            using (var banco = new BaseContexto(_OptionsBuilder))
            {
                var compraUsuario = new CompraUsuario();
                compraUsuario.ListaProdutos = new List <Produto>();

                var produtoCarrinhoUsuario = await(from p in banco.Produto
                                                   join c in banco.CompraUsuario on p.Id equals c.ProdutoId
                                                   join co in banco.Compra on c.CompraId equals co.Id
                                                   where c.UserId.Equals(userId) && c.Estado == estado && co.UserId.Equals(userId) && c.Estado == estado && (compraId == null || co.Id == compraId)
                                                   select new Produto
                {
                    Id                = p.Id,
                    Nome              = p.Nome,
                    Descricao         = p.Descricao,
                    Observacao        = p.Observacao,
                    Valor             = p.Valor,
                    QuantidadeCompra  = c.QuantidadeCompra,
                    ProdutoCarrinhoId = c.Id,
                    Url               = p.Url,
                    DataCompra        = co.DataCompra
                }).AsNoTracking().ToListAsync();

                compraUsuario.ListaProdutos   = produtoCarrinhoUsuario;
                compraUsuario.ApplicationUser = await banco.ApplicationUsers.FirstOrDefaultAsync(u => u.Id.Equals(userId));

                compraUsuario.QuantidadeProduto = produtoCarrinhoUsuario.Count();
                compraUsuario.EnderecoCompleto  = string.Concat(compraUsuario.ApplicationUser.Endereco, " - ", compraUsuario.ApplicationUser.ComplementoEndereco, " - CEP: ", compraUsuario.ApplicationUser.CEP);
                compraUsuario.ValorTotal        = produtoCarrinhoUsuario.Sum(v => v.Valor);
                compraUsuario.Estado            = estado;
                return(compraUsuario);
            }
        }
 public async Task <Compra> CompraPorEstado(string userId, EstadoCompra estado)
 {
     using (var banco = new BaseContexto(_optionBuilder))
     {
         return(await banco.Compra.FirstOrDefaultAsync(c => c.Estado == estado && c.UserId == userId));
     }
 }
Exemple #6
0
    private static EstadoCompra RowToDto(EstadoCompraDS.tbl_estadoCompraRow row)
    {
        EstadoCompra objEstadoCompra = new EstadoCompra();

        objEstadoCompra.IdEstadoCompra = row.idEstadoCompra;
        objEstadoCompra.Nombre         = row.nombre;
        return(objEstadoCompra);
    }
        public async Task <AccessResult <EstadoCompra> > Delete(Int64 id)
        {
            try
            {
                EstadoCompra user = await Get(id);

                if (user == null)
                {
                    return(new AccessFault("Estado de compra no existente"));
                }

                Estados.Remove(user);
                await Context.SaveChangesAsync();

                return(user);
            }
            catch { return(new AccessFault("No se pudo eliminar la información de estado de compra")); }
        }
        public async Task <AccessResult <EstadoCompra> > Post(EstadoCompra item)
        {
            try
            {
                IEnumerable <EstadoCompra> Estados = (await GetAll()).Result;
                var lastIndex = Estados.Count() > 0 ? Estados.Max(x => x.Id) : 0;
                item.Id = lastIndex + 1;
                if ((await Get(item.Id)).Result != null)
                {
                    return(new AccessFault("Estado de compra ya existente"));
                }

                await Context.EstadoCompra.AddAsync(item);

                await Context.SaveChangesAsync();

                return(item);
            }
            catch { return(new AccessFault("No se pudo publicar la información de estado de compra")); }
        }
Exemple #9
0
 internal void finalizarCompra()
 {
     estado = EstadoCompra.COMPLETADO;
 }
Exemple #10
0
 public void seHaCompletado()
 {
     fechaCompra = DateTime.Now;
     this.estado = EstadoCompra.EN_PROCESO;
 }
Exemple #11
0
 public Compra()
 {
     this.fechaCompra = DateTime.Now;
     this.estado      = EstadoCompra.EN_PROCESO;
     lineasDeCompra   = new List <LineaCompra>();
 }