コード例 #1
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        private static bool GuidFormatValidate(string guid, string format = "U")
        {
            if ("U".Equals(format))
            {
                format = GuidDate.DetectedFormat(guid);
            }

            string regexp = GuidDate.getGuidFormat(format).Replace("0", "[a-f0-9]")
                            .Replace("{", "\\{")
                            .Replace("}", "\\}")
                            .Replace("(", "\\(")
                            .Replace(")", "\\)");

            return(Regex.Match(guid, "" + regexp + "", RegexOptions.IgnoreCase).Success&& !"U".Equals(format));
        }
コード例 #2
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Valida que el checksun del GUID sea correcto
        /// </summary>
        /// <param name="guid">Guid</param>
        /// <param name="crcKey">Key para calcular el checksun</param>
        /// <returns>Indica si el checksun es correcto</returns>
        public static bool Validate(string guid, string format = "U", string crcKey = GuidDate.DEFAULT_CRCKEY)
        {
            if ("U".Equals(format))
            {
                format = GuidDate.DetectedFormat(guid);
            }

            if (!GuidDate.GuidFormatValidate(guid, format))
            {
                return(false);
            }


            string guidAux    = new Regex(@"[^0-9a-fA-F]").Replace(guid, "");
            string guidOrigin = guidAux.Substring(2, guidAux.Length - 2);
            string guidCRC    = guidAux.Substring(0, 2);

            string crc = CreateCRC(guidOrigin, crcKey);

            return(crc == guidCRC);
        }
コード例 #3
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Obtiene la fecha a partir de un Guid basado en la misma
        /// </summary>
        /// <param name="guid">Cadena que representa el guid</param>
        /// <param name="auxInformation">Devolverá la información auxiliar contenida</param>
        /// <param name="crcKey">Key usada para calcular el CRC</param>
        /// <returns>Fecha obtenida</returns>
        public static DateTime GuidToDate(string guid, out long dataOut, string crcKey)
        {
            DateTime date  = DateTime.MinValue;
            string   error = String.Empty;
            long     data  = 0;

            if (!GuidDate.Validate(guid, crcKey))
            {
                error = "El guid no tiene un formato correcto o no coincide el checksum";
            }

            string guidAux = new Regex(@"[^0-9a-fA-F]").Replace(guid, "");

            try
            {
                int h, m, s, d, M, y, ms;
                s       = Convert.ToInt32(guidAux.Substring(2, 2));
                m       = Convert.ToInt32(guidAux.Substring(4, 2));
                h       = Convert.ToInt32(guidAux.Substring(6, 2));
                M       = Convert.ToInt32(guidAux.Substring(8, 2));
                d       = Convert.ToInt32(guidAux.Substring(10, 2));
                y       = Convert.ToInt32(guidAux.Substring(13, 3), 16);
                ms      = Convert.ToInt32(guidAux.Substring(16, 4), 16);
                dataOut = data = Convert.ToInt64(guidAux.Substring(20, 12), 16);
                date    = new DateTime(y, M, d, h, m, s, ms);
            }
            catch (Exception ex)
            {
                throw new InvalidDateGuidException(ex.Message, ex, date, data);
            }

            if (!String.IsNullOrEmpty(error))
            {
                throw new InvalidDateGuidException(error, date, data);
            }

            return(date);
        }
コード例 #4
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Crea un guid basado en la fecha especificada
        /// </summary>
        /// <param name="date">Fecha sobre la que se generará el guid</param>
        /// <param name="crcKey">Key usada para calcular el CRC</param>
        /// <returns>Cadena que representa el guid creado</returns>
        public static GuidDate NewGuid(DateTime date, string crcKey)
        {
            long i = _rnd.Next();

            return(GuidDate.NewGuid(date, i, crcKey));
        }
コード例 #5
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Valida que el checksun del GUID sea correcto
 /// </summary>
 /// <returns></returns>
 public bool Validate()
 {
     return(GuidDate.Validate(this.Guid, this.CRCKey));
 }
コード例 #6
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Obtiene la fecha a partir de un Guid basado en la misma
        /// </summary>
        /// <param name="guid">guid</param>
        /// <param name="crcKey">Key usada para calcular el CRC</param>
        /// <returns>Fecha obtenida</returns>
        public static DateTime GuidToDate(Guid guid, string crcKey)
        {
            long aux;

            return(GuidDate.GuidToDate(guid.ToString(), out aux, crcKey));
        }
コード例 #7
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Obtiene la fecha a partir de un Guid basado en la misma
 /// </summary>
 /// <param name="guid">guid</param>
 /// <param name="dataOut">Devolverá la información auxiliar contenida</param>
 /// <param name="crcKey">Key usada para calcular el CRC</param>
 /// <returns>Fecha obtenida</returns>
 public static DateTime GuidToDate(Guid guid, out long dataOut, string crcKey)
 {
     return(GuidDate.GuidToDate(guid.ToString(), out dataOut, crcKey));
 }
コード例 #8
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Obtiene la fecha a partir de un Guid basado en la misma
        /// </summary>
        /// <param name="strGuid">Cadena que representa el guid</param>
        /// <returns>Fecha obtenida</returns>
        public static DateTime GuidToDate(string strGuid)
        {
            long aux;

            return(GuidDate.GuidToDate(strGuid, out aux));
        }
コード例 #9
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="date">Fecha sobre la que se generará el guid</param>
 /// <param name="data">Información auxiliar</param>
 /// <param name="crcKey">Key usada para calcular el CRC</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid(DateTime date, int data, string crcKey)
 {
     return(GuidDate.NewGuid(date, (long)data, crcKey));
 }
コード例 #10
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="date">Fecha sobre la que se generará el guid</param>
 /// <param name="data">Información auxiliar</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public GuidDate(DateTime date, int data)
 {
     this.Guid = GuidDate.NewGuid(date, (long)data).Guid;
 }
コード例 #11
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Crea un guid basado en la fecha especificada
        /// </summary>
        /// <param name="date">Fecha sobre la que se generará el guid</param>
        /// <returns>Cadena que representa el guid creado</returns>
        public GuidDate(DateTime date)
        {
            long i = _rnd.Next();

            this.Guid = GuidDate.NewGuid(date, i).Guid;
        }
コード例 #12
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="data">Información auxiliar - si el valor es mayor de 281474976710655 (0xFFFFFFFFFFFF) se truncará</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public GuidDate(long data)
 {
     this.Guid = GuidDate.NewGuid(DateTime.Now, data).Guid;
 }
コード例 #13
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="data">Información auxiliar</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public GuidDate(short data)
 {
     this.Guid = GuidDate.NewGuid(DateTime.Now, data).Guid;
 }
コード例 #14
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="data">Información auxiliar</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public GuidDate(decimal data)
 {
     this.Guid = GuidDate.NewGuid(DateTime.Now, data).Guid;
 }
コード例 #15
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <returns>Cadena que representa el guid creado</returns>
 public GuidDate()
 {
     this.Guid   = GuidDate.NewGuid(DateTime.Now).Guid;
     this.CRCKey = CRCKey;
 }
コード例 #16
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary> Compara esta instancia con un objeto System.Guid especificado y devuelve una indicación de los valores relativos. </summary>
 /// <param name="value">Objeto que se va a comparar con esta instancia.</param>
 /// <returns>
 ///     Número con signo que indica los valores relativos de esta instancia y value.
 ///     Valor devuelto Descripción Un entero negativo Esta instancia es menor que
 ///     value. Zero Esta instancia es igual que value. Un entero positivo. Esta instancia
 ///     es mayor que value.
 /// </returns>
 public int CompareTo(GuidDate value)
 {
     return(this.Guid.CompareTo(value.Guid));
 }
コード例 #17
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="date">Fecha sobre la que se generará el guid</param>
 /// <param name="data">Información auxiliar</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid(DateTime date, int data)
 {
     return(GuidDate.NewGuid(date, (long)data));
 }
コード例 #18
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="date">Fecha sobre la que se generará el guid</param>
 /// <param name="data">Información auxiliar - si el valor es mayor de 281474976710655 (0xFFFFFFFFFFFF) se truncará</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public GuidDate(DateTime date, long data)
 {
     this.Guid = GuidDate.NewGuid(date, data).Guid;
 }
コード例 #19
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="date">Fecha sobre la que se generará el guid</param>
 /// <param name="data">Información auxiliar - si el valor es mayor de 281474976710655 (0xFFFFFFFFFFFF) se truncará</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid(DateTime date, long data)
 {
     return(GuidDate.NewGuid(date, data, GuidDate.DEFAULT_CRCKEY));
 }
コード例 #20
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid()
 {
     return(GuidDate.NewGuid(GuidDate.DEFAULT_CRCKEY));
 }
コード例 #21
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Obtiene la fecha a partir de un Guid basado en la misma
 /// </summary>
 /// <param name="strGuid">Cadena que representa el guid</param>
 /// <param name="auxInformation">Devolverá la información auxiliar contenida</param>
 /// <returns>Fecha obtenida</returns>
 public static DateTime GuidToDate(string strGuid, out long auxInformation)
 {
     return(GuidDate.GuidToDate(strGuid, out auxInformation, GuidDate.DEFAULT_CRCKEY));
 }
コード例 #22
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid(string crcKey)
 {
     return(GuidDate.NewGuid(DateTime.Now, GuidDate._rnd.Next(), crcKey));
 }
コード例 #23
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Obtiene la fecha a partir de un Guid basado en la misma
        /// </summary>
        /// <param name="strGuid">Cadena que representa el guid</param>
        /// <param name="crcKey">Key usada para calcular el CRC</param>
        /// <returns>Fecha obtenida</returns>
        public static DateTime GuidToDate(string strGuid, string crcKey)
        {
            long aux;

            return(GuidDate.GuidToDate(strGuid, out aux, crcKey));
        }
コード例 #24
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="data">Información auxiliar</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid(decimal data)
 {
     return(GuidDate.NewGuid(DateTime.Now, data));
 }
コード例 #25
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
        /// <summary>
        /// Obtiene la fecha a partir de un Guid basado en la misma
        /// </summary>
        /// <param name="guid">guid</param>
        /// <returns>Fecha obtenida</returns>
        public static DateTime GuidToDate(Guid guid)
        {
            long aux;

            return(GuidDate.GuidToDate(guid.ToString(), out aux));
        }
コード例 #26
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="data">Información auxiliar - si el valor es mayor de 281474976710655 (0xFFFFFFFFFFFF) se truncará</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid(long data)
 {
     return(GuidDate.NewGuid(DateTime.Now, data));
 }
コード例 #27
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Crea un guid basado en la fecha especificada
 /// </summary>
 /// <param name="data">Información auxiliar - si el valor es mayor de 281474976710655 (0xFFFFFFFFFFFF) se truncará</param>
 /// <returns>Cadena que representa el guid creado</returns>
 public static GuidDate NewGuid(long data, string crcKey)
 {
     return(GuidDate.NewGuid(DateTime.Now, data, crcKey));
 }
コード例 #28
0
ファイル: Guid.cs プロジェクト: JosephGF/NetLibrary
 /// <summary>
 /// Devuelve un valor que indica si esta instancia y un objeto System.Guid especificado representan el mismo valor.
 /// </summary>
 /// <param name="g"> Objeto que se va a comparar con esta instancia.</param>
 /// <returns>true si g es igual a esta instancia; en caso contrario, false.</returns>
 public bool Equals(GuidDate g)
 {
     return(this.Guid.Equals(g.Guid));
 }