media
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
using VizhTalk.BuildingBlocks.Domain;
|
||||
using VizhTalk.Learning.Domain.TypeIds;
|
||||
using VizhTalk.Learning.Domain.ValueObjects;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.Entities;
|
||||
|
||||
public class FileGroup : Entity<FileGroupId>
|
||||
{
|
||||
public FileGroup()
|
||||
{
|
||||
|
||||
}
|
||||
private FileGroup(FileGroupKey key,
|
||||
FileGroupTitle title,
|
||||
bool isSecure,
|
||||
long mediaGroupId)
|
||||
{
|
||||
Title = title;
|
||||
MediaGroupId = mediaGroupId;
|
||||
Key = key;
|
||||
IsSecure = isSecure;
|
||||
}
|
||||
public FileGroupTitle Title { get; set; }
|
||||
public FileGroupKey Key { get; private set; }
|
||||
public long MediaGroupId { get; private set; }
|
||||
public bool IsSecure { get; set; }
|
||||
|
||||
public static FileGroup CreateNew(FileGroupKey key,
|
||||
FileGroupTitle title,
|
||||
bool isSecure,
|
||||
long mediaGroupId)
|
||||
=> new(key,title, isSecure, mediaGroupId);
|
||||
}
|
||||
@@ -10,15 +10,20 @@ public class Language : Entity<LanguageId>, IAggregateRoot
|
||||
{
|
||||
// only EF
|
||||
}
|
||||
private Language(LanguageTitle title)
|
||||
private Language(LanguageTitle title, Media icon)
|
||||
{
|
||||
Title = title;
|
||||
Icon = icon;
|
||||
|
||||
}
|
||||
public LanguageTitle Title { get; private set; }
|
||||
public Media Icon { get; private set; }
|
||||
|
||||
public static Language CreateNew(LanguageTitle title)
|
||||
=> new(title);
|
||||
public static Language CreateNew(LanguageTitle title,Media icon)
|
||||
=> new(title, icon);
|
||||
|
||||
public void SetTitle(LanguageTitle title)
|
||||
=> Title = title;
|
||||
public void SetIcon(Media icon)
|
||||
=> Icon = icon;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
using VizhTalk.BuildingBlocks.Domain;
|
||||
using VizhTalk.Learning.Domain.TypeIds;
|
||||
using VizhTalk.Learning.Domain.ValueObjects;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.Entities;
|
||||
|
||||
public class Media : Entity<MediaId>
|
||||
{
|
||||
public string Name { get; private set; }
|
||||
public string ContentType { get; private set; }
|
||||
public int Size { get; private set; }
|
||||
public EntityType EntityType { get; private set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using VizhTalk.BuildingBlocks.Domain;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.TypeIds;
|
||||
|
||||
public class FileGroupId : TypeIdValueBase<long>
|
||||
{
|
||||
public FileGroupId(long value) : base(value)
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -7,9 +7,9 @@ using VizhTalk.BuildingBlocks.Domain;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.TypeIds
|
||||
{
|
||||
public class LanguageId : TypedIdValueBase<int>
|
||||
public class LanguageId : TypeIdValueBase<short>
|
||||
{
|
||||
public LanguageId(int value) : base(value)
|
||||
public LanguageId(short value) : base(value)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
using VizhTalk.BuildingBlocks.Domain;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.TypeIds;
|
||||
|
||||
public class MediaId : TypeIdValueBase<Guid>
|
||||
{
|
||||
public MediaId(Guid value) : base(value)
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using VizhTalk.BuildingBlocks.Domain;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.ValueObjects;
|
||||
|
||||
public class EntityType : ValueObject
|
||||
{
|
||||
public EntityType(string entityId, EntityTypeEnum type)
|
||||
{
|
||||
EntityId = entityId;
|
||||
Type = type;
|
||||
}
|
||||
public string EntityId { get; private set; }
|
||||
public EntityTypeEnum Type { get; private set; }
|
||||
}
|
||||
public enum EntityTypeEnum
|
||||
{
|
||||
Language = 0
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using VizhTalk.BuildingBlocks.Domain;
|
||||
using VizhTalk.BuildingBlocks.Domain.Guards;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.ValueObjects
|
||||
{
|
||||
public class FileGroupKey : ValueObject
|
||||
{
|
||||
public static FileGroupKey LanguageIcon = new("Language");
|
||||
public FileGroupKey(string entityName, string? entityId = null)
|
||||
{
|
||||
Guard.NullOrEmpty(entityName, entityName);
|
||||
Guard.MaxLength(entityName, entityName, 30);
|
||||
if (entityId != null)
|
||||
Value = $"VizhTalk.Learning.{entityName}.{entityId}";
|
||||
else
|
||||
Value = $"VizhTalk.Learning.{entityName}";
|
||||
}
|
||||
public string Value { get; private set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using VizhTalk.BuildingBlocks.Domain.Guards;
|
||||
using VizhTalk.BuildingBlocks.Domain;
|
||||
|
||||
namespace VizhTalk.Learning.Domain.ValueObjects;
|
||||
|
||||
public class FileGroupTitle : ValueObject
|
||||
{
|
||||
public FileGroupTitle(string value)
|
||||
{
|
||||
Guard.NullOrEmpty(value, nameof(FileGroupTitle));
|
||||
Guard.MaxLength(value, nameof(FileGroupTitle), 50);
|
||||
}
|
||||
public string Value { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user