diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRole.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRole.cs index 22812dd..572748f 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRole.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRole.cs @@ -2,7 +2,7 @@ using System.Text.Json.Serialization; namespace WatchIt.Common.Model.Roles; -public class ActorRole +public abstract class ActorRole { #region PROPERTIES @@ -12,11 +12,5 @@ public class ActorRole [JsonPropertyName("name")] public string Name { get; set; } - [JsonPropertyName("media_id")] - public long MediaId { get; set; } - - [JsonPropertyName("person_id")] - public long PersonId { get; set; } - #endregion } \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleMediaRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleMediaRequest.cs new file mode 100644 index 0000000..66787b5 --- /dev/null +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleMediaRequest.cs @@ -0,0 +1,22 @@ +using System.Text.Json.Serialization; +using WatchIt.Database.Model.Person; + +namespace WatchIt.Common.Model.Roles; + +public class ActorRoleMediaRequest : ActorRoleRequest, IActorRoleMediaRequest +{ + #region PROPERTIES + + [JsonPropertyName("person_id")] + public long PersonId { get; set; } + + #endregion + + + + #region PUBLIC METHODS + + public PersonActorRole CreateActorRole(long mediaId) => base.CreateActorRole(mediaId, PersonId); + + #endregion +} \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRolePersonRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRolePersonRequest.cs new file mode 100644 index 0000000..aba7c47 --- /dev/null +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRolePersonRequest.cs @@ -0,0 +1,22 @@ +using System.Text.Json.Serialization; +using WatchIt.Database.Model.Person; + +namespace WatchIt.Common.Model.Roles; + +public class ActorRolePersonRequest : ActorRoleRequest, IActorRolePersonRequest +{ + #region PROPERTIES + + [JsonPropertyName("media_id")] + public long MediaId { get; set; } + + #endregion + + + + #region PUBLIC METHODS + + public PersonActorRole CreateActorRole(long personId) => base.CreateActorRole(MediaId, personId); + + #endregion +} \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleRequest.cs index 747ec73..ab30f23 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleRequest.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleRequest.cs @@ -3,51 +3,22 @@ using WatchIt.Database.Model.Person; namespace WatchIt.Common.Model.Roles; -public class ActorRoleRequest : ActorRole, IActorRoleMediaRequest, IActorRolePersonRequest +public abstract class ActorRoleRequest : ActorRole { - #region CONSTRUCTORS - - [SetsRequiredMembers] - public ActorRoleRequest(ActorRoleResponse data) - { - Name = data.Name; - PersonId = data.PersonId; - MediaId = data.MediaId; - TypeId = data.TypeId; - } - - public ActorRoleRequest() {} - - #endregion - - - #region PUBLIC METHODS - - PersonActorRole IActorRoleMediaRequest.CreateActorRole(long mediaId) - { - MediaId = mediaId; - return CreateActorRole(); - } - PersonActorRole IActorRolePersonRequest.CreateActorRole(long personId) + public PersonActorRole CreateActorRole(long mediaId, long personId) => new PersonActorRole { - PersonId = personId; - return CreateActorRole(); - } - - public PersonActorRole CreateActorRole() => new PersonActorRole - { - MediaId = MediaId, - PersonId = PersonId, + MediaId = mediaId, + PersonId = personId, PersonActorRoleTypeId = TypeId, RoleName = Name, }; - public void UpdateActorRole(PersonActorRole item) + public void UpdateActorRole(PersonActorRole item, long mediaId, long personId) { - item.MediaId = MediaId; - item.PersonId = PersonId; + item.MediaId = mediaId; + item.PersonId = personId; item.PersonActorRoleTypeId = TypeId; item.RoleName = Name; } diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleResponse.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleResponse.cs index 8f6e024..692e5a9 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleResponse.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleResponse.cs @@ -18,6 +18,12 @@ public class ActorRoleResponse : ActorRole, IQueryOrderable [JsonPropertyName("id")] public required Guid Id { get; set; } + + [JsonPropertyName("media_id")] + public long MediaId { get; set; } + + [JsonPropertyName("person_id")] + public long PersonId { get; set; } #endregion diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleUniversalRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleUniversalRequest.cs new file mode 100644 index 0000000..76ff560 --- /dev/null +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/ActorRoleUniversalRequest.cs @@ -0,0 +1,43 @@ +using System.Text.Json.Serialization; +using WatchIt.Database.Model.Person; + +namespace WatchIt.Common.Model.Roles; + +public class ActorRoleUniversalRequest : ActorRoleRequest, IActorRolePersonRequest, IActorRoleMediaRequest +{ + #region PROPERTIES + + [JsonPropertyName("person_id")] + public long PersonId { get; set; } + + [JsonPropertyName("media_id")] + public long MediaId { get; set; } + + #endregion + + + + #region CONSTRUCTORS + + public ActorRoleUniversalRequest() { } + + public ActorRoleUniversalRequest(ActorRoleResponse data) + { + MediaId = data.MediaId; + PersonId = data.PersonId; + TypeId = data.TypeId; + Name = data.Name; + } + + #endregion + + + + #region PUBLIC METHODS + + public PersonActorRole CreateActorRole() => base.CreateActorRole(MediaId, PersonId); + + public void UpdateActorRole(PersonActorRole item) => base.UpdateActorRole(item, MediaId, PersonId); + + #endregion +} \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRole.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRole.cs index 0eab7d9..b62c387 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRole.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRole.cs @@ -2,18 +2,12 @@ using System.Text.Json.Serialization; namespace WatchIt.Common.Model.Roles; -public class CreatorRole +public abstract class CreatorRole { #region PROPERTIES [JsonPropertyName("type_id")] public required short TypeId { get; set; } - [JsonPropertyName("media_id")] - public required long MediaId { get; set; } - - [JsonPropertyName("person_id")] - public required long PersonId { get; set; } - #endregion } \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ICreatorRoleMediaRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleMediaRequest.cs similarity index 54% rename from WatchIt.Common/WatchIt.Common.Model/Roles/ICreatorRoleMediaRequest.cs rename to WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleMediaRequest.cs index cc7cc47..63b3455 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/ICreatorRoleMediaRequest.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleMediaRequest.cs @@ -3,23 +3,20 @@ using WatchIt.Database.Model.Person; namespace WatchIt.Common.Model.Roles; -public interface ICreatorRoleMediaRequest +public class CreatorRoleMediaRequest : CreatorRoleRequest { #region PROPERTIES [JsonPropertyName("person_id")] - long PersonId { get; set; } - - [JsonPropertyName("type_id")] - short TypeId { get; set; } + public required long PersonId { get; set; } #endregion #region PUBLIC METHODS - - PersonCreatorRole CreateCreatorRole(long mediaId); - + + public PersonCreatorRole CreateCreatorRole(long mediaId) => base.CreateCreatorRole(mediaId, PersonId); + #endregion } \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/ICreatorRolePersonRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRolePersonRequest.cs similarity index 54% rename from WatchIt.Common/WatchIt.Common.Model/Roles/ICreatorRolePersonRequest.cs rename to WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRolePersonRequest.cs index 2702520..f922efa 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/ICreatorRolePersonRequest.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRolePersonRequest.cs @@ -3,23 +3,20 @@ using WatchIt.Database.Model.Person; namespace WatchIt.Common.Model.Roles; -public interface ICreatorRolePersonRequest +public class CreatorRolePersonRequest : CreatorRoleRequest { #region PROPERTIES [JsonPropertyName("media_id")] - long MediaId { get; set; } - - [JsonPropertyName("type_id")] - short TypeId { get; set; } + public required long MediaId { get; set; } #endregion #region PUBLIC METHODS - - PersonCreatorRole CreateCreatorRole(long personId); - + + public PersonCreatorRole CreateCreatorRole(long personId) => base.CreateCreatorRole(MediaId, personId); + #endregion } \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleRequest.cs index ad9fa5c..ab93a3a 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleRequest.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleRequest.cs @@ -2,33 +2,21 @@ using WatchIt.Database.Model.Person; namespace WatchIt.Common.Model.Roles; -public class CreatorRoleRequest : CreatorRole, ICreatorRoleMediaRequest, ICreatorRolePersonRequest +public abstract class CreatorRoleRequest : CreatorRole { #region PUBLIC METHODS - - PersonCreatorRole ICreatorRoleMediaRequest.CreateCreatorRole(long mediaId) - { - MediaId = mediaId; - return CreateCreatorRole(); - } - PersonCreatorRole ICreatorRolePersonRequest.CreateCreatorRole(long personId) + public PersonCreatorRole CreateCreatorRole(long mediaId, long personId) => new PersonCreatorRole { - PersonId = personId; - return CreateCreatorRole(); - } - - public PersonCreatorRole CreateCreatorRole() => new PersonCreatorRole - { - MediaId = MediaId, - PersonId = PersonId, + MediaId = mediaId, + PersonId = personId, PersonCreatorRoleTypeId = TypeId, }; - public void UpdateCreatorRole(PersonCreatorRole item) + public void UpdateCreatorRole(PersonCreatorRole item, long mediaId, long personId) { - item.MediaId = MediaId; - item.PersonId = PersonId; + item.MediaId = mediaId; + item.PersonId = personId; item.PersonCreatorRoleTypeId = TypeId; } diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleResponse.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleResponse.cs index c1b4433..986989d 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleResponse.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/CreatorRoleResponse.cs @@ -17,6 +17,12 @@ public class CreatorRoleResponse : CreatorRole, IQueryOrderable base.CreateCreatorRole(MediaId, PersonId); + + public void UpdateCreatorRole(PersonCreatorRole item) => base.UpdateCreatorRole(item, MediaId, PersonId); + + #endregion +} \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRoleMediaRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRoleMediaRequest.cs index 2bf7bf9..c99d824 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRoleMediaRequest.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRoleMediaRequest.cs @@ -1,28 +1,10 @@ -using System.Text.Json.Serialization; -using WatchIt.Database.Model.Person; - namespace WatchIt.Common.Model.Roles; -public interface IActorRoleMediaRequest +public interface IActorRoleMediaRequest : IActorRoleRequest { #region PROPERTIES - [JsonPropertyName("person_id")] - long PersonId { get; set; } + public long PersonId { get; set; } - [JsonPropertyName("type_id")] - short TypeId { get; set; } - - [JsonPropertyName("name")] - string Name { get; set; } - - #endregion - - - - #region PUBLIC METHODS - - PersonActorRole CreateActorRole(long mediaId); - #endregion } \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRolePersonRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRolePersonRequest.cs index 05d475b..37d2dfc 100644 --- a/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRolePersonRequest.cs +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRolePersonRequest.cs @@ -1,28 +1,10 @@ -using System.Text.Json.Serialization; -using WatchIt.Database.Model.Person; - namespace WatchIt.Common.Model.Roles; -public interface IActorRolePersonRequest +public interface IActorRolePersonRequest : IActorRoleRequest { #region PROPERTIES - [JsonPropertyName("media_id")] - long MediaId { get; set; } + public long MediaId { get; set; } - [JsonPropertyName("type_id")] - short TypeId { get; set; } - - [JsonPropertyName("name")] - string Name { get; set; } - - #endregion - - - - #region PUBLIC METHODS - - PersonActorRole CreateActorRole(long personId); - #endregion } \ No newline at end of file diff --git a/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRoleRequest.cs b/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRoleRequest.cs new file mode 100644 index 0000000..d61550f --- /dev/null +++ b/WatchIt.Common/WatchIt.Common.Model/Roles/IActorRoleRequest.cs @@ -0,0 +1,12 @@ +namespace WatchIt.Common.Model.Roles; + +public interface IActorRoleRequest +{ + #region PROPERTIES + + public short TypeId { get; set; } + + public string Name { get; set; } + + #endregion +} \ No newline at end of file diff --git a/WatchIt.Database/WatchIt.Database.Model/WatchIt.Database.Model.Configuration/Person/PersonActorRoleConfiguration.cs b/WatchIt.Database/WatchIt.Database.Model/WatchIt.Database.Model.Configuration/Person/PersonActorRoleConfiguration.cs index b94193e..b6edd76 100644 --- a/WatchIt.Database/WatchIt.Database.Model/WatchIt.Database.Model.Configuration/Person/PersonActorRoleConfiguration.cs +++ b/WatchIt.Database/WatchIt.Database.Model/WatchIt.Database.Model.Configuration/Person/PersonActorRoleConfiguration.cs @@ -34,5 +34,9 @@ public class PersonActorRoleConfiguration : IEntityTypeConfiguration x.PersonActorRoleTypeId) .IsRequired(); + + builder.Property(x => x.RoleName) + .HasMaxLength(100) + .IsRequired(); } } \ No newline at end of file diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/MediaController.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/MediaController.cs index 650141b..6764675 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/MediaController.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/MediaController.cs @@ -183,7 +183,7 @@ public class MediaController : ControllerBase [ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task PostMediaActorRole([FromRoute]long id, [FromBody]IActorRoleMediaRequest body) => await _mediaControllerService.PostMediaActorRole(id, body); + public async Task PostMediaActorRole([FromRoute]long id, [FromBody]ActorRoleMediaRequest body) => await _mediaControllerService.PostMediaActorRole(id, body); [HttpGet("{id}/roles/creator")] [AllowAnonymous] @@ -198,7 +198,7 @@ public class MediaController : ControllerBase [ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task PostMediaCreatorRole([FromRoute]long id, [FromBody]ICreatorRoleMediaRequest body) => await _mediaControllerService.PostMediaCreatorRole(id, body); + public async Task PostMediaCreatorRole([FromRoute]long id, [FromBody]CreatorRoleMediaRequest body) => await _mediaControllerService.PostMediaCreatorRole(id, body); #endregion diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/PersonsController.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/PersonsController.cs index 4b84e5e..0192a0d 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/PersonsController.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/PersonsController.cs @@ -122,7 +122,7 @@ public class PersonsController : ControllerBase [ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task PostPersonActorRole([FromRoute]long id, [FromBody]IActorRolePersonRequest body) => await _personsControllerService.PostPersonActorRole(id, body); + public async Task PostPersonActorRole([FromRoute]long id, [FromBody]ActorRolePersonRequest body) => await _personsControllerService.PostPersonActorRole(id, body); [HttpGet("{id}/roles/creator")] [AllowAnonymous] @@ -137,7 +137,7 @@ public class PersonsController : ControllerBase [ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task PostPersonCreatorRole([FromRoute]long id, [FromBody]ICreatorRolePersonRequest body) => await _personsControllerService.PostPersonCreatorRole(id, body); + public async Task PostPersonCreatorRole([FromRoute]long id, [FromBody]CreatorRolePersonRequest body) => await _personsControllerService.PostPersonCreatorRole(id, body); #endregion diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/RolesController.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/RolesController.cs index 100b4e0..cb43f62 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/RolesController.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Controllers/RolesController.cs @@ -47,7 +47,7 @@ public class RolesController : ControllerBase [ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task PutActorRole([FromRoute]Guid id, [FromBody]ActorRoleRequest body) => await _rolesControllerService.PutActorRole(id, body); + public async Task PutActorRole([FromRoute]Guid id, [FromBody]ActorRoleUniversalRequest body) => await _rolesControllerService.PutActorRole(id, body); [HttpDelete("actor/{id}")] [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] @@ -98,7 +98,7 @@ public class RolesController : ControllerBase [ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task PutCreatorRole([FromRoute]Guid id, [FromBody]CreatorRoleRequest body) => await _rolesControllerService.PutCreatorRole(id, body); + public async Task PutCreatorRole([FromRoute]Guid id, [FromBody]CreatorRoleUniversalRequest body) => await _rolesControllerService.PutCreatorRole(id, body); [HttpDelete("creator/{id}")] [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/IMediaControllerService.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/IMediaControllerService.cs index 4dff60c..8b073a0 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/IMediaControllerService.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/IMediaControllerService.cs @@ -31,7 +31,7 @@ public interface IMediaControllerService Task PostMediaPhoto(long mediaId, MediaPhotoRequest data); Task GetMediaAllActorRoles(long mediaId, ActorRoleMediaQueryParameters queryParameters); - Task PostMediaActorRole(long mediaId, IActorRoleMediaRequest data); + Task PostMediaActorRole(long mediaId, ActorRoleMediaRequest data); Task GetMediaAllCreatorRoles(long mediaId, CreatorRoleMediaQueryParameters queryParameters); - Task PostMediaCreatorRole(long mediaId, ICreatorRoleMediaRequest data); + Task PostMediaCreatorRole(long mediaId, CreatorRoleMediaRequest data); } \ No newline at end of file diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/MediaControllerService.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/MediaControllerService.cs index cc25650..18f8364 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/MediaControllerService.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Media/MediaControllerService.cs @@ -377,7 +377,7 @@ public class MediaControllerService(DatabaseContext database, IUserService userS return RequestResult.Ok(data); } - public async Task PostMediaActorRole(long mediaId, IActorRoleMediaRequest data) + public async Task PostMediaActorRole(long mediaId, ActorRoleMediaRequest data) { UserValidator validator = userService.GetValidator().MustBeAdmin(); if (!validator.IsValid) @@ -412,7 +412,7 @@ public class MediaControllerService(DatabaseContext database, IUserService userS return RequestResult.Ok(data); } - public async Task PostMediaCreatorRole(long mediaId, ICreatorRoleMediaRequest data) + public async Task PostMediaCreatorRole(long mediaId, CreatorRoleMediaRequest data) { UserValidator validator = userService.GetValidator().MustBeAdmin(); if (!validator.IsValid) diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/IPersonsControllerService.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/IPersonsControllerService.cs index 760d9f3..8b72b75 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/IPersonsControllerService.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/IPersonsControllerService.cs @@ -19,7 +19,7 @@ public interface IPersonsControllerService Task DeletePersonPhoto(long id); Task GetPersonAllActorRoles(long personId, ActorRolePersonQueryParameters queryParameters); - Task PostPersonActorRole(long personId, IActorRolePersonRequest data); + Task PostPersonActorRole(long personId, ActorRolePersonRequest data); Task GetPersonAllCreatorRoles(long personId, CreatorRolePersonQueryParameters queryParameters); - Task PostPersonCreatorRole(long personId, ICreatorRolePersonRequest data); + Task PostPersonCreatorRole(long personId, CreatorRolePersonRequest data); } \ No newline at end of file diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/PersonsControllerService.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/PersonsControllerService.cs index d7031f5..2118ce2 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/PersonsControllerService.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Persons/PersonsControllerService.cs @@ -235,7 +235,7 @@ public class PersonsControllerService : IPersonsControllerService return RequestResult.Ok(data); } - public async Task PostPersonActorRole(long personId, IActorRolePersonRequest data) + public async Task PostPersonActorRole(long personId, ActorRolePersonRequest data) { UserValidator validator = _userService.GetValidator().MustBeAdmin(); if (!validator.IsValid) @@ -243,7 +243,7 @@ public class PersonsControllerService : IPersonsControllerService return RequestResult.Forbidden(); } - Database.Model.Person.Person? person = await _database.Persons.FirstOrDefaultAsync(x => x.Id == personId); + Person? person = await _database.Persons.FirstOrDefaultAsync(x => x.Id == personId); if (person is null) { return RequestResult.NotFound(); @@ -258,7 +258,7 @@ public class PersonsControllerService : IPersonsControllerService public async Task GetPersonAllCreatorRoles(long personId, CreatorRolePersonQueryParameters queryParameters) { - Database.Model.Person.Person? media = await _database.Persons.FirstOrDefaultAsync(x => x.Id == personId); + Person? media = await _database.Persons.FirstOrDefaultAsync(x => x.Id == personId); if (media is null) { return RequestResult.NotFound(); @@ -270,7 +270,7 @@ public class PersonsControllerService : IPersonsControllerService return RequestResult.Ok(data); } - public async Task PostPersonCreatorRole(long personId, ICreatorRolePersonRequest data) + public async Task PostPersonCreatorRole(long personId, CreatorRolePersonRequest data) { UserValidator validator = _userService.GetValidator().MustBeAdmin(); if (!validator.IsValid) @@ -278,7 +278,7 @@ public class PersonsControllerService : IPersonsControllerService return RequestResult.Forbidden(); } - Database.Model.Person.Person? media = await _database.Persons.FirstOrDefaultAsync(x => x.Id == personId); + Person? media = await _database.Persons.FirstOrDefaultAsync(x => x.Id == personId); if (media is null) { return RequestResult.NotFound(); diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/IRolesControllerService.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/IRolesControllerService.cs index 6841b05..13b364c 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/IRolesControllerService.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/IRolesControllerService.cs @@ -6,7 +6,7 @@ namespace WatchIt.WebAPI.Services.Controllers.Roles; public interface IRolesControllerService { Task GetActorRole(Guid id); - Task PutActorRole(Guid id, ActorRoleRequest data); + Task PutActorRole(Guid id, ActorRoleUniversalRequest data); Task DeleteActorRole(Guid id); Task GetAllActorRoleTypes(RoleTypeQueryParameters query); Task GetActorRoleType(short typeId); @@ -14,7 +14,7 @@ public interface IRolesControllerService Task DeleteActorRoleType(short typeId); Task GetCreatorRole(Guid id); - Task PutCreatorRole(Guid id, CreatorRoleRequest data); + Task PutCreatorRole(Guid id, CreatorRoleUniversalRequest data); Task DeleteCreatorRole(Guid id); Task GetAllCreatorRoleTypes(RoleTypeQueryParameters query); Task GetCreatorRoleType(short typeId); diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/RolesControllerService.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/RolesControllerService.cs index f004d9b..3f6735e 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/RolesControllerService.cs +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Services/WatchIt.WebAPI.Services.Controllers/WatchIt.WebAPI.Services.Controllers.Roles/RolesControllerService.cs @@ -46,7 +46,7 @@ public class RolesControllerService : IRolesControllerService return RequestResult.Ok(data); } - public async Task PutActorRole(Guid id, ActorRoleRequest data) + public async Task PutActorRole(Guid id, ActorRoleUniversalRequest data) { UserValidator validator = _userService.GetValidator().MustBeAdmin(); if (!validator.IsValid) @@ -159,7 +159,7 @@ public class RolesControllerService : IRolesControllerService return RequestResult.Ok(data); } - public async Task PutCreatorRole(Guid id, CreatorRoleRequest data) + public async Task PutCreatorRole(Guid id, CreatorRoleUniversalRequest data) { UserValidator validator = _userService.GetValidator().MustBeAdmin(); if (!validator.IsValid) diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRoleMediaRequestValidator.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRoleMediaRequestValidator.cs new file mode 100644 index 0000000..12c2b5c --- /dev/null +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRoleMediaRequestValidator.cs @@ -0,0 +1,16 @@ +using FluentValidation; +using WatchIt.Common.Model.Roles; +using WatchIt.Database; + +namespace WatchIt.WebAPI.Validators.Roles; + +public class ActorRoleMediaRequestValidator : AbstractValidator +{ + public ActorRoleMediaRequestValidator(DatabaseContext database) + { + Include(new BaseActorRoleRequestValidator(database)); + RuleFor(x => x.PersonId).NotEmpty() + .NotNull() + .MustBeIn(database.Persons.Select(x => x.Id).ToList()); + } +} \ No newline at end of file diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRolePersonRequestValidator.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRolePersonRequestValidator.cs new file mode 100644 index 0000000..c89142c --- /dev/null +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRolePersonRequestValidator.cs @@ -0,0 +1,16 @@ +using FluentValidation; +using WatchIt.Common.Model.Roles; +using WatchIt.Database; + +namespace WatchIt.WebAPI.Validators.Roles; + +public class ActorRolePersonRequestValidator : AbstractValidator +{ + public ActorRolePersonRequestValidator(DatabaseContext database) + { + Include(new BaseActorRoleRequestValidator(database)); + RuleFor(x => x.MediaId).NotEmpty() + .NotNull() + .MustBeIn(database.Media.Select(x => x.Id).ToList()); + } +} \ No newline at end of file diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRoleUniversalRequestValidator.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRoleUniversalRequestValidator.cs new file mode 100644 index 0000000..d23f72d --- /dev/null +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/ActorRoleUniversalRequestValidator.cs @@ -0,0 +1,19 @@ +using FluentValidation; +using WatchIt.Common.Model.Roles; +using WatchIt.Database; + +namespace WatchIt.WebAPI.Validators.Roles; + +public class ActorRoleUniversalRequestValidator : AbstractValidator +{ + public ActorRoleUniversalRequestValidator(DatabaseContext database) + { + Include(new BaseActorRoleRequestValidator(database)); + RuleFor(x => x.PersonId).NotEmpty() + .NotNull() + .MustBeIn(database.Persons.Select(x => x.Id).ToList()); + RuleFor(x => x.MediaId).NotEmpty() + .NotNull() + .MustBeIn(database.Media.Select(x => x.Id).ToList()); + } +} \ No newline at end of file diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/BaseActorRoleRequestValidator.cs b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/BaseActorRoleRequestValidator.cs new file mode 100644 index 0000000..5ead1e0 --- /dev/null +++ b/WatchIt.WebAPI/WatchIt.WebAPI.Validators/Roles/BaseActorRoleRequestValidator.cs @@ -0,0 +1,17 @@ +using FluentValidation; +using WatchIt.Common.Model.Roles; +using WatchIt.Database; + +namespace WatchIt.WebAPI.Validators.Roles; + +public class BaseActorRoleRequestValidator : AbstractValidator +{ + public BaseActorRoleRequestValidator(DatabaseContext database) + { + RuleFor(x => x.Name).NotEmpty() + .MaximumLength(100); + RuleFor(x => x.TypeId).NotEmpty() + .NotNull() + .MustBeIn(database.PersonActorRoleTypes.Select(x => x.Id).ToList()); + } +} \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/IMediaWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/IMediaWebAPIService.cs index ec33625..7f80fa0 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/IMediaWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/IMediaWebAPIService.cs @@ -31,7 +31,7 @@ public interface IMediaWebAPIService Task PostMediaPhoto(long mediaId, MediaPhotoRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null); Task GetMediaAllActorRoles(long id, ActorRoleMediaQueryParameters? query = null, Action>? successAction = null); - Task PostMediaActorRole(long id, IActorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); + Task PostMediaActorRole(long id, ActorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task GetMediaAllCreatorRoles(long id, CreatorRoleMediaQueryParameters? query = null, Action>? successAction = null); - Task PostMediaCreatorRole(long id, ICreatorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); + Task PostMediaCreatorRole(long id, CreatorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); } \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/MediaWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/MediaWebAPIService.cs index 0098bd6..4fecf3b 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/MediaWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Media/MediaWebAPIService.cs @@ -285,7 +285,7 @@ public class MediaWebAPIService : BaseWebAPIService, IMediaWebAPIService .ExecuteAction(); } - public async Task PostMediaActorRole(long id, IActorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) + public async Task PostMediaActorRole(long id, ActorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) { string url = GetUrl(EndpointsConfiguration.Media.PostMediaActorRole, id); @@ -312,7 +312,7 @@ public class MediaWebAPIService : BaseWebAPIService, IMediaWebAPIService .ExecuteAction(); } - public async Task PostMediaCreatorRole(long id, ICreatorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) + public async Task PostMediaCreatorRole(long id, CreatorRoleMediaRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) { string url = GetUrl(EndpointsConfiguration.Media.PostMediaCreatorRole, id); diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs index 0570417..c1f7cd9 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs @@ -18,7 +18,7 @@ public interface IPersonsWebAPIService Task DeletePersonPhoto(long id, Action? successAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task GetPersonAllActorRoles(long id, ActorRolePersonQueryParameters? query = null, Action>? successAction = null); - Task PostPersonActorRole(long id, IActorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); + Task PostPersonActorRole(long id, ActorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task GetPersonAllCreatorRoles(long id, CreatorRolePersonQueryParameters? query = null, Action>? successAction = null); - Task PostPersonCreatorRole(long id, ICreatorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); + Task PostPersonCreatorRole(long id, CreatorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); } \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs index 375b597..b7d6ed4 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs @@ -202,7 +202,7 @@ public class PersonsWebAPIService : BaseWebAPIService, IPersonsWebAPIService .ExecuteAction(); } - public async Task PostPersonActorRole(long id, IActorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) + public async Task PostPersonActorRole(long id, ActorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) { string url = GetUrl(EndpointsConfiguration.Persons.PostPersonActorRole, id); @@ -229,7 +229,7 @@ public class PersonsWebAPIService : BaseWebAPIService, IPersonsWebAPIService .ExecuteAction(); } - public async Task PostPersonCreatorRole(long id, ICreatorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) + public async Task PostPersonCreatorRole(long id, CreatorRolePersonRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null) { string url = GetUrl(EndpointsConfiguration.Persons.PostPersonCreatorRole, id); diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/IRolesWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/IRolesWebAPIService.cs index d88111e..106027b 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/IRolesWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/IRolesWebAPIService.cs @@ -5,14 +5,15 @@ namespace WatchIt.Website.Services.WebAPI.Roles; public interface IRolesWebAPIService { Task GetActorRole(Guid id, Action? successAction = null, Action? notFoundAction = null); - Task PutActorRole(Guid id, ActorRoleRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null); + Task PutActorRole(Guid id, ActorRoleUniversalRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null); Task DeleteActorRole(Guid id, Action? successAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task GetAllActorRoleTypes(RoleTypeQueryParameters? query = null, Action>? successAction = null); Task GetActorRoleType(long typeId, Action? successAction = null, Action? notFoundAction = null); Task PostActorRoleType(RoleTypeRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task DeleteActorRoleType(long typeId, Action? successAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); + Task GetCreatorRole(Guid id, Action? successAction = null, Action? notFoundAction = null); - Task PutCreatorRole(Guid id, CreatorRoleRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null); + Task PutCreatorRole(Guid id, CreatorRoleUniversalRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null); Task DeleteCreatorRole(Guid id, Action? successAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task GetAllCreatorRoleTypes(RoleTypeQueryParameters? query = null, Action>? successAction = null); Task GetCreatorRoleType(long typeId, Action? successAction = null, Action? notFoundAction = null); diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/RolesWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/RolesWebAPIService.cs index 839aca8..4e6a1b9 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/RolesWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Roles/RolesWebAPIService.cs @@ -42,7 +42,7 @@ public class RolesWebAPIService : BaseWebAPIService, IRolesWebAPIService .ExecuteAction(); } - public async Task PutActorRole(Guid id, ActorRoleRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null) + public async Task PutActorRole(Guid id, ActorRoleUniversalRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null) { string url = GetUrl(EndpointsConfiguration.Roles.PutActorRole, id); @@ -139,7 +139,7 @@ public class RolesWebAPIService : BaseWebAPIService, IRolesWebAPIService .ExecuteAction(); } - public async Task PutCreatorRole(Guid id, CreatorRoleRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null) + public async Task PutCreatorRole(Guid id, CreatorRoleUniversalRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null, Action? notFoundAction = null) { string url = GetUrl(EndpointsConfiguration.Roles.PutCreatorRole, id); diff --git a/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor b/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor index 95c812a..c35de7e 100644 --- a/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor @@ -1,5 +1,6 @@ @using Blazorise.Extensions @using WatchIt.Common.Model.Roles +@using Blazorise.Components @@ -106,7 +107,44 @@ } else { - + + +
+
+ +
+ + Sorry... @not_found_context was not found + +
+
+
+ +
+ + @foreach (KeyValuePair type in _roleTypes) + { + + } + +
+
+
+ +
+ +
+
+
+
} } diff --git a/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor.cs b/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor.cs index 06af0dd..ccfd445 100644 --- a/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor.cs +++ b/WatchIt.Website/WatchIt.Website/Components/PersonEditPage/PersonRolesEditActorComponent.razor.cs @@ -38,7 +38,7 @@ public partial class PersonRolesEditActorComponent : ComponentBase private Guid? _editedId; - private IActorRolePersonRequest _editedModel = new ActorRoleRequest(); + private IActorRolePersonRequest? _editedModel; private bool _editingMode; private bool _saving; @@ -67,6 +67,7 @@ public partial class PersonRolesEditActorComponent : ComponentBase // END await Task.WhenAll(endTasks); + _roles = _roles.OrderBy(x => Media.First(y => y.Key == x.Value.Data.MediaId).Value.ReleaseDate).ToDictionary(x => x.Key, x => x.Value); _loaded = true; StateHasChanged(); @@ -78,15 +79,49 @@ public partial class PersonRolesEditActorComponent : ComponentBase _editingMode = false; } - private void SaveEdit() + private async Task SaveEdit() { + void SuccessPost(ActorRoleResponse data) + { + _roles[data.Id] = (data, false); + _roles = _roles.OrderBy(x => Media.First(y => y.Key == x.Value.Data.MediaId).Value.ReleaseDate).ToDictionary(x => x.Key, x => x.Value); + + _saving = false; + _editingMode = false; + } + + void SuccessPut() + { + ActorRoleResponse temp = _roles[_editedId!.Value].Data; + temp.MediaId = _editedModel.MediaId; + temp.TypeId = _editedModel.TypeId; + temp.Name = _editedModel.Name; + + _roles[_editedId!.Value] = (temp, false); + _roles = _roles.OrderBy(x => Media.First(y => y.Key == x.Value.Data.MediaId).Value.ReleaseDate).ToDictionary(x => x.Key, x => x.Value); + + _saving = false; + _editingMode = false; + } + _saving = true; + if (_editedId.HasValue) + { + await RolesWebAPIService.PutActorRole(_editedId.Value, _editedModel as ActorRoleUniversalRequest, SuccessPut); + } + else + { + await PersonsWebAPIService.PostPersonActorRole(Id!.Value, _editedModel as ActorRolePersonRequest, SuccessPost); + } } private void ActivateEdit(Guid? id = null) { _editedId = id; - _editedModel = id.HasValue ? new ActorRoleRequest(_roles[id.Value].Data) : new ActorRoleRequest(); + _editedModel = id.HasValue ? new ActorRoleUniversalRequest(_roles[id.Value].Data) : new ActorRolePersonRequest() + { + TypeId = _roleTypes.Keys.First() + }; _editingMode = true; } diff --git a/WatchIt.Website/WatchIt.Website/Components/PictureEditorComponent.razor b/WatchIt.Website/WatchIt.Website/Components/PictureEditorComponent.razor index 8a3a505..bcd5be9 100644 --- a/WatchIt.Website/WatchIt.Website/Components/PictureEditorComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/PictureEditorComponent.razor @@ -51,7 +51,7 @@ else {
- +
}