// Use md5-hashed date, last updated and version of all dates as ETag content
        public string GenerateETagAll(string username)
        {
            var tag = cache.GetAll().Aggregate("", (text, vp) =>
            {
                return(text + GenerateETagSingle(vp, username, false));
            });

            return(Hash(tag));
        }
        public IActionResult Get()
        {
            IEnumerable <Vertretungsplan> vps = cache.GetAll();

            if (Request.Query.ContainsKey("hidepast"))
            {
                vps = vps.Where(vp => vp.Date >= VertretungsplanTime.Now.Date);
            }

            // List dates
            if (Request.Query.ContainsKey("metadata"))
            {
                return(Ok(vps.Select(vp => new VertretungsplanMetadata(vp))));
            }
            // Show data (all dates)
            else
            {
                return(Ok(vps));
            }
        }