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)); }
/// <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); }
/// <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); }
/// <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)); }
/// <summary> /// Valida que el checksun del GUID sea correcto /// </summary> /// <returns></returns> public bool Validate() { return(GuidDate.Validate(this.Guid, this.CRCKey)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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)); }
/// <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)); }
/// <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; }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }