119 lines
4.0 KiB
C#
119 lines
4.0 KiB
C#
using ManagerService.Data.SubSection;
|
|
using ManagerService.DTOs;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace ManagerService.Data
|
|
{
|
|
/// <summary>
|
|
/// Defines the link between an application instance and a configuration,
|
|
/// allowing apps to use one or multiple configurations.
|
|
/// </summary>
|
|
public class ApplicationInstance
|
|
{
|
|
[Key]
|
|
public string Id { get; set; }
|
|
|
|
[Required]
|
|
public string InstanceId { get; set; }
|
|
|
|
[Required]
|
|
public AppType AppType { get; set; }
|
|
|
|
public List<AppConfigurationLink> Configurations { get; set; }
|
|
|
|
public string MainImageId { get; set; }
|
|
|
|
public string MainImageUrl { get; set; }
|
|
|
|
public string LoaderImageId { get; set; }
|
|
|
|
public string LoaderImageUrl { get; set; }
|
|
|
|
public bool IsDate { get; set; }
|
|
|
|
public bool IsHour { get; set; }
|
|
|
|
public string PrimaryColor { get; set; }
|
|
|
|
public string SecondaryColor { get; set; }
|
|
|
|
public int? RoundedValue { get; set; }
|
|
|
|
public int? ScreenPercentageSectionsMainPage { get; set; }
|
|
|
|
public bool IsSectionImageBackground { get; set; } // => Chose layout of main page
|
|
|
|
public LayoutMainPageType LayoutMainPage { get; set; } = LayoutMainPageType.MasonryGrid;
|
|
|
|
public List<string> Languages { get; set; } // All app must support languages, if not, client's problem
|
|
public string? SectionEventId { get; set; }
|
|
[ForeignKey("SectionEventId")]
|
|
public SectionEvent? SectionEvent { get; set; } // => To Display in large a event with countdown (in mobile app).
|
|
|
|
|
|
public ApplicationInstanceDTO ToDTO()
|
|
{
|
|
return new ApplicationInstanceDTO()
|
|
{
|
|
id = Id,
|
|
instanceId = InstanceId,
|
|
appType = AppType,
|
|
configurations = Configurations,
|
|
mainImageId = MainImageId,
|
|
mainImageUrl = MainImageUrl,
|
|
loaderImageId = LoaderImageId,
|
|
loaderImageUrl = LoaderImageUrl,
|
|
isDate = IsDate,
|
|
isHour = IsHour,
|
|
primaryColor = PrimaryColor,
|
|
secondaryColor = SecondaryColor,
|
|
roundedValue = RoundedValue,
|
|
screenPercentageSectionsMainPage = ScreenPercentageSectionsMainPage,
|
|
isSectionImageBackground = IsSectionImageBackground,
|
|
languages = Languages
|
|
};
|
|
}
|
|
|
|
public ApplicationInstance FromDTO(ApplicationInstanceDTO applicationInstanceDTO)
|
|
{
|
|
return new ApplicationInstance()
|
|
{
|
|
Id = applicationInstanceDTO.id,
|
|
InstanceId = applicationInstanceDTO.instanceId,
|
|
AppType = applicationInstanceDTO.appType,
|
|
MainImageId = applicationInstanceDTO.mainImageId,
|
|
MainImageUrl = applicationInstanceDTO.mainImageUrl,
|
|
LoaderImageId = applicationInstanceDTO.loaderImageId,
|
|
LoaderImageUrl = applicationInstanceDTO.loaderImageUrl,
|
|
IsDate = applicationInstanceDTO.isDate,
|
|
IsHour = applicationInstanceDTO.isHour,
|
|
PrimaryColor = applicationInstanceDTO.primaryColor,
|
|
SecondaryColor = applicationInstanceDTO.secondaryColor,
|
|
RoundedValue = applicationInstanceDTO.roundedValue,
|
|
ScreenPercentageSectionsMainPage = applicationInstanceDTO.screenPercentageSectionsMainPage,
|
|
IsSectionImageBackground = applicationInstanceDTO.isSectionImageBackground,
|
|
Languages = applicationInstanceDTO.languages,
|
|
Configurations = applicationInstanceDTO.configurations,
|
|
};
|
|
}
|
|
|
|
}
|
|
|
|
public enum AppType
|
|
{
|
|
Mobile,
|
|
Tablet,
|
|
Web,
|
|
VR
|
|
}
|
|
|
|
public enum LayoutMainPageType
|
|
{
|
|
SimpleGrid,
|
|
MasonryGrid
|
|
}
|
|
}
|