コード例 #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            // atualizar para quando tiver mais de 1 bazar acontecendo ao mesmo tempo
            var bazar = _context.Bazares.OrderByDescending(b => b.Id).FirstOrDefault(b => b.Situacao != SituacaoBazar.Finalizado && b.Situacao != SituacaoBazar.Cancelado);

            if (bazar != null)
            {
                Colaborador.BazarId = bazar.Id;
            }

            _context.Colaboradores.Add(Colaborador);
            await _context.SaveChangesAsync();

            if (Arquivo.Length > 0)
            {
                var extensao    = Path.GetExtension(Arquivo.FileName);
                var nomeArquivo = Path.Combine(_ambiente.WebRootPath, "colaboradores", Colaborador.Id + extensao);
                using (var stream = new FileStream(nomeArquivo, FileMode.Create))
                {
                    Arquivo.CopyTo(stream);
                    stream.Close();
                }

                Colaborador.Foto = Colaborador.Id + extensao;
                _context.Attach(Colaborador).State = EntityState.Modified;
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
コード例 #2
0
        public async Task <IActionResult> PutCategoria(int id, Categoria categoria)
        {
            if (id != categoria.Id)
            {
                return(BadRequest());
            }

            _context.Entry(categoria).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CategoriaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #3
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            var bazar = _context.Bazares.OrderByDescending(b => b.Id).FirstOrDefault(b => b.Situacao != SituacaoBazar.Finalizado && b.Situacao != SituacaoBazar.Cancelado);

            if (bazar != null)
            {
                Banner.BazarId = bazar.Id;
            }

            _context.Banners.Add(Banner);
            await _context.SaveChangesAsync();

            if (Arquivo.Length > 0)
            {
                var extensao    = Path.GetExtension(Arquivo.FileName);
                var nomeArquivo = Path.Combine(_ambiente.WebRootPath, "banners", Banner.Id + extensao);
                using (var stream = new FileStream(nomeArquivo, FileMode.Create))
                {
                    Arquivo.CopyTo(stream);
                    stream.Close();
                }

                Banner.Imagem = Banner.Id + extensao;
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
コード例 #4
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Bazares.Add(Bazar);
            await _context.SaveChangesAsync();

            if (Arquivo.Length > 0)
            {
                var extensao    = Path.GetExtension(Arquivo.FileName);
                var nomeArquivo = Path.Combine(_ambiente.WebRootPath, "bazares", Bazar.Id + extensao);
                using (var stream = new FileStream(nomeArquivo, FileMode.Create))
                {
                    Arquivo.CopyTo(stream);
                    stream.Close();
                }

                Bazar.Logotipo = Bazar.Id + extensao;
                _context.Attach(Bazar).State = EntityState.Modified;
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
コード例 #5
0
ファイル: Edit.cshtml.cs プロジェクト: liluyoud/bazarsapiens
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Attach(Categoria).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CategoriaExists(Categoria.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Index"));
        }
コード例 #6
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            // atualizar para quando tiver mais de 1 bazar acontecendo ao mesmo tempo
            var bazar = _context.Bazares.OrderByDescending(b => b.Id).FirstOrDefault(b => b.Situacao != SituacaoBazar.Finalizado && b.Situacao != SituacaoBazar.Cancelado);

            if (bazar != null)
            {
                Produto.BazarId = bazar.Id;
            }

            Produto.ValorAtual = Produto.ValorInicial;
            _context.Produtos.Add(Produto);
            await _context.SaveChangesAsync();

            int i = 0;

            foreach (var arquivo in Arquivos)
            {
                if (arquivo.Length > 0)
                {
                    var extensao    = Path.GetExtension(arquivo.FileName);
                    var nomeArquivo = Path.Combine(_ambiente.WebRootPath, "produtos", Produto.Id + "-" + ++i + extensao);
                    using (var stream = new FileStream(nomeArquivo, FileMode.Create))
                    {
                        arquivo.CopyTo(stream);
                        stream.Close();
                    }
                    if (i == 1)
                    {
                        Produto.FotoPrincipal = Produto.Id + "-1" + extensao;
                    }
                }
            }
            Produto.TotalFotos = i;
            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
コード例 #7
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var bazar = _context.Bazares.OrderByDescending(b => b.Id).FirstOrDefault(b => b.Situacao != SituacaoBazar.Finalizado && b.Situacao != SituacaoBazar.Cancelado);

            if (bazar != null)
            {
                Categoria.BazarId = bazar.Id;
            }

            _context.Categorias.Add(Categoria);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
コード例 #8
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Attach(Noticia).State = EntityState.Modified;

            try
            {
                int i = Noticia.TotalFotos;
                foreach (var arquivo in Arquivos)
                {
                    if (arquivo.Length > 0)
                    {
                        var extensao    = Path.GetExtension(arquivo.FileName);
                        var nomeArquivo = Path.Combine(_ambiente.WebRootPath, "noticias", Noticia.Id + "-" + ++i + extensao);
                        using (var stream = new FileStream(nomeArquivo, FileMode.Create))
                        {
                            arquivo.CopyTo(stream);
                            stream.Close();
                        }
                    }
                }
                Noticia.TotalFotos = i;
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NoticiaExists(Noticia.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Edit", new { Id = Noticia.Id }));
        }
コード例 #9
0
        public async Task <IActionResult> OnGetAsync(long?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Noticia = await _context.Noticias.FirstOrDefaultAsync(m => m.Id == id);

            if (Noticia == null)
            {
                return(NotFound());
            }

            Corpo = Markdown.ToHtml(Noticia.Corpo);

            Tags = Noticia.Tags?.Split(",");

            Fotos = new List <string>();

            var diretorio = Path.Combine(_ambiente.WebRootPath, "noticias");
            var di        = new DirectoryInfo(diretorio);

            // coloca a foto principal como o primeiro da lista
            if (Noticia.FotoPrincipal != null)
            {
                Fotos.Add(Noticia.FotoPrincipal);
            }
            foreach (var f in di.GetFiles())
            {
                if (f.Name.StartsWith(id + "-") && f.Name != Noticia.FotoPrincipal)
                {
                    Fotos.Add(f.Name);
                }
            }

            Noticia.Visualizacoes++;
            await _context.SaveChangesAsync();

            return(Page());
        }
コード例 #10
0
        public async Task <DadosLance> Get([FromQuery] long produtoId, decimal valorLance, string usuario)
        {
            var dadosLance = new DadosLance();

            // verifica se existe o usuário e o produto
            var user = await _context.Usuarios.FirstOrDefaultAsync(u => u.UserName == usuario);

            var produto = await _context.Produtos.FirstOrDefaultAsync(p => p.Id == produtoId);

            if (user != null && produto != null && valorLance > produto.ValorAtual)
            {
                // grava o lance no bd
                Lance lance = new Lance();
                lance.ProdutoId = produtoId;
                lance.Usuario   = usuario;
                lance.Valor     = valorLance;
                lance.DataHora  = DateTime.Now;
                _context.Lances.Add(lance);

                // atualiza o produto
                produto.QuantidadeLances++;
                produto.ValorAtual             = valorLance;
                produto.UsuarioUltimoLance     = usuario;
                _context.Attach(produto).State = EntityState.Modified;

                // salva no banco de dados
                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (Exception ex) { }

                dadosLance.Id         = lance.Id;
                dadosLance.ProdutoId  = produtoId;
                dadosLance.ValorLance = valorLance;
                dadosLance.ValorAtual = valorLance;
                dadosLance.Usuario    = user.Nome;
            }
            return(dadosLance);
        }
コード例 #11
0
        public async Task <IActionResult> OnGetAsync(long?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Produto = await _context.Produtos.Include(p => p.Categoria).FirstOrDefaultAsync(m => m.Id == id);

            Descricao = Markdown.ToHtml(Produto.Descricao);

            Fotos = new List <string>();

            Lance = Produto.ValorAtual + Produto.ValorLance;

            var usuario = await _context.Usuarios.FirstOrDefaultAsync(u => u.UserName == Produto.UsuarioUltimoLance);

            PessoaUltimoLance = usuario?.Nome;

            var diretorio = Path.Combine(_ambiente.WebRootPath, "produtos");
            var di        = new DirectoryInfo(diretorio);

            // coloca a foto principal como o primeiro da lista
            if (Produto.FotoPrincipal != null)
            {
                Fotos.Add(Produto.FotoPrincipal);
            }
            foreach (var f in di.GetFiles())
            {
                if (f.Name.StartsWith(id + "-") && f.Name != Produto.FotoPrincipal)
                {
                    Fotos.Add(f.Name);
                }
            }

            Produto.Visualizacoes++;
            await _context.SaveChangesAsync();

            return(Page());
        }
コード例 #12
0
ファイル: Edit.cshtml.cs プロジェクト: liluyoud/bazarsapiens
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Attach(Parceiro).State = EntityState.Modified;

            try
            {
                if (Arquivo?.Length > 0)
                {
                    var extensao    = Path.GetExtension(Arquivo.FileName);
                    var nomeArquivo = Path.Combine(_ambiente.WebRootPath, "bazares", Parceiro.Id + extensao);
                    using (var stream = new FileStream(nomeArquivo, FileMode.Create))
                    {
                        Arquivo.CopyTo(stream);
                        stream.Close();
                    }

                    Parceiro.Logotipo = Parceiro.Id + extensao;
                }

                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ParceiroExists(Parceiro.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Edit", new { Id = Parceiro.Id }));
        }