예제 #1
0
        public async Task <IActionResult> Download(string vid)
        {
            Guid id = Guid.Parse(vid);

            Model.Entrada retorno = await db.Entrada.FindAsync(id);

            if (retorno == null)
            {
                throw new Exception("arquivo não localizado");
            }
            return(File(retorno.Conteudo, retorno.ConteudoTipo, retorno.ConteudoNome));
        }
예제 #2
0
        public async Task <Model.Entrada> Cria([FromBody] JsonElement prm)
        {
            Model.Usuario doador = null;
            Model.Usuario comerciante;
            Model.Usuario logado = Util.Claim2Usuario(HttpContext.User.Claims);
            if (prm.ValueKind == JsonValueKind.Null)
            {
                throw new Exception("falha no parâmetro");
            }
            if (prm.TryGetProperty("Doador", out JsonElement jdoador))
            {
                if (jdoador.ValueKind == JsonValueKind.String)
                {
                    doador = new Model.Usuario
                    {
                        Nome   = jdoador.GetString(),
                        Musico = true,
                    };
                    db.Entry(doador).State = EntityState.Added;
                    await db.SaveChangesAsync();
                }
                else if (jdoador.ValueKind == JsonValueKind.Object)
                {
                    doador = JsonSerializer.Deserialize <Model.Usuario>(jdoador.GetRawText());
                }
                else
                {
                    throw new Exception("não foi possível processar o doador");
                }
            }

            if (prm.TryGetProperty("Comerciante", out JsonElement jcomerciante) && jcomerciante.ValueKind == JsonValueKind.Object)
            {
                comerciante = JsonSerializer.Deserialize <Model.Usuario>(jcomerciante.GetRawText());
            }
            else
            {
                throw new Exception("não foi possível processar o doador");
            }
            Model.Entrada novo = new Model.Entrada
            {
                IdAutor       = logado.Id,
                IdComerciante = comerciante.Id,
                IdDoador      = doador.Id,
                Id            = Guid.NewGuid(),
                DataRegistro  = DateTime.Now
            };
            db.Add(novo);
            await db.SaveChangesAsync();

            return(novo);
        }