public async Task <IActionResult> Create([Bind("Nombre, Apellido, Rut, Correo, Contrasena, FechaNacimiento, Telefono, Foto")] TrabajadorEmployCreateViewModel trabajador) { try { if (ModelState.IsValid) { if ((await trabajadorRepository.GetByEmail(trabajador.Correo)) != null) { ModelState.AddModelError(nameof(trabajador.Correo), "El correo ingresado ya existe."); return(View(trabajador)); } else if ((await trabajadorRepository.GetByRut(trabajador.Rut)) != null) { ModelState.AddModelError(nameof(trabajador.Rut), "El rut ingresado ya existe."); return(View(trabajador)); } var p = await trabajadorRepository.Employ(trabajador); if (trabajador.Foto != null) { using (MemoryStream m = new()) { trabajador.Foto.CopyTo(m); await servicesAWSS3.SubirFotoTrabajador(m, p); } } return(RedirectToAction(nameof(Index))); } return(View(trabajador)); } catch (Exception e) { return(StatusCode((int)System.Net.HttpStatusCode.Unauthorized, e.Message)); //return Unauthorized(e.Message); } }
public async Task <Trabajador> Employ(TrabajadorEmployCreateViewModel model) { var jefe = await GetCurrentTrabajador(); string contrasenaEncriptada = BCrypt.Net.BCrypt.HashPassword(model.Contrasena.Trim()); var trabajador = new Trabajador { Rut = model.Rut.Replace(".", "").Replace("-", "").Trim(), IdNegocio = jefe !.IdNegocio, IdRol = "2", Correo = model.Correo.Trim(), Contrasena = contrasenaEncriptada, Nombre = model.Nombre.Trim(), Apellido = (model.Apellido != null) ? model.Apellido.Trim() : null, FechaNacimiento = DateOnly.FromDateTime(model.FechaNacimiento), Telefono = (model.Telefono != null) ? model.Telefono.Trim() : null, Foto = (model.Foto != null) ? "foto.png" : null }; await Employ(trabajador); return(trabajador); }