Пример #1
0
        public object Get(GetUserReport request)
        {
            DateTime end_date;

            if (string.IsNullOrEmpty(request.end_date))
            {
                end_date = DateTime.Now;
            }
            else
            {
                _logger.Info("End_Date: " + request.end_date);
                end_date = DateTime.ParseExact(request.end_date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
            }

            List <Dictionary <string, object> > report = Repository.GetUserReport(request.days, end_date);

            foreach (var user_info in report)
            {
                string user_id   = (string)user_info["user_id"];
                string user_name = "Not Known";
                Guid   user_guid = new Guid(user_id);
                MediaBrowser.Controller.Entities.User user = _userManager.GetUserById(user_guid);
                if (user != null)
                {
                    user_name = user.Name;
                }
                user_info.Add("user_name", user_name);

                DateTime last_seen = (DateTime)user_info["latest_date"];
                TimeSpan time_ago  = DateTime.Now.Subtract(last_seen);

                string last_seen_string = GetLastSeenString(time_ago);
                if (last_seen_string == "")
                {
                    last_seen_string = "just now";
                }
                user_info.Add("last_seen", last_seen_string);

                int      seconds    = (int)user_info["total_time"];
                TimeSpan total_time = new TimeSpan(10000000L * (long)seconds);

                string time_played = GetLastSeenString(total_time);
                if (time_played == "")
                {
                    time_played = "< 1 minute";
                }
                user_info.Add("total_play_time", time_played);
            }

            return(report);
        }
Пример #2
0
        public object Get(GetUserReport request)
        {
            AuthorizationInfo auth_user_info = _ac.GetAuthorizationInfo(Request);
            UserPolicy        policy         = _userManager.GetUserPolicy(auth_user_info.User);

            if (!policy.IsAdministrator)
            {
                return(new List <Dictionary <string, object> >());
            }

            DateTime end_date;

            if (string.IsNullOrEmpty(request.end_date))
            {
                end_date = DateTime.Now;
            }
            else
            {
                _logger.Info("End_Date: " + request.end_date);
                end_date = DateTime.ParseExact(request.end_date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
            }

            List <Dictionary <string, object> > report = repository.GetUserReport(request.days, end_date);

            foreach (var user_info in report)
            {
                string user_id   = (string)user_info["user_id"];
                string user_name = "Not Known";
                bool   has_image = false;
                MediaBrowser.Controller.Entities.User user = null;
                if (!string.IsNullOrEmpty(user_id))
                {
                    Guid user_guid = new Guid(user_id);
                    user = _userManager.GetUserById(user_guid);
                }

                if (user != null)
                {
                    user_name = user.Name;
                    has_image = user.HasImage(MediaBrowser.Model.Entities.ImageType.Primary);
                }
                user_info.Add("user_name", user_name);
                user_info.Add("has_image", has_image);

                DateTime last_seen = (DateTime)user_info["latest_date"];
                TimeSpan time_ago  = DateTime.Now.Subtract(last_seen);

                string last_seen_string = GetLastSeenString(time_ago);
                if (last_seen_string == "")
                {
                    last_seen_string = "just now";
                }
                user_info.Add("last_seen", last_seen_string);

                int      seconds    = (int)user_info["total_time"];
                TimeSpan total_time = new TimeSpan(10000000L * (long)seconds);

                string time_played = GetLastSeenString(total_time);
                if (time_played == "")
                {
                    time_played = "< 1 minute";
                }
                user_info.Add("total_play_time", time_played);
            }

            return(report);
        }