示例#1
0
 public static void HandleContent(NSObject content, IContentsListener listener)
 {
     if (content.GetType() == typeof(NITContent))
     {
         NITContent cont = (NITContent)content;
         listener.GotContentNotification(cont);
     }
     else if (content.GetType() == typeof(NITSimpleNotification))
     {
         NITSimpleNotification cont = (NITSimpleNotification)content;
         listener.GotSimpleNotification(cont);
     }
     else if (content.GetType() == typeof(NITCoupon))
     {
         NITCoupon cont = (NITCoupon)content;
         listener.GotCouponNotification(cont);
     }
     else if (content.GetType() == typeof(NITCustomJSON))
     {
         NITCustomJSON cont = (NITCustomJSON)content;
         listener.GotCustomJSONNotification(cont);
     }
     else if (content.GetType() == typeof(NITFeedback))
     {
         NITFeedback cont = (NITFeedback)content;
         listener.GotFeedbackNotification(cont);
     }
 }
示例#2
0
        public void SendEvent(XCEvent ev)
        {
            if (ev.GetPluginName() == XCFeedbackEvent.PluginName)
            {
                XCFeedbackEvent feedbackEvent = (XamarinBridge.PCL.Types.XCFeedbackEvent)ev;

                XCFeedbackNotification feedback       = feedbackEvent.FeedbackNotification;
                NITFeedback            nativeFeedback = new NITFeedback();

                nativeFeedback = AdapterFeedback.GetNative(feedback);

                NITFeedbackEvent nativeFeedbackEvent = new NITFeedbackEvent(nativeFeedback, feedbackEvent.rating, feedbackEvent.comment);
                NITManager.DefaultManager.SendEventWithEvent(nativeFeedbackEvent, (error) =>
                {
                    if (error != null)
                    {
                        Console.WriteLine("SendEventWithEvent error ios" + error);
                    }
                    else
                    {
                        Console.WriteLine("SendEventWithEvent ios");
                    }
                });
            }
        }
示例#3
0
        public void FromNativeToBridge()
        {
            var XKeys = new NSString[] { (NSString)"key" };
            var XObj  = new NSObject[] { (NSString)"value" };

            NITTrackingInfo NTrack =
                NITTrackingInfo.TrackingInfoFromRecipeId("recid",
                                                         NSDictionary <NSString, NSObject> .FromObjectsAndKeys(XObj, XKeys));

            NITFeedback NFeed = new NITFeedback();

            NFeed.Question            = "Question?";
            NFeed.NotificationMessage = "ciao";
            NFeed.RecipeId            = "rec-id";
            NFeed.TrackingInfo        = NTrack;
            XCFeedbackNotification XFeed = AdapterFeedback.GetCommonType(NFeed);

            Assert.True(XFeed.Question.Equals(NFeed.Question));
            Assert.NotNull(XFeed.TrackingInfo.extras);
            object value = XFeed.TrackingInfo.extras["key"];

            Assert.NotNull(value);
            Assert.True(value is string);
            Assert.True(XFeed.TrackingInfo.extras["key"].Equals("value"));
        }
示例#4
0
            public override void GotFeedback(NITFeedback Feedback, NITTrackingInfo TrackingInfo)
            {
                XCFeedbackNotification XFeedback = AdapterFeedback.GetCommonType(Feedback);

                if (NearPCL.GetContentManager() != null)
                {
                    NearPCL.GetContentManager().GotXFeedbackNotification(XFeedback);
                }
                else
                {
                    Console.WriteLine("You receive a content but you haven't registered a content manager");
                }
            }
示例#5
0
        public static NITFeedback GetNative(XCFeedbackNotification xfeed)
        {
            NITFeedback native = new NITFeedback();

            native.TrackingInfo = NITTrackingInfo.TrackingInfoFromRecipeId(xfeed.TrackingInfo.RecipeId,
                                                                           AdapterUtils.From(xfeed.TrackingInfo.extras));

            native.NotificationMessage = xfeed.NotificationMessage;
            native.Question            = xfeed.Question;
            native.ID = xfeed.Id;

            return(native);
        }
示例#6
0
        public static XCFeedbackNotification GetCommonType(NITFeedback native)
        {
            XCFeedbackNotification xfeed = new XCFeedbackNotification();

            xfeed.TrackingInfo = new XCTrackingInfo();

            xfeed.NotificationMessage = native.NotificationMessage;
            xfeed.Question            = native.Question;
            // xfeed.RecipeId = native.RecipeId;
            xfeed.TrackingInfo.extras   = AdapterUtils.FromNS(native.TrackingInfo.ExtrasDictionary());
            xfeed.TrackingInfo.RecipeId = native.TrackingInfo.RecipeId;
            xfeed.Id = native.ID;

            return(xfeed);
        }
示例#7
0
        public void FromBridgeToNative()
        {
            XCTrackingInfo xtrack = new XCTrackingInfo();

            xtrack.RecipeId = "recid";
            xtrack.extras   = new Dictionary <string, object>();
            xtrack.extras.Add("key", "value");

            XCFeedbackNotification XFeed = new XCFeedbackNotification();

            XFeed.Question            = "Question?";
            XFeed.NotificationMessage = "ciao";
            XFeed.RecipeId            = "rec-id";
            XFeed.TrackingInfo        = xtrack;
            NITFeedback nativeFeed = AdapterFeedback.GetNative(XFeed);

            NSObject val = nativeFeed.TrackingInfo.ExtrasDictionary()["key"];

            Assert.True(nativeFeed.Question.Equals(XFeed.Question));
        }