public async Task <ActionResult> Put(int id, [FromBody] EmpresaCreacionDTO empresaActualizacion) { var empresaDb = await context.Empresas.FirstOrDefaultAsync(x => x.Id == id); if (empresaDb == null) { return(NotFound()); } empresaDb = mapper.Map(empresaActualizacion, empresaDb); if (empresaActualizacion.Logo != null) { using (var memoryStream = new MemoryStream()){ await empresaActualizacion.Logo.CopyToAsync(memoryStream); var contenido = memoryStream.ToArray(); var extension = Path.GetExtension(empresaActualizacion.Logo.FileName); empresaDb.Logo = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor, empresaDb.Logo, empresaActualizacion.Logo.ContentType); } } await context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult> Post([FromForm] EmpresaCreacionDTO empresaCreacion) { if (User.Identity.IsAuthenticated) { var carteraCreacion = new CarteraCreacionDTO(); var cartera = mapper.Map <Cartera>(carteraCreacion); context.Add(cartera); await context.SaveChangesAsync(); var empresa = mapper.Map <Empresa>(empresaCreacion); string email = User.FindFirst(ClaimTypes.Email)?.Value; var user = await userManager.FindByEmailAsync(email); empresa.UsuarioId = user.Id.ToString(); if (empresaCreacion.Logo != null) { using (var memoryStream = new MemoryStream()){ await empresaCreacion.Logo.CopyToAsync(memoryStream); var contenido = memoryStream.ToArray(); var extension = Path.GetExtension(empresaCreacion.Logo.FileName); empresa.Logo = await almacenadorArchivos.GuardarArchivo(contenido, extension, contenedor, empresaCreacion.Logo.ContentType); } } empresa.CarteraId = cartera.Id; context.Add(empresa); await context.SaveChangesAsync(); var empresaDTO = mapper.Map <EmpresaDTO>(empresa); return(new CreatedAtRouteResult("ObtenerEmpresas", new { id = empresa.Id }, empresaDTO)); } else { return(BadRequest("El inicio de sesión expiró")); } }