Ejemplo n.º 1
0
        // 查看所有活动
        public List <ActivityView> getActivities()
        {
            List <Activity>     activities    = _context.Activities.Where(x => x.ActivityId != null).ToList();
            List <ActivityView> activityViews = new List <ActivityView>();

            foreach (Activity activity in activities)
            {
                ActivityView activityView = new ActivityView();
                activityView.ActivityId = activity.ActivityId;
                activityView.Name       = activity.Name;
                activityView.StartTime  = activity.StartTime;
                activityView.EndTime    = activity.EndTime;
                switch (activity.Category)
                {
                case 1: activityView.Category = "全场活动"; break;

                case 2: activityView.Category = "特类商品"; break;

                case 3: activityView.Category = "店铺活动"; break;

                case 4: activityView.Category = "单个商品"; break;
                }
                activityView.Description = activity.Description;

                activityViews.Add(activityView);
            }

            return(activityViews);
        }
Ejemplo n.º 2
0
 private void ShowSelectedContactTabs(MemberModel member)
 {
     if (member != null)
     {
         _originalMember = member.Clone();
         if (CanViewContactDetails)
         {
             ContactDetailsContent = new ContactDetailsView(member.Contact, true, member);
         }
         if (CanViewCorrespondence)
         {
             CorrespondenceContent = new CorrespondenceView(member.Contact, "Member");
         }
         if (CanViewActivity)
         {
             ActivityContent = new ActivityView(member.Contact);
         }
         if (CanViewAccounts)
         {
             AccountsContent = new AccountsView(member.Contact);
         }
         if (CanViewMemberDetails)
         {
             MemberDetailsContent = new MemberDetailsView(member);
         }
         if (CanViewNoteDetails)
         {
             MemberNotesContent = new MemberNotesView(member);
         }
         if (CanViewUpdateDetails)
         {
             MemberUpdateDetailsContent = new MemberUpdateDetailsView(member);
         }
     }
 }
Ejemplo n.º 3
0
        public ActivityContainer()
        {
            View = new ActivityView(); //must set the view first

            InitializeComponent();
            InitializeView();

            BindingUtils.RegisterForNotification("ContentOffsetX", zuiContainer.ZoomHost, (d, e) => { if (View != null)
                                                                                                      {
                                                                                                          View.ViewPosition = new Point(zuiContainer.ZoomHost.ContentOffsetX, zuiContainer.ZoomHost.ContentOffsetY);
                                                                                                      }
                                                 });
            BindingUtils.RegisterForNotification("ContentOffsetY", zuiContainer.ZoomHost, (d, e) => { if (View != null)
                                                                                                      {
                                                                                                          View.ViewPosition = new Point(zuiContainer.ZoomHost.ContentOffsetX, zuiContainer.ZoomHost.ContentOffsetY);
                                                                                                      }
                                                 });
            BindingUtils.RegisterForNotification("ContentViewportWidth", zuiContainer.ZoomHost, (d, e) => { if (View != null)
                                                                                                            {
                                                                                                                View.ViewWidth = (double)e.NewValue;
                                                                                                            }
                                                 });
            BindingUtils.RegisterForNotification("ContentViewportHeight", zuiContainer.ZoomHost, (d, e) => { if (View != null)
                                                                                                             {
                                                                                                                 View.ViewHeight = (double)e.NewValue;
                                                                                                             }
                                                 });

            LoadParts();
        }
Ejemplo n.º 4
0
        public StopActivityPage(ManagerPage parent, Activity a, bool NextIsKnown)
        {
            InitializeComponent();
            App.AddTitle(TitleLayout);

            ManagerP     = parent;
            ThisActivity = a;

            LytIndicator.IsVisible = false;

            ActivityView aView = new ActivityView(ThisActivity);

            aView.AsListView(false);

            if (aView.ItemLayout.Children.Count < 1)
            {
                ButtonToQuit.IsVisible = true;
            }
            else
            {
                aView.OnAllInputItemsFilled += (s, e) =>
                {
                    ButtonToQuit.IsVisible = true;
                };
            }

            LytActivity.Children.Add(aView);
        }
Ejemplo n.º 5
0
        async void InitAsync(ActivityView activity)
        {
            //get user profile who hosts this activity
            UserProfileView user = await Helper.GetUserProfileViewObj(activity.HostUserId);

            //activity picture
            Img_ActivityPicture.Source        = activity.Image;
            Img_ActivityPicture.Aspect        = Aspect.AspectFill;
            Img_ActivityPicture.HeightRequest = 250;

            //activity title and category
            Lbl_ActivityTitle.Text           = activity.ActivityTitle;
            Lbl_ActivityTitle.FontAttributes = FontAttributes.Bold;
            Lbl_Category.Text           = activity.Category;
            Lbl_Category.FontAttributes = FontAttributes.Italic;

            //activity metrics
            Lbl_Guests.Text     = activity.JoinedUsersListIds.Count.ToString() + "/" + activity.NoPlaces.ToString();
            Img_Guests.Source   = "multipleusers.png";
            Lbl_Location.Text   = activity.Where;
            Img_Location.Source = "locationicon.png";
            Lbl_Date.Text       = activity.When.ToString("ddd dd MM",
                                                         CultureInfo.CreateSpecificCulture("en-US"));
            Img_Date.Source = "dateicon.png";

            //host user profile image and name
            Img_ProfilePicture.Aspect        = Aspect.AspectFill;
            Img_ProfilePicture.Source        = user.ProfileImage;
            Img_ProfilePicture.HeightRequest = 60;
            Img_ProfilePicture.WidthRequest  = 60;
            Lbl_HostName.Text = user.FirstName + " " + user.LastName;

            //activity description
            Lbl_Desc.Text = activity.ShortDescription;
        }
        void ReleaseDesignerOutlets()
        {
            //if (activityView != null) {
            //    activityView.Dispose ();
            //    activityView = null;
            //}

            if (ActivityView != null)
            {
                ActivityView.Dispose();
                ActivityView = null;
            }

            if (blurView != null)
            {
                blurView.Dispose();
                blurView = null;
            }

            if (hudView != null)
            {
                hudView.Dispose();
                hudView = null;
            }

            if (textLabel != null)
            {
                textLabel.Dispose();
                textLabel = null;
            }
        }
        private void UpdateForm(ActivityView current)
        {
            if (CurrentActivity != null)
            {
                CurrentActivity.UntapActivity();
            }

            CurrentActivity = current;

            CurrentActivity.TapActivity();
        }
Ejemplo n.º 8
0
        //getActivity data
        public JsonResult GetActivity()
        {
            ActivityView obj = new ActivityView();
            DataSet      ds  = new DataSet();

            ds = obj.GetActivity();
            string Data = Newtonsoft.Json.JsonConvert.SerializeObject(ds);

            return(new JsonResult {
                Data = Data, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
Ejemplo n.º 9
0
        public IViewComponentResult Invoke(ActivityView pActivityView)
        {
            if (pActivityView == null)
            {
                throw new ArgumentNullException(nameof(pActivityView));
            }
            ActivityItemComponentModel model = new ActivityItemComponentModel {
                ActivityView = pActivityView
            };

            return(View(model));
        }
Ejemplo n.º 10
0
        public ActivityPage(ActivityView activity)
        {
            InitializeComponent();

            if (activity == null)
            {
                //set to some default activity
                activity = Helper.GetDefaultActivity();
            }

            InitAsync(activity);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 从活动节点转换为活动视图
        /// </summary>
        /// <param name="entity">活动实体</param>
        /// <returns>活动视图</returns>
        public static ActivityView ConvertFromActivityEntity(ActivityEntity entity)
        {
            var view = new ActivityView();

            view.ActivityGUID     = entity.ActivityGUID;
            view.ActivityName     = entity.ActivityName;
            view.ActivityCode     = entity.ActivityCode;
            view.ActivityType     = entity.ActivityType.ToString();
            view.TriggerType      = entity.ActivityTypeDetail.TriggerType.ToString();
            view.MessageDirection = entity.ActivityTypeDetail.MessageDirection.ToString();
            view.Expression       = entity.ActivityTypeDetail.Expression;
            return(view);
        }
Ejemplo n.º 12
0
        private void StartTimingActivity()
        {
            LytCurrentActivity.Children.Clear();
            ActivityView aView = new ActivityView(CurrentActivity);

            aView.AsTimerView();
            LytCurrentActivity.Children.Add(aView);

            LytIndicator.IsVisible = false;
            LytTimer.IsVisible     = true;

            ActivityTimer.Start();
        }
Ejemplo n.º 13
0
 private void OpenActivity()
 {
     if (activityView == null)
     {
         activityView             = new ActivityView();
         activityViewModel        = new ActivityViewModel(_eventAggregator, new BL.BlRouter(_eventAggregator), getDateTime);
         activityView.DataContext = activityViewModel;
     }
     else
     {
         activityViewModel.LoadAsync();
     }
     SelectedView = activityView;
 }
Ejemplo n.º 14
0
        private async Task LoginAsync()
        {
            if (!IsUserLoggedIn())
            {
                FindName(nameof(LoginView));
                await Task.Delay(100);
            }

            ShowTopPanel();

            await ScrollToViewAsync(nameof(ActivityView), ActivityView, ActivityHostView);

            ActivityMenuItem.IsChecked = true;

            await ActivityView.InitializeAsync();
        }
Ejemplo n.º 15
0
        public ActionResult Edit(int?activityPK)
        {
            if (activityPK != null)
            {
                IActivitiesRepository activitiesRepository = new ActivitiesRepository(db);
                Activity     activity     = activitiesRepository.GetActivityByPK((int)activityPK);
                ActivityView activityView = new ActivityView();

                activityView.ConvertFrom(activity, activityView);

                return(View(activityView));
            }
            else
            {
                return(RedirectToAction("Index", "Activity"));
            }
        }
Ejemplo n.º 16
0
        public object GetJson()
        {
            List <LineView>     lines      = new List <LineView>();
            List <ActivityView> activities = new List <ActivityView>();

            foreach (Line mLine in m_Lines)
            {
                lines.Add(LineView.From(mLine));
            }

            foreach (Activity act in m_Acts)
            {
                activities.Add(ActivityView.From(act));
            }

            return(new { lines = lines, activities = activities });
        }
Ejemplo n.º 17
0
    IEnumerator ShareScoreProcess()
    {
        yield return(new WaitForEndOfFrame());

#if UNITY_IPHONE
        Texture2D screenshot = new Texture2D(Screen.width, Screen.height);
        screenshot.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
        screenshot.Apply();

        byte[] imgBytes     = screenshot.EncodeToPNG();
        uint   imgLength    = (uint)imgBytes.Length;
        int    score        = GameController.instance.GetScore();
        string shareMessage = string.Format("Wow ! I've scored {0} in this game !", score);
        string subjectTitle = "Score Sharing";
        ActivityView.Share(shareMessage, subjectTitle, imgBytes, imgLength);
#endif
    }
Ejemplo n.º 18
0
        public ActionResult Index()
        {
            IActivitiesRepository activitiesRepository = new ActivitiesRepository(db);

            int    page       = !String.IsNullOrWhiteSpace(Request.QueryString["page"]) ? Convert.ToInt32(Request.QueryString["page"]) : 1;
            int    pageSize   = !String.IsNullOrWhiteSpace(Request.QueryString["pageSize"]) ? Convert.ToInt32(Request.QueryString["pageSize"]) : Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["ResultsPerPage"]);
            string sortOrder  = !String.IsNullOrWhiteSpace(Request.QueryString["sortOrder"]) ? Request.QueryString["sortOrder"] : "DESC";
            string sortColumn = !String.IsNullOrWhiteSpace(Request.QueryString["sortColumn"]) ? Request.QueryString["sortColumn"] : "ActivityPK";
            string ordering   = sortColumn + " " + sortOrder;

            ordering = ordering.Trim();

            IQueryable <ActivityView> activities = ActivityView.GetHomeView(activitiesRepository.GetValid())
                                                   .OrderBy(ordering);

            if (!String.IsNullOrWhiteSpace(Request.QueryString["searchString"]))
            {
                string searchString = Request.QueryString["searchString"].ToString();
                activities = activities.Where(c => c.Name.Contains(searchString) || c.Code.Contains(searchString));
            }

            activities = activities.Page(page, pageSize);

            if (!String.IsNullOrWhiteSpace(Request.QueryString["searchString"]))
            {
                string searchString = Request.QueryString["searchString"].ToString();
                ViewData["numberOfRecords"] = activitiesRepository.GetValid().Where(c => c.Name.Contains(searchString) || c.Code.Contains(searchString)).Count();
            }
            else
            {
                ViewData["numberOfRecords"] = activitiesRepository.GetValid().Count();
            }

            int numberOfPages = ((int)ViewData["numberOfRecords"] + pageSize - 1) / pageSize;

            if (page > numberOfPages)
            {
                string url = LinkHelper.getQueryStringArray(new string[] { "page" });
                return(Redirect("Activity?" + url + "page=" + numberOfPages));
            }
            else
            {
                return(View("Index", activities.ToList()));
            }
        }
Ejemplo n.º 19
0
        private void AddActivityViewToTree(ActivityView view)
        {
            if (this.ViewTree.Root == null)
            {
                this.ViewTree.Root = view;
            }
            else
            {
                string parentId = ObjectIdManager.GetId(this.CurrentParent);

                var parentView = this.ViewTree.FindActivityView(parentId) as IActivityViewContainer;

                if (parentView != null)
                {
                    parentView.Add(view, this.CurrentParentPropertyName);
                }
            }
        }
Ejemplo n.º 20
0
        public ActionResult Edit(ActivityView activityView)
        {
            if (ModelState.IsValid)
            {
                IActivitiesRepository activitiesRepository = new ActivitiesRepository(db);
                Activity activity = activitiesRepository.GetActivityByPK((int)activityView.ActivityPK);
                activityView.ConvertTo(activityView, activity);

                activitiesRepository.SaveChanges();

                TempData["message"] = LayoutHelper.GetMessage("UPDATE", activity.ActivityPK);

                return(RedirectToAction("Index", "Activity"));
            }
            else
            {
                return(View(activityView));
            }
        }
Ejemplo n.º 21
0
 public IActionResult New(ActivityView model)
 {
     if (ModelState.IsValid)
     {
         Activity NewActivity = new Activity();
         NewActivity.Title       = model.Title;
         NewActivity.Time        = model.Time;
         NewActivity.Date        = model.Date;
         NewActivity.Duration    = model.Duration;
         NewActivity.Address     = model.Address;
         NewActivity.Description = model.Description;
         NewActivity.UserId      = ActiveUser.UserId;
         _context.Activities.Add(NewActivity);
         _context.SaveChanges();
         return(RedirectToAction("Show", new { id = NewActivity.ActivityId }));
     }
     ViewBag.errors = ModelState.Values;
     return(View("CreateActivity"));
 }
Ejemplo n.º 22
0
        private void OpenActivity(object context)
        {
            var selectedActivity = (Activity)context;

            if (selectedActivity == null)
            {
                MessageBox.Show("Um eine Aktivität zu öffnen, muss eine Aktivität erstellt und ausgewählt sein.", "Aktivität öffnen");
            }
            else
            {
                ActivityView activityView = new ActivityView();

                var contextActivityView = (ActivityViewViewModel)activityView.DataContext;
                contextActivityView.contextPhaseViewViewModel = this;
                contextActivityView.selectedActivity          = selectedActivity;
                contextActivityView.SetActivityValues();
                activityView.Show();
            }
        }
        public void CreateActivityList()
        {
            // When activities are loaded
            foreach (Activity a in ListActivity)
            {
                // Show on screen
                ActivityView aView = new ActivityView(a);
                aView.AsListView(true);
                aView.OnFormHasFilled += OnStartingActivity;

                TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer();
                tapGestureRecognizer.Tapped += (s, e) => {
                    UpdateForm(aView);
                };
                aView.GestureRecognizers.Add(tapGestureRecognizer);

                Activities.Children.Add(aView);
            }
        }
Ejemplo n.º 24
0
        public void TestActivityConvert()
        {
            var service = CreateService <ActivityViewSource>();

            //Just some standard content view
            var view = new ActivityView()
            {
                id          = 99,
                contentId   = 5,
                userId      = 6,
                type        = "tc",
                contentType = "pansu",
                date        = DateTime.Now,
                extra       = "yeah yeah ok",
                action      = "!u"
            };

            var temp  = service.FromView(view);
            var view2 = service.ToView(temp);

            Assert.Equal(view, view2);
        }
Ejemplo n.º 25
0
 private void ShowSelectedContactTabs(ContactModel model)
 {
     if (model != null)
     {
         if (CanViewContactDetails)
         {
             ContactDetailsContent = new ContactDetailsView(model);
         }
         if (CanViewCorrespondence)
         {
             CorrespondenceContent = new CorrespondenceView(model, "Contact");
         }
         if (CanViewActivity)
         {
             ActivityContent = new ActivityView(model);
         }
         if (CanViewAccounts)
         {
             AccountsContent = new AccountsView(model);
         }
     }
 }
Ejemplo n.º 26
0
        // 查看指定活动
        public List <ActivityView> getOneActivity(string activityID)
        {
            if (activityID == "")
            {
                return(null);
            }
            Activity activity = _context.Activities.Where(x => x.ActivityId == activityID).FirstOrDefault();

            List <ActivityView> activityViews = new List <ActivityView>();

            if (activity == null)
            {
                return(activityViews = null);
            }

            ActivityView activityView = new ActivityView();

            activityView.ActivityId = activity.ActivityId;
            activityView.Name       = activity.Name;
            activityView.StartTime  = activity.StartTime;
            activityView.EndTime    = activity.EndTime;
            switch (activity.Category)
            {
            case 1: activityView.Category = "全场活动"; break;

            case 2: activityView.Category = "特类商品"; break;

            case 3: activityView.Category = "店铺活动"; break;

            case 4: activityView.Category = "单个商品"; break;
            }
            activityView.Description = activity.Description;

            activityViews.Add(activityView);

            return(activityViews);
        }
Ejemplo n.º 27
0
        private ActivityView FindActivityView(ActivityView activityView, string activityId)
        {
            if (activityView.ActivityId == activityId)
            {
                return(activityView);
            }

            var container = activityView as IActivityViewContainer;

            if (container != null)
            {
                foreach (var childView in container.ActivityViews)
                {
                    var targetView = this.FindActivityView(childView, activityId);

                    if (targetView != null)
                    {
                        return(targetView);
                    }
                }
            }

            return(null);
        }
Ejemplo n.º 28
0
 public static ActivityView CreateActivityView(int activityId, global::System.DateTime activityDate, int totalNumberOfClasses, int totalNumberOfCounselor, int totalNumberOfRounds, int districtId, int numberOfAssigedCounselor, bool isMissingCounselors, global::System.DateTime startTime, global::System.DateTime endTime)
 {
     ActivityView activityView = new ActivityView();
     activityView.ActivityId = activityId;
     activityView.ActivityDate = activityDate;
     activityView.TotalNumberOfClasses = totalNumberOfClasses;
     activityView.TotalNumberOfCounselor = totalNumberOfCounselor;
     activityView.TotalNumberOfRounds = totalNumberOfRounds;
     activityView.DistrictId = districtId;
     activityView.NumberOfAssigedCounselor = numberOfAssigedCounselor;
     activityView.IsMissingCounselors = isMissingCounselors;
     activityView.StartTime = startTime;
     activityView.EndTime = endTime;
     return activityView;
 }
Ejemplo n.º 29
0
 public void AddToActivityViews(ActivityView activityView)
 {
     base.AddObject("ActivityViews", activityView);
 }
Ejemplo n.º 30
0
        private TraktActivity GetActivity(ActivityView activityView)
        {
            // if we're getting stuff locally for our own activity
            // there is no need to set the update animation nor get incremental updates
            if (activityView == ActivityView.me)
            {
                SetUpdateAnimation(false);
                PreviousActivity = GetMyActivityFromCache();
                return PreviousActivity;
            }

            SetUpdateAnimation(true);

            if (PreviousActivity == null || PreviousActivity.Activities == null || ActivityStartTime <= 0 || GetFullActivityLoad)
            {
                switch (activityView)
                {
                    case ActivityView.community:
                        PreviousActivity = TraktAPI.TraktAPI.GetCommunityActivity();
                        break;

                    case ActivityView.followers:
                        PreviousActivity = TraktAPI.TraktAPI.GetFollowersActivity();
                        break;

                    case ActivityView.following:
                        PreviousActivity = TraktAPI.TraktAPI.GetFollowingActivity();
                        break;

                    case ActivityView.friends:
                        PreviousActivity = TraktAPI.TraktAPI.GetFriendActivity(false);
                        break;

                    case ActivityView.friendsandme:
                        PreviousActivity = TraktAPI.TraktAPI.GetFriendActivity(true);
                        break;

                    case ActivityView.me:
                        PreviousActivity = GetMyActivityFromCache();
                        break;
                }
                GetFullActivityLoad = false;
            }
            else
            {
                TraktActivity incrementalActivity = null;

                // get latest incremental change using last current timestamp as start point
                switch (activityView)
                {
                    case ActivityView.community:
                        incrementalActivity = TraktAPI.TraktAPI.GetCommunityActivity(null, null, ActivityStartTime, DateTime.UtcNow.ToEpoch());
                        break;

                    case ActivityView.followers:
                        incrementalActivity = TraktAPI.TraktAPI.GetFollowersActivity(null, null, ActivityStartTime, DateTime.UtcNow.ToEpoch());
                        break;

                    case ActivityView.following:
                        incrementalActivity = TraktAPI.TraktAPI.GetFollowingActivity(null, null, ActivityStartTime, DateTime.UtcNow.ToEpoch());
                        break;

                    case ActivityView.friends:
                        incrementalActivity = TraktAPI.TraktAPI.GetFriendActivity(null, null, ActivityStartTime, DateTime.UtcNow.ToEpoch(), false);
                        break;

                    case ActivityView.friendsandme:
                        incrementalActivity = TraktAPI.TraktAPI.GetFriendActivity(null, null, ActivityStartTime, DateTime.UtcNow.ToEpoch(), true);
                        break;

                    case ActivityView.me:
                        incrementalActivity = GetMyActivityFromCache();
                        break;
                }

                // join the Previous request with the current
                if (incrementalActivity != null && incrementalActivity.Activities != null)
                {
                    PreviousActivity.Activities = incrementalActivity.Activities.Union(PreviousActivity.Activities).Take(TraktSkinSettings.DashboardActivityFacadeMaxItems).ToList();
                    PreviousActivity.Timestamps = incrementalActivity.Timestamps;
                }
            }

            // store current timestamp and only request incremental change next time
            if (PreviousActivity != null && PreviousActivity.Timestamps != null)
            {
                ActivityStartTime = PreviousActivity.Timestamps.Current;
            }

            SetUpdateAnimation(false);

            return PreviousActivity;
        }
Ejemplo n.º 31
0
        private string GetActivityDescription(ActivityView activityView)
        {
            string description = string.Empty;

            switch (activityView)
            {
                case ActivityView.community:
                    description = Translation.ActivityCommunityDesc;
                    break;

                case ActivityView.followers:
                    description = Translation.ActivityFollowersDesc;
                    break;

                case ActivityView.following:
                    description = Translation.ActivityFollowingDesc;
                    break;

                case ActivityView.friends:
                    description = Translation.ActivityFriendsDesc;
                    break;

                case ActivityView.friendsandme:
                    description = Translation.ActivityFriendsAndMeDesc;
                    break;

                case ActivityView.me:
                    description = Translation.ActivityMeDesc;
                    break;
            }

            return description;
        }
Ejemplo n.º 32
0
        /// <summary>
        /// Get push notifications message string from activity view
        /// </summary>
        /// <param name="activity">Activity view</param>
        /// <param name="userHandle">which user this push notification is being sent to</param>
        /// <returns>Push notifications message string</returns>
        private string ActivityViewToString(ActivityView activity, string userHandle)
        {
            // check inputs
            if (activity == null)
            {
                this.log.LogException("got null activity");
            }

            if (string.IsNullOrWhiteSpace(userHandle))
            {
                this.log.LogException("got null userHandle");
            }

            string result = string.Empty;

            // first add the actor user name(s)
            switch ((ActivityType)activity.ActivityType)
            {
            // aggregate notification
            case ActivityType.Like:
            case ActivityType.Comment:
            case ActivityType.Reply:
                if (activity.ActorUsers == null || activity.ActorUsers.Count < 1)
                {
                    this.log.LogException("unexpected ActorUsers");
                }

                // add usernames
                result += this.UserListToString(activity.ActorUsers, userHandle);

                // do not send a notification if the result is null
                if (string.IsNullOrWhiteSpace(result))
                {
                    // this can happen when the user is deleted before the push notification has been processed
                    this.log.LogInformation("got an empty user list, perhaps due to a race condition");
                    return(null);
                }

                // add remaining count of users
                if (activity.TotalActions > activity.ActorUsers.Count)
                {
                    result += " & " + (activity.TotalActions - activity.ActorUsers.Count) + " other user";
                }

                if (activity.TotalActions > (activity.ActorUsers.Count + 1))
                {
                    result += "s";
                }

                break;

            // non-aggregate notifications
            case ActivityType.CommentPeer:
            case ActivityType.ReplyPeer:
            case ActivityType.Following:
            case ActivityType.FollowRequest:
            case ActivityType.FollowAccept:
                if (activity.ActorUsers == null || activity.ActorUsers.Count != 1 || activity.ActorUsers[0] == null)
                {
                    // this can happen when the user is deleted before the push notification has been processed
                    this.log.LogInformation("got a null user, perhaps due to a race condition");
                    return(null);
                }

                result += this.GetUserDisplayName(activity.ActorUsers[0]);

                // sometimes, the user may be invalid
                if (string.IsNullOrWhiteSpace(result))
                {
                    this.log.LogInformation("exiting due to empty actor string");
                    return(null);
                }

                break;

            default:
                this.log.LogException("got unusual activity type " + activity.ActivityType);
                break;
            }

            // now add the action
            switch ((ActivityType)activity.ActivityType)
            {
            case ActivityType.Like:
                result += " liked";
                break;

            case ActivityType.Comment:
                result += " commented on";
                break;

            case ActivityType.Reply:
                result += " replied to";
                break;

            case ActivityType.CommentPeer:
            case ActivityType.ReplyPeer:
                result += " mentioned";
                break;

            case ActivityType.Following:
                result += " is following";
                break;

            case ActivityType.FollowRequest:
                result += " requested to follow";
                break;

            case ActivityType.FollowAccept:
                result += " accepted a follow request from";
                break;

            default:
                this.log.LogException("got unusual activity type " + activity.ActivityType);
                break;
            }

            // now add the acted on owner
            switch ((ActivityType)activity.ActivityType)
            {
            case ActivityType.Like:
            case ActivityType.Comment:
            case ActivityType.Reply:
                if (activity.ActedOnUser == null || activity.ActedOnUser.UserHandle == userHandle)
                {
                    result += " your";
                }
                else
                {
                    string actedOnUserName = this.GetUserDisplayName(activity.ActedOnUser);
                    if (string.IsNullOrWhiteSpace(actedOnUserName))
                    {
                        // this can happen when the acted on user has been deleted
                        this.log.LogInformation("got null acted on user name");
                        return(null);
                    }

                    result += " " + actedOnUserName + "'s";
                }

                break;

            case ActivityType.CommentPeer:
            case ActivityType.ReplyPeer:
                result += " you in a";
                break;

            case ActivityType.Following:
            case ActivityType.FollowRequest:
            case ActivityType.FollowAccept:
                if (activity.ActedOnUser == null || activity.ActedOnUser.UserHandle == userHandle)
                {
                    result += " you";
                }
                else
                {
                    string actedOnUserName = this.GetUserDisplayName(activity.ActedOnUser);
                    if (string.IsNullOrWhiteSpace(actedOnUserName))
                    {
                        // this can happen when the acted on user has been deleted
                        this.log.LogInformation("got null acted on user name");
                        return(null);
                    }

                    result += " " + actedOnUserName;
                }

                break;

            default:
                this.log.LogException("got unusual activity type " + activity.ActivityType);
                break;
            }

            // now add the acted on content type
            switch ((ActivityType)activity.ActivityType)
            {
            case ActivityType.Like:
            case ActivityType.Comment:
            case ActivityType.Reply:
            case ActivityType.CommentPeer:
            case ActivityType.ReplyPeer:
                // type of content
                if ((ContentType)activity.ActedOnContent.ContentType == ContentType.Comment)
                {
                    result += " comment";
                }
                else if ((ContentType)activity.ActedOnContent.ContentType == ContentType.Reply)
                {
                    result += " reply";
                }
                else if ((ContentType)activity.ActedOnContent.ContentType == ContentType.Topic)
                {
                    result += " topic";
                }
                else
                {
                    this.log.LogException("unexpected ActedOnContent Type " + activity.ActedOnContent.ContentType);
                }

                break;

            case ActivityType.Following:
            case ActivityType.FollowRequest:
            case ActivityType.FollowAccept:
                // do nothing
                break;

            default:
                this.log.LogException("got unusual activity type " + activity.ActivityType);
                break;
            }

            return(result);
        }
 public static void SetActivityView(DependencyObject obj, ActivityView value)
 {
     obj.SetValue(ActivityViewProperty, value);
 }
Ejemplo n.º 34
0
 public MyListItemEventArgs(ActivityView item)
 {
     this.MyItem = item;
 }
Ejemplo n.º 35
0
 public static void SetActivityView(DependencyObject obj, ActivityView value)
 {
     obj.SetValue(ActivityViewProperty, value);
 }
Ejemplo n.º 36
0
        internal static string GetActivityListItemTitle(TraktActivity.Activity activity, ActivityView view = ActivityView.community)
        {
            if (activity == null)
                return null;

            string itemName = GetActivityItemName(activity);
            if (string.IsNullOrEmpty(itemName))
                return null;

            string userName = activity.User == null ? "" : activity.User.Username;
            string title = string.Empty;

            if (string.IsNullOrEmpty(activity.Action) || string.IsNullOrEmpty(activity.Type))
                return null;

            var action = (ActivityAction)Enum.Parse(typeof(ActivityAction), activity.Action);
            var type = (ActivityType)Enum.Parse(typeof(ActivityType), activity.Type);

            switch (action)
            {
                case ActivityAction.watching:
                    title = string.Format(Translation.ActivityWatching, userName, itemName);
                    break;

                case ActivityAction.scrobble:
                    if (activity.Plays() > 1)
                    {
                        title = string.Format(Translation.ActivityWatchedWithPlays, userName, itemName, activity.Plays());
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityWatched, userName, itemName);
                    }
                    break;

                case ActivityAction.checkin:
                    title = string.Format(Translation.ActivityCheckedIn, userName, itemName);
                    break;

                case ActivityAction.seen:
                    if (type == ActivityType.episode && activity.Episodes.Count > 1)
                    {
                        title = string.Format(Translation.ActivitySeenEpisodes, userName, activity.Episodes.Count, itemName);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivitySeen, userName, itemName);
                    }
                    break;

                case ActivityAction.collection:
                    if (type == ActivityType.episode && activity.Episodes.Count > 1)
                    {
                        title = string.Format(Translation.ActivityCollectedEpisodes, userName, activity.Episodes.Count, itemName);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityCollected, userName, itemName);
                    }
                    break;

                case ActivityAction.rating:
                    title = string.Format(Translation.ActivityRatingAdvanced, userName, itemName, activity.Rating);
                    break;

                case ActivityAction.watchlist:
                    if (view != ActivityView.me)
                    {
                        title = string.Format(Translation.ActivityWatchlist, userName, itemName);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityYourWatchlist, userName, itemName);
                    }
                    break;

                case ActivityAction.review:
                    title = string.Format(Translation.ActivityReview, userName, itemName);
                    break;

                case ActivityAction.shout:
                    title = string.Format(Translation.ActivityShouts, userName, itemName);
                    break;

                case ActivityAction.pause:
                    title = string.Format(Translation.ActivityPaused, userName, itemName, Math.Round(activity.Progress, 0));
                    break;

                case ActivityAction.created: // created list
                    title = string.Format(Translation.ActivityCreatedList, userName, itemName);
                    break;

                case ActivityAction.updated: // updated list
                    if (activity.List.ItemCount == 0)
                    {
                        title = string.Format(Translation.ActivityUpdatedList, userName, itemName);
                    }
                    else if (activity.List.ItemCount == 1)
                    {
                        title = string.Format(Translation.ActivityUpdatedListWithItemCountSingular, userName, itemName, 1);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityUpdatedListWithItemCount, userName, itemName, activity.List.ItemCount);
                    }
                    break;

                case ActivityAction.item_added: // added item to list
                    title = string.Format(Translation.ActivityAddToList, userName, itemName, activity.List.Name);
                    break;

                case ActivityAction.like:
                    if (type == ActivityType.comment)
                    {
                        title = string.Format(Translation.ActivityLikedComment, userName, activity.Shout.User.Username, itemName);
                    }
                    else if (type == ActivityType.list)
                    {
                        title = string.Format(Translation.ActivityLikedList, userName, itemName);
                    }
                    break;
            }

            // remove user name from your own feed, its not needed - you know who you are
            if ((ActivityView)TraktSettings.ActivityStreamView == ActivityView.me && title.StartsWith(TraktSettings.Username))
                title = title.Replace(TraktSettings.Username + " ", string.Empty);

            return title;
        }