using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Vrh.OneReport
{
    /// <summary>
    /// A Vrh.OneReport állandó értékei.
    /// </summary>
    public static class Constants
    {
		/// <summary>
		/// A modul area neve.
		/// </summary>
		public const string AREA_NAME = "OneReport";

        /// <summary>
        /// Az alapértelmezett konfigurációs név, ahol a OneReport
        /// xml paraméterbeállítások elérhetősége olvasható ki.
        /// </summary>
        public const string DEFAULT_CONFIG = "OneReport";

        /// <summary>
        /// Az alapértelmezett kapcsolati sztring név, ha nem adtak meg semmi egyebet
        /// az xml paraméterfájlban.
        /// </summary>                                        
        public const string DEFAULT_CONNECTIONSTRING_NAME = "VRH.OneReport:SQL_connectionString";

        /// <summary>
        /// Ha nem adnak meg más export mappát, akkor ez lesz az
        /// a mappája az elkészülő export fájloknak.
        /// </summary>
        public const string DEFAULT_EXPORTFOLDER = @"~/App_Data/OneReport/Export";

        /// <summary>
        /// Alapértelmezett bevezető karaktersorozat az xml szókódjai számára,
        /// ha netán nem adtak volna meg semmit az xml paraméterfájlban.
        /// </summary>
        public const string DEFAULT_XML_WORDCODEPREFIX = "OneReport.xml";

		/// <summary>
		/// A "@THISFILE@" elemre hivatkozó másodlagos XmlParser kapcsolati sztring.
		/// </summary>
		public const string XMLC_THISFILE = "file=@THISFILE@;";
		
		/// <summary>
		/// A "General" elemre hivatkozó másodlagos XmlParser kapcsolati sztring.
		/// </summary>
		public const string GENERALELEMENTNAME = "General";

		/// <summary>
		/// A "RiportDirectory" elemre hivatkozó másodlagos XmlParser kapcsolati sztring.
		/// </summary>
		public const string REPORTDIRECTORYELEMENTNAME = "ReportDirectory";

        /// <summary>
        /// Export funkcióban az export filename-ben a dataset nevét kell ide behelyettesíteni
        /// </summary>
        public const string DATASETNAMEMASK = "_{DATASETNAME}";

        #region QParamNames public static class

        /// <summary>
        /// A OneReport akcióiban lehetséges paraméterek neveit tartalmazza ez az osztály.
        /// </summary>
        public static class QParamNames
        {
            /// <summary>
            /// Itt híváskor XmlParser kapcsolati sztringet kell megadni.
            /// Ha nincs benne a nyelvi változatokat tartalmazó fájl, akkor
            /// az alapértelmezett fájl lesz használva.
            /// </summary>
            public const string XML = "xml";

            /// <summary>
            /// Ahol meg kell adni a riport célfálját, ott szükségs ez a paraméter.
            /// </summary>
            public const string FILE = "file";

            /// <summary>
            /// A fájlba történő reportkészítéskor ebben kell megadni a report végső formátumát.
            /// </summary>
            public const string FORMAT = "format";

            /// <summary>
            /// Ez az akciók számára megadható nyelvi kód paraméter neve.
            /// </summary>
            public const string LCID = "lcid";

            /// <summary>
            /// List akció és metódus OnlyPreset lista mód esetén meg kell adni 
            /// ebben a paraméterben a riport azonosítóját.
            /// </summary>
            public const string REPORTID = "reportid";

            /// <summary>
            /// A Check számára megadandó riuport azonosító lista.
            /// </summary>
            public const string REPORTNAMES = "reportnames";

            /// <summary>
            /// List akció és metódus számára mondja meg, hogy milyen legyen a lista.
            /// </summary>
            public const string LISTMODE = "listmode";
        }
        #endregion QParamNames public static class

        #region Views public static class
        /// <summary>
        /// OneReport webfelületén megjelenő nézetek nevei.
        /// </summary>
        public static class Views
        {
            /// <summary>
            /// A hibaüzenetek listáját megjelenítő nézet neve.
            /// </summary>
            public const string ERRORLIST = "ErrorList";
            public const string DISPLAY = "Display";
            public const string DISPLAYPARTIAL = "DisplayPartial";
        }
        #endregion Views public static class
    }
}
