Fix nullable

This commit is contained in:
Julian
2023-10-30 17:18:23 +01:00
parent d58f874162
commit dee8de7a15
11 changed files with 33 additions and 32 deletions

View File

@@ -49,8 +49,8 @@ namespace GerbilManagerWebAPI.Controllers
Litter litter = new Litter{
Id = Guid.NewGuid(),
Date = dto.Date,
Father = gerbilrepository.GetGerbil(dto.Father),
Mother = gerbilrepository.GetGerbil(dto.Mother),
Father = gerbilrepository.GetGerbil(dto.Father ?? Guid.Empty),
Mother = gerbilrepository.GetGerbil(dto.Mother ?? Guid.Empty),
Name = dto.Name,
Strength = dto.Strength
};
@@ -70,10 +70,10 @@ namespace GerbilManagerWebAPI.Controllers
}
Litter updatedLitter = existingItem with{
Date = litterDto.Date,
Date = litterDto.Date ?? DateTime.Now,
Strength = litterDto.Strength,
Father = gerbilrepository.GetGerbil(litterDto.Father),
Mother = gerbilrepository.GetGerbil(litterDto.Mother),
Father = gerbilrepository.GetGerbil(litterDto.Father ?? Guid.Empty),
Mother = gerbilrepository.GetGerbil(litterDto.Mother ?? Guid.Empty),
Name = litterDto.Name
};

View File

@@ -10,8 +10,8 @@ namespace GerbilManagerWebAPI.Converter
return new LitterDto{
Id = litter.Id,
Date = litter.Date,
Father = litter.Father.AsDto(),
Mother = litter.Mother.AsDto(),
Father = litter.Father?.AsDto(),
Mother = litter.Mother?.AsDto(),
Name = litter.Name,
Strength = litter.Strength
};

View File

@@ -5,7 +5,7 @@ namespace GerbilManagerWebAPI.Dtos
public required string Name { get; init; }
public required DateTime Date { get; init; }
public int? Strength { get; init; }
public Guid Father { get; init; }
public Guid Mother { get; init; }
public Guid? Father { get; init; }
public Guid? Mother { get; init; }
}
}

View File

@@ -3,6 +3,6 @@ namespace GerbilManagerWebAPI.Dtos
{
public record UpdateBreederDto
{
public string Name { get; init; }
public string? Name { get; init; }
}
}

View File

@@ -2,9 +2,9 @@ namespace GerbilManagerWebAPI.Dtos
{
public record UpdateGerbilDto
{
public string Name { get; init; }
public GenderDto Gender { get; init; }
public LitterDto Litter { get; init; }
public BreederDto Breeder { get; init; }
public string? Name { get; init; }
public GenderDto? Gender { get; init; }
public LitterDto? Litter { get; init; }
public BreederDto? Breeder { get; init; }
}
}

View File

@@ -3,10 +3,10 @@ namespace GerbilManagerWebAPI.Dtos
{
public record UpdateLitterDto
{
public string Name { get; init; }
public DateTime Date { get; init; }
public int Strength { get; init; }
public Guid Father { get; init; }
public Guid Mother { get; init; }
public string? Name { get; init; }
public DateTime? Date { get; init; }
public int? Strength { get; init; }
public Guid? Father { get; init; }
public Guid? Mother { get; init; }
}
}

View File

@@ -6,6 +6,6 @@ namespace GerbilManagerWebAPI.Models
{
[Key]
public Guid Id { get; init; }
public required string Name { get; init; }
public required string Name { get; set; }
}
}

View File

@@ -5,10 +5,10 @@ namespace GerbilManagerWebAPI.Models
public record Gerbil
{
[Key]
public Guid Id { get; init; }
public required string Name { get; init; }
public Gender Gender { get; init; }
public Litter? Litter { get; set; }
public Breeder? Breeder { get; set; }
public Guid Id { get; init; } // init => properties are immutable by default, they are only mutable in the constructor and initializer.
public required string Name { get; set; } //required => parameter is necessary in constructor and object iniilization list. So it cannot be intantiated without it
public required Gender Gender { get; set; }
public Litter? Litter { get; set; } // Any variable where the ? isn't appended to the type name is a non-nullable reference type.
public Breeder? Breeder { get; set; } // You use the null-forgiving operator ! following a variable name to force the null-state to be not-null. For example, if you know the name variable isn't null but the compiler issues a warning, you can write the following code to override the compiler's analysis:
}
}

View File

@@ -6,11 +6,11 @@ namespace GerbilManagerWebAPI.Models
{
[Key]
public Guid Id { get; init; }
public required string Name { get; init; }
public required DateTime Date { get; init; }
public int? Strength { get; init; }
public Gerbil? Father { get; init; }
public Gerbil? Mother { get; init; }
public required string Name { get; set; }
public required DateTime Date { get; set; }
public int? Strength { get; set; }
public Gerbil? Father { get; set; }
public Gerbil? Mother { get; set; }
}
}