Ejemplo n.º 1
0
        public async Task CreateFailTest()
        {
            var client = await LoginTask()
                         .ConfigureAwait(false);

            await DeleteTestingRecords(client)
            .ConfigureAwait(false);

            try
            {
                await Assert.ThrowsAsync <ForceException>(async() =>
                {
                    var result = await client.CreateAsync("Account", new JObject())
                                 .ConfigureAwait(false);
                    result.Assert();
                });

                await Assert.ThrowsAsync <ForceException>(async() =>
                {
                    var obj     = new AttributedObject($"UnknownObject{Guid.NewGuid():N}");
                    var request = new CreateRequest {
                        Records = new List <IAttributedObject> {
                            obj
                        }
                    };
                    var result = await client.CreateAsync($"UnknownObject{Guid.NewGuid():N}", request)
                                 .ConfigureAwait(false);
                    result.Assert();
                });

                await Assert.ThrowsAsync <ForceException>(async() =>
                {
                    var prd2List = Enumerable.Range(1, 4000).Select(_ => new AttributedObject($"UnknownObject{Guid.NewGuid():N}"));
                    var result   = await client.Composite.CreateAsync(prd2List.ToList())
                                   .ConfigureAwait(false);
                    result.Assert();
                });
            }
            finally
            {
                await DeleteTestingRecords(client)
                .ConfigureAwait(false);
            }
        }
Ejemplo n.º 2
0
        public Project GetProjectData()
        {
            RhinoDoc doc = RhinoDoc.ActiveDoc;

            Project project = new Project();

            project.Name   = doc.Name;
            project.Id     = Guid.NewGuid(); //Store on RhinoDoc User Text
            project.UserId = DwwebRhinoPlugin.Instance.LoggedInUser.Id;

            project.Objects = new List <AttributedObject>();

            var objects = RhinoDoc.ActiveDoc.Objects.GetObjectList(ObjectType.AnyObject).ToList();

            foreach (RhinoObject rObj in objects)
            {
                AttributedObject aObj = new AttributedObject()
                {
                    Id       = rObj.Id,
                    Type     = rObj.ObjectType.ToString(),
                    Geometry = rObj.ToThreeJSGeometry()
                };

                aObj.Parameters = new List <Parameter>();

                foreach (string key in rObj.Attributes.GetUserStrings())
                {
                    aObj.Parameters.Add(new Parameter()
                    {
                        Name  = key,
                        Value = rObj.Attributes.GetUserString(key)
                    });;
                }

                project.Objects.Add(aObj);
            }

            return(project);
        }
Ejemplo n.º 3
0
        public async Task CreateTest()
        {
            var client = await LoginTask()
                         .ConfigureAwait(false);

            await DeleteTestingRecords(client)
            .ConfigureAwait(false);

            try
            {
                var result1 = await client
                              .CreateAsync("Case", new JObject
                {
                    ["Subject"] = "UnitTest0"
                })
                              .ConfigureAwait(false);

                result1.Assert();

                var caseList = Enumerable.Range(1, 40).Select(i => new AttributedObject("Case")
                {
                    ["Subject"] = $"UnitTest{i}"
                }).ToArray();
                var result = await client.Composite.CreateAsync(caseList, true)
                             .ConfigureAwait(false);

                result.Assert();
                Assert.NotEmpty(result.SuccessResponses());

                const int expected     = 200 * 26;
                var       existingCase = await client.QueryAsync($@"
SELECT Name FROM Opportunity ORDER BY Id LIMIT {expected}").Pull().ToListAsync()
                                         .ConfigureAwait(false);

                var newCase = await client.Composite.CreateAsync(existingCase
                                                                 .Select(c => new AttributedObject("Case")
                {
                    ["Subject"] = $"UnitTest{c["Name"]}"
                }).ToList())
                              .ConfigureAwait(false);

                newCase.Assert();
                Assert.NotEmpty(newCase.SuccessResponses());

                var obj = new AttributedObject("Account", $"acc{Guid.NewGuid():N}")
                {
                    ["Name"]           = $"UnitTest Account {Guid.NewGuid():N}",
                    ["BillingCountry"] = "Hong Kong",
                    ["Contacts"]       = new RecordsObject(Enumerable.Range(1, 2).Select(j =>
                                                                                         new AttributedObject("Contact", $"cont{Guid.NewGuid():N}")
                    {
                        ["FirstName"]      = $"UnitTest Contact A{(char)('a'+j)}",
                        ["LastName"]       = $"UnitTest Contact A{(char)('a'+j)}",
                        ["MailingCountry"] = "Hong Kong"
                    }
                                                                                         ))
                };
                var createTreeResult = await client
                                       .CreateAsync("Account", new RecordsObject(new[] { obj }).ToCreateRequest())
                                       .ConfigureAwait(false);

                createTreeResult.Assert();
                Assert.NotEmpty(createTreeResult.Results ?? new List <SaveResult>());

                var accounts =
                    Enumerable.Range(1, 6).Select(i => new AttributedObject("Account", $"acc{i}")
                {
                    ["Name"]           = $"UnitTest Account {i}",
                    ["BillingCountry"] = "Hong Kong",
                    ["Contacts"]       = new RecordsObject(Enumerable.Range(1, 2).Select(j =>
                                                                                         new AttributedObject("Contact", $"cont{Guid.NewGuid():N}")
                    {
                        ["FirstName"]      = $"UnitTest Contact B{(char)('a'+j)}",
                        ["LastName"]       = $"UnitTest Contact B{(char)('a'+j)}",
                        ["MailingCountry"] = "Hong Kong"
                    }))
                });

                var accountsResult = await client.Composite.CreateTreeAsync("Account", accounts.ToList())
                                     .ConfigureAwait(false);

                accountsResult.Assert();
                Assert.NotEmpty(accountsResult.Results ?? new List <SaveResult>());
            }
            finally
            {
                await DeleteTestingRecords(client)
                .ConfigureAwait(false);
            }
        }