using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
using VRH.Log4Pro.MultiLanguageManager;
using Vrh.Web.Common.Lib;
using Vrh.iScheduler.Report;
namespace Vrh.Web.iScheduler.Report
{
///
/// Riport csomag szerkesztéshez használt modell.
///
public class PackageEditorModel : CommonModel
{
#region Properties
#region Adatbázis kezeléshez szükséges tulajdonságok
///
/// Csomag egyedi adatbázis azonosítója.
/// Ha 0, akkor felvitel.
///
public int PackageId { get; set; } = 0;
///
/// Csomag neve, amely ObjectId-ként szerepel az ütemező felé.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.PackageName))]
[RequiredWithTrueWordCodes(typeof(GeneralWordCodes.MLM.General.Messages.RequiredWithName))]
[StringLengthWithTrueWordCodes(100, typeof(GeneralWordCodes.MLM.General.Messages.StringLengthWithName))]
public string PackageName { get; set; }
///
/// Csomag hosszabb leírása. Ha üresen marad, akkor belekerül a csomag neve.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.PackageDescription))]
[RequiredWithTrueWordCodes(typeof(GeneralWordCodes.MLM.General.Messages.RequiredWithName))]
[StringLengthWithTrueWordCodes(200, typeof(GeneralWordCodes.MLM.General.Messages.StringLengthWithName))]
public string PackageDescription { get; set; }
///
/// Csomag használatához szükséges szerep neve.
/// Csak olvasható, a program rakja össze.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.PackageRoleName))]
[RequiredWithTrueWordCodes(typeof(GeneralWordCodes.MLM.General.Messages.RequiredWithName))]
public string PackageRoleName { get; set; }
///
/// Használható-e a csomag, vagy sem.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.PackageIsActive))]
public bool PackageIsActive { get; set; } = false;
///
/// Csomag melyik csoport azonosítóhoz tartozik.
/// Ha a paraméterben * érkezik, akkor szerkeszthető állapotú.
/// A felületen ezt az üres érték jelzi, ha üres a cshtml nyitásakor, akkor szerkeszthető.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.PackageGroup))]
[RequiredWithTrueWordCodes(typeof(GeneralWordCodes.MLM.General.Messages.RequiredWithName))]
[StringLengthWithTrueWordCodes(100,typeof(GeneralWordCodes.MLM.General.Messages.StringLengthWithName))]
public string PackageGroupId { get; set; }
///
/// A csomag mentésekor, mely szerepkörökhöz tartozó felhasználókat kell hozzáadni
/// a csomag nevéből képzett szerephez.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.Rolegroups))]
public string PackageRolegroupsSelected { get; set; } //autocomplete "Selected" listid
///
/// Autocomplete target
///
public string PackageRolegroups { get; set; } //autocomplete targetid
///
/// A csomag mentésekor, mely felhasználókat kell hozzárendelni
/// a csomag nevéből képzett szerephez.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.Users))]
public string PackageUsersSelected { get; set; } //autocomplete "Selected" listid
///
/// Autocomplete target
///
public string PackageUsers { get; set; } //autocomplete targetid
///
/// Kiválasztott riportok azonosítóinak listája.
///
public List SelectedReports { get; set; }
///
/// A riportokhoz kiválasztott formátumok listája.
///
public List SelectedFormats { get; set; }
#endregion Adatbázis mezőit leíró tulajdonságok
#region Rejtett inputként utazó tulajdonságok (POST-ban szükséges használni.)
///
/// Az Editor meghívása honnan történt.
/// Egyelőre egy nevesített hely van: Vrh.iScheduler.Report.ManagerViewModel.CallSources.Manager, azaz 'manager'.
///
public string SourceOfCalling { get; set; }
///
/// Adatbázishoz kapcsolódás stringje, majd a POST-ban szükség van rá.
///
public string ConnectionString { get; set; }
///
/// Az XML-ből érkező érték, mely alapján a RoleName létrehozható.
///
public string RoleNameMask { get; set; }
///
/// Szerepkörök listájának lekéréséhez
///
public string RolegroupListUrl { get; set; }
///
/// Felhasználók listáját visszaadó URL.
///
public string UserListUrl { get; set; }
///
/// ??????????????????
///
public string UsersOfRoleUrl { get; set; }
///
/// Szerepet létrehozó URL.
///
public string CreateRoleUrl { get; set; }
///
/// Szerepet törlő URL.
///
public string DeleteRoleUrl { get; set; }
///
/// Szerep és szerepkör összerendelés.
///
public string AssignRoleToRolegroupsUrl { get; set; }
///
/// Szerep és felhasználó összerendelés
///
public string AssignRoleToUsersUrl { get; set; }
///
/// OneReport-tól ezzel az url-lel lehet elkérni a riportok listáját.
/// Meg kell őrizni, mert szerkesztés közben a GetNewPackageReportItem-nek kell.
///
public string ReportListUrl { get; set; }
///
/// OneReport-tól ezzel az url-lel lehet elkérni a formátumok listáját.
/// Meg kell őrizni, mert szerkesztés közben a GetNewPackageReportItem-nek kell.
///
public string ReportFormatListUrl { get; set; }
///
/// ??????????????????
///
public string ReportParameterPresetListUrl { get; set; }
///
/// Paraméterek előre beállított alapértelmezett érkeinek szerkesztését eredményező URL.
///
public string ReportParameterPresetEditorUrl { get; set; }
///
/// Az iSchedulerReport teszt futtatásához szükséges URL.
///
public string TestExecuteOperation { get; set; }
///
/// XmlParser kapcsolati sztring.
///
public string XmlCs { get; set; }
#endregion Rejtett inputként utazó tulajdonságok
///
/// Annak jelzése, hogy a sikeres mentés után történjen-e teszt futtatás.
/// A TestExecuteUrl elemben meghatározott Url meghívása.
///
[DisplayNameWithTrueWordCodes(typeof(SRWordCodes.iSchedulerReport.Editor.Labels.TestExecute))]
public bool IsTestExecute { get; set; } = false;
#endregion Properties
}
}