From 2a3af9b0a0cb58149417fcbae1239044d41eb49b Mon Sep 17 00:00:00 2001 From: Julian Date: Sat, 12 Feb 2022 20:08:48 +0100 Subject: [PATCH] add missing fields --- Controllers/FamilyController.cs | 14 ++++++++++++++ Converters/Extensions.cs | 3 +++ Dtos/CreateFamilyDto.cs | 4 ++++ Dtos/FamilyDto.cs | 4 ++++ Dtos/UpdateFamilyDto.cs | 6 +++++- Models/Family.cs | 6 +++++- Startup.cs | 15 +++++++++++++++ 7 files changed, 50 insertions(+), 2 deletions(-) diff --git a/Controllers/FamilyController.cs b/Controllers/FamilyController.cs index 3f6032f..07a19f7 100644 --- a/Controllers/FamilyController.cs +++ b/Controllers/FamilyController.cs @@ -8,6 +8,7 @@ using weddingapi.Repositories; using weddingapi.Dtos; using weddingapi.Converters; using System.Threading.Tasks; +using Microsoft.AspNetCore.Cors; namespace weddingapi.Controllers { @@ -22,6 +23,15 @@ namespace weddingapi.Controllers this.repository = repository; } + // GET /familyCount + [HttpGet("FamilyCount")] + public async Task GetFamilyCountAsync() + { + int totalCount = 0; + (await repository.GetFamiliesAsync()).ToList().ForEach(family => totalCount += family.Members.Count()); + return totalCount; + } + // GET /family [HttpGet] public async Task> GetFamiliesAsync() @@ -55,6 +65,8 @@ namespace weddingapi.Controllers CreatedDate = DateTimeOffset.UtcNow, Name = familyDto.Name, Overnight = familyDto.Overnight, + Email = familyDto.EMail, + Telephonenumber = familyDto.Telephonenumber, Members = familyDto.Members.Select(person => new Person() { IsChild = person.IsChild, Name = person.Name, @@ -84,6 +96,8 @@ namespace weddingapi.Controllers IsChild = person.IsChild, }).ToList(), Overnight = familyDto.Overnight, + Email = familyDto.Email, + Telephonenumber = familyDto.Telephonenumber, Name = familyDto.Name, }; diff --git a/Converters/Extensions.cs b/Converters/Extensions.cs index 68f5994..0e41bf9 100644 --- a/Converters/Extensions.cs +++ b/Converters/Extensions.cs @@ -12,6 +12,9 @@ namespace weddingapi.Converters { Id = family.Id, CreatedDate = family.CreatedDate, + Overnight = family.Overnight, + Email = family.Email, + Telephonenumber = family.Telephonenumber, Members = family.Members.Select(person => person.AsDto()).ToList(), Name = family.Name, }; diff --git a/Dtos/CreateFamilyDto.cs b/Dtos/CreateFamilyDto.cs index 6f465e4..333423f 100644 --- a/Dtos/CreateFamilyDto.cs +++ b/Dtos/CreateFamilyDto.cs @@ -10,6 +10,10 @@ namespace weddingapi.Dtos [Required] public bool Overnight { get; set; } [Required] + public string EMail { get; set; } + [Required] + public string Telephonenumber { get; set; } + [Required] public IList Members { get; init;} } } \ No newline at end of file diff --git a/Dtos/FamilyDto.cs b/Dtos/FamilyDto.cs index 9a9cf00..c29e72b 100644 --- a/Dtos/FamilyDto.cs +++ b/Dtos/FamilyDto.cs @@ -11,6 +11,10 @@ namespace weddingapi.Dtos public bool Overnight { get; init; } + public string Email { get; init; } + + public string Telephonenumber { get; init; } + public DateTimeOffset CreatedDate { get; set; } public IList Members { get; init;} diff --git a/Dtos/UpdateFamilyDto.cs b/Dtos/UpdateFamilyDto.cs index cee4555..1d7368a 100644 --- a/Dtos/UpdateFamilyDto.cs +++ b/Dtos/UpdateFamilyDto.cs @@ -10,6 +10,10 @@ namespace weddingapi.Dtos [Required] public IList Members { get; init;} [Required] - public bool Overnight { get; set; } + public bool Overnight { get; init; } + [Required] + public string Email { get; init; } + [Required] + public string Telephonenumber { get; init; } } } \ No newline at end of file diff --git a/Models/Family.cs b/Models/Family.cs index c75a882..2919331 100644 --- a/Models/Family.cs +++ b/Models/Family.cs @@ -6,9 +6,13 @@ namespace weddingapi.Models public record Family { public Guid Id { get; init; } - + public string Name { get; init; } + public string Email { get; init; } + + public string Telephonenumber { get; init; } + public DateTimeOffset CreatedDate { get; set; } public IList Members { get; init; } diff --git a/Startup.cs b/Startup.cs index df6898f..3a3f1ba 100644 --- a/Startup.cs +++ b/Startup.cs @@ -23,6 +23,8 @@ namespace weddingapi { public class Startup { + private string MyAllowSpecificOrigins = "defaultCors"; + public Startup(IConfiguration configuration) { Configuration = configuration; @@ -57,6 +59,17 @@ namespace weddingapi timeout: TimeSpan.FromSeconds(3), tags: new[] { "ready" }); + services.AddCors(options => + { + options.AddPolicy(name: MyAllowSpecificOrigins, + builder => + { + builder.AllowAnyOrigin() + .AllowAnyHeader() + .AllowAnyMethod(); + }); + }); + } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -76,6 +89,8 @@ namespace weddingapi app.UseRouting(); + app.UseCors(MyAllowSpecificOrigins); + app.UseAuthorization(); app.UseEndpoints(endpoints =>