public async Task Run() { WriteLine("1. Use UDF"); WriteLine("2. Create"); UDFOption option = (UDFOption)ProgramHelper.EnterInt(""); switch (option) { case UDFOption.Use: { // The function work with zips collection and msnet18sql database. // If you need a different collection or database, please write a piece of code to input data into the program. string id = ProgramHelper.EnterText("Id "); SqlQuerySpec query = new SqlQuerySpec() { QueryText = "SELECT c.id, c.loc, udf.udfCityState(c) as CityState FROM c where c.id = @id", Parameters = new SqlParameterCollection() { new SqlParameter("@id", id) } }; Document document = _documentRepository.ReadDocumentByQuery <Document>(UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId), query).ToList().FirstOrDefault(); WriteLine(document.ToString()); break; } case UDFOption.Create: { UserDefinedFunction udfDefinition = new UserDefinedFunction { Id = "udfRegex", Body = File.ReadAllText(@"Scripts\udfRegex.js") }; string databaseName = ""; DocumentCollection collectionName = null; if (!InsertCollAndDatabase(ref databaseName, ref collectionName)) { Warning("Collection >>> " + collectionName + " <<< don't exist."); collectionName = await _collectionRepository.CreateCollection(databaseName, collectionName.Id); ProgramHelper.Wait(); } UserDefinedFunction newUDFunction = await _udfRepository.CreateUDFAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id), udfDefinition); WriteLine(string.Format("Created trigger {0}; RID: {1}", newUDFunction.Id, newUDFunction.ResourceId)); break; } default: break; } }
public async Task Run() { WriteLine("1. Insert, pre trigger"); WriteLine("2. Update, pre trigger"); WriteLine("3. Create triggers"); SPOption option = (SPOption)ProgramHelper.EnterInt(""); switch (option) { case SPOption.InsertPreTrigger: { ZipModel model = new ZipModel() { City = "Sarajevo", Pop = 1854, State = "BiH", Loc = new Point(43.8607994, 18.4018904), Id = "989898" }; Document findZipModel = await _documentRepository.ReadDocumentByIdAsync <Document>(model.Id, UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId)); if (findZipModel != null) { await _documentRepository.DeleteDocument(DatabaseId, CollectionId, findZipModel.Id); } Document document = await _documentRepository.InsertDocument(DatabaseId, CollectionId, model, new RequestOptions { PreTriggerInclude = new[] { "setCreatedDate" } }); Success("New document successfully created."); break; } case SPOption.ReplacePostTrigger: { ZipModel model = await _documentRepository.ReadDocumentByIdAsync <ZipModel>("989898", UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId)); model.City = "Neum"; ZipModel updatedModel = await _documentRepository.UpdateDocument <ZipModel>(UriFactory.CreateDocumentUri(DatabaseId, CollectionId, model.Id), model, new RequestOptions { PreTriggerInclude = new[] { "setUpdatedDate" } }); Success("Document with id >>> " + updatedModel.Id + " <<< updated."); Success("Created date time >>> " + updatedModel.CreatedDateTime.Value.ToString("MM/dd/yyyy hh:mm:ss tt") + " <<<."); Success("Updated date time >>> " + updatedModel.UpdatedDateTime.Value.ToString("MM/dd/yyyy hh:mm:ss tt") + " <<< updated."); break; } case SPOption.CreateTriggers: { Trigger setCreatedDate = new Trigger() { Id = "setCreatedDate", Body = File.ReadAllText(@"Scripts\trSetCreatedDate.js"), TriggerOperation = TriggerOperation.Create, TriggerType = TriggerType.Pre }; Trigger setUpdatedDate = new Trigger() { Id = "setUpdatedDate", Body = File.ReadAllText(@"Scripts\trSetUpdatedDate.js"), TriggerOperation = TriggerOperation.Update, TriggerType = TriggerType.Pre }; Trigger newCreatedTrigger = await _triggerRepository.CreateTriggerAsync(UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId), setCreatedDate); WriteLine(string.Format("Created trigger {0}; RID: {1}", newCreatedTrigger.Id, newCreatedTrigger.ResourceId)); Trigger newUpdatedTrigger = await _triggerRepository.CreateTriggerAsync(UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId), setUpdatedDate); WriteLine(string.Format("Created trigger {0}; RID: {1}", newUpdatedTrigger.Id, newUpdatedTrigger.ResourceId)); break; } } }
public async Task ReadDocument() { string databaseName = ""; DocumentCollection collectionName = null; if (!InsertCollAndDatabase(ref databaseName, ref collectionName)) { Warning("Collection >>> " + collectionName + " <<< don't exist."); return; } WriteLine("1. Dynamic"); WriteLine("2. Document"); WriteLine("3. Model"); WriteLine("4. To JSON output"); ReadOptionEnum option = (ReadOptionEnum)ProgramHelper.EnterInt(""); string id = ProgramHelper.EnterText("Enter document id"); switch (option) { case ReadOptionEnum.Dynamic: { dynamic documentDynamic = await _repository.ReadDocumentByIdAsync <dynamic>(id, UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id)); WriteLine("Id:\t" + documentDynamic.id); WriteLine("Country code:\t" + documentDynamic.countrycode); WriteLine("Country name:\t" + documentDynamic.countryname); List <dynamic> lstMajorSector = documentDynamic.majorsector_percent.ToObject <List <dynamic> >(); foreach (var majorSector in lstMajorSector) { WriteLine(" Sector name:\t\t" + majorSector.Name); WriteLine(" Sector percent:\t" + majorSector.Percent); ProgramHelper.Divider(); } break; } case ReadOptionEnum.Document: { Document document = await _repository.ReadDocumentByIdAsync <Document>(id, UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id)); WriteLine("Id:\t" + document.GetPropertyValue <string>("id")); WriteLine("Country code:\t" + document.GetPropertyValue <string>("countrycode")); WriteLine("Country name:\t" + document.GetPropertyValue <string>("countryname")); JArray childArrayDocument = document.GetPropertyValue <JArray>("majorsector_percent"); foreach (var item in childArrayDocument) { WriteLine(" Sector name:\t\t" + item["Name"]); WriteLine(" Sector percent:\t" + item["Percent"]); ProgramHelper.Divider(); } break; } case ReadOptionEnum.Model: { WorldBankModel model = await _repository.ReadDocumentByIdAsync <WorldBankModel>(id, UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id)); WriteLine("Id:\t" + model.Id); WriteLine("Country code:\t" + model.Countrycode); WriteLine("Country name:\t" + model.Countryname); ProgramHelper.Divider(); foreach (var majorSector in model.MajorsectorPercent) { WriteLine(" Sector name:\t\t" + majorSector.Name); WriteLine(" Sector percent:\t" + majorSector.Percent); ProgramHelper.Divider(); } break; } case ReadOptionEnum.ToJSONOutput: { Document document = await _repository.ReadDocumentByIdAsync <Document>(id, UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id)); WriteLine(document.ToString()); break; } default: break; } }
public async Task InsertDocument() { string databaseName = ""; DocumentCollection collectionName = null; if (!InsertCollAndDatabase(ref databaseName, ref collectionName)) { Warning("Collection >>> " + collectionName + " <<< don't exist."); collectionName = await _collectionRepository.CreateCollection(databaseName, collectionName.Id); ProgramHelper.Wait(); } WriteLine("1. New document from file"); WriteLine("2. New document from anonymous type"); WriteLine("3. New document from model"); InsertOptionEnum option = (InsertOptionEnum)ProgramHelper.EnterInt(""); switch (option) { case InsertOptionEnum.FromFile: { using (StreamReader file = new StreamReader(@"Scripts\zips.json")) { string line; int count = 0; while ((line = file.ReadLine()) != null && count != 100) { byte[] byteArray = Encoding.UTF8.GetBytes(line); using (MemoryStream stream = new MemoryStream(byteArray)) { Document newDocument = await _repository.InsertDocument(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id), JsonSerializable.LoadFrom <Document>(stream)); Success(++count + ", document import."); } } } break; } case InsertOptionEnum.FromAnonymous: { var newDocument = new { firstName = "Ratomir", lastName = "Vukadin", bookmarks = new[] { new { url = "https://try.dot.net/", name = "Try dot net" }, new { url = "https://dotnetfiddle.net/", name = "Dot net fiddle" } }, city = "TORONTO", loc = new Point(-80.632504, 40.473298), pop = 11981, state = "OH" }; Document createdNewDocument = await _repository.InsertDocument(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id), newDocument); Success("New document successfully created."); break; } case InsertOptionEnum.FromModel: { EmailModel emailModel = new EmailModel() { Bcc = new List <string>() { "*****@*****.**" }, Cc = new List <string>() { "*****@*****.**" }, Ctype = "text/plain; charset=us-ascii", Date = DateTime.Now, Fname = "Ratomir", Folder = "_inbox", Fpath = "enron_mail_20110402/maildir/lay-k/_sent/81.", Mid = "33068967.1075840285147.JavaMail.evans@thyme", Recipients = new List <string>() { "*****@*****.**", "*****@*****.**", "*****@*****.**" }, Replyto = null, Sender = "*****@*****.**", Subject = "Re: EXECUTIVE COMMITTEE MEETING - MONDAY, JULY 10", Text = "Katherine:\n\nMr.Lay is planning on attending in person.\n\nTori\n\n\n\nKatherine Brown\n07 / 05 / 2000 01:15 PM\n\n\nTo: James M Bannantine / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Cliff \nBaxter / HOU / ECT@ECT, Sanjay Bhatnagar/ ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, \nRick Buy/ HOU / ECT@ECT, Richard Causey/ Corp / Enron@ENRON, Diomedes \nChristodoulou / SA / Enron@Enron, David W Delainey / HOU / ECT@ECT, James \nDerrick / Corp / Enron@ENRON, Andrew S Fastow / HOU / ECT@ECT, Peggy_Fowler @pgn.com, \nMark Frevert/ NA / Enron@Enron, Ben F Glisan / HOU / ECT@ECT, Kevin Hannon/ Enron \nCommunications @Enron Communications, David \nHaug / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Joe Hirko/ Enron \nCommunications @Enron Communications, Stanley Horton/ Corp / Enron@Enron, Larry L \nIzzo / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Steven J Kean / HOU / EES@EES, Mark \nKoenig / Corp / Enron@ENRON, Kenneth Lay/ Corp / Enron@ENRON, Rebecca P \nMark / HOU / AZURIX@AZURIX, Mike McConnell/ HOU / ECT@ECT, Rebecca \nMcDonald / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Jeffrey McMahon/ HOU / ECT@ECT, J \nMark Metts/ NA / Enron@Enron, Cindy Olson/ Corp / Enron@ENRON, Lou L \nPai / HOU / EES@EES, Ken Rice/ Enron Communications @Enron Communications, Jeffrey \nSherrick / Corp / Enron@ENRON, John Sherriff/ LON / ECT@ECT, Jeff \nSkilling / Corp / Enron@ENRON, Joseph W \nSutton / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Greg Whalley/ HOU / ECT@ECT, Thomas \nE White/ HOU / EES@EES, Brenda Garza-Castillo / NA / Enron@Enron, Marcia \nManarin / SA / Enron@Enron, Susan Skarness/ HOU / ECT@ECT, Stacy \nGuidroz / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Beena \nPradhan / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Karen K Heathman / HOU / ECT@ECT, \nSharron Westbrook/ Corp / Enron@ENRON, Kay Chapman/ HOU / ECT@ECT, Molly \nBobrow / NA / Enron@Enron, Rosane Fabozzi/ SA / Enron@Enron, Stephanie \nHarris / Corp / Enron@ENRON, Bridget Maronge/ HOU / ECT@ECT, Mary_trosper @pgn.com, \nNicki Daw/ NA / Enron@Enron, Inez Dauterive/ HOU / ECT@ECT, Carol Ann Brown / Enron \nCommunications @Enron Communications, Elaine \nRodriguez / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Nancy Young/ Enron \nCommunications @Enron Communications, Ann Joyner/ Corp / Enron@ENRON, Cindy \nStark / Corp / Enron@ENRON, Mary E Garza / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, \nMaureen McVicker/ HOU / EES@EES, Joannie Williamson/ Corp / Enron@ENRON, Rosalee \nFleming / Corp / Enron@ENRON, Vanessa Groscrand/ Corp / Enron@ENRON, Marsha \nLindsey / HOU / AZURIX@AZURIX, Cathy Phillips/ HOU / ECT@ECT, Loretta \nBrelsford / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Sue Ford/ HOU / ECT@ECT, Dolores \nFisher / NA / Enron@Enron, Karen Owens/ HOU / EES@EES, Dorothy Dalton/ Enron \nCommunications @Enron Communications, Jewel Meeks/ Enron Communications @Enron \nCommunications, Christina Grow/ Corp / Enron@ENRON, Lauren Urquhart/ LON / ECT@ECT, \nSherri Sera/ Corp / Enron@ENRON, Katherine Brown/ Corp / Enron@ENRON, Pam \nBenson / ENRON_DEVELOPMENT@ENRON_DEVELOPMENT, Jana Mills/ HOU / ECT@ECT, Liz M \nTaylor / HOU / ECT@ECT, Judy G Smith / HOU / EES@EES, Bobbie Power/ Corp / Enron@ENRON\ncc: Suzanne Danz/ Corp / Enron@ENRON, Videoconference @enron, Vanessa \nGroscrand / Corp / Enron@ENRON \nSubject: EXECUTIVE COMMITTEE MEETING - MONDAY, JULY 10\n\n\nExecutive Committee Weekly Meeting\nDate: Monday, July 10\nTime: 11:00 a.m. (CDT)\nLocation: 50th Floor Boardroom\nVideo: Connections will be established with remote locations upon request.\nConf call: AT & T lines have been reserved. Please contact Sherri Sera \n(713 / 853 - 5984) \n or Katherine Brown(713 / 345 - 7774) for the weekly dial -in number and \npasscode.\n\nPlease indicate below whether or not you plan to attend this meeting and \nthrough what medium. \n\n Yes, I will attend in person _______\n\n By video conference from _______\n\n By conference call _______\n\n No, I will not attend _______\n\n * **\n\nPlease return this e - mail to me with your response by 12:00 p.m., Friday, \nJuly 7.\n\nThank you, \nKatherine\n\n", To = new List <string>() { "*****@*****.**" } }; Document newDocument = await _repository.InsertDocument(databaseName, collectionName.Id, emailModel); emailModel.Id = newDocument.Id; Success("New document successfully created."); Info("New Email model id: " + emailModel.Id); break; } default: break; } }
public async Task Run() { string databaseName = ""; DocumentCollection collectionName = null; if (!InsertCollAndDatabase(ref databaseName, ref collectionName)) { Warning("Collection >>> " + collectionName + " <<< don't exist."); return; } WriteLine("1. Call sp, insert StoreModel"); WriteLine("2. Create"); SPOption option = (SPOption)ProgramHelper.EnterInt(""); switch (option) { case SPOption.Read: { StoreModel storeModel = new StoreModel() { Address = new AddressModel() { AddressType = "Back Office", CountryRegionName = "Neum", Location = new LocationModel() { City = "Neum", StateProvinceName = "Jadran" }, PostalCode = "88390" }, Name = "Super new Network bank RVS" }; try { Document resultSP = await _baseRepository.RunStoredProcedureAsync(UriFactory.CreateStoredProcedureUri(databaseName, collectionName.Id, "spCreateDocIfIdIsUnique"), storeModel); ProgramHelper.Divider(); Success("Result: "); WriteLine(resultSP.ToString()); } catch (Exception ex) { Error(ex.Message); } break; } case SPOption.Create: { StoredProcedure sprocDefinition = new StoredProcedure { Id = "spGetCountByRegion", Body = File.ReadAllText(@"Scripts\spGetCountByRegion.js") }; StoredProcedure result = await _baseRepository.CreateStoredProcedureAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id), sprocDefinition); Success("Created stored procedure " + result.Id + " RID: " + result.ResourceId); /////////////////////////////////////////////// sprocDefinition.Id = "spCreateDocIfIdlsUnique"; sprocDefinition.Body = File.ReadAllText(@"Scripts\spCreateDocIfIdlsUnique.js"); result = await _baseRepository.CreateStoredProcedureAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName.Id), sprocDefinition); Success("Created stored procedure " + result.Id + " RID: " + result.ResourceId); break; } } }