2025-03-19 08:57:29 +01:00

111 lines
3.1 KiB
C#

using ManagerService.DTOs;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace ManagerService.Data
{
/// <summary>
/// Section Information
/// </summary>
public class OldSection
{
[BsonId]
[BsonRepresentation(MongoDB.Bson.BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("Label")]
[BsonRequired]
public string Label { get; set; } // Use in manager
[BsonElement("Title")]
[BsonRequired]
public List<TranslationDTO> Title { get; set; }
[BsonElement("Description")]
public List<TranslationDTO> Description { get; set; }
[BsonElement("Order")]
public int Order { get; set; }
[BsonElement("ConfigurationId")]
[BsonRequired]
public string ConfigurationId { get; set; } // Parent id
[BsonElement("ImageId")]
[BsonRequired]
public string ImageId { get; set; }
[BsonElement("ImageSource")]
[BsonRequired]
public string ImageSource { get; set; }
[BsonElement("Type")]
[BsonRequired]
public SectionType Type { get; set; }
[BsonElement("IsSubSection")]
[BsonRequired]
public bool IsSubSection { get; set; }
[BsonElement("ParentId")]
public string ParentId { get; set; } // only if it's an subsection
[BsonElement("DateCreation")]
public DateTime DateCreation { get; set; }
[BsonElement("Data")]
[BsonRequired]
public string Data { get; set; } // Json encapsulated section info
[BsonElement("InstanceId")]
[BsonRequired]
public string InstanceId { get; set; }
[BsonElement("IsBeacon")]
public bool IsBeacon { get; set; }
[BsonElement("BeaconId")]
public int? BeaconId { get; set; }
[BsonElement("Latitude")]
public string Latitude { get; set; }
[BsonElement("Longitude")]
public string Longitude { get; set; }
[BsonElement("MeterZoneGPS")]
public int? MeterZoneGPS { get; set; }
public SectionDTO ToDTO()
{
return new SectionDTO()
{
id = Id,
label = Label,
title = Title.OrderBy(t => t.language).ToList(),
description = Description.OrderBy(d => d.language).ToList(),
order = Order,
type = Type,
imageId = ImageId,
imageSource = ImageSource,
configurationId = ConfigurationId,
isSubSection = IsSubSection,
parentId = ParentId,
//data = Data,
dateCreation = DateCreation,
instanceId = InstanceId,
isBeacon = IsBeacon,
beaconId = BeaconId,
latitude = Latitude,
longitude = Longitude,
meterZoneGPS = MeterZoneGPS,
};
}
}
}