public static CieStudentData Decode(byte[] encodedAttribute) { try { // decodifica o atributo como string var content = Asn1Util.DecodePrintableString(encodedAttribute); var cieData = new CieStudentData(); // nas primeiras 40(quarenta) posições, o nome da instituição de ensino; cieData.InstituicaoEnsino = content.Substring(0, 40).Trim(); // nas 15 (quinze) posições subsequentes, o grau de escolaridade; cieData.GrauEscolaridade = content.Substring(40, 15).Trim(); // nas 30 (trinta) posições subsequentes, o nome do curso cieData.Curso = content.Substring(55, 30).Trim(); // nas 20 (vinte) posições subsequentes, o município da instituição cieData.InstituicaoEnsinoCidade = content.Substring(85, content.Length - 85 - 2).Trim(); // nas 2 (duas) posições subsequentes, a UF domunicípio. cieData.InstituicaoEnsinoUF = content.Substring(content.Length - 2, 2).Trim(); return(cieData); } catch (Exception ex) { throw new FormatException("Error while decoding CIE student data fields. Invalid format.", ex); } }
public static CieStudentIdentity Decode(byte[] encodedAttribute) { try { // decodifica o atributo como string var content = Asn1Util.DecodePrintableString(encodedAttribute); var cieId = new CieStudentIdentity(); // nas primeiras 8 (oito) posições, a data de nascimento do titular, no formato ddmmaaaa; cieId.DataNascimento = DateTime.ParseExact(content.Substring(0, 8), "ddMMyyyy", null); // nas 11 (onze) posições subsequentes, o Cadastro de Pessoa Física (CPF) do titular; cieId.Cpf = content.Substring(8, 11); // nas 15 (quinze) posições subsequentes, o número da matrícula do estudante; cieId.Matricula = content.Substring(19, 15).TrimStart('0'); // nas 15(quinze) posições subsequentes, o número do Registro Geral-RG do titular do atributo; // nas 10(dez) posições subsequentes, as siglas do órgão expedidor do RG e respectiva UF. cieId.RG = content.Substring(34, 15).TrimStart('0'); if (!string.IsNullOrEmpty(cieId.RG)) { cieId.RGEmissor = content.Substring(49, content.Length - 49 - 2).Trim(); cieId.RGEmissorUF = content.Substring(content.Length - 2, 2); } return(cieId); } catch (Exception ex) { throw new FormatException("Error while decoding CIE student identity fields. Invalid format.", ex); } }