/// /// Copyright (c) 2016-2021 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; using SharedDatabase.Resources; namespace SharedDatabase.Entities { public class Group { public virtual int Id { get; protected set; } public virtual Common.GID GID { get; set; } public virtual long AccessFlags { get; set; } /// Bitfield of access flags: bit0 .. bit62 public virtual IList Users { get; set; } /// Group can be a member of a list of users public Group() { Users = new List(); } public Group(Common.GID gid) : this() { GID = gid; } public virtual string Gid2Str() { return Group.Gid2Str(this.GID); } public static string Gid2Str(Common.GID gid) { switch (gid) { case Common.GID.Testers: return Strings.tester; case Common.GID.TestingSpecialists: return Strings.specialist; case Common.GID.HeadOfLab: return Strings.head_of_lab; case Common.GID.MaintenanceSpecialists: return Strings.maintenance; case Common.GID.Metrologists: return Strings.metrologist; case Common.GID.CalibrationSpecialists: return Strings.calibration_specialist; case Common.GID.Administrators: return Strings.administrator; case Common.GID.TraceabilityManagement: return Strings.production_tracing_administrator; case Common.GID.MetrologicalAuthority: return Strings.metrological_authority; case Common.GID.WaterMeterAuthority: return Strings.water_meter_authority; default: return (gid >= 0 && gid < Common.GID.NrOfGroups) ? gid.ToString() : Strings.invalid; } } } }