Example #1
0
 public Dispatcher(ILogger <Dispatcher> log,
                   IControlHandler controlHandler,
                   IExamineHandler examineHandler,
                   IInventoryHandler inventoryHandler,
                   ILockHandler lockHandler,
                   ILookAroundHandler lookHandler,
                   IMagicHandler magicHandler,
                   IMoveDirectionHandler moveDirHandler,
                   IMoveFeatureHandler moveFeatureHandler,
                   IMoveLocationHandler moveLocHandler,
                   IOnOffHandler onOffHandler,
                   IResponseBuilder responseBuilder,
                   AdventureContext context)
 {
     _log                = log;
     _controlHandler     = controlHandler;
     _examineHandler     = examineHandler;
     _inventoryHandler   = inventoryHandler;
     _lockHandler        = lockHandler;
     _lookHandler        = lookHandler;
     _magicHandler       = magicHandler;
     _moveDirHandler     = moveDirHandler;
     _moveFeatureHandler = moveFeatureHandler;
     _moveLocHandler     = moveLocHandler;
     _onOffHandler       = onOffHandler;
     _responseBuilder    = responseBuilder;
     _advContext         = context;
 }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WebDavDispatcherClass2"/> class.
        /// </summary>
        /// <param name="handlers">The WebDAV class 2 handlers</param>
        /// <param name="context">The WebDAV context</param>
        public WebDavDispatcherClass2([NotNull][ItemNotNull] IEnumerable <IClass2Handler> handlers, [NotNull] IWebDavContext context)
        {
            var httpMethods = new HashSet <string>();

            foreach (var handler in handlers)
            {
                var handlerFound = false;

                if (handler is ILockHandler lockHandler)
                {
                    _lockHandler = lockHandler;
                    handlerFound = true;
                }

                if (handler is IUnlockHandler unlockHandler)
                {
                    _unlockHandler = unlockHandler;
                    handlerFound   = true;
                }

                if (!handlerFound)
                {
                    throw new NotSupportedException();
                }

                foreach (var httpMethod in handler.HttpMethods)
                {
                    httpMethods.Add(httpMethod);
                }
            }

            HttpMethods   = httpMethods.ToList();
            WebDavContext = context;

            OptionsResponseHeaders = new Dictionary <string, IEnumerable <string> >()
            {
                ["Allow"] = HttpMethods,
            };

            DefaultResponseHeaders = new Dictionary <string, IEnumerable <string> >()
            {
                ["DAV"] = new[] { "2" },
            };
        }
 static StaticLockHandler()
 {
     StaticLockHandler._instance = new StaticLockHandler();
 }