Example #1
0
        public void CreateDataTest()
        {
            const int latMin = 389839880;
            const int latMax = 404887374;
            const int lngMin = 1155541990;
            const int lngMax = 1170812988;

            decimal         lat  = random.Next(latMin, latMax) / 10000000m;
            decimal         lng  = random.Next(lngMin, lngMax) / 10000000m;
            CloudCreateData data = new CloudCreateData()
            {
                Key     = key,
                TableId = tableId,
                Data    = new List <CloudData>()
                {
                    new CloudData()
                    {
                        UdId     = Guid.NewGuid().ToString(),
                        Title    = "地点名称" + Guid.NewGuid().ToString(),
                        Address  = "太原理工大学" + Guid.NewGuid().ToString(),
                        Location = new Location()
                        {
                            Lat = lat, Lng = lng
                        },
                        Tel = "0351-2506887"
                    }
                }
            };
            //模拟成功的示例
            var response = CloudApi.CreateData(data, key, secretKey);

            Assert.IsNotNull(response);
            Assert.AreEqual(response.Status, successStatus);
            Assert.AreEqual(response.Result.Count, 1);
            Assert.IsNotNull(response.Result.Success);
            Assert.IsNotNull(response.Result.Success[0].Id);
            Assert.IsNotNull(response.Result.Success[0].UdId);
            Assert.AreEqual(response.Result.Success[0].RowIdx, 0);
            //模拟失败的示例
            data.Data[0].Title = null;
            response           = CloudApi.CreateData(data, key, secretKey);
            Assert.IsNotNull(response);
            Assert.AreEqual(response.Status, successStatus);
            Assert.AreEqual(response.Result.Count, 0);
            Assert.IsNotNull(response.Result.Failure);
            Assert.AreNotEqual(response.Result.Failure[0].Status, successStatus);
            Assert.IsNotNull(response.Result.Failure[0].UdId);
            Assert.IsNotNull(response.Result.Failure[0].RowIdx);
            Assert.IsNotNull(response.Result.Failure[0].Message);
            Assert.IsTrue(!string.IsNullOrWhiteSpace(response.Body));
        }
Example #2
0
        /// <summary>
        /// 插入数据
        /// </summary>
        /// <param name="data"></param>
        /// <param name="key"></param>
        /// <param name="secretKey"></param>
        /// <returns></returns>
        /// <remarks>CloudData对象中不需要设置的参数,统一设置为null,不要设置为其他空字符串,值类型也必须设置为可空。否则会导致签名失败</remarks>
        public static MapResponse <CloudCreateDataResult> CreateData(CloudCreateData data, string key, string secretKey)
        {
            string datas = JsonConvert.SerializeObject(data, Formatting.None, settings);
            string query = PostRequestBuilder.Create(secretKey, "/place_cloud/data/create")
                           .WithKeyValue("data", JsonConvert.SerializeObject(data.Data, Formatting.None, settings))
                           .WithKeyValue("key", data.Key)
                           .WithKeyValue("table_id", data.TableId)
                           .BuildQueryString();
            string url      = host + query;
            var    response = Post <MapResponse <CloudCreateDataResult> >(url, datas, out string body);

            response.Body = body;
            return(response);
        }