diff --git a/Marechai/Resources/Services/PeopleService.en.resx b/Marechai/Resources/Services/PeopleService.en.resx
new file mode 100644
index 00000000..1223d13d
--- /dev/null
+++ b/Marechai/Resources/Services/PeopleService.en.resx
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Unknown
+ Unknown, referring to a name
+
+
+ Unknown
+ Unknown, referring to one or more surnames
+
+
+ Unknown
+ Unknown, referring to an alias
+
+
+ Unknown
+ Unknown, referring to a display name
+
+
+ Unknown
+ Unknown, referring to a country
+
+
+ Unknown
+ Unknown, referring to the death date
+
+
+ Unknown
+ Unknown, referring to a webpage
+
+
+ Unknown
+ Unknown, referring to a twitter handle
+
+
+ Unknown
+ Unknown, referring to a facebook username
+
+
\ No newline at end of file
diff --git a/Marechai/Resources/Services/PeopleService.es.resx b/Marechai/Resources/Services/PeopleService.es.resx
index 2b6d2972..ada0b8d2 100644
--- a/Marechai/Resources/Services/PeopleService.es.resx
+++ b/Marechai/Resources/Services/PeopleService.es.resx
@@ -188,7 +188,7 @@
Apellido
- Surnam
+ SurnameAlias
@@ -206,4 +206,132 @@
Volver a la listaBack to list
+
+ Guardar
+ Save
+
+
+ Desconocido
+ Unknown, referring to a name
+
+
+ Desconocidos
+ Unknown, referring to one or more surnames
+
+
+ Desconocido
+ Unknown, referring to an alias
+
+
+ Desconocido
+ Unknown, referring to a display name
+
+
+ Desconocido
+ Unknown, referring to a country
+
+
+ Desconocida
+ Unknown, referring to the death date
+
+
+ Desconocida
+ Unknown, referring to a webpage
+
+
+ Desconocido
+ Unknown, referring to a twitter handle
+
+
+ Desconocido
+ Unknown, referring to a facebook username
+
+
+ Por favor introduce un nombre válido.
+ Please enter a valid name.
+
+
+ Por favor introduce un apellido (o varios) válido.
+ Please enter a valid surname.
+
+
+ Por favor introduce un alias válido.
+ Please enter a valid alias.
+
+
+ Por favor introduce un nombre para mostrar válido.
+ Please enter a valid display name.
+
+
+ Por favor introduce una fecha de nacimiento válida.
+ Please enter a valid birth date.
+
+
+ Por favor introduce una fecha de fallecimiento válida.
+ Please enter a valid death date.
+
+
+ Por favor introduce una página web válida.
+ Please enter a valid webpage.
+
+
+ Por favor introduce un identificador de Twitter válido.
+ Please enter a valid Twitter handle.
+
+
+ Por favor introduce un nombre de usuario de Facebook válido.
+ Please enter a valid Facebook user name.
+
+
+ El nombre debe contener menos de 256 caracteres.
+ Name must be smaller than 256 characters.
+
+
+ Tanto el nombre como el/los apellido(s) deben rellenarse, or ser desconocidos.
+ Both name and surname must be known and filled, or both unknown.
+
+
+ El/los apellido(s) deben contener menos de 256 caracteres.
+ Surname must be smaller than 256 characters.
+
+
+ El alias debe contener menos de 256 caracteres.
+ Alias must be smaller than 256 characters.
+
+
+ El nombre para mostrar debe contener menos de 256 caracteres.
+ Display name must be smaller than 256 characters.
+
+
+ La fecha de nacimiento debe ser anterior a hoy.
+ Birth date must be before today.
+
+
+ La fecha de nacimiento debe ser anterior a la de fallecimiento
+ Birth date must be before death date.
+
+
+ La fecha de fallecimiento debe ser anterior a hoy.
+ Death date must be before today.
+
+
+ La fecha de fallecimiento debe ser posterior a la de nacimiento.
+ Death date must be after birth date.
+
+
+ La página web debe contener menos de 255 caracteres.
+ Webpage must be smaller than 255 characters.
+
+
+ El identificador de Twitter debe contener menos de 255 caracteres.
+ Twitter handle must be smaller than 255 characters.
+
+
+ Identificador de Twitter inválido.
+ Invalid Twitter handle.
+
+
+ El nombre de usuario de Facebook debe contener menos de 256 caracteres.
+ Facebook username must be smaller than 256 characters.
+
\ No newline at end of file
diff --git a/Marechai/Services/PeopleService.cs b/Marechai/Services/PeopleService.cs
index 881d9a42..4de900bf 100644
--- a/Marechai/Services/PeopleService.cs
+++ b/Marechai/Services/PeopleService.cs
@@ -23,7 +23,35 @@ namespace Marechai.Services
DisplayName = p.DisplayName
}).ToListAsync();
- public async Task GetAsync(int id) => await _context.People.FindAsync(id);
+ public async Task GetAsync(int id) =>
+ await _context.People.Where(p => p.Id == id).Select(p => new PersonViewModel
+ {
+ Id = p.Id, Name = p.Name, Surname = p.Surname, CountryOfBirthId = p.CountryOfBirthId,
+ BirthDate = p.BirthDate, DeathDate = p.DeathDate, Webpage = p.Webpage, Twitter = p.Twitter,
+ Facebook = p.Facebook, Photo = p.Photo, Alias = p.Alias, DisplayName = p.DisplayName
+ }).FirstOrDefaultAsync();
+
+ public async Task UpdateAsync(PersonViewModel viewModel)
+ {
+ Person model = await _context.People.FindAsync(viewModel.Id);
+
+ if(model is null)
+ return;
+
+ model.Name = viewModel.Name;
+ model.Surname = viewModel.Surname;
+ model.CountryOfBirthId = viewModel.CountryOfBirthId;
+ model.BirthDate = viewModel.BirthDate;
+ model.DeathDate = viewModel.DeathDate;
+ model.Webpage = viewModel.Webpage;
+ model.Twitter = viewModel.Twitter;
+ model.Facebook = viewModel.Facebook;
+ model.Photo = viewModel.Photo;
+ model.Alias = viewModel.Alias;
+ model.DisplayName = viewModel.DisplayName;
+
+ await _context.SaveChangesAsync();
+ }
public async Task DeleteAsync(int id)
{
diff --git a/Marechai/ViewModels/PersonViewModel.cs b/Marechai/ViewModels/PersonViewModel.cs
index 459baa64..415edda2 100644
--- a/Marechai/ViewModels/PersonViewModel.cs
+++ b/Marechai/ViewModels/PersonViewModel.cs
@@ -4,17 +4,18 @@ namespace Marechai.ViewModels
{
public class PersonViewModel : BaseViewModel
{
- public string Name { get; set; }
- public string Surname { get; set; }
- public string CountryOfBirth { get; set; }
- public DateTime BirthDate { get; set; }
- public DateTime? DeathDate { get; set; }
- public string Webpage { get; set; }
- public string Twitter { get; set; }
- public string Facebook { get; set; }
- public Guid Photo { get; set; }
- public string Alias { get; set; }
- public string DisplayName { get; set; }
+ public string Name { get; set; }
+ public string Surname { get; set; }
+ public string CountryOfBirth { get; set; }
+ public DateTime BirthDate { get; set; }
+ public DateTime? DeathDate { get; set; }
+ public string Webpage { get; set; }
+ public string Twitter { get; set; }
+ public string Facebook { get; set; }
+ public Guid Photo { get; set; }
+ public string Alias { get; set; }
+ public string DisplayName { get; set; }
+ public short? CountryOfBirthId { get; set; }
public string FullName => DisplayName ?? Alias ?? $"{Name} {Surname}";
}