[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/SharpMap/SharpMap/main/SharpMap/Session.cs [Back]  [Original]

using System;
using Common.Logging;
using GeoAPI;

namespace SharpMap
{
    /// 
    /// A SharpMap Session class
    /// 
    public class Session : ISession
    {
        private static ICoordinateSystemRepository _repository;
        private ICoordinateSystemServices _coordinateSystemServices;

        /// 
        /// Static constructor
        /// 
        static Session()
        {
            Instance = new Session();
        }

        /// 
        /// Gets a value indicating the current instance
        /// 
        public static ISession Instance { get; private set; }

        /// 
        /// The geometry services instance
        /// 
        public IGeometryServices GeometryServices { get; set; }

        /// 
        /// Gets the coordinate system services instance
        /// 
        public ICoordinateSystemServices CoordinateSystemServices
        {
            get
            {
                if (_coordinateSystemServices == null)
                    throw new InvalidOperationException("Must declare a coordinate system services object!");
                return _coordinateSystemServices;
            }
            set { _coordinateSystemServices = value; }
        }

        /// 
        /// Gets the coordinate system repository
        /// 
        public ICoordinateSystemRepository CoordinateSystemRepository
        {
            get { return _repository ?? CoordinateSystemServices as ICoordinateSystemRepository; }
            set { _repository = value; }
        }

        #region Fluent

        /// 
        /// Method to set the geometry services class
        /// 
        /// The geometry services class
        /// A reference to this session
        public ISession SetGeometryServices(IGeometryServices geometryServices)
        {
            GeometryServices = geometryServices;
            return this;
        }

        /// 
        /// Method to set the coordinate system services class
        /// 
        /// The coordinate system services class
        /// A reference to this session
        public ISession SetCoordinateSystemServices(ICoordinateSystemServices coordinateSystemServices)
        {
            CoordinateSystemServices = coordinateSystemServices;
            return this;
        }

        /// 
        /// Method to set the coordinate system repository class
        /// 
        /// The coordinate system repository class
        /// A reference to this session
        public ISession SetCoordinateSystemRepository(ICoordinateSystemRepository coordinateSystemRepository)
        {
            CoordinateSystemRepository = coordinateSystemRepository;
            return this;
        }

        /// 
        /// Method to read the configuration
        /// 
        /// A reference to this session
        public ISession ReadConfiguration()
        {
            var log = LogManager.GetLogger();
            log.Warn(f => f("Configuring SharpMap session via ReadConfiguration currently not supported"));
            return this;
        }
        #endregion
    }
}

Web Proxy Viewer  |  New URL  |  Original Page