Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public InstagramFeed.InstagramImage GetByInstagramId(string id)
        {
            QueryResult <InstagramFeed.Parse.InstagramImage> result = _client.GetObjects <InstagramFeed.Parse.InstagramImage>(new { instagramImageId = id });

            if (result == null || result.Results == null || result.Results.Count == 0)
            {
                return(null);
            }

            // delete duplicates if found. This is a self cleaning feature to catch when the same instagram image is accidentally imported more than once.
            if (ParseSettings.Instance.ForceDeleteDuplicates && result.Results.Count > 1)
            {
                for (int i = 0; i < result.Results.Count; i++)
                {
                    if (i == 0)
                    {
                        continue;
                    }
                    var image = result.Results[i];
                    _client.DeleteObject(image);

                    // todo : log this
                }
            }

            return(this.Load(result.Results[0]));
        }
Пример #2
0
        public void TestObjects()
        {
            var obj = GetFakeObj();

            // make sure creating works
            var result = _client.CreateObject(obj).Result;

            AssertParseObjectEqual(obj, result);

            // make sure updating works
            result.SomeNullableBool = true;
            result.SomeGeoPoint     = null;
            var result2 = _client.Update(result).Result;

            AssertParseObjectEqual(result, result2);

            // make sure retreive works
            var result3 = _client.GetObject <ParseUnitTestObj>(result2.ObjectId).Result;

            AssertParseObjectEqual(result2, result3);

            // make sure recursive retreive works
            result3 = _client.GetObject <ParseUnitTestObj>(result.ObjectId, true).Result;
            AssertParseObjectEqual(result2, result3);
            Assert.AreNotEqual(result3.SomePointer.CreatedAt, default(DateTime));

            // make sure querying works
            var result4 = _client.GetObjects <ParseUnitTestObj>(new
            {
                SomeByte = new Constraint {
                    GreaterThan = obj.SomeByte + 1
                },
                SomeInt = new Constraint {
                    LessThanOrEqualTo = obj.SomeInt - 1
                },
            });

            Assert.IsTrue(result4.TotalCount == 0);
            result4 = _client.GetObjects <ParseUnitTestObj>(new
            {
                SomeShort = new Constraint {
                    NotEqualTo = obj.SomeShort + 1
                },
            });
            Assert.IsTrue(result4.TotalCount > 0);

            // make sure delete works
            _client.DeleteObject(result3);
            var shouldFail = _client.GetObject <ParseUnitTestObj>(result2.ObjectId);

            Assert.IsNotNull(shouldFail.Exception);

            var result5 = _client.GetObjects <ParseUnitTestObj>();

            Assert.IsFalse(result5.Results.Any(x => x.ObjectId.Equals(result.ObjectId)));
        }
Пример #3
0
        public InstagramFeed.ImageVote GetVote(string voter, string instagramImageId)
        {
            QueryResult <InstagramFeed.Parse.ImageVote> result = _client.GetObjects <InstagramFeed.Parse.ImageVote>(new { voterId = voter, instagramImageId = instagramImageId });

            if (result == null || result.Results == null || result.Results.Count == 0)
            {
                return(null);
            }
            return(this.Load(result.Results[0]));
        }