using ManagerService.DTOs; using System; using System.ComponentModel.DataAnnotations; namespace ManagerService.Data { /// /// Device Information (Tablet) /// public class Device { [Key] [Required] /*[BsonId] [BsonRepresentation(MongoDB.Bson.BsonType.ObjectId)]*/ public string Id { get; set; } //[BsonElement("Identifier")] public string Identifier { get; set; } //[BsonElement("Name")] public string Name { get; set; } /*[BsonElement("IpAddressWLAN")] [BsonRequired]*/ //[Required] public string IpAddressWLAN { get; set; } //[BsonElement("IpAddressETH")] //[BsonRequired] //[Required] public string IpAddressETH { get; set; } //[BsonElement("Configuration")] public Configuration Configuration { get; set; } //[BsonElement("ConfigurationId")] //[BsonRequired] [Required] public string ConfigurationId { get; set; } //[BsonElement("Connected")] //[BsonRequired] [Required] public bool Connected { get; set; } //[BsonElement("DateCreation")] public DateTime DateCreation { get; set; } //[BsonElement("DateUpdate")] public DateTime DateUpdate { get; set; } // BatteryLevel in case of powered devices //[BsonElement("BatteryLevel")] public string BatteryLevel { get; set; } //[BsonElement("LastBatteryLevel")] public DateTime LastBatteryLevel { get; set; } // ConnectionLevel wifi strength level //[BsonElement("ConnectionLevel")] public string ConnectionLevel { get; set; } //[BsonElement("LastConnectionLevel")] public DateTime LastConnectionLevel { get; set; } /*[BsonElement("InstanceId")] [BsonRequired]*/ [Required] public string InstanceId { get; set; } public DeviceDTO ToDTO() { return new DeviceDTO() { id = Id, identifier = Identifier, name = Name, ipAddressWLAN = IpAddressWLAN, ipAddressETH = IpAddressETH, connected = Connected, configuration = Configuration.Label, configurationId = ConfigurationId, dateUpdate = DateUpdate, dateCreation = DateCreation, instanceId = InstanceId }; } public DeviceDetailDTO ToDetailDTO() { return new DeviceDetailDTO() { id = Id, identifier = Identifier, name = Name, ipAddressWLAN = IpAddressWLAN, ipAddressETH = IpAddressETH, connected = Connected, configuration = Configuration.Label, configurationId = ConfigurationId, connectionLevel = ConnectionLevel, lastConnectionLevel = LastConnectionLevel, batteryLevel = BatteryLevel, lastBatteryLevel = LastBatteryLevel, dateUpdate = DateUpdate, dateCreation = DateCreation, instanceId = InstanceId }; } public Device FromDTO(DeviceDetailDTO deviceDetailDTO) { return new Device() { Id = deviceDetailDTO.id, Name = deviceDetailDTO.name, DateCreation = deviceDetailDTO.dateCreation != null ? deviceDetailDTO.dateCreation.Value : DateTime.Now.ToUniversalTime(), Identifier = deviceDetailDTO.identifier, IpAddressWLAN = deviceDetailDTO.ipAddressWLAN, IpAddressETH = deviceDetailDTO.ipAddressETH, Connected = deviceDetailDTO.connected, ConfigurationId = deviceDetailDTO.configurationId, ConnectionLevel = deviceDetailDTO.connectionLevel, LastConnectionLevel = deviceDetailDTO.lastConnectionLevel, BatteryLevel = deviceDetailDTO.batteryLevel, LastBatteryLevel = deviceDetailDTO.lastBatteryLevel, DateUpdate = deviceDetailDTO.dateUpdate != null ? deviceDetailDTO.dateUpdate.Value : DateTime.Now.ToUniversalTime(), InstanceId = deviceDetailDTO.instanceId }; } } }