public void Should_generate_a_non_empty_guid() { var generator = new OidGenerator(); var oid = generator.Generate(null, null); Assert.IsNotNull(oid); }
public void TestInsertOfArray() { var ogen = new OidGenerator(); var inserts = DB.GetCollection <Album>("inserts"); var album = new Album { Title = "Deliveries After Dark", Artist = "Popa Chubby" }; album.Songs = new List <Song> { new Song { Title = "Let The Music Set You Free", Length = "5:15" }, new Song { Title = "Sally Likes to Run", Length = "4:06" }, new Song { Title = "Deliveries After Dark", Length = "4:17" }, new Song { Title = "Theme From The Godfather", Length = "3:06" }, new Song { Title = "Grown Man Crying Blues", Length = "8:09" } }; inserts.Insert(album); var result = inserts.FindOne(new Document().Add("Songs.Title", "Deliveries After Dark")); Assert.IsNotNull(result); Assert.AreEqual(album.Songs.Count, result.Songs.Count); }
public void TestInsertOfArray() { var ogen = new OidGenerator(); var inserts = DB["inserts"]; var album = new Document(); album["_id"] = ogen.Generate(); album["artist"] = "Popa Chubby"; album["title"] = "Deliveries After Dark"; album["songs"] = new[] { new Document().Add("title", "Let The Music Set You Free").Add("length", "5:15").Add("_id", ogen.Generate()), new Document().Add("title", "Sally Likes to Run").Add("length", "4:06").Add("_id", ogen.Generate()), new Document().Add("title", "Deliveries After Dark").Add("length", "4:17").Add("_id", ogen.Generate()), new Document().Add("title", "Theme From The Godfather").Add("length", "3:06").Add("_id", ogen.Generate()), new Document().Add("title", "Grown Man Crying Blues").Add("length", "8:09").Add("_id", ogen.Generate()), }; inserts.Insert(album); var result = inserts.FindOne(new Document().Add("songs.title", "Deliveries After Dark")); Assert.IsNotNull(result); Assert.AreEqual(album.ToString(), result.ToString()); }
public void TestCastsToDocument() { var ogen = new OidGenerator(); var dref = new DBRef("tests.dbrefs", ogen.Generate()); var doc = (Document)dref; Assert.AreEqual(dref.CollectionName, doc[DBRef.RefName]); }
public static Chunk CreateNew(Oid fileId, int number, byte[] data) { OidGenerator generator = new OidGenerator(); Chunk chunk = new Chunk(); chunk.Oid = generator.Generate(); chunk.Data = data; chunk.FileID = fileId; chunk.Number = number; return chunk; }
private static OidGenerator FindOrCreateOidGenerator(Type seqType, Session generatorSession) { OidGenerator generator = generatorSession.FindObject <OidGenerator>( new GroupOperator(new BinaryOperator("Type", seqType.FullName)) ); if (generator == null) { generator = new OidGenerator(generatorSession); generator.Type = seqType.FullName; generator.Prefix = ""; } return(generator); }
public void TestGenerate() { OidGenerator ogen = new OidGenerator(); Oid oid = ogen.Generate(); String hex = BitConverter.ToString(oid.ToByteArray()).Replace("-", ""); Assert.IsTrue(hex.EndsWith("000001"), "Increment didn't start with 1."); oid = ogen.Generate(); hex = BitConverter.ToString(oid.ToByteArray()).Replace("-", ""); Assert.IsTrue(hex.EndsWith("000002"), "Next increment should have been 2"); DateTime created = oid.Created; DateTime now = DateTime.UtcNow; Console.Out.WriteLine(oid.Created); Assert.AreEqual(now.Year, created.Year); Assert.AreEqual(now.Month, created.Month); }
public static string Generate(IDataLayer idGeneratorDataLayer, Type seqType, bool save, string code) { //OidGenerator generator = null; string strNeedTrim = ""; string prefixcode = ""; Session generatorSession = new Session(idGeneratorDataLayer); var csc = generatorSession.FindObject <CodeSequenceConfig>( new BinaryOperator("Type", seqType) ); if (csc != null) { strNeedTrim = csc.Prefix != null ? csc.Prefix : ""; strNeedTrim += csc.DelimiterFirst != null ? csc.DelimiterFirst : ""; switch (csc.PrefixPartType) { case PrefixPartType.String: break; case PrefixPartType.IssueDate: var d = DateTime.Now; string dmy = d.Day + "/" + d.Month + "/" + d.Year; strNeedTrim += dmy; strNeedTrim = NNE(csc.DelimiterSecond) == true ? strNeedTrim + csc.DelimiterSecond : strNeedTrim; break; default: break; } } else { csc = new CodeSequenceConfig(generatorSession); csc.Type = seqType; csc.Save(); } code = code != null?code.Trim() : code; //case 1: user nhap ma -> ko tao ma tu sinh if (NNE(code)) { string isNumber; int codeUserNhapKetThucVoi; if (strNeedTrim != "") { var match = Regex.Match(code, strNeedTrim); //Regex r = new Regex(strNeedTrim, RegexOptions.IgnoreCase); //var match = r.Match(code); if (match.Success) { isNumber = code.Replace(strNeedTrim, ""); if (isNumberic(isNumber, out codeUserNhapKetThucVoi)) //neu la kieu so // user nhap Duc|9/8/1985|9 { CriteriaOperator cr = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("Code"), codeUserNhapKetThucVoi.ToString()); var a = generatorSession.FindObject(seqType, cr); if (a != null) { //generator.Save(); //throw new UserFriendlyException("Code Exist!"); while (a != null) { generator.Oid++; var mr = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("Code"), generator.Oid.ToString()); a = generatorSession.FindObject(seqType, mr); } } CriteriaOperator cre = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("Code"), generator.Oid.ToString()); var aa = generatorSession.FindObject(seqType, cre); //new BinaryOperator("Code", generator.Oid,BinaryOperatorType.Equal) while (aa != null) { generator.Oid++; cre = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("Code"), generator.Oid.ToString()); aa = generatorSession.FindObject(seqType, cre); } generator.Save(); code = strNeedTrim + string.Format("{0:D" + csc.ZeroDisplay + "}", generator.Oid); return(code); } } } CriteriaOperator criteriaEndWith = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("Code"), code); var tt = generatorSession.FindObject(seqType, criteriaEndWith); if (tt != null) { throw new UserFriendlyException("Code Exist!"); } return(code); } else { for (int attempt = 1; ; ++attempt) { try { string prefixcodeformat = strNeedTrim + string.Format("{0:D" + csc.ZeroDisplay + "}", 0); generator = generatorSession.FindObject <OidGenerator>( CriteriaOperator.And( new BinaryOperator("Type", seqType.FullName) ) ); if (generator == null) { generator = new OidGenerator(generatorSession); generator.Type = seqType.FullName; generator.Prefix = prefixcodeformat; generator.Oid = 1; } else { generator.Oid++; } if (save) { CriteriaOperator criteriaEndWith = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("Code"), generator.Oid.ToString()); var tt = generatorSession.FindObject(seqType, criteriaEndWith); //new BinaryOperator("Code", generator.Oid,BinaryOperatorType.Equal) while (tt != null) { generator.Oid++; criteriaEndWith = new FunctionOperator(FunctionOperatorType.EndsWith, new OperandProperty("Code"), generator.Oid.ToString()); tt = generatorSession.FindObject(seqType, criteriaEndWith); } generator.Save(); } prefixcode = strNeedTrim + string.Format("{0:D" + csc.ZeroDisplay + "}", generator.Oid); return(strNeedTrim + string.Format("{0:D" + csc.ZeroDisplay + "}", generator.Oid)); } catch (LockingException) { if (attempt >= MaxIdGenerationAttemptsCounter) { throw; } } } } }