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)); }
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); }