/// <summary> /// This Delete request. /// </summary> /// <param name="restRequest">SugarCRM Rest request parameters.</param> /// <returns>The task response object.</returns> public static Task <RestResponse> Delete(RestRequest restRequest) { return(Task.Run(() => { var response = new RestResponse(); var request = new SugarRestRequest(); request.RequestType = RequestType.Delete; request.ModuleName = restRequest.ModelInfo.ModelName; request.Url = restRequest.Account.Url; request.Username = restRequest.Account.Username; request.Password = restRequest.Account.Password; request.Parameter = restRequest.Id; var client = new SugarRestClient(); SugarRestResponse sugarRestResponse = client.Execute(request); response.Id = (string)sugarRestResponse.Data; response.JsonRawRequest = JToken.Parse(sugarRestResponse.JsonRawRequest).ToString(Newtonsoft.Json.Formatting.Indented); response.JsonRawResponse = JToken.Parse(sugarRestResponse.JsonRawResponse).ToString(Newtonsoft.Json.Formatting.Indented); return response; })); }
/* Remove comment to test. * [Fact] */ public async void WikiReadContactsByPageAsyncTest() { // using SugarRestSharp; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(RequestType.PagedRead); // Select fields. List <string> selectFields = new List <string>(); selectFields.Add(nameof(Contact.FirstName)); // You can mix C# type and json type. selectFields.Add("last_name"); request.Options.SelectFields = selectFields; // Sets page options request.Options.CurrentPage = 1; request.Options.NumberPerPage = 10; SugarRestResponse response = await client.ExecuteAsync <Contact>(request); List <Contact> cases = (List <Contact>)response.Data; // -------------------End Bulk Read Account------------------- }
public async void ReadBulkAsyncWithQueryTest() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); // -------------------Bulk Read Account------------------- int count = 25; var request = new SugarRestRequest("Cases", RequestType.BulkRead); request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Case.Name), QueryOperator.StartsWith, "Warning")); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Case.Name), QueryOperator.Contains, "message")); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Case.Status), QueryOperator.Equal, "Assigned")); DateTime date = DateTime.Parse("07/02/2016"); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Case.DateEntered), QueryOperator.Between, null, date.AddDays(-1), DateTime.Now)); request.Options.MaxResult = count; SugarRestResponse response = await client.ExecuteAsync <Case>(request); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Case> readACases = (List <Case>)response.Data; Assert.NotNull(readACases); Assert.True(readACases.Count <= count); Assert.True(readACases.All(x => x.Name.StartsWith("Warning"))); Assert.True(readACases.All(x => x.Name.Contains("message"))); Assert.True(readACases.All(x => x.Status == "Assigned")); // -------------------End Bulk Read Account------------------- }
/* Remove comment to test. * [Fact] */ public async void WikiReadCasesWithQueryPredicatesTest() { string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(RequestType.BulkRead); request.Options.MaxResult = 3; request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Case.Name), QueryOperator.StartsWith, "Warning")); request.Options.QueryPredicates.Add(new QueryPredicate("name", QueryOperator.Contains, "message")); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Case.Status), QueryOperator.Equal, "Assigned")); DateTime date = DateTime.Parse("07/02/2016"); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Case.DateEntered), QueryOperator.Between, null, date.AddDays(-1), DateTime.Now)); SugarRestResponse response = await client.ExecuteAsync <Case>(request); List <Case> cases = (List <Case>)response.Data; // -------------------End Bulk Read Account------------------- }
public void ReadByTypeJDataTest() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); Account insertAccount = AccountsModule.GetTestAccount(); // -------------------Create Account------------------- SugarRestResponse response = AccountsModule.CreateAccountByType(client, insertAccount); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); string insertId = (response.Data == null) ? string.Empty : response.Data.ToString(); Assert.NotNull(insertId); Assert.NotEmpty(insertId); // -------------------End Create Account------------------- // -------------------Read Account------------------- response = AccountsModule.ReadAccountByType(client, insertId); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); Assert.NotNull(response.JData); Assert.NotEmpty(response.JData); JObject jobject = JObject.Parse(response.JData); Assert.NotNull(jobject); var jproperties = jobject.Properties().ToList(); List <string> selectedFields = AccountsModule.GetJsonSelectedField(); Assert.Equal(selectedFields.Count, jproperties.Count); foreach (string id in selectedFields) { JProperty property = jproperties.SingleOrDefault(p => p.Name == id); Assert.NotNull(property); } Account readOnCreateAccount = (Account)response.Data; // -------------------End Read Account------------------- // -------------------Delete Account------------------- response = AccountsModule.DeleteAccountByType(client, readOnCreateAccount.Id); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); string deleteId = (response.Data == null) ? string.Empty : response.Data.ToString(); Assert.NotNull(deleteId); Assert.NotEmpty(deleteId); Assert.Equal(insertId, deleteId); // -------------------End Delete Account------------------- }
/* Remove comment to test. * [Fact] */ public void WikiDeleteEntitiesTest() { // using SugarRestSharp; // using CustomModels; // using Newtonsoft.Json; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); string moduleName = "Accounts"; var request = new SugarRestRequest(moduleName, RequestType.Delete); List <string> itemIdsToDelete = new List <string>(); itemIdsToDelete.Add("45ac2050-d55e-70ab-6520-585337eac1bc"); itemIdsToDelete.Add("698e4f22-a213-d287-94be-584c09710444"); itemIdsToDelete.Add("fb7405da-fe66-f0f9-f5d4-58533747bdf8"); foreach (var id in itemIdsToDelete) { request.Parameter = id; SugarRestResponse response = client.Execute <Account>(request); string deletedItemId = (string)response.Data; } }
/* Remove comment to test. * [Fact] */ public async void WikiReadLeadsWithQueryTest() { string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(RequestType.BulkRead); List <string> selectedFields = new List <string>(); selectedFields.Add("id"); selectedFields.Add("name"); selectedFields.Add("modified_by_name"); request.Options.SelectFields = selectedFields; // Set query request.Options.Query = "leads.id IN('10d82d59-08eb-8f0d-28e0-5777b57af47c', '12037cd0-ead2-402e-e1d0-5777b5dfb965', '13d4109d-c5ca-7dd1-99f1-5777b57ef30f', '14c136e5-1a67-eeba-581c-5777b5c8c463', '14e4825e-9573-4d75-2dbe-5777b5b7ee85', '1705b33a-3fad-aa70-77ef-5777b5b081f1', '171c1d8b-e34f-3a1f-bef7-5777b5ecc823', '174a8fc4-56e6-3471-46d8-5777b565bf5b', '17c9c496-90a1-02f5-87bd-5777b51ab086', '1d210352-7a1f-2c5d-04ae-5777b5a3312f')"; SugarRestResponse response = await client.ExecuteAsync <Lead>(request); List <Lead> leads = (List <Lead>)response.Data; // -------------------End Bulk Read Account------------------- }
/* Remove comment to test. * [Fact] */ public void WikiCreateBugTest() { // using SugarRestSharp; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; string moduleName = "Bugs"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(moduleName, RequestType.Create); Bug bugToCreate = new Bug(); bugToCreate.Name = "System crashed while running count query"; bugToCreate.Description = "New Oracle application server commissioning."; bugToCreate.Status = "New"; request.Parameter = bugToCreate; // Select fields. List <string> selectFields = new List <string>(); selectFields.Add(nameof(Bug.Name)); selectFields.Add(nameof(Bug.Description)); selectFields.Add(nameof(Bug.Status)); request.Options.SelectFields = selectFields; SugarRestResponse response = client.Execute(request); string bugId = (string)response.Data; // -------------------End Bulk Read Account------------------- }
public void ReadBulkWithQuery1Test() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); // -------------------Bulk Read Account------------------- int count = 10; var request = new SugarRestRequest("Accounts", RequestType.BulkRead); request.Options.Query = "accounts.name = 'Air Safety Inc' "; request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Account.Name), QueryOperator.Equal, "General Electric USA, Inc")); request.Options.MaxResult = count; SugarRestResponse response = client.Execute(request); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Account> readAccounts = (List <Account>)(response.Data); Assert.NotNull(readAccounts); Assert.True(readAccounts.All(x => x.Name == "Air Safety Inc")); // -------------------End Bulk Read Account------------------- }
/// <summary> /// This GetById request. /// </summary> /// <param name="restRequest">SugarCRM Rest request parameters.</param> /// <returns>The task response object.</returns> public static Task <RestResponse> GetById(RestRequest restRequest) { return(Task.Run(() => { var response = new RestResponse(); var request = new SugarRestRequest(); request.RequestType = RequestType.ReadById; request.ModuleName = restRequest.ModelInfo.ModelName; request.Url = restRequest.Account.Url; request.Username = restRequest.Account.Username; request.Password = restRequest.Account.Password; request.Parameter = restRequest.Id; bool selectedFieldsOnly = false; var properties = new List <ModelProperty>(); if (restRequest.SelectFields) { if (restRequest.SelectedFields != null && restRequest.SelectedFields.Count > 0) { properties = restRequest.SelectedFields.Select(x => x.Property).ToList(); if (properties.Count > 0) { request.Options.SelectFields = properties.Select(x => x.JsonName).ToList(); selectedFieldsOnly = true; } } } var client = new SugarRestClient(); SugarRestResponse sugarRestResponse = client.Execute(request); response.Data = new DataTable(); if (sugarRestResponse != null) { var selectedProperties = new List <string>(); if (selectedFieldsOnly) { selectedProperties = properties.Select(x => x.Name).ToList(); } if (!string.IsNullOrEmpty(sugarRestResponse.JData)) { response.Data = sugarRestResponse.JData.ToDynamicObject(restRequest.ModelInfo.Type, selectedProperties, selectedFieldsOnly); } response.JsonRawRequest = JToken.Parse(sugarRestResponse.JsonRawRequest).ToString(Newtonsoft.Json.Formatting.Indented); response.JsonRawResponse = JToken.Parse(sugarRestResponse.JsonRawResponse).ToString(Newtonsoft.Json.Formatting.Indented); } return response; })); }
/* Remove comment to test. * [Fact] */ public void WikiCreateBugsTest() { // using SugarRestSharp; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(RequestType.BulkCreate); Bug bugToCreate1 = new Bug(); bugToCreate1.Name = "System crashed while running new photo upload."; bugToCreate1.Description = "Tumblr app"; bugToCreate1.Status = "Pending"; Bug bugToCreate2 = new Bug(); bugToCreate2.Name = "Warning is displayed in file after exporting."; bugToCreate2.Description = ""; bugToCreate2.Status = "New"; Bug bugToCreate3 = new Bug(); bugToCreate3.Name = "Fatal error during installation."; bugToCreate3.Description = "Fifth floor printer."; bugToCreate3.Status = "Closed"; List <Bug> bugsToCreate = new List <Bug>(); bugsToCreate.Add(bugToCreate1); bugsToCreate.Add(bugToCreate2); bugsToCreate.Add(bugToCreate3); request.Parameter = bugsToCreate; // Select fields. List <string> selectFields = new List <string>(); selectFields.Add(nameof(Bug.Name)); selectFields.Add(nameof(Bug.Description)); selectFields.Add(nameof(Bug.Status)); request.Options.SelectFields = selectFields; SugarRestResponse response = client.Execute <Bug>(request); List <string> createdBugIds = (List <string>)response.Data; // -------------------End Bulk Read Account------------------- }
private string GetSugarAccountId(SugarRestResponse response) { if (response.Data == null) { return(string.Empty); } List <Sugar.Account> accounts = (List <Sugar.Account>)response.Data; if (accounts.Count == 0) { return(string.Empty); } return(accounts[0].Id); }
/* Remove comment to test. * [Fact] */ public void WikiReadLinkedAccountCollection2Test() { // using SugarRestSharp; // using CustomModels; // using Newtonsoft.Json; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(RequestType.LinkedBulkRead); request.Parameter = null; request.Options.MaxResult = 3; List <string> selectedFields = new List <string>(); selectedFields.Add("id"); selectedFields.Add("name"); selectedFields.Add("industry"); selectedFields.Add("website"); request.Options.SelectFields = selectedFields; Dictionary <object, List <string> > linkedListInfo = new Dictionary <object, List <string> >(); List <string> selectCaseFields = new List <string>(); selectCaseFields.Add(nameof(Case.AccountId)); selectCaseFields.Add(nameof(Case.CaseNumber)); selectCaseFields.Add("description"); linkedListInfo[typeof(Case)] = selectCaseFields; // Get all fields for Bug linkedListInfo["Bugs"] = null; request.Options.LinkedModules = linkedListInfo; SugarRestResponse response = client.Execute <Account>(request); // Deserialize json data to custom object List <CustomAcccount3> customAccounts = JsonConvert.DeserializeObject <List <CustomAcccount3> >(response.JData); // -------------------End Bulk Read Account------------------- }
/* Remove comment to test. * [Fact] */ public void WikiReadLinkedAccountCollectionTest() { // using SugarRestSharp; // using CustomModels; // using Newtonsoft.Json; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(RequestType.LinkedBulkRead); request.Parameter = null; request.Options.MaxResult = 3; List <string> selectedFields = new List <string>(); selectedFields.Add(nameof(Account.Id)); selectedFields.Add(nameof(Account.Name)); selectedFields.Add(nameof(Account.Industry)); selectedFields.Add(nameof(Account.Website)); selectedFields.Add(nameof(Account.ShippingAddressCity)); request.Options.SelectFields = selectedFields; Dictionary <object, List <string> > linkedListInfo = new Dictionary <object, List <string> >(); List <string> selectContactFields = new List <string>(); selectContactFields.Add(nameof(Contact.FirstName)); selectContactFields.Add(nameof(Contact.LastName)); selectContactFields.Add(nameof(Contact.Title)); selectContactFields.Add(nameof(Contact.Description)); selectContactFields.Add(nameof(Contact.PrimaryAddressPostalcode)); linkedListInfo[typeof(Contact)] = selectContactFields; request.Options.LinkedModules = linkedListInfo; SugarRestResponse response = client.Execute <Account>(request); // Deserialize json data to custom object List <CustomAcccount2> customAccounts = JsonConvert.DeserializeObject <List <CustomAcccount2> >(response.JData); // -------------------End Bulk Read Account------------------- }
public async void ReadAsyncTest() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); Account insertAccount = AccountsModule.GetTestAccount(); // -------------------Create Account------------------- SugarRestResponse response = await AccountsModule.CreateAccountAsync(client, insertAccount); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); string insertId = (response.Data == null) ? string.Empty : response.Data.ToString(); Assert.NotNull(insertId); Assert.NotEmpty(insertId); // -------------------End Create Account------------------- // -------------------Read Account------------------- response = await AccountsModule.ReadAccountAsync(client, insertId); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); Account readOnCreateAccount = (Account)response.Data; Assert.NotNull(readOnCreateAccount); Assert.Equal(insertAccount.Name, readOnCreateAccount.Name); Assert.Equal(insertAccount.Industry, readOnCreateAccount.Industry); Assert.Equal(insertAccount.Website, readOnCreateAccount.Website); Assert.Equal(insertAccount.ShippingAddressCity, readOnCreateAccount.ShippingAddressCity); // -------------------End Read Account------------------- // -------------------Delete Account------------------- response = await AccountsModule.DeleteAccountAsync(client, readOnCreateAccount.Id); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); string deleteId = (response.Data == null) ? string.Empty : response.Data.ToString(); Assert.NotNull(deleteId); Assert.NotEmpty(deleteId); Assert.Equal(insertId, deleteId); // -------------------End Delete Account------------------- }
public async void ReadAsyncTest() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); Contact insertContact = ContactsModule.GetTestContact(); // -------------------Create Contact------------------- SugarRestResponse response = await ContactsModule.CreateContactAsync(client, insertContact); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); string insertId = (response.Data == null) ? string.Empty : response.Data.ToString(); Assert.NotNull(insertId); Assert.NotEmpty(insertId); // -------------------End Create Contact------------------- // -------------------Read Contact------------------- response = await ContactsModule.ReadContactAsync(client, insertId); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); Contact readOnCreateContact = (Contact)response.Data; Assert.NotNull(readOnCreateContact); Assert.Equal(insertContact.FirstName, readOnCreateContact.FirstName); Assert.Equal(insertContact.LastName, readOnCreateContact.LastName); Assert.Equal(insertContact.Title, readOnCreateContact.Title); Assert.Equal(insertContact.PrimaryAddressPostalcode, readOnCreateContact.PrimaryAddressPostalcode); // -------------------End Read Contact------------------- // -------------------Delete Contact------------------- response = await ContactsModule.DeleteContactAsync(client, readOnCreateContact.Id); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); string deleteId = (response.Data == null) ? string.Empty : response.Data.ToString(); Assert.NotNull(deleteId); Assert.NotEmpty(deleteId); Assert.Equal(insertId, deleteId); // -------------------End Delete Contact------------------- }
public static List <string> BulkDeleteAccount(SugarRestClient client, List <string> accountIds) { var request = new SugarRestRequest("Accounts", RequestType.Delete); List <string> listId = new List <string>(); foreach (var id in accountIds) { request.Parameter = id; SugarRestResponse response = client.Execute(request); string identifier = (response.Data == null) ? string.Empty : response.Data.ToString(); listId.Add(identifier); } return(listId); }
public void ReadBulkTest() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); // -------------------Bulk Read Contact------------------- int count = 10; SugarRestResponse response = ContactsModule.BulkReadContact(client, count); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Contact> readContacts = (List <Contact>)(response.Data); Assert.NotNull(readContacts); Assert.True(readContacts.Count <= count); // -------------------End Bulk Read Contact------------------- }
public async void ReadBulkAsyncTest() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); // -------------------Bulk Read Account------------------- int count = 25; SugarRestResponse response = await AccountsModule.BulkReadAccountAsync(client, count); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Account> readAccounts = (List <Account>)response.Data; Assert.NotNull(readAccounts); Assert.True(readAccounts.Count <= count); // -------------------End Bulk Read Account------------------- }
public static async Task <List <string> > BulkDeleteContact(SugarRestClient client, List <string> contactIds) { var request = new SugarRestRequest("Contacts", RequestType.Delete); List <string> listId = new List <string>(); foreach (var id in contactIds) { request.Parameter = id; SugarRestResponse response = await client.Execute <Contact>(request); string identifier = (response.Data == null) ? string.Empty : response.Data.ToString(); listId.Add(identifier); } return(listId); }
public void ReadBulkWithQuery2Test() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); // -------------------Bulk Read Account------------------- int count = 10; var request = new SugarRestRequest(RequestType.BulkRead); request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.MaxResult = count; SugarRestResponse response = client.Execute <Lead>(request); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Lead> readLeads = (List <Lead>)(response.Data); List <string> identifiers = readLeads.Select(x => x.Id).ToList(); // -------------------End Bulk Read Account------------------- // -------------------Bulk Read Account------------------- request = new SugarRestRequest(RequestType.BulkRead); request.Options.Query = "leads.id IN('10d82d59-08eb-8f0d-28e0-5777b57af47c', '12037cd0-ead2-402e-e1d0-5777b5dfb965', '13d4109d-c5ca-7dd1-99f1-5777b57ef30f', '14c136e5-1a67-eeba-581c-5777b5c8c463', '14e4825e-9573-4d75-2dbe-5777b5b7ee85', '1705b33a-3fad-aa70-77ef-5777b5b081f1', '171c1d8b-e34f-3a1f-bef7-5777b5ecc823', '174a8fc4-56e6-3471-46d8-5777b565bf5b', '17c9c496-90a1-02f5-87bd-5777b51ab086', '1d210352-7a1f-2c5d-04ae-5777b5a3312f')"; request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Lead.LastName), QueryOperator.Equal, "Johnson")); request.Options.MaxResult = count; response = client.Execute <Lead>(request); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Lead> readLeadsWithQuery = (List <Lead>)(response.Data); Assert.NotNull(readLeadsWithQuery); List <string> newIdentifiers = readLeads.Select(x => x.Id).ToList(); List <string> commonIdentifiers = identifiers.Intersect(newIdentifiers).ToList(); Assert.Equal(readLeads.Count, readLeadsWithQuery.Count); Assert.Equal(identifiers.Count, newIdentifiers.Count); Assert.Equal(identifiers.Count, commonIdentifiers.Count); // -------------------End Bulk Read Account------------------- }
public void ReadBulkWithPredicate2Test() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); // -------------------Bulk Read Account------------------- int count = 10; var request = new SugarRestRequest(RequestType.BulkRead); request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.MaxResult = count; SugarRestResponse response = client.Execute <Lead>(request); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Lead> readLeads = (List <Lead>)(response.Data); List <string> identifiers = readLeads.Select(x => x.Id).ToList(); // -------------------End Bulk Read Account------------------- // -------------------Bulk Read Account------------------- request = new SugarRestRequest(RequestType.BulkRead); request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Lead.Id), QueryOperator.WhereIn, identifiers)); request.Options.MaxResult = count; response = client.Execute <Lead>(request); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); List <Lead> readLeadsWithQuery = (List <Lead>)(response.Data); Assert.NotNull(readLeadsWithQuery); List <string> newIdentifiers = readLeads.Select(x => x.Id).ToList(); List <string> commonIdentifiers = identifiers.Intersect(newIdentifiers).ToList(); Assert.Equal(readLeads.Count, readLeadsWithQuery.Count); Assert.Equal(identifiers.Count, newIdentifiers.Count); Assert.Equal(identifiers.Count, commonIdentifiers.Count); // -------------------End Bulk Read Account------------------- }
/// <summary> /// This Update request. /// </summary> /// <param name="restRequest">SugarCRM Rest request parameters.</param> /// <returns>The task response object.</returns> public static Task <RestResponse> Update(RestRequest restRequest) { return(Task.Run(() => { var response = new RestResponse(); var request = new SugarRestRequest(); request.RequestType = RequestType.Update; request.ModuleName = restRequest.ModelInfo.ModelName; request.Url = restRequest.Account.Url; request.Username = restRequest.Account.Username; request.Password = restRequest.Account.Password; var client = new SugarRestClient(); List <string> selectedFields; List <object> dataList = restRequest.Data.ToObjects(restRequest.ModelInfo, out selectedFields); request.Options.SelectFields = selectedFields; if (dataList == null) { return response; } SugarRestResponse sugarRestResponse = new SugarRestResponse(); if (dataList.Count == 1) { request.Parameter = dataList; sugarRestResponse = client.Execute(request); response.Id = (string)sugarRestResponse.Data; } else { request.Parameter = dataList; sugarRestResponse = client.Execute(request); } response.JsonRawRequest = JToken.Parse(sugarRestResponse.JsonRawRequest).ToString(Newtonsoft.Json.Formatting.Indented); response.JsonRawResponse = JToken.Parse(sugarRestResponse.JsonRawResponse).ToString(Newtonsoft.Json.Formatting.Indented); return response; })); }
/* Remove comment to test. * [Fact] */ public async void WikiReadAccountsWithQueryIgnorePredicatesTest() { string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(RequestType.BulkRead); request.Options.Query = "accounts.name = 'Air Safety Inc' "; request.Options.QueryPredicates = new List <QueryPredicate>(); request.Options.QueryPredicates.Add(new QueryPredicate(nameof(Account.Name), QueryOperator.Equal, "General Electric USA, Inc")); SugarRestResponse response = await client.ExecuteAsync <Account>(request); List <Account> accounts = (List <Account>)response.Data; // -------------------End Bulk Read Account------------------- }
public void BulkLinkedRead1Test() { var client = new SugarRestClient(TestAccount.Url, TestAccount.Username, TestAccount.Password); // -------------------Read Account Link Contact------------------- int count = 10; SugarRestResponse response = LinkedModules.BulkReadAccountLinkContact(client, count); Assert.NotNull(response); Assert.Equal(response.StatusCode, HttpStatusCode.OK); // Deserialize json data to custom object List <CustomAcccount1> customAccounts = JsonConvert.DeserializeObject <List <CustomAcccount1> >(response.JData); Assert.NotNull(customAccounts); Assert.True(customAccounts.Count <= count); // -------------------End Account Link Contact------------------- }
public static async Task <List <Contact> > BulkReadContact2(SugarRestClient client, List <string> contactIds) { var request = new SugarRestRequest("Contacts", RequestType.ReadById); request.Options.SelectFields = GetSelectedField(); request.Options.SelectFields.Add(nameof(Contact.Id)); List <Contact> contacts = new List <Contact>(); foreach (var id in contactIds) { request.Parameter = id; SugarRestResponse response = await client.Execute <Contact>(request); contacts.Add((Contact)response.Data); } return(contacts); }
public static async Task <List <Account> > BulkReadAccount2(SugarRestClient client, List <string> accountIds) { var request = new SugarRestRequest("Accounts", RequestType.ReadById); request.Options.SelectFields = GetSelectedField(); request.Options.SelectFields.Add(nameof(Account.Id)); List <Account> accounts = new List <Account>(); foreach (var id in accountIds) { request.Parameter = id; SugarRestResponse response = await client.Execute <Account>(request); accounts.Add((Account)response.Data); } return(accounts); }
/* Remove comment to test. * [Fact] */ public void WikiDeleteBugTest() { // using SugarRestSharp; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); string bugId = "49a8ff9f-e1d4-2135-c132-5855b99916a6"; var request = new SugarRestRequest(RequestType.Delete); request.Parameter = bugId; SugarRestResponse response = client.Execute <Bug>(request); string deletedBugId = (string)response.Data; // -------------------End Bulk Read Account------------------- }
/* Remove comment to test. * [Fact] */ public void WikiReadLeadTest() { // using SugarRestSharp; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; string moduleName = "Leads"; string moduleId = "10d82d59-08eb-8f0d-28e0-5777b57af47c"; var client = new SugarRestClient(url, username, password); var request = new SugarRestRequest(moduleName, RequestType.ReadById); request.Parameter = moduleId; SugarRestResponse response = client.Execute(request); Lead lead = (Lead)response.Data; // -------------------End Bulk Read Account------------------- }
/* Remove comment to test. * [Fact] */ public void WikiUpdateLeadsTest() { // using SugarRestSharp; string url = "http://191.101.224.189/sugar/service/v4_1/rest.php"; string username = "******"; string password = "******"; var client = new SugarRestClient(url, username, password); var readRequest = new SugarRestRequest("Leads", RequestType.BulkRead); readRequest.Options.MaxResult = 3; SugarRestResponse leadsReadResponse = client.Execute(readRequest); List <Lead> leadsToUpdate = (List <Lead>)leadsReadResponse.Data; var request = new SugarRestRequest(RequestType.BulkUpdate); // Update account description foreach (var lead in leadsToUpdate) { lead.AccountDescription = string.Format("Lead Account moved on {0}.", DateTime.Now.ToShortDateString()); } request.Parameter = leadsToUpdate; // Select fields. List <string> selectFields = new List <string>(); selectFields.Add(nameof(Lead.AccountName)); selectFields.Add(nameof(Lead.AccountDescription)); selectFields.Add(nameof(Lead.Status)); request.Options.SelectFields = selectFields; SugarRestResponse response = client.Execute <Lead>(request); List <string> updatedLeadIds = (List <string>)response.Data; // -------------------End Bulk Read Account------------------- }