예제 #1
0
        public async Task <UsuarioDTO> Agregar(UsuarioDTO usuarioDTO)
        {
            try
            {
                string passInicial = Generador.GenerarPassword(25);
                usuarioDTO.Token = Generador.GenerarToken();
                Usuario usuario = mapper.Map <UsuarioDTO, Usuario>(usuarioDTO);
                usuario.Password = Encriptacion.GetSHA256(passInicial);
                Proveedor proveedorBuscado = null;
                if (usuarioDTO.Proveedor != null)
                {
                    proveedorBuscado = await db.Proveedores.FindAsync(usuarioDTO.Proveedor.Id);
                }
                if (proveedorBuscado != null && usuarioDTO.TipoUsuario == SD.TipoUsuario.ProveedorIngPlt.ToString())
                {
                    //guardar en BD
                    db.Entry(proveedorBuscado).State = EntityState.Unchanged;
                    usuario.Proveedor = proveedorBuscado;
                    var addUsuario = await db.Usuarios.AddAsync(usuario);

                    await db.SaveChangesAsync();

                    UsuarioDTO uFinal = mapper.Map <Usuario, UsuarioDTO>(addUsuario.Entity);
                    uFinal.PassInicial = passInicial;
                    return(uFinal);
                }
                else if (usuarioDTO.TipoUsuario != SD.TipoUsuario.ProveedorIngPlt.ToString())
                {
                    var addUsuario = await db.Usuarios.AddAsync(usuario);

                    await db.SaveChangesAsync();

                    UsuarioDTO uFinal = mapper.Map <Usuario, UsuarioDTO>(addUsuario.Entity);
                    uFinal.PassInicial = passInicial;
                    return(uFinal);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }