Example #1
0
        public DashboardEventToken GetDashboardEventToken(int userId, DashboardEnums.eDbEventTypes type, DateRangeToken dates, string eventName = null)
        {
            var token = new DashboardEventToken
            {
                Uid        = Guid.NewGuid()
                , Type     = type
                , Name     = eventName ?? Utils.GetEnumDescription(type)
                , Color    = type.EventType2Color()
                , Enabled  = true
                , IsStatic = false
            };

            if (type == DashboardEnums.eDbEventTypes.Custom || type == DashboardEnums.eDbEventTypes.NewMailchimp)
            {
                return(token);
            }

            token.IsStatic = true;

            using (var context = new lfeAuthorEntities())
            {
                var evenStats = context.tvf_DB_GetAuthorEventStats(userId).FirstOrDefault();

                if (evenStats == null)
                {
                    return(token);
                }

                DateTime?date = null;

                switch (type)
                {
                case DashboardEnums.eDbEventTypes.NewItem:
                    var cd = evenStats.LastCoursePublish;
                    var bd = evenStats.LastBundlePublish;

                    if (cd == null && bd == null)
                    {
                        return(token);
                    }

                    date = (cd ?? DateTime.MinValue).CompareToDate(bd ?? DateTime.MinValue);
                    break;

                case DashboardEnums.eDbEventTypes.NewChapter:
                    date = evenStats.LastChaperCreated;
                    break;

                case DashboardEnums.eDbEventTypes.NewFbStore:
                    date = evenStats.LastChaperCreated;
                    break;

                case DashboardEnums.eDbEventTypes.NewStore:
                    date = evenStats.LastChaperCreated;
                    break;
                }

                token.Date    = date;
                token.Enabled = date != null && (((DateTime)date).Ticks >= dates.from.Ticks && ((DateTime)date).Ticks <= dates.to.Ticks);

                return(token);
            }
        }