From dee8de7a1538e44418c0bf101e73dbf05df9bb19 Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 30 Oct 2023 17:18:23 +0100 Subject: [PATCH] Fix nullable --- GerbilManagerWebAPI/Controllers/LittersController.cs | 10 +++++----- GerbilManagerWebAPI/Converter/LitterConverter.cs | 4 ++-- GerbilManagerWebAPI/Dtos/CreateLitterDto.cs | 4 ++-- GerbilManagerWebAPI/Dtos/UpdateBreederDto.cs | 2 +- GerbilManagerWebAPI/Dtos/UpdateGerbilDto.cs | 8 ++++---- GerbilManagerWebAPI/Dtos/UpdateLitterDto.cs | 10 +++++----- GerbilManagerWebAPI/Models/Breeder.cs | 2 +- GerbilManagerWebAPI/Models/Gerbil.cs | 10 +++++----- GerbilManagerWebAPI/Models/Litter.cs | 10 +++++----- README.md | 3 ++- docker-compose.yml | 2 +- 11 files changed, 33 insertions(+), 32 deletions(-) diff --git a/GerbilManagerWebAPI/Controllers/LittersController.cs b/GerbilManagerWebAPI/Controllers/LittersController.cs index 3550d2b..bf0e72b 100644 --- a/GerbilManagerWebAPI/Controllers/LittersController.cs +++ b/GerbilManagerWebAPI/Controllers/LittersController.cs @@ -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 }; diff --git a/GerbilManagerWebAPI/Converter/LitterConverter.cs b/GerbilManagerWebAPI/Converter/LitterConverter.cs index 261f912..6af7caa 100644 --- a/GerbilManagerWebAPI/Converter/LitterConverter.cs +++ b/GerbilManagerWebAPI/Converter/LitterConverter.cs @@ -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 }; diff --git a/GerbilManagerWebAPI/Dtos/CreateLitterDto.cs b/GerbilManagerWebAPI/Dtos/CreateLitterDto.cs index 89daad9..08440f3 100644 --- a/GerbilManagerWebAPI/Dtos/CreateLitterDto.cs +++ b/GerbilManagerWebAPI/Dtos/CreateLitterDto.cs @@ -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; } } } \ No newline at end of file diff --git a/GerbilManagerWebAPI/Dtos/UpdateBreederDto.cs b/GerbilManagerWebAPI/Dtos/UpdateBreederDto.cs index 538ec84..6002d6b 100644 --- a/GerbilManagerWebAPI/Dtos/UpdateBreederDto.cs +++ b/GerbilManagerWebAPI/Dtos/UpdateBreederDto.cs @@ -3,6 +3,6 @@ namespace GerbilManagerWebAPI.Dtos { public record UpdateBreederDto { - public string Name { get; init; } + public string? Name { get; init; } } } \ No newline at end of file diff --git a/GerbilManagerWebAPI/Dtos/UpdateGerbilDto.cs b/GerbilManagerWebAPI/Dtos/UpdateGerbilDto.cs index f8ffd84..8ab049d 100644 --- a/GerbilManagerWebAPI/Dtos/UpdateGerbilDto.cs +++ b/GerbilManagerWebAPI/Dtos/UpdateGerbilDto.cs @@ -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; } } } \ No newline at end of file diff --git a/GerbilManagerWebAPI/Dtos/UpdateLitterDto.cs b/GerbilManagerWebAPI/Dtos/UpdateLitterDto.cs index 6dec9a7..1817c38 100644 --- a/GerbilManagerWebAPI/Dtos/UpdateLitterDto.cs +++ b/GerbilManagerWebAPI/Dtos/UpdateLitterDto.cs @@ -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; } } } \ No newline at end of file diff --git a/GerbilManagerWebAPI/Models/Breeder.cs b/GerbilManagerWebAPI/Models/Breeder.cs index fe74ff2..42f88a7 100644 --- a/GerbilManagerWebAPI/Models/Breeder.cs +++ b/GerbilManagerWebAPI/Models/Breeder.cs @@ -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; } } } \ No newline at end of file diff --git a/GerbilManagerWebAPI/Models/Gerbil.cs b/GerbilManagerWebAPI/Models/Gerbil.cs index 0e622ea..53f68d5 100644 --- a/GerbilManagerWebAPI/Models/Gerbil.cs +++ b/GerbilManagerWebAPI/Models/Gerbil.cs @@ -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: } } \ No newline at end of file diff --git a/GerbilManagerWebAPI/Models/Litter.cs b/GerbilManagerWebAPI/Models/Litter.cs index 777308f..a079f3a 100644 --- a/GerbilManagerWebAPI/Models/Litter.cs +++ b/GerbilManagerWebAPI/Models/Litter.cs @@ -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; } } } diff --git a/README.md b/README.md index f041d92..ae116f0 100644 --- a/README.md +++ b/README.md @@ -13,4 +13,5 @@ dotnet ef migrations add TODO: -Backup docker volume database \ No newline at end of file +- Backup docker volume database +- run "dotnet ef database update" if no database exist. \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 8422a44..152447f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,7 +12,7 @@ services: context: . dockerfile: GerbilManagerWebAPI/Dockerfile environment: - - ConnectionStrings:sqlConnection=server=database; database=GerbilManager; Integrated Security=true + - ConnectionStrings:sqlConnection=server=database; database=GerbilManager; User Id=sa;Password=StrongerThenYYou1;Encrypt=False;TrustServerCertificate=True ports: - 80:80 networks: