vgquotes/Src/VideoGameQuotes.Api/GamingSystem.cs
2011-02-27 08:47:16 +00:00

50 lines
1.3 KiB
C#

using System;
using JetBrains.Annotations;
using Portoa.Persistence;
namespace VideoGameQuotes.Api {
public class GamingSystem : Entity<GamingSystem, int>, IDtoMappable<SystemDto> {
public GamingSystem() {
Created = DateTime.UtcNow;
}
public virtual DateTime Created { get; set; }
public virtual DateTime ReleaseDate { get; set; }
public virtual string Name { get; set; }
public virtual string Abbreviation { get; set; }
[CanBeNull]
public virtual byte[] Icon { get; set; }
public virtual SystemDto ToDto() {
return new SystemDto {
Id = Id,
Created = Created,
ReleaseDate = ReleaseDate,
Name = Name,
Icon = Icon != null ? Convert.ToBase64String(Icon) : null,
Abbreviation = Abbreviation
};
}
}
public class SystemDto {
public int Id { get; set; }
public DateTime Created { get; set; }
public DateTime ReleaseDate { get; set; }
public string Name { get; set; }
public string Abbreviation { get; set; }
[CanBeNull]
public string Icon { get; set; }
}
public static class SystemExtensions {
[CanBeNull]
public static string GetBase64EncodedIcon(this GamingSystem system) {
if (system.Icon == null || system.Icon.Length == 0) {
return null;
}
return Convert.ToBase64String(system.Icon);
}
}
}