Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
        }