Beispiel #1
0
        /// <summary>
        /// Method that is invoked by time-schedule or manual invokation from admin gui
        /// </summary>
        /// <returns></returns>
        public override string Execute()
        {
            try
            {
                // Create the logg messages
                var log = new StringBuilder();

                // Get the urls to the feed
                var sourceDirectory = AppSettings.NewsImportSourceDirectory;
                var files           = Directory.GetFiles(EipaFileHelper.GetFilePath(sourceDirectory), "*", SearchOption.AllDirectories);

                // Get the container to import the pages to
                var newsContainer = new ContentReference(AppSettings.NewsImportContainer);

                foreach (var file in files)
                {
                    // Execute the PageCreator and append to the log file the result
                    var message = PageCreator.ExecutePageCreation(file, newsContainer);

                    // Set the message to the log
                    log.Append(message);
                }

                //PageCreator = null;
                return($"{Environment.MachineName} - Total files: {files.Length} - Errors: <pre>{log}</pre>");
            }
            catch (Exception x)
            {
                return(Environment.MachineName + ": " + x.Message + " " + x.StackTrace);
            }
        }
Beispiel #2
0
        public ServerCallback RouteServer(Routes routes)
        {
            return(request => {
                if (request.Method != "GET")
                {
                    Error("Request method is not GET", 501);
                    return new Response(body: PageCreator.Error(501), status: 501, contentType: "text/html");
                }

                if (routes.ContainsKey(request.Path))
                {
                    Log("Trying to serve " + request.Path);
                    return routes[request.Path](request);
                }
                else
                {
                    try
                    {
                        Error("Requested page " + request.Path + " not found", 404);
                        return new Response(body: PageCreator.Error(404), status: 404, contentType: "text/html");
                    }
                    catch (ArgumentException)
                    {
                        Error("Could not create error page", 500);
                        return new Response(body: File.ReadAllText("Vitesse/defaultError.html"), status: 500, contentType: "text/html");
                    }
                }
            });
        }
Beispiel #3
0
        public void Proxy()
        {
            this.Listener.Start();

            Log("Listening at " + this.ServingURL);

            HttpListenerContext  context;
            HttpListenerRequest  request;
            HttpListenerResponse response;

            while (this.Listener.IsListening)
            {
                try
                {
                    context  = this.Listener.GetContext();
                    request  = context.Request;
                    response = context.Response;

                    try
                    {
                        Log("Trying to form gateway to " + request.RawUrl);

                        WebRequest      req       = WebRequest.Create(request.RawUrl);
                        HttpWebResponse res       = (HttpWebResponse)req.GetResponse();
                        Stream          resStream = res.GetResponseStream();

                        response.ContentType     = res.ContentType;
                        response.StatusCode      = 200;
                        response.ContentEncoding = Encoding.UTF8;
                        response.Headers         = res.Headers;

                        resStream.CopyTo(response.OutputStream);
                    }
                    catch (System.Net.WebException e)
                    {
                        Error(e.ToString(), 502);

                        byte[] buf = Encoding.UTF8.GetBytes(PageCreator.Error(502));

                        response.ContentType     = "text/html";
                        response.StatusCode      = 502;
                        response.ContentEncoding = Encoding.UTF8;
                        response.ContentLength64 = buf.Length;

                        response.OutputStream.Write(buf, 0, buf.Length);
                    }
                    finally
                    {
                        response.OutputStream.Close();
                    }
                }
                catch (Exception e)
                {
                    Error(e.ToString());

                    this.Listener.Stop();
                }
            }
        }
        /// <summary>
        /// Конструктор.
        /// </summary>
        internal GroupsPage(IRepository <Group, Guid> groupsStore, IPath path, ILogManager logManager, PageCreator pageCreator)
        {
            InitializeComponent();

            _pageCreator = pageCreator;
            _viewModel   = new GroupsListViewModel(groupsStore, path, logManager);
            _logger      = logManager.GetLog();

            BindingContext       = _viewModel;
            _viewModel.PushPage += OnPushPage;
        }
        public async void GetInitialPage()
        {
            var modalPage = PageCreator.tryGetInstance("LoginPage");

            try
            {
                await Navigation.PushModalAsync(modalPage);
            }
            catch (Exception)
            {
                await DisplayAlert("Invalid page", "Failed", "OK");
            }
        }
Beispiel #6
0
        public void CreatePageFile()
        {
            if (PageParameter != null)
            {
                PageCreatorFactory factory = PageCreatorFactory.Instance();

                PageCreator creator = factory.GetPageCreator(PageParameter, config);

                if (creator != null)
                {
                    creator.Create(PageFileName);
                }
            }
        }
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="track">Трек, информация о котором будет отображаться.</param>
        internal TrackDetailsPage(IRepository <Track, Guid> tracksStore, IPath path, ILogManager logManager, PageCreator pageCreator, Track track)
        {
            InitializeComponent();

            _pageCreator = pageCreator;
            _logger      = logManager.GetLog();

            _viewModel                = new TrackDetailsViewModel(tracksStore, path, logManager, track);
            _viewModel.PushPage      += OnPushPage;
            _viewModel.ConfirmDelete += OnConfirmDelete;
            _viewModel.OpenBrowser   += OpenBrowserAsync;
            _viewModel.ClosePage     += async() => await Navigation.PopAsync();

            BindingContext = _viewModel;
        }
        public static ContentPage GetPage(string pageName)
        {
            if (pageName == string.Empty)
            {
                throw new ArgumentException();
            }

            foreach (var page in pages)
            {
                if (page.Key == pageName)
                {
                    return(page.Value);
                }
            }

            return(PageCreator.tryGetInstance(pageName));
        }
        protected override async void OnAppearing()
        {
            await _splashImage.ScaleTo(1, 2000);

            base.OnAppearing();

            try
            {
                DIContainerInitializer.Instance.Initialize();

                Constants.DbPath = DependencyService.Get <IPath>().GetDatabasePath(Constants.DbFileName);
                _logger          = DependencyService.Get <ILogManager>().GetLog();
                _dbManager       = ServiceLocator.Current.GetInstance <IDbManager>();
                _pageCreator     = ServiceLocator.Current.GetInstance <PageCreator>();

#if DELETEDBDEBUG
                if (!_dbManager.TryDeleteDatabase(out var excep))
                {
                    _logger.Fatal("Failed to delete DB.", excep);
                    throw excep;
                }
#endif

                if (!_dbManager.TryCreateDatabase(out var exception))
                {
                    _logger.Fatal("Failed to create DB.", exception);
                    throw exception;
                }
            }
            catch (Exception ex)
            {
                _logger?.Fatal("Exception while loading app.", ex);
                throw;
            }

            Application.Current.MainPage = new NavigationPage(_pageCreator.CreateGroupsPage())
            {
                BarBackgroundColor = _blueColor,
            };
        }
Beispiel #10
0
        public ServerCallback StaticServer(Routes routes = null, int parentDirectories = 0, string anchor = "index.html")
        {
            return(request => {
                routes = routes ?? new Routes();

                if (routes.ContainsKey(request.Path))
                {
                    Log("Trying to serve " + request.Path);
                    return routes[request.Path](request);
                }
                else
                {
                    if (request.Method != "GET")
                    {
                        Error("Request method is not GET for requested page " + request.Path, 501);
                        return new Response(body: PageCreator.Error(501), status: 501, contentType: "text/html");
                    }

                    try
                    {
                        StringBuilder pathPrefix = new StringBuilder();
                        for (int i = 0; i < parentDirectories; i++)
                        {
                            pathPrefix.Append("../");
                        }
                        string fileName = request.Path == "/" ? anchor : request.Path.Substring(1);

                        string text;
                        try
                        {
                            text = File.ReadAllText(pathPrefix.ToString() + fileName);
                            Log("Trying to serve " + pathPrefix.ToString() + fileName);
                            return new Response(body: text, contentType: ServerUtil.Convert.MimeType(fileName.Split('.').Last()));
                        }
                        catch (DirectoryNotFoundException)
                        {
                            throw new FileNotFoundException();
                        }
                    }
                    catch (FileNotFoundException)
                    {
                        try
                        {
                            if (request.Path == "/favicon.ico")
                            {
                                Log("Trying to serve /favicon.ico");
                                return new Response(contentType: "text/html", redirect: "https://higgy.s3.amazonaws.com/images/v_italic.jpg", status: 302);
                            }
                            else
                            {
                                Error("Requested page " + request.Path + " not found", 404);
                                return new Response(body: PageCreator.Error(404), status: 404, contentType: "text/html");
                            }
                        }
                        catch (ArgumentException)
                        {
                            Error("Could not create error page", 500);
                            return new Response(body: File.ReadAllText("Vitesse/defaultError.html"), status: 500, contentType: "text/html");
                        }
                    }
                }
            });
        }