public static async Task <SugarRestResponse> BulkReadAccountLinkContact(SugarRestClient client, int count)
        {
            var request = new SugarRestRequest(RequestType.LinkedBulkRead);

            request.Options.MaxResult = count;

            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;

            return(await client.Execute <Account>(request));
        }
        public static async Task <SugarRestResponse> BulkReadAccountLinkItems2(SugarRestClient client, int count)
        {
            var request = new SugarRestRequest(RequestType.LinkedBulkRead);

            request.Options.MaxResult = count;

            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> 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;

            // Get all fields for Bug
            linkedListInfo["Bugs"] = null;

            request.Options.LinkedModules = linkedListInfo;

            return(await client.Execute <Account>(request));
        }
        public static async Task <SugarRestResponse> ReadAccountLinkItems(SugarRestClient client, string accountId)
        {
            var request = new SugarRestRequest(RequestType.LinkedReadById);

            request.Parameter = accountId;

            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> >();

            linkedListInfo[typeof(Contact)] = null;
            linkedListInfo["Leads"]         = null;
            linkedListInfo[typeof(Case)]    = null;

            request.Options.LinkedModules = linkedListInfo;

            return(await client.Execute <Account>(request));
        }
Exemple #4
0
        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-------------------
        }
Exemple #5
0
        public static SugarRestResponse BulkReadAccountLinkItems(SugarRestClient client, int count)
        {
            var request = new SugarRestRequest(RequestType.LinkedBulkRead);

            request.Options.MaxResult = count;

            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> >();

            linkedListInfo[typeof(Contact)] = null;
            linkedListInfo["Leads"]         = null;
            linkedListInfo[typeof(Case)]    = null;

            request.Options.LinkedModules = linkedListInfo;

            return(client.Execute <Account>(request));
        }
Exemple #6
0
        /*  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-------------------
        }
Exemple #7
0
        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-------------------
        }
Exemple #8
0
        /*  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;
            }
        }
Exemple #9
0
        /*  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-------------------
        }
Exemple #10
0
        /// <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;
            }));
        }
        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-------------------
        }
Exemple #12
0
        /*  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-------------------
        }
Exemple #13
0
        /*  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-------------------
        }
Exemple #14
0
        public static async Task <SugarRestResponse> DeleteContactAsync(SugarRestClient client, string contactId)
        {
            var request = new SugarRestRequest("Contacts", RequestType.Delete);

            request.Parameter = contactId;

            return(await client.ExecuteAsync <Contact>(request));
        }
        public static SugarRestResponse DeleteContactByType(SugarRestClient client, string contactId)
        {
            var request = new SugarRestRequest(RequestType.Delete);

            request.Parameter = contactId;

            return(client.Execute <Contact>(request));
        }
Exemple #16
0
        public static SugarRestResponse DeleteAccountByType(SugarRestClient client, string accountId)
        {
            var request = new SugarRestRequest(RequestType.Delete);

            request.Parameter = accountId;

            return(client.Execute <Account>(request));
        }
Exemple #17
0
        public static async Task <SugarRestResponse> BulkCreateAccount(SugarRestClient client, List <Account> accounts)
        {
            var request = new SugarRestRequest("Accounts", RequestType.BulkCreate);

            request.Parameter            = accounts;
            request.Options.SelectFields = GetSelectedField();
            return(await client.Execute <Account>(request));
        }
Exemple #18
0
        public static async Task <SugarRestResponse> DeleteAccountAsync(SugarRestClient client, string accountId)
        {
            var request = new SugarRestRequest("Accounts", RequestType.Delete);

            request.Parameter = accountId;

            return(await client.ExecuteAsync <Account>(request));
        }
Exemple #19
0
        public static async Task <SugarRestResponse> CreateAccountAsync(SugarRestClient client, Account account)
        {
            var request = new SugarRestRequest(RequestType.Create);

            request.Parameter = account;

            request.Options.SelectFields = GetSelectedField();

            return(await client.ExecuteAsync <Account>(request));
        }
Exemple #20
0
        public static SugarRestResponse CreateAccountByType(SugarRestClient client, Account account)
        {
            var request = new SugarRestRequest(RequestType.Create);

            request.Parameter = account;

            request.Options.SelectFields = GetSelectedField();

            return(client.Execute <Account>(request));
        }
Exemple #21
0
        public static async Task <SugarRestResponse> CreateContactByType(SugarRestClient client, Contact contact)
        {
            var request = new SugarRestRequest(RequestType.Create);

            request.Parameter = contact;

            request.Options.SelectFields = GetSelectedField();

            return(await client.Execute <Contact>(request));
        }
        public static SugarRestResponse BulkCreateContact(SugarRestClient client, List <Contact> contacts)
        {
            var request = new SugarRestRequest("Contacts", RequestType.BulkCreate);

            request.Parameter = contacts;

            request.Options.SelectFields = GetSelectedField();

            return(client.Execute(request));
        }
Exemple #23
0
        /// <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;
            }));
        }
Exemple #24
0
        public static async Task <SugarRestResponse> BulkReadAccount(SugarRestClient client, int count)
        {
            var request = new SugarRestRequest("Accounts", RequestType.BulkRead);

            request.Options.SelectFields = GetSelectedField();
            request.Options.SelectFields.Add(nameof(Account.Id));

            request.Options.MaxResult = count;

            return(await client.Execute <Account>(request));
        }
Exemple #25
0
        public static async Task <SugarRestResponse> ReadAccountAsync(SugarRestClient client, string accountId)
        {
            var request = new SugarRestRequest(RequestType.ReadById);

            request.Parameter = accountId;

            request.Options.SelectFields = GetSelectedField();
            request.Options.SelectFields.Add(nameof(Account.Id));

            return(await client.ExecuteAsync <Account>(request));
        }
Exemple #26
0
        public static SugarRestResponse ReadAccountByType(SugarRestClient client, string accountId)
        {
            var request = new SugarRestRequest(RequestType.ReadById);

            request.Parameter = accountId;

            request.Options.SelectFields = GetSelectedField();
            request.Options.SelectFields.Add(nameof(Account.Id));

            return(client.Execute <Account>(request));
        }
        public static SugarRestResponse ReadContact(SugarRestClient client, string contactId)
        {
            var request = new SugarRestRequest("Contacts", RequestType.ReadById);

            request.Parameter = contactId;

            request.Options.SelectFields = GetSelectedField();
            request.Options.SelectFields.Add(nameof(Contact.Id));

            return(client.Execute(request));
        }
        public static SugarRestResponse BulkReadContact(SugarRestClient client, int count)
        {
            var request = new SugarRestRequest("Contacts", RequestType.BulkRead);

            request.Options.SelectFields = GetSelectedField();
            request.Options.SelectFields.Add(nameof(Contact.Id));

            request.Options.MaxResult = count;

            return(client.Execute(request));
        }
Exemple #29
0
        public static async Task <SugarRestResponse> ReadContactByType(SugarRestClient client, string contactId)
        {
            var request = new SugarRestRequest(RequestType.ReadById);

            request.Parameter = contactId;

            request.Options.SelectFields = GetSelectedField();
            request.Options.SelectFields.Add(nameof(Contact.Id));

            return(await client.Execute <Contact>(request));
        }
Exemple #30
0
        public static async Task <SugarRestResponse> BulkReadContactAsync(SugarRestClient client, int count)
        {
            var request = new SugarRestRequest();

            request.RequestType = RequestType.BulkRead;

            request.Options.SelectFields = GetSelectedField();
            request.Options.SelectFields.Add(nameof(Contact.Id));

            request.Options.MaxResult = count;

            return(await client.ExecuteAsync <Contact>(request));
        }