jueves, 25 de febrero de 2016

ServiceCedula

/*IService

[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json, UriTemplate = "/validar/{ci}")]
    IngresarCedula Validar(string ci);

    [OperationContract]
    int[] ConvertirANumero(string ci);

    [OperationContract]
    int Procesar(int[] ci);

    [OperationContract]
    string TranformarDigitoATexto(int digito);
}

[DataContract]
public class IngresarCedula
{
    [DataMember]
    public string Cedula{get;set;}
}

*/
======================================================================
/*Service

//Agregar
using System.Text.RegularExpressions;//Para REGEX
using System.Windows.Input;

public class Service : IService
{
    public IngresarCedula Validar(string ci)
    {
        int ultimoDigito =Procesar(ConvertirANumero(ci));
        string numeroLetra = TranformarDigitoATexto(ultimoDigito);

        IngresarCedula mensaje = new IngresarCedula();
        mensaje.Cedula = String.Format("Su ultimo número es:  {0}", numeroLetra);
        return mensaje;
    }

    public int[] ConvertirANumero(string ci)
    {
        char[] cedulaDigitos = ci.ToCharArray();
        int i = 0;
        int[] cedulaFinal = new int[cedulaDigitos.Count()];//arreglo de 10 números

        foreach (char digito in cedulaDigitos)
        {
            cedulaFinal[i] = int.Parse(digito.ToString());
            i++;
        }
        return cedulaFinal;
    }

    public int Procesar(int[] ci)
    {
        int suma = 0;
        for (int i = 0; i < ci.Count(); i = i + 2)
        {
            ci[i] = ci[i] * 2;
            if (ci[i] > 9)
            {
                ci[i] = ci[i] - 9;
            }
        }
        foreach (int numero in ci)
        {
            suma = suma + numero;
        }
        int[] resultado = ConvertirANumero(suma.ToString());
        return 10 - resultado[1];
    }

    public string TranformarDigitoATexto(int digito)
    {
        string numero;

        switch (digito)
        {
            case 0:
                numero = "CERO";
                break;
            case 1:
                numero = "UNO";
                break;
            case 2:
                numero = "DOS";
                break;
            case 3:
                numero = "TRES";
                break;
            case 4:
                numero = "CUATRO";
                break;
            case 5:
                numero = "CINCO";
                break;
            case 6:
                numero = "SEIS";
                break;
            case 7:
                numero = "SIETE";
                break;
            case 8:
                numero = "OCHO";
                break;
            case 9:
                numero = "NUEVE";
                break;
            default:
                numero = "No existe";
                break;
        }
        return numero;
    }
}

*/

No hay comentarios:

Publicar un comentario