public Alias Get(string name, string lastsyncdate)
        {
            name = WebUtility.UrlDecode(name);
            List <Alias> aliases = _aliases.GetAliases().ToList();
            Alias        alias   = null;

            alias = aliases.FirstOrDefault(item => item.Name == name);
            if (name != null && (alias == null && name.Contains("/")))
            {
                // lookup alias without folder name
                alias = aliases.Find(item => item.Name == name.Substring(0, name.IndexOf("/", StringComparison.Ordinal)));
            }
            if (alias == null && aliases.Count > 0)
            {
                // use first alias if name does not exist
                alias = aliases.FirstOrDefault();
            }

            // get sync events
            if (alias != null)
            {
                alias.SyncDate   = DateTime.UtcNow;
                alias.SyncEvents = _syncManager.GetSyncEvents(DateTime.ParseExact(lastsyncdate, "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture));
            }
            return(alias);
        }
예제 #2
0
        public Sync Get(string lastSyncDate)
        {
            Sync sync = new Sync
            {
                SyncDate   = DateTime.UtcNow,
                SyncEvents = _syncManager.GetSyncEvents(_alias.TenantId, DateTime.ParseExact(lastSyncDate, "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture))
            };

            return(sync);
        }
예제 #3
0
        public Alias Get(string path, string sync)
        {
            Alias alias = null;

            if (_accessor.HttpContext != null)
            {
                path  = _accessor.HttpContext.Request.Host.Value + "/" + WebUtility.UrlDecode(path);
                alias = _aliases.GetAlias(path);
            }

            // get sync events
            if (alias != null)
            {
                alias.SyncDate   = DateTime.UtcNow;
                alias.SyncEvents = _syncManager.GetSyncEvents(alias.TenantId, DateTime.ParseExact(sync, "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture));
            }

            return(alias);
        }
예제 #4
0
        public Alias Get(string name, string sync)
        {
            List <Alias> aliases = _aliases.GetAliases().ToList(); // cached
            Alias        alias   = null;

            if (_accessor.HttpContext != null)
            {
                name = (name == "~") ? "" : name;
                name = _accessor.HttpContext.Request.Host.Value + "/" + WebUtility.UrlDecode(name);
                var segments = name.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

                // iterate segments in reverse order
                for (int i = segments.Length; i > 0; i--)
                {
                    name  = string.Join("/", segments, 0, i);
                    alias = aliases.Find(item => item.Name == name);
                    if (alias != null)
                    {
                        break; // found a matching alias
                    }
                }
            }
            if (alias == null && aliases.Any())
            {
                // use first alias if name does not exist
                alias = aliases.FirstOrDefault();
            }

            // get sync events
            if (alias != null)
            {
                alias.SyncDate   = DateTime.UtcNow;
                alias.SyncEvents = _syncManager.GetSyncEvents(alias.TenantId, DateTime.ParseExact(sync, "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture));
            }
            return(alias);
        }