Exemple #1
0
        public void StartAndWait()
        {
            try
            {
                StartEventListener();

                Manager = new Manager();

                _log.Submit(LogLevel.Info, "Starting Services");

                Manager.Start();

                _log.Submit(LogLevel.Info, "Services started. Waiting for stop signal");

                StopResetEvent.WaitOne();

                Manager.Stop();
            }
            catch (Exception e)
            {
                _log.SubmitException(e);
            }

            Environment.Exit(0);
        }
Exemple #2
0
        public HttpResponseMessage Get(string id, string version)
        {
            Log.Submit(LogLevel.Debug, "GET request received");
            HttpResponseMessage response = PackageDetails.BuildResponse(Request, id, version);

            Log.Submit(LogLevel.Debug, "GET response ready");
            return(response);
        }
        public HttpResponseMessage Get(string id, string version)
        {
            Log.Submit(LogLevel.Debug, "GET request received");
            HttpResponseMessage response = DownloadPackage.Download(Request, id, version);

            Log.Submit(LogLevel.Debug, "GET response ready");
            return(response);
        }
        public HttpResponseMessage Get()
        {
            Log.Submit(LogLevel.Debug, "GET request received");
            HttpResponseMessage response = WorkspaceRoot.GetWorkspace(Request);

            Log.Submit(LogLevel.Debug, "GET response ready");
            return(response);
        }
        public HttpResponseMessage Get()
        {
            Log.Submit(LogLevel.Debug, "GET request received");
            HttpResponseMessage response = Metadata.GetMetadata(Request);

            Log.Submit(LogLevel.Debug, "GET response ready");
            return(response);
        }
        public static HttpResponseMessage Process(HttpRequestMessage request)
        {
            // Check if the request contains multipart/form-data.
            if (!request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            try
            {
                Stream       reqStream  = request.Content.ReadAsStreamAsync().Result;
                MemoryStream tempStream = new MemoryStream();
                reqStream.CopyTo(tempStream);

                tempStream.Seek(0, SeekOrigin.End);
                Log.Submit(LogLevel.Debug, "Upload request has " + tempStream.Length + " bytes");
                tempStream.Position = 0;

                StreamContent streamContent = new StreamContent(tempStream);
                foreach (KeyValuePair <string, IEnumerable <string> > header in request.Content.Headers)
                {
                    streamContent.Headers.Add(header.Key, header.Value);
                    Log.Submit(LogLevel.Debug, "Header " + header.Key + ": " + string.Join(",", header.Value));
                }

                MultipartFormDataParser parser = new MultipartFormDataParser(tempStream);

                // This illustrates how to get the file names.
                FilePart file = parser.Files.FirstOrDefault();
                if (parser.Files == null || parser.Files.Count != 1)
                {
                    throw new InvalidOperationException();
                }
                if (file == null || file.FileName != "package")
                {
                    throw new InvalidOperationException();
                }

                PackageDAO.ProcessPackage(file.Data);

                return(request.CreateResponse(HttpStatusCode.Created));
            }
            catch (AlreadyExistsException e)
            {
                Log.SubmitException(e);
                return(request.CreateErrorResponse(HttpStatusCode.Conflict, e));
            }
            catch (InvalidOperationException e)
            {
                Log.SubmitException(e);
                return(request.CreateErrorResponse(HttpStatusCode.BadRequest, e));
            }
            catch (Exception e)
            {
                Log.SubmitException(e);
                return(request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
        public static void Start(int port, string apiKey)
        {
            ApiKey = apiKey;

            string baseAddress = "http://+:" + port + "/";

            Log.Submit(LogLevel.Info, "Starting OWIN listener on " + baseAddress);

            Server = WebApp.Start <OwinHost>(baseAddress);
        }
        public HttpResponseMessage Get()
        {
            Log.Submit(LogLevel.Debug, "GET request received");

            Dictionary <string, string> queryParams =
                Request.GetQueryNameValuePairs()
                .ToDictionary(reqQueryParam => reqQueryParam.Key.ToLowerInvariant(),
                              reqQueryParam => reqQueryParam.Value);

            Func <string, string> getParam = s => queryParams.ContainsKey(s) ? queryParams[s] : null;

            string filter               = getParam("$filter");
            string orderby              = getParam("$orderby");
            string searchTerm           = getParam("searchTerm");
            string targetFramework      = getParam("targetFramework");
            string includePrereleaseStr = getParam("includePrerelease");
            string skipStr              = getParam("$skip");
            string stopStr              = getParam("$stop");
            bool   desc = false;
            int    skip;
            int    stop;
            bool   includePrerelase;

            if (orderby != null && orderby.Contains(" "))
            {
                string[] orderBySplit = orderby.Split(' ');
                if (orderBySplit.Length != 2)
                {
                    throw new BadRequestException();
                }
                orderby = orderBySplit[0];
                desc    = orderBySplit[1] == "desc";
            }

            int.TryParse(skipStr, out skip);
            int.TryParse(stopStr, out stop);
            bool.TryParse(includePrereleaseStr, out includePrerelase);

            filter = filter != null?filter.Trim(' ', '\'') : null;

            orderby = orderby != null?orderby.Trim(' ', '\'') : null;

            searchTerm = searchTerm != null?searchTerm.Trim(' ', '\'') : null;

            targetFramework = targetFramework != null?targetFramework.Trim(' ', '\'') : null;

            HttpResponseMessage response = Search.Invoke(Request, filter, orderby, desc, searchTerm, targetFramework,
                                                         includePrerelase, skip, stop);

            Log.Submit(LogLevel.Debug, "GET response ready");
            return(response);
        }
Exemple #9
0
        public Manager()
        {
            _log = LogFactory.Instance.GetLogger(GetType());

            _log.Submit(LogLevel.Info, "Setting up configuration store");

            ConfigurationStore = new Store();

            _log.Submit(LogLevel.Info, "Configuration store setup finished");

            _log.Submit(LogLevel.Info, "Setting up Data Manager");

            DataManager = new DataManager(ConfigurationStore);

            _log.Submit(LogLevel.Info, "Data Manager setup finished");
        }
Exemple #10
0
        public Manager()
        {
            _log = LogFactory.Instance.GetLogger(GetType());

            _log.Submit(LogLevel.Info, "Setting up configuration store");

            ConfigurationStore = new Store();

            _log.Submit(LogLevel.Info, "Configuration store setup finished");

            _log.Submit(LogLevel.Info, "Setting up Data Manager");

            DataManager = new DataManager(ConfigurationStore);

            _log.Submit(LogLevel.Info, "Data Manager setup finished");
        }
Exemple #11
0
        private static void Main(string[] args)
        {
            LogFactory.ForceConsoleMode = true;

            _log = LogFactory.Instance.GetLogger(typeof(Startup));


            if (args.Length >= 1 && args.Any(a => a == "-d"))
            {
                IConsole console = ConsoleFactory.GetConsole();

                console.StartAndWait();
            }
            else if (args.Length >= 1 && args.Any(a => a == "-s"))
            {
                IConsole console = ConsoleFactory.GetConsole();

                console.Stop();
            }
            else
            {
                Manager m;

                try
                {
                    m = new Manager();

                    m.Start();
                }
                catch (Exception e)
                {
                    _log.Submit(LogLevel.Fatal, "An error occurred when starting server!");
                    _log.SubmitException(e);
                    return;
                }

                _log.Submit(LogLevel.Info, new string('-', 70));
                _log.Submit(LogLevel.Info, "Nugetory started! Press [ENTER] to stop...");
                _log.Submit(LogLevel.Info, new string('-', 70));
                System.Console.ReadLine();

                m.Stop();
            }
        }
Exemple #12
0
        private static void Main(string[] args)
        {
            LogFactory.ForceConsoleMode = true;

            _log = LogFactory.Instance.GetLogger(typeof(Startup));


            if (args.Length >= 1 && args.Any(a => a == "-d"))
            {
                IConsole console = ConsoleFactory.GetConsole();
                
                console.StartAndWait();
            }
            else if (args.Length >= 1 && args.Any(a => a == "-s"))
            {
                IConsole console = ConsoleFactory.GetConsole();
                
                console.Stop();
            }
            else
            {
                Manager m;

                try
                {
                    m = new Manager();

                    m.Start();
                }
                catch (Exception e)
                {
                    _log.Submit(LogLevel.Fatal, "An error occurred when starting server!");
                    _log.SubmitException(e);
                    return;
                }

                _log.Submit(LogLevel.Info, new string('-', 70));
                _log.Submit(LogLevel.Info, "Nugetory started! Press [ENTER] to stop...");
                _log.Submit(LogLevel.Info, new string('-', 70));
                System.Console.ReadLine();

                m.Stop();
            }
        }
Exemple #13
0
        public HttpResponseMessage Get()
        {
            Log.Submit(LogLevel.Debug, "GET request received");

            Dictionary <string, string> queryParams =
                Request.GetQueryNameValuePairs()
                .ToDictionary(reqQueryParam => reqQueryParam.Key.ToLowerInvariant(),
                              reqQueryParam => reqQueryParam.Value);

            Func <string, string> getParam = s => queryParams.ContainsKey(s) ? queryParams[s] : null;

            string filter  = getParam("$filter");
            string orderby = getParam("$orderby");
            bool   desc    = false;
            string top     = getParam("$top");
            string id      = getParam("id");

            if (orderby != null && orderby.Contains(" "))
            {
                string[] orderBySplit = orderby.Split(' ');
                if (orderBySplit.Length != 2)
                {
                    throw new BadRequestException();
                }
                orderby = orderBySplit[0];
                desc    = orderBySplit[1] == "desc";
            }

            filter = filter != null?filter.Trim(' ', '\'') : null;

            orderby = orderby != null?orderby.Trim(' ', '\'') : null;

            top = top != null?top.Trim(' ', '\'') : null;

            id = id != null?id.Trim(' ', '\'') : null;

            HttpResponseMessage response = FindPackage.Find(Request, filter, orderby, desc, top, id);

            Log.Submit(LogLevel.Debug, "GET response ready");
            return(response);
        }
Exemple #14
0
        public void Start()
        {
            _log.Submit(LogLevel.Info, "Initializing configuration store");

            ConfigurationParser = Loader.Initialize();
            if (ConfigurationParser != null)
            {
                ConfigurationFilename = ConfigurationParser.INIFilePath;
                _log.Submit(LogLevel.Info, "Using configuration file " + ConfigurationFilename);
            }

            LoggingLevel = new ConfigItemInt(ConfigurationParser, ConfigDefaults.LoggingLevel);

            ServerPort = new ConfigItemInt(ConfigurationParser, ConfigDefaults.ServerPort);

            ApiKey = new ConfigItemString(ConfigurationParser, ConfigDefaults.ApiKey);

            DatabaseFile = new ConfigItemString(ConfigurationParser, ConfigDefaults.DatabaseFile);
            DatabasePackagesDirectory = new ConfigItemString(ConfigurationParser,
                                                             ConfigDefaults.DatabasePackagesDirectory);

            _log.Submit(LogLevel.Info, "Configuration store initialized");
        }
Exemple #15
0
        public static ConfigurationParser Initialize()
        {
            Log.Submit(LogLevel.Info, "Initializing Configuration Manager");

            string configurationFilename = GetConfigurationFilename(OSEnvironment.IsUnix);

            if (configurationFilename == null)
            {
                Log.Submit(LogLevel.Info, "No valid configuration file found!");
                return(null);
            }

            ConfigurationParser cm = new ConfigurationParser(configurationFilename);

            Log.Submit(LogLevel.Info,
                       "Configuration Manager initialized with configuration file " + configurationFilename);

            return(cm);
        }
Exemple #16
0
        public void Start()
        {
            _log.Submit(LogLevel.Info, "Starting configuration store");

            ConfigurationStore.Start();

            _log.Submit(LogLevel.Info, "Configuration store started ");

            _log.Submit(LogLevel.Info, "Starting Data Manager");

            DataManager.Start();

            _log.Submit(LogLevel.Info, "Data Manager started");

            _log.Submit(LogLevel.Info, "Setting up environment");

            // inject
            UploadPackage.PackageDAO   = DataManager.PackageDAO;
            DownloadPackage.PackageDAO = DataManager.PackageDAO;
            DownloadPackage.FileStore  = DataManager.FileStore;
            PackageDetails.PackageDAO  = DataManager.PackageDAO;
            PackageDetails.FileStore   = DataManager.FileStore;
            DeletePackage.PackageDAO   = DataManager.PackageDAO;
            DeletePackage.FileStore    = DataManager.FileStore;
            FindPackage.PackageDAO     = DataManager.PackageDAO;
            Search.PackageDAO          = DataManager.PackageDAO;

            _log.Submit(LogLevel.Info, "Environment setup finished");

            _log.Submit(LogLevel.Info, "Starting Nuget server");

            OwinHost.Start(ConfigurationStore.ServerPort.Value, ConfigurationStore.ApiKey.Value);

            _log.Submit(LogLevel.Info, "Nuget server started");
        }