Change machine photo field types to match EXIF types.

This commit is contained in:
2019-05-27 23:19:43 +01:00
parent d2335de2be
commit 017626bdbc
6 changed files with 5859 additions and 56 deletions

View File

@@ -28,6 +28,8 @@
// Copyright © 2003-2018 Natalia Portillo
*******************************************************************************/
using System.ComponentModel.DataAnnotations;
namespace Cicm.Database
{
public enum NewsType
@@ -417,4 +419,257 @@ namespace Cicm.Database
M2 = 19,
SataExpress = 20
}
public enum ColorSpace : ushort
{
[Display(Name = "sRGB")]
Srgb = 1,
[Display(Name = "Adobe RGB")]
AdobeRgb = 2,
[Display(Name = "Wide Gamut RGB")]
WideGamutRgb = 4093,
[Display(Name = "ICC Profile")]
IccProfile = 65534,
[Display(Name = "Uncalibrated")]
Uncalibreated = 65535
}
public enum Contrast : ushort
{
Normal = 0,
Low = 1,
Hig = 2
}
public enum ExposureMode : ushort
{
Auto = 0,
Manual = 1,
[Display(Name = "Auto bracket")]
AutoBracket = 2
}
public enum ExposureProgram : ushort
{
[Display(Name = "Not Defined")]
Undefined = 0,
[Display(Name = "Manual")]
Manual = 1,
[Display(Name = "Program AE")]
ProgramAe = 2,
[Display(Name = "Aperture-priority AE")]
ApAe = 3,
[Display(Name = "Shutter speed priority AE")]
ShutterAe = 4,
[Display(Name = "Creative (Slow speed)")]
Creative = 5,
[Display(Name = "Action (High speed)")]
Action = 6,
[Display(Name = "Portrait")]
Portrait = 7,
[Display(Name = "Landscape")]
Landscape = 8,
[Display(Name = "Bulb")]
Bulb = 9
}
public enum Flash : ushort
{
[Display(Name = "No Flash")]
None = 0,
[Display(Name = "Fired")]
Fired = 1,
[Display(Name = "Fired, Return not detected")]
FiredNoReturn = 5,
[Display(Name = "Fired, Return detected")]
FiredReturn = 7,
[Display(Name = "On, Did not fire")]
OnDidNotFire = 8,
[Display(Name = "On, Fired")]
OnFired = 9,
[Display(Name = "On, Return not detected")]
OnNoReturn = 13,
[Display(Name = "On, Return detected")]
OnReturn = 15,
[Display(Name = "Off, Did not fire")]
OffDidNotFire = 16,
[Display(Name = "Off, Did not fire, Return not detected")]
OffDidNotFireNoReturn = 20,
[Display(Name = "Auto, Did not fire")]
AutoDidNotFire = 24,
[Display(Name = "Auto, Fired")]
AutoFired = 25,
[Display(Name = "Auto, Fired, Return not detected")]
AutoFiredNoReturn = 29,
[Display(Name = "Auto, Fired, Return detected")]
AutoFiredReturn = 31,
[Display(Name = "No flash function")]
NoFlash = 32,
[Display(Name = "Off, No flash function")]
OffNoFlash = 48,
[Display(Name = "Fired, Red-eye reduction")]
FiredRedEye = 65,
[Display(Name = "Fired, Red-eye reduction, Return not detected")]
FiredRedEyeNoReturn = 69,
[Display(Name = "Fired, Red-eye reduction, Return detected")]
FiredRedEyeReturn = 71,
[Display(Name = "On, Red-eye reduction")]
OnRedEye = 73,
[Display(Name = "On, Red-eye reduction, Return not detected")]
OnRedEyeNoReturn = 77,
[Display(Name = "On, Red-eye reduction, Return detected")]
OnRedEyeReturn = 79,
[Display(Name = "Off, Red-eye reduction")]
OffRedEye = 80,
[Display(Name = "Auto, Did not fire, Red-eye reduction")]
AutoNotFireRedEye = 88,
[Display(Name = "Auto, Fired, Red-eye reduction")]
AutoFiredRedEye = 89,
[Display(Name = "Auto, Fired, Red-eye reduction, Return not detected")]
AutoFiredRedEyeNoReturn = 93,
[Display(Name = "Auto, Fired, Red-eye reduction, Return detected")]
AutoFiredRedEyeReturn = 95
}
public enum LightSource : ushort
{
[Display(Name = "Unknown")]
Unknown = 0,
[Display(Name = "Daylight")]
Daylight = 1,
[Display(Name = "Fluorescent")]
Fluorescent = 2,
[Display(Name = "Tungsten (Incandescent)")]
Incandescent = 3,
[Display(Name = "Flash")]
Flash = 4,
[Display(Name = "Fine Weather")]
FineWeather = 9,
[Display(Name = "Cloudy")]
Cloudy = 10,
[Display(Name = "Shade")]
Shade = 11,
[Display(Name = "Daylight Fluorescent")]
DaylightFluorescent = 12,
[Display(Name = "Day White Fluorescent")]
DayWhiteFluorescent = 13,
[Display(Name = "Cool White Fluorescent")]
CoolWhiteFluorescent = 14,
[Display(Name = "White Fluorescent")]
WhiteFluorescent = 15,
[Display(Name = "Warm White Fluorescent")]
WarmWhiteFluorescent = 16,
[Display(Name = "Standard Light A")]
StandardLightA = 17,
[Display(Name = "Standard Light B")]
StandardLightB = 18,
[Display(Name = "Standard Light C")]
StandardLightC = 19,
[Display(Name = "D55")]
D55 = 20,
[Display(Name = "D65")]
D65 = 21,
[Display(Name = "D75")]
D75 = 22,
[Display(Name = "D50")]
D50 = 23,
[Display(Name = "ISO Studio Tungsten")]
ISOStudioTungsten = 24,
[Display(Name = "Other")]
Other = 255
}
public enum MeteringMode : ushort
{
[Display(Name = "Unknown")]
Unknown = 0,
[Display(Name = "Average")]
Average = 1,
[Display(Name = "Center-weighted average")]
CenterWeightedAverage = 2,
[Display(Name = "Spot")]
Spot = 3,
[Display(Name = "Multi-spot")]
MultiSpot = 4,
[Display(Name = "Multi-segment")]
MultiSegment = 5,
[Display(Name = "Partial")]
Partial = 6,
[Display(Name = "Other")]
Other = 255
}
public enum Orientation : ushort
{
[Display(Name = "Horizontal (normal)")]
Horizontal = 1,
[Display(Name = "Mirror horizontal")]
MirrorHorizontal = 2,
[Display(Name = "Rotate 180")]
Rotate180 = 3,
[Display(Name = "Mirror vertical")]
MirrorVertical = 4,
[Display(Name = "Mirror horizontal and rotate 270 CW")]
MirrorHorizontalAndRotate270CW = 5,
[Display(Name = "Rotate 90 CW")]
Rotate90CW = 6,
[Display(Name = "Mirror horizontal and rotate 90 CW")]
MirrorHorizontalAndRotate90CW = 7,
[Display(Name = "Rotate 270 CW")]
Rotate270CW = 8
}
public enum ResolutionUnit : ushort
{
None = 1,
Inches = 2,
Centimeters = 3
}
public enum Saturation : ushort
{
Normal = 0,
Low = 1,
Hig = 2
}
public enum SceneCaptureType : ushort
{
Standard = 0,
Landscape = 1,
Portrait = 2,
Night = 3
}
public enum SensingMethod : ushort
{
[Display(Name = "Not defined")]
Undefined = 1,
[Display(Name = "One-chip color area")]
OneChipColorArea = 2,
[Display(Name = "Two-chip color area")]
TwoChipColorArea = 3,
[Display(Name = "Three-chip color area")]
ThreeChipColorArea = 4,
[Display(Name = "Color sequential area")]
ColorSequentialArea = 5,
[Display(Name = "Trilinear")]
Trilinear = 7,
[Display(Name = "Color sequential linear")]
ColorSequentialLinear = 8
}
public enum SubjectDistanceRange : ushort
{
Unknown = 0,
Macro = 1,
Close = 2,
Distant = 3
}
public enum WhiteBalance : ushort
{
Auto = 0,
Manual = 1
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,157 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace Cicm.Database.Migrations
{
public partial class ChangeMachinePhotoFieldTypesToExifTypes : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex("IX_MachinePhotos_PixelComposition", "MachinePhotos");
migrationBuilder.DropIndex("IX_MachinePhotos_SceneControl", "MachinePhotos");
migrationBuilder.DropColumn("PixelComposition", "MachinePhotos");
migrationBuilder.DropColumn("SceneControl", "MachinePhotos");
migrationBuilder.AlterColumn<ushort>("WhiteBalance", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<double>("VerticalResolution", "MachinePhotos", nullable: true,
oldClrType: typeof(int), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("SubjectDistanceRange", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("SensingMethod", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("SceneCaptureType", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("Saturation", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("Orientation", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("MeteringMode", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("LightSource", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("IsoRating", "MachinePhotos", nullable: true, oldClrType: typeof(int),
oldNullable: true);
migrationBuilder.AlterColumn<double>("HorizontalResolution", "MachinePhotos", nullable: true,
oldClrType: typeof(int), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("FocalLengthEquivalent", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<double>("FocalLength", "MachinePhotos", nullable: true,
oldClrType: typeof(int), oldNullable: true);
migrationBuilder.AlterColumn<double>("Focal", "MachinePhotos", nullable: true, oldClrType: typeof(int),
oldNullable: true);
migrationBuilder.AlterColumn<ushort>("Flash", "MachinePhotos", nullable: true, oldClrType: typeof(string),
oldNullable: true);
migrationBuilder.AlterColumn<ushort>("ExposureProgram", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("ExposureMethod", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<string>("Exposure", "MachinePhotos", nullable: true,
oldClrType: typeof(double), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("Contrast", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<ushort>("ColorSpace", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AddColumn<ushort>("ResolutionUnit", "MachinePhotos", nullable: true);
migrationBuilder.CreateIndex("IX_MachinePhotos_ResolutionUnit", "MachinePhotos", "ResolutionUnit");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex("IX_MachinePhotos_ResolutionUnit", "MachinePhotos");
migrationBuilder.DropColumn("ResolutionUnit", "MachinePhotos");
migrationBuilder.AlterColumn<string>("WhiteBalance", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<int>("VerticalResolution", "MachinePhotos", nullable: true,
oldClrType: typeof(double), oldNullable: true);
migrationBuilder.AlterColumn<string>("SubjectDistanceRange", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("SensingMethod", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("SceneCaptureType", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("Saturation", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("Orientation", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("MeteringMode", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("LightSource", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<int>("IsoRating", "MachinePhotos", nullable: true, oldClrType: typeof(ushort),
oldNullable: true);
migrationBuilder.AlterColumn<int>("HorizontalResolution", "MachinePhotos", nullable: true,
oldClrType: typeof(double), oldNullable: true);
migrationBuilder.AlterColumn<string>("FocalLengthEquivalent", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<int>("FocalLength", "MachinePhotos", nullable: true,
oldClrType: typeof(double), oldNullable: true);
migrationBuilder.AlterColumn<int>("Focal", "MachinePhotos", nullable: true, oldClrType: typeof(double),
oldNullable: true);
migrationBuilder.AlterColumn<string>("Flash", "MachinePhotos", nullable: true, oldClrType: typeof(ushort),
oldNullable: true);
migrationBuilder.AlterColumn<string>("ExposureProgram", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("ExposureMethod", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<double>("Exposure", "MachinePhotos", nullable: true,
oldClrType: typeof(string), oldNullable: true);
migrationBuilder.AlterColumn<string>("Contrast", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AlterColumn<string>("ColorSpace", "MachinePhotos", nullable: true,
oldClrType: typeof(ushort), oldNullable: true);
migrationBuilder.AddColumn<string>("PixelComposition", "MachinePhotos", nullable: true);
migrationBuilder.AddColumn<string>("SceneControl", "MachinePhotos", nullable: true);
migrationBuilder.CreateIndex("IX_MachinePhotos_PixelComposition", "MachinePhotos", "PixelComposition");
migrationBuilder.CreateIndex("IX_MachinePhotos_SceneControl", "MachinePhotos", "SceneControl");
}
}
}

View File

@@ -3718,11 +3718,11 @@ namespace Cicm.Database.Migrations
b.Property<string>("CameraModel");
b.Property<string>("ColorSpace");
b.Property<ushort?>("ColorSpace");
b.Property<string>("Comments");
b.Property<string>("Contrast");
b.Property<ushort?>("Contrast");
b.Property<DateTime?>("CreationDate");
@@ -3730,59 +3730,57 @@ namespace Cicm.Database.Migrations
b.Property<string>("ExifVersion");
b.Property<double?>("Exposure");
b.Property<string>("Exposure");
b.Property<string>("ExposureMethod");
b.Property<ushort?>("ExposureMethod");
b.Property<string>("ExposureProgram");
b.Property<ushort?>("ExposureProgram");
b.Property<string>("Flash");
b.Property<ushort?>("Flash");
b.Property<int?>("Focal");
b.Property<double?>("Focal");
b.Property<int?>("FocalLength");
b.Property<double?>("FocalLength");
b.Property<string>("FocalLengthEquivalent");
b.Property<ushort?>("FocalLengthEquivalent");
b.Property<int?>("HorizontalResolution");
b.Property<double?>("HorizontalResolution");
b.Property<int?>("IsoRating");
b.Property<ushort?>("IsoRating");
b.Property<string>("Lens");
b.Property<int>("LicenseId");
b.Property<string>("LightSource");
b.Property<ushort?>("LightSource");
b.Property<int?>("MachineId");
b.Property<string>("MeteringMode");
b.Property<ushort?>("MeteringMode");
b.Property<string>("Orientation");
b.Property<ushort?>("Orientation");
b.Property<string>("PixelComposition");
b.Property<ushort?>("ResolutionUnit");
b.Property<string>("Saturation");
b.Property<ushort?>("Saturation");
b.Property<string>("SceneCaptureType");
b.Property<ushort?>("SceneCaptureType");
b.Property<string>("SceneControl");
b.Property<string>("SensingMethod");
b.Property<ushort?>("SensingMethod");
b.Property<string>("Sharpness");
b.Property<string>("SoftwareUsed");
b.Property<string>("SubjectDistanceRange");
b.Property<ushort?>("SubjectDistanceRange");
b.Property<DateTime>("UploadDate").IsConcurrencyToken().ValueGeneratedOnAddOrUpdate();
b.Property<string>("UserId");
b.Property<int?>("VerticalResolution");
b.Property<double?>("VerticalResolution");
b.Property<string>("WhiteBalance");
b.Property<ushort?>("WhiteBalance");
b.HasKey("Id");
@@ -3834,14 +3832,12 @@ namespace Cicm.Database.Migrations
b.HasIndex("Orientation");
b.HasIndex("PixelComposition");
b.HasIndex("ResolutionUnit");
b.HasIndex("Saturation");
b.HasIndex("SceneCaptureType");
b.HasIndex("SceneControl");
b.HasIndex("SensingMethod");
b.HasIndex("Sharpness");

View File

@@ -12,10 +12,10 @@ namespace Cicm.Database.Models
[DisplayName("Camera model")]
public string CameraModel { get; set; }
[DisplayName("Color space")]
public string ColorSpace { get; set; }
public ColorSpace? ColorSpace { get; set; }
[DisplayName("User comments")]
public string Comments { get; set; }
public string Contrast { get; set; }
public Contrast? Contrast { get; set; }
[DisplayName("Date and time of digitizing")]
public DateTime? CreationDate { get; set; }
[DisplayName("Digital zoom ratio")]
@@ -23,49 +23,46 @@ namespace Cicm.Database.Models
[DisplayName("Exif version")]
public string ExifVersion { get; set; }
[DisplayName("Exposure time")]
public double? Exposure { get; set; }
public string Exposure { get; set; }
[DisplayName("Exposure mode")]
public string ExposureMethod { get; set; }
public ExposureMode? ExposureMethod { get; set; }
[DisplayName("Exposure Program")]
public string ExposureProgram { get; set; }
public string Flash { get; set; }
public ExposureProgram? ExposureProgram { get; set; }
public Flash? Flash { get; set; }
[DisplayName("F-number")]
public int? Focal { get; set; }
public double? Focal { get; set; }
[DisplayName("Lens focal length")]
public int? FocalLength { get; set; }
public double? FocalLength { get; set; }
[DisplayName("Focal length in 35 mm film")]
public string FocalLengthEquivalent { get; set; }
public ushort? FocalLengthEquivalent { get; set; }
[DisplayName("Horizontal resolution")]
public int? HorizontalResolution { get; set; }
public double? HorizontalResolution { get; set; }
[DisplayName("ISO speed rating")]
public int? IsoRating { get; set; }
public ushort? IsoRating { get; set; }
[DisplayName("Lens used")]
public string Lens { get; set; }
[DisplayName("Light source")]
public string LightSource { get; set; }
public LightSource? LightSource { get; set; }
[DisplayName("Metering mode")]
public string MeteringMode { get; set; }
public string Orientation { get; set; }
[DisplayName("Pixel composition")]
public string PixelComposition { get; set; }
public string Saturation { get; set; }
public MeteringMode? MeteringMode { get; set; }
public ResolutionUnit? ResolutionUnit { get; set; }
public Orientation? Orientation { get; set; }
public Saturation? Saturation { get; set; }
[DisplayName("Scene capture type")]
public string SceneCaptureType { get; set; }
[DisplayName("Scene control")]
public string SceneControl { get; set; }
public SceneCaptureType? SceneCaptureType { get; set; }
[DisplayName("Sensing method")]
public string SensingMethod { get; set; }
public SensingMethod? SensingMethod { get; set; }
public string Sharpness { get; set; }
[DisplayName("Software used")]
public string SoftwareUsed { get; set; }
[DisplayName("Subject distance range")]
public string SubjectDistanceRange { get; set; }
public SubjectDistanceRange? SubjectDistanceRange { get; set; }
[Timestamp]
public DateTime UploadDate { get; set; }
[DisplayName("Vertical resolution")]
public int? VerticalResolution { get; set; }
public double? VerticalResolution { get; set; }
[DisplayName("White balance")]
public string WhiteBalance { get; set; }
public WhiteBalance? WhiteBalance { get; set; }
public virtual ApplicationUser User { get; set; }
public virtual Machine Machine { get; set; }

View File

@@ -525,16 +525,14 @@ namespace Cicm.Database.Models
entity.HasIndex(e => e.MeteringMode);
entity.HasIndex(e => e.Orientation);
entity.HasIndex(e => e.ResolutionUnit);
entity.HasIndex(e => e.PixelComposition);
entity.HasIndex(e => e.Orientation);
entity.HasIndex(e => e.Saturation);
entity.HasIndex(e => e.SceneCaptureType);
entity.HasIndex(e => e.SceneControl);
entity.HasIndex(e => e.SensingMethod);
entity.HasIndex(e => e.Sharpness);