using Manager.Interfaces.DTO;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
using System.Text;
namespace Manager.Interfaces.Models
{
///
/// Section Information
///
public class Section
{
[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 string Title { get; set; } // Dictionary with all languages
[BsonElement("Description")]
public string Description { get; set; } // Dictionary with all languages
[BsonElement("ConfigurationId")]
[BsonRequired]
public string ConfigurationId { get; set; } // Parent id
[BsonElement("ImageId")]
[BsonRequired]
public string ImageId { 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
public SectionDTO ToDTO()
{
return new SectionDTO()
{
Id = Id,
Label = Label,
Title = Title,
Description = Description,
Type = Type,
ImageId = ImageId,
ConfigurationId = ConfigurationId,
IsSubSection = IsSubSection,
ParentId = ParentId,
Data = Data,
DateCreation = DateCreation
};
}
}
public enum SectionType
{
Map,
Slider,
Video,
Web,
Menu
}
}