From 17a6bf627d0aa575fc3f67c845a3c60983be2c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 25 Apr 2022 11:10:27 +0200 Subject: [PATCH 001/432] added draft for user deletion --- Core.ApplicationServices/AdviceService.cs | 4 ++ .../OrganizationAuthorizationContext.cs | 5 +- Core.ApplicationServices/IUserService.cs | 1 + .../OrganizationRoleService.cs | 5 -- .../Organizations/OrganizationService.cs | 20 ++++--- Core.ApplicationServices/UserService.cs | 59 ++++++++++++++++++- Core.DomainModel/User.cs | 5 +- .../IOrganizationRoleService.cs | 2 - .../Controllers/API/V1/UserController.cs | 16 +++-- .../CustomMembershipProvider.cs | 5 ++ .../ApplicationServices/UserServiceTest.cs | 4 +- .../Services/OrganizationServiceTest.cs | 4 +- 12 files changed, 101 insertions(+), 29 deletions(-) diff --git a/Core.ApplicationServices/AdviceService.cs b/Core.ApplicationServices/AdviceService.cs index 603ac3401d..b83c7ed246 100644 --- a/Core.ApplicationServices/AdviceService.cs +++ b/Core.ApplicationServices/AdviceService.cs @@ -239,6 +239,7 @@ private void AddRecipientByRole(Advice advice, AdviceUserRelation r, MailAddress && I.Role.Name == r.Name); foreach (var t in itContractRoles) { + if(t.User.Deleted) continue; mailAddressCollection.Add(t.User.Email); } @@ -248,6 +249,7 @@ private void AddRecipientByRole(Advice advice, AdviceUserRelation r, MailAddress && I.Role.Name == r.Name); foreach (var t in projectRoles) { + if(t.User.Deleted) continue; mailAddressCollection.Add(t.User.Email); } @@ -258,6 +260,7 @@ private void AddRecipientByRole(Advice advice, AdviceUserRelation r, MailAddress && I.Role.Name == r.Name); foreach (var t in systemRoles) { + if(t.User.Deleted) continue; mailAddressCollection.Add(t.User.Email); } @@ -269,6 +272,7 @@ private void AddRecipientByRole(Advice advice, AdviceUserRelation r, MailAddress && I.Role.Name == r.Name); foreach (var t in dpaRoles) { + if(t.User.Deleted) continue; mailAddressCollection.Add(t.User.Email); } diff --git a/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs b/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs index b1b80e46e2..59035d6c29 100644 --- a/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs +++ b/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs @@ -236,6 +236,7 @@ public bool AllowDelete(IEntity entity) { result = entity switch { + User _ => IsGlobalAdmin(), ItInterface itInterface => //Even rightsholders are not allowed to delete interfaces IsGlobalAdmin() || IsLocalAdmin(itInterface.OrganizationId), @@ -368,10 +369,10 @@ bool IPermissionVisitor.Visit(VisibilityControlPermission permission) return target switch { - IContractModule _ => IsGlobalAdmin() || + IContractModule _ => IsGlobalAdmin() || IsLocalAdmin(ownedByOrganization.OrganizationId) || IsContractModuleAdmin(ownedByOrganization.OrganizationId), - IOrganizationModule _ => IsGlobalAdmin() || + IOrganizationModule _ => IsGlobalAdmin() || IsLocalAdmin(ownedByOrganization.OrganizationId), _ => IsGlobalAdmin() }; diff --git a/Core.ApplicationServices/IUserService.cs b/Core.ApplicationServices/IUserService.cs index d4e0e0460d..2794579c0e 100644 --- a/Core.ApplicationServices/IUserService.cs +++ b/Core.ApplicationServices/IUserService.cs @@ -18,5 +18,6 @@ public interface IUserService : IDisposable Result, OperationError> GetUsersWithRoleAssignedInAnyOrganization(OrganizationRole role); Result, OperationError> GetUsersInOrganization(Guid organizationUuid, params IDomainQuery[] queries); Result GetUserInOrganization(Guid organizationUuid, Guid userUuid); + Maybe DeleteUserFromKitos(Guid userUuid); } } \ No newline at end of file diff --git a/Core.ApplicationServices/OrganizationRoleService.cs b/Core.ApplicationServices/OrganizationRoleService.cs index 1c2679538c..5ff5a71b75 100644 --- a/Core.ApplicationServices/OrganizationRoleService.cs +++ b/Core.ApplicationServices/OrganizationRoleService.cs @@ -40,11 +40,6 @@ public OrganizationRight MakeUser(User user, Organization organization) return AddOrganizationRoleToUser(user, organization, OrganizationRole.User); } - public OrganizationRight MakeLocalAdmin(User user, Organization organization) - { - return AddOrganizationRoleToUser(user, organization, OrganizationRole.LocalAdmin); - } - public IReadOnlyDictionary> GetOrganizationRoles(User user) { var rolesByRights = user.OrganizationRights diff --git a/Core.ApplicationServices/Organizations/OrganizationService.cs b/Core.ApplicationServices/Organizations/OrganizationService.cs index 7575caeb76..f88c041123 100644 --- a/Core.ApplicationServices/Organizations/OrganizationService.cs +++ b/Core.ApplicationServices/Organizations/OrganizationService.cs @@ -1,5 +1,4 @@ using System; -using System.Data; using System.Linq; using Core.Abstractions.Extensions; using Core.Abstractions.Types; @@ -24,12 +23,12 @@ public class OrganizationService : IOrganizationService private readonly IGenericRepository _orgRepository; private readonly IOrganizationRepository _repository; private readonly IOrgUnitService _orgUnitService; + private readonly IOrganizationRightsService _organizationRightsService; private readonly IGenericRepository _orgRightRepository; private readonly IGenericRepository _userRepository; private readonly IAuthorizationContext _authorizationContext; private readonly IOrganizationalUserContext _userContext; private readonly ILogger _logger; - private readonly IOrganizationRoleService _organizationRoleService; private readonly ITransactionManager _transactionManager; public OrganizationService( @@ -39,10 +38,10 @@ public OrganizationService( IAuthorizationContext authorizationContext, IOrganizationalUserContext userContext, ILogger logger, - IOrganizationRoleService organizationRoleService, ITransactionManager transactionManager, IOrganizationRepository repository, - IOrgUnitService orgUnitService) + IOrgUnitService orgUnitService, + IOrganizationRightsService organizationRightsService) { _orgRepository = orgRepository; _orgRightRepository = orgRightRepository; @@ -50,10 +49,10 @@ public OrganizationService( _authorizationContext = authorizationContext; _userContext = userContext; _logger = logger; - _organizationRoleService = organizationRoleService; _transactionManager = transactionManager; _repository = repository; _orgUnitService = orgUnitService; + _organizationRightsService = organizationRightsService; } //returns the default org unit for that user inside that organization @@ -82,6 +81,7 @@ public void SetDefaultOrgUnit(User user, int orgId, int orgUnitId) /// The user to be removed. public Result RemoveUser(int organizationId, int userId) { + using var transaction = _transactionManager.Begin(); var organization = _orgRepository.GetByKey(organizationId); if (organization == null) { @@ -100,9 +100,15 @@ public Result RemoveUser(int organizationId, int foreach (var right in rights) { - _orgRightRepository.DeleteByKey(right.Id); + var result = _organizationRightsService.RemoveRole(right.Id); + if (result.Failed) + { + _logger.Error("Failed to delete right with id {rightId} due to error: {errorCode}", right.Id, result.Error); + transaction.Rollback(); + return Result.Failure(OperationFailure.UnknownError); + } } - _orgRightRepository.Save(); + transaction.Commit(); return organization; } diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index ee5830e583..80b7061aef 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -13,10 +13,12 @@ using Core.ApplicationServices.Authorization; using Core.ApplicationServices.Organizations; using Core.DomainModel.Events; +using Core.DomainModel.Organization.DomainEvents; using Infrastructure.Services.Cryptography; using Core.DomainServices.Authorization; using Core.DomainServices.Extensions; using Core.DomainServices.Queries; +using Infrastructure.Services.DataAccess; namespace Core.ApplicationServices @@ -30,6 +32,7 @@ public class UserService : IUserService private readonly bool _useDefaultUserPassword; private readonly IUserRepository _repository; private readonly IOrganizationService _organizationService; + private readonly ITransactionManager _transactionManager; private readonly IGenericRepository _userRepository; private readonly IGenericRepository _orgRepository; private readonly IGenericRepository _passwordResetRequestRepository; @@ -54,7 +57,8 @@ public UserService(TimeSpan ttl, IAuthorizationContext authorizationContext, IDomainEvents domainEvents, IUserRepository repository, - IOrganizationService organizationService) + IOrganizationService organizationService, + ITransactionManager transactionManager) { _ttl = ttl; _baseUrl = baseUrl; @@ -70,6 +74,7 @@ public UserService(TimeSpan ttl, _domainEvents = domainEvents; _repository = repository; _organizationService = organizationService; + _transactionManager = transactionManager; _crypt = new SHA256Managed(); if (useDefaultUserPassword && string.IsNullOrWhiteSpace(defaultUserPassword)) { @@ -124,7 +129,7 @@ public void IssueAdvisMail(User user, bool reminder, int orgId) "'>her, hvor du første gang bliver bedt om at indtaste et nyt password for din KITOS profil.

" + "

Linket udløber om " + _ttl.TotalDays + " dage. Klik her, " + "hvis dit link er udløbet og du vil blive ledt til 'Glemt password' proceduren.

" + - "

Klik her for at få Hjælp til log ind og brugerkonto

" + + "

Klik her for at få Hjælp til log ind og brugerkonto

" + "

Bemærk at denne mail ikke kan besvares.

"; IssuePasswordReset(user, subject, content); @@ -149,7 +154,7 @@ public PasswordResetRequest IssuePasswordReset(User user, string subject, string "

Klik her for at nulstille passwordet for din KITOS profil.

" + "

Linket udløber om " + _ttl.TotalDays + " dage.

" + - "

Klik her for at få Hjælp til log ind og brugerkonto

" + + "

Klik her for at få Hjælp til log ind og brugerkonto

" + "

Bemærk at denne mail ikke kan besvares.

"; } var mailSubject = "Nulstilning af dit KITOS password" + _mailSuffix; @@ -280,5 +285,53 @@ public Result GetUserInOrganization(Guid organizationUuid, ) ); } + + public Maybe DeleteUserFromKitos(Guid userUuid) + { + using var transaction = _transactionManager.Begin(); + + var user = _userRepository.AsQueryable().ByUuid(userUuid); + if (user == null) + return Maybe.Some(new OperationError(OperationFailure.NotFound)); + + if (!_authorizationContext.AllowDelete(user)) + return Maybe.Some(new OperationError(OperationFailure.Forbidden)); + + Delete(user); + _domainEvents.Raise(new AccessRightsChanged(user.Id)); + _userRepository.Save(); + + transaction.Commit(); + return Maybe.None; + } + + private void Delete(User user) + { + //TODO: Disable automatic advice emails sent to user.. set a flag "disabled".. also disable the user for login with the same flag (disabled) + user.LockedOutDate = DateTime.Now; + user.EmailBeforeDeletion = user.Email; + user.Email = $"{Guid.NewGuid()}_deleted_user@kitos.dk"; + user.PhoneNumber = null; + user.LastName = $"{(user.LastName ?? "").TrimEnd()} (SLETTET)"; + user.DeletedDate = DateTime.Now; + user.IsGlobalAdmin = false; + user.HasApiAccess = false; + user.HasStakeHolderAccess = false; + + + //TODO: Check cascades + user.ItProjectRights.Clear(); + user.ItContractRights.Clear(); + user.DataProcessingRegistrationRights.Clear(); + user.ItSystemRights.Clear(); + user.OrganizationRights.Clear(); + user.OrganizationUnitRights.Clear(); + user.ItProjectStatuses.Clear(); + user.ResponsibleForCommunications.Clear(); + user.HandoverParticipants.Clear(); + user.LifeCycleTrackingEvents.Clear(); + user.ResponsibleForRisks.Clear(); + user.SsoIdentities.Clear(); + } } } diff --git a/Core.DomainModel/User.cs b/Core.DomainModel/User.cs index 852299b15b..c4424147ef 100644 --- a/Core.DomainModel/User.cs +++ b/Core.DomainModel/User.cs @@ -46,6 +46,9 @@ public User() public string Password { get; set; } public string Salt { get; set; } public DateTime? LastAdvisDate { get; set; } + public string EmailBeforeDeletion { get; set; } + public DateTime? DeletedDate { get; set; } + public bool Deleted { get; set; } public string DefaultUserStartPreference { get; set; } /// @@ -59,7 +62,7 @@ public User() public bool CanAuthenticate() { - return IsGlobalAdmin || OrganizationRights.Any(); + return !Deleted && (IsGlobalAdmin || OrganizationRights.Any()); } /// diff --git a/Core.DomainServices/IOrganizationRoleService.cs b/Core.DomainServices/IOrganizationRoleService.cs index 6e38910dd4..6a1f74df6c 100644 --- a/Core.DomainServices/IOrganizationRoleService.cs +++ b/Core.DomainServices/IOrganizationRoleService.cs @@ -8,8 +8,6 @@ public interface IOrganizationRoleService { OrganizationRight MakeUser(User user, Organization organization); - OrganizationRight MakeLocalAdmin(User user, Organization organization); - IReadOnlyDictionary> GetOrganizationRoles(User user); IEnumerable GetRolesInOrganization(User user, int organizationId); diff --git a/Presentation.Web/Controllers/API/V1/UserController.cs b/Presentation.Web/Controllers/API/V1/UserController.cs index 63134cce29..259ecc8b90 100644 --- a/Presentation.Web/Controllers/API/V1/UserController.cs +++ b/Presentation.Web/Controllers/API/V1/UserController.cs @@ -4,7 +4,6 @@ using System.Net.Http; using System.Web.Http; using Core.ApplicationServices; -using Core.ApplicationServices.Authorization; using Core.ApplicationServices.Authorization.Permissions; using Core.ApplicationServices.Model.RightsHolder; using Core.ApplicationServices.Organizations; @@ -13,6 +12,7 @@ using Core.DomainModel.Organization; using Core.DomainServices; using Core.DomainServices.Extensions; +using Core.DomainServices.Generic; using Newtonsoft.Json.Linq; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V1; @@ -25,21 +25,21 @@ public class UserController : GenericApiController { private readonly IUserService _userService; private readonly IOrganizationService _organizationService; - private readonly IOrganizationalUserContext _userContext; private readonly IUserRightsService _userRightsService; + private readonly IEntityIdentityResolver _identityResolver; public UserController( IGenericRepository repository, IUserService userService, IOrganizationService organizationService, - IOrganizationalUserContext userContext, - IUserRightsService userRightsService) + IUserRightsService userRightsService, + IEntityIdentityResolver identityResolver) : base(repository) { _userService = userService; _organizationService = organizationService; - _userContext = userContext; _userRightsService = userRightsService; + _identityResolver = identityResolver; } [NonAction] @@ -183,8 +183,12 @@ public HttpResponseMessage PostDefaultOrgUnit(bool? updateDefaultOrgUnit, Update public override HttpResponseMessage Delete(int id, int organizationId = 0) { // NOTE: Only exists to apply optional param for org id - return base.Delete(id, organizationId); + var uuid = _identityResolver.ResolveUuid(id); + return uuid.IsNone + ? NotFound() + : _userService.DeleteUserFromKitos(uuid.Value).Match(FromOperationError, Ok); } + [HttpGet] [Route("api/user/with-rightsholder-access")] diff --git a/Presentation.Web/Infrastructure/CustomMembershipProvider.cs b/Presentation.Web/Infrastructure/CustomMembershipProvider.cs index 86b350f25a..7adcfb5964 100644 --- a/Presentation.Web/Infrastructure/CustomMembershipProvider.cs +++ b/Presentation.Web/Infrastructure/CustomMembershipProvider.cs @@ -179,6 +179,11 @@ public override bool ValidateUser(string username, string password) return isValid; } + if (user.Deleted) + { + Logger.Warn("Attempt to authenticate deleted user with id:{id}",user.Id); + return false; + } // having a LockedOutDate means that the user is locked out if (user.LockedOutDate != null) { diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 1d81680b15..4e147c109a 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -13,6 +13,7 @@ using Core.ApplicationServices.Organizations; using Core.DomainModel.Events; using Core.DomainServices.Queries; +using Infrastructure.Services.DataAccess; using Tests.Toolkit.Patterns; using Xunit; @@ -58,7 +59,8 @@ public UserServiceTest() _authorizationContextMock.Object, _domainEventsMock.Object, _repositoryMock.Object, - _organizationServiceMock.Object); + _organizationServiceMock.Object, + Mock.Of()); } [Fact] diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 6ce18263c1..098cedd6e2 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -58,10 +58,10 @@ public OrganizationServiceTest() _authorizationContext.Object, _userContext.Object, Mock.Of(), - _roleService.Object, _transactionManager.Object, _repositoryMock.Object, - _orgUnitServiceMock.Object); + _orgUnitServiceMock.Object, + Mock.Of()); } [Fact] From c24000cd7a99737fb4598405fa839c7968b2c45a Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 19 May 2022 09:44:20 +0200 Subject: [PATCH 002/432] Delete TODO --- Core.ApplicationServices/UserService.cs | 1 - .../Tests.Integration.Presentation.Web.csproj | 1 + .../Tools/RightsHelper.cs | 12 ++++++++++++ Tests.Integration.Presentation.Web/Users/UserTest.cs | 6 ++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 Tests.Integration.Presentation.Web/Tools/RightsHelper.cs diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 4bc127d3e8..a11e991a8e 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -307,7 +307,6 @@ public Maybe DeleteUserFromKitos(Guid userUuid) private void Delete(User user) { - //TODO: Disable automatic advice emails sent to user.. set a flag "disabled".. also disable the user for login with the same flag (disabled) user.LockedOutDate = DateTime.Now; user.EmailBeforeDeletion = user.Email; user.Email = $"{Guid.NewGuid()}_deleted_user@kitos.dk"; diff --git a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj index 5ddca70de5..ca1f2c1cb6 100644 --- a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj +++ b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj @@ -193,6 +193,7 @@ + diff --git a/Tests.Integration.Presentation.Web/Tools/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/RightsHelper.cs new file mode 100644 index 0000000000..12c00de386 --- /dev/null +++ b/Tests.Integration.Presentation.Web/Tools/RightsHelper.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tests.Integration.Presentation.Web.Tools +{ + internal class RightsHelper + { + } +} diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 9302adb9e8..d82336da28 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -119,6 +119,12 @@ public async Task Cannot_Get_Users_Where_User_Has_StakeHolder_Or_ApiAccess_If_No Assert.Equal(HttpStatusCode.Forbidden, result.StatusCode); } + [Fact] + public async Task Delete_User() + { + + } + private async Task<(int userId, string userEmail, string orgName)> CreateStakeHolderUserInNewOrganizationAsync(bool hasApiAccess, bool hasStakeholderAccess) { var email = CreateEmail(); From 59b74574cc1485df943c50b3287ef0aa2da97fff Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 19 May 2022 11:18:21 +0200 Subject: [PATCH 003/432] Delete test --- .../Organizations/OrganizationService.cs | 3 +- Core.ApplicationServices/UserService.cs | 4 +- .../Infrastructure.DataAccess.csproj | 7 + .../202205190801320_UserDelete.Designer.cs | 29 ++++ .../Migrations/202205190801320_UserDelete.cs | 22 +++ .../202205190801320_UserDelete.resx | 126 ++++++++++++++++++ .../Tests.Integration.Presentation.Web.csproj | 4 +- .../Tools/External/Rights/RightsHelper.cs | 49 +++++++ .../Tools/External/Rights/RightsType.cs | 18 +++ .../Tools/Model/RightDTO.cs | 14 ++ .../Tools/RightsHelper.cs | 12 -- .../Tools/UserHelper.cs | 6 + .../Users/UserTest.cs | 15 +++ .../Services/OrganizationServiceTest.cs | 3 +- 14 files changed, 294 insertions(+), 18 deletions(-) create mode 100644 Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.cs create mode 100644 Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.resx create mode 100644 Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs create mode 100644 Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs create mode 100644 Tests.Integration.Presentation.Web/Tools/Model/RightDTO.cs delete mode 100644 Tests.Integration.Presentation.Web/Tools/RightsHelper.cs diff --git a/Core.ApplicationServices/Organizations/OrganizationService.cs b/Core.ApplicationServices/Organizations/OrganizationService.cs index 2545a9270e..654c749563 100644 --- a/Core.ApplicationServices/Organizations/OrganizationService.cs +++ b/Core.ApplicationServices/Organizations/OrganizationService.cs @@ -43,8 +43,7 @@ public OrganizationService( ILogger logger, ITransactionManager transactionManager, IOrganizationRepository repository, - IOrgUnitService orgUnitService, - IOrganizationRightsService organizationRightsService) + IOrganizationRightsService organizationRightsService, IOrgUnitService orgUnitService, IDomainEvents domainEvents) { diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index a11e991a8e..ab54407fdb 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -319,8 +319,9 @@ private void Delete(User user) //TODO: Check cascades - user.ItProjectRights.Clear(); user.ItContractRights.Clear(); + /* + user.ItProjectRights.Clear(); user.DataProcessingRegistrationRights.Clear(); user.ItSystemRights.Clear(); user.OrganizationRights.Clear(); @@ -331,6 +332,7 @@ private void Delete(User user) user.LifeCycleTrackingEvents.Clear(); user.ResponsibleForRisks.Clear(); user.SsoIdentities.Clear(); + user.PasswordResetRequests.Clear();*/ } } } diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 4171b2b856..515928ff77 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -860,6 +860,10 @@ 202205181142292_Added_UIModuleCustomization.cs + + + 202205190801320_UserDelete.cs + @@ -1420,6 +1424,9 @@ 202205181142292_Added_UIModuleCustomization.cs + + 202205190801320_UserDelete.cs + diff --git a/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.Designer.cs b/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.Designer.cs new file mode 100644 index 0000000000..d09cf0d6d4 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class UserDelete : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(UserDelete)); + + string IMigrationMetadata.Id + { + get { return "202205190801320_UserDelete"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.cs b/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.cs new file mode 100644 index 0000000000..b377275c4c --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.cs @@ -0,0 +1,22 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class UserDelete : DbMigration + { + public override void Up() + { + AddColumn("dbo.User", "EmailBeforeDeletion", c => c.String()); + AddColumn("dbo.User", "DeletedDate", c => c.DateTime(precision: 7, storeType: "datetime2")); + AddColumn("dbo.User", "Deleted", c => c.Boolean(nullable: false)); + } + + public override void Down() + { + DropColumn("dbo.User", "Deleted"); + DropColumn("dbo.User", "DeletedDate"); + DropColumn("dbo.User", "EmailBeforeDeletion"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.resx b/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.resx new file mode 100644 index 0000000000..f8c34db33d --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202205190801320_UserDelete.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj index b7ad6df1d8..985f60c9c5 100644 --- a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj +++ b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj @@ -173,6 +173,7 @@ + @@ -191,10 +192,11 @@ + - + diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs new file mode 100644 index 0000000000..7e16d40f63 --- /dev/null +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Core.DomainModel.Organization; +using Tests.Integration.Presentation.Web.Tools.Model; +using Xunit; + +namespace Tests.Integration.Presentation.Web.Tools.External.Rights +{ + public class RightsHelper + { + public static async Task AddUserRight(int userId, int orgId, RightsType rightsType, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var roleDto = new RightDTO + { + UserId = userId, + RoleId = (int)OrganizationRole.LocalAdmin //role.ToString("G") + }; + + var response = await HttpApi.PostWithCookieAsync(TestEnvironment.CreateUrl(PrepareUrl(1, orgId, rightsType)), cookie, roleDto); + Assert.Equal(HttpStatusCode.Created, response.StatusCode); + } + + private static string PrepareUrl(int id, int orgId, RightsType rightsType) + { + switch (rightsType) + { + case RightsType.ItContractRights: + return $"api/itcontractright/{id}?organizationId={orgId}"; + case RightsType.ItProjectRights: + return $"api/itcontractright/{id}?organizationId={orgId}"; + case RightsType.DprRights: + return $"api/itcontractright/{id}?organizationId={orgId}"; + case RightsType.ItSystemRights: + return $"api/itsystemusageright/{id}?organizationId={orgId}"; + case RightsType.OrganizationRights: + return $"api/itcontractright/{id}?organizationId={orgId}"; + case RightsType.OrganizationUnitRights: + return $"api/organizationunitright/{id}?organizationId={orgId}"; + default: throw new Exception(); + } + } + } +} diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs new file mode 100644 index 0000000000..32c5e0c0ef --- /dev/null +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tests.Integration.Presentation.Web.Tools.External.Rights +{ + public enum RightsType + { + ItContractRights = 1, + ItProjectRights = 2, + DprRights = 3, + ItSystemRights = 4, + OrganizationRights = 5, + OrganizationUnitRights = 6 + } +} diff --git a/Tests.Integration.Presentation.Web/Tools/Model/RightDTO.cs b/Tests.Integration.Presentation.Web/Tools/Model/RightDTO.cs new file mode 100644 index 0000000000..75f77548a6 --- /dev/null +++ b/Tests.Integration.Presentation.Web/Tools/Model/RightDTO.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tests.Integration.Presentation.Web.Tools.Model +{ + public class RightDTO + { + public int UserId { get; set; } + public int RoleId{ get; set; } + } +} diff --git a/Tests.Integration.Presentation.Web/Tools/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/RightsHelper.cs deleted file mode 100644 index 12c00de386..0000000000 --- a/Tests.Integration.Presentation.Web/Tools/RightsHelper.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tests.Integration.Presentation.Web.Tools -{ - internal class RightsHelper - { - } -} diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index e7d076cbcf..49f7adde08 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -37,5 +37,11 @@ public static async Task SendGetUsersWithCrossAccessAsync(C var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("api/user/with-cross-organization-permissions"), cookie); } + + public static async Task SendDeleteUserAsync(int userId, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + return await HttpApi.DeleteWithCookieAsync(TestEnvironment.CreateUrl($"api/user/{userId}"), cookie); + } } } diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index d82336da28..03833ac709 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -5,6 +5,8 @@ using System.Threading.Tasks; using Presentation.Web.Models.API.V1; using Tests.Integration.Presentation.Web.Tools; +using Tests.Integration.Presentation.Web.Tools.External.Rights; +using Tests.Integration.Presentation.Web.Tools.Internal.UI_Configuration; using Tests.Toolkit.Patterns; using Xunit; @@ -122,7 +124,20 @@ public async Task Cannot_Get_Users_Where_User_Has_StakeHolder_Or_ApiAccess_If_No [Fact] public async Task Delete_User() { + var (cookie, userId, organization) = await CreatePrerequisitesAsync(); + await RightsHelper.AddUserRight(userId, organization.Id, RightsType.ItContractRights); + var res = await UserHelper.SendDeleteUserAsync(userId); + + Assert.Equal(HttpStatusCode.OK, res.StatusCode); + } + + private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization)> CreatePrerequisitesAsync() + { + var organization = await CreateOrganizationAsync(); + var (userId, _, loginCookie) = + await HttpApi.CreateUserAndLogin(UIConfigurationHelper.CreateEmail(), OrganizationRole.LocalAdmin, organization.Id); + return (loginCookie, userId, organization); } private async Task<(int userId, string userEmail, string orgName)> CreateStakeHolderUserInNewOrganizationAsync(bool hasApiAccess, bool hasStakeholderAccess) diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 4f5cabebe8..a255f6096b 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -65,10 +65,9 @@ public OrganizationServiceTest() Mock.Of(), _transactionManager.Object, _repositoryMock.Object, + Mock.Of(), _orgUnitServiceMock.Object, _domainEventsMock.Object); - _orgUnitServiceMock.Object, - Mock.Of()); } [Fact] From b9dd4fe339e7853269adb908cae47402b56f8491 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 19 May 2022 17:21:06 +0200 Subject: [PATCH 004/432] Added user roles deletion --- .../Core.ApplicationServices.csproj | 1 + .../Rights/UserRightsService.cs | 4 +- .../Handlers/HandleUserBeingDeleted.cs | 117 ++++++++++++++++++ Core.ApplicationServices/UserService.cs | 10 +- .../API/V1/OrganizationUnitController.cs | 1 - Presentation.Web/Ninject/KernelBuilder.cs | 11 ++ .../Tools/External/Rights/RightsHelper.cs | 58 +++++++-- .../Tools/External/Rights/RightsType.cs | 6 +- .../Tools/ItSystemUsageHelper.cs | 15 +++ .../Users/UserTest.cs | 8 +- 10 files changed, 202 insertions(+), 29 deletions(-) create mode 100644 Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs diff --git a/Core.ApplicationServices/Core.ApplicationServices.csproj b/Core.ApplicationServices/Core.ApplicationServices.csproj index 04bf99f728..f0153de913 100644 --- a/Core.ApplicationServices/Core.ApplicationServices.csproj +++ b/Core.ApplicationServices/Core.ApplicationServices.csproj @@ -264,6 +264,7 @@ + diff --git a/Core.ApplicationServices/Rights/UserRightsService.cs b/Core.ApplicationServices/Rights/UserRightsService.cs index 5705e899c2..5b92b0baec 100644 --- a/Core.ApplicationServices/Rights/UserRightsService.cs +++ b/Core.ApplicationServices/Rights/UserRightsService.cs @@ -1,6 +1,5 @@ using Core.ApplicationServices.Authorization; using Core.ApplicationServices.Organizations; -using Core.DomainServices; using System.Collections.Generic; using System.Linq; using Core.Abstractions.Types; @@ -24,8 +23,7 @@ public UserRightsService(IUserService userService, IOrganizationService organiza _organizationService = organizationService; _authorizationContext = authorizationContext; } - - + public Result, OperationError> GetUsersWithRoleAssignment(OrganizationRole role) { if (_authorizationContext.GetCrossOrganizationReadAccess() < CrossOrganizationDataReadAccessLevel.All) diff --git a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs new file mode 100644 index 0000000000..c72d598607 --- /dev/null +++ b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs @@ -0,0 +1,117 @@ +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using Core.Abstractions.Extensions; +using Core.ApplicationServices.GDPR; +using Core.ApplicationServices.Organizations; +using Core.DomainModel; +using Core.DomainModel.Events; +using Core.DomainModel.GDPR; +using Core.DomainModel.ItContract; +using Core.DomainModel.ItProject; +using Core.DomainModel.ItSystem; +using Core.DomainModel.ItSystemUsage; +using Core.DomainModel.Organization; +using Core.DomainServices.Role; + +namespace Core.ApplicationServices.UIConfiguration.Handlers +{ + public class HandleUserBeingDeleted : IDomainEventHandler> + { + private readonly IDataProcessingRegistrationApplicationService _dataProcessingRegistrationApplicationService; + private readonly IOrganizationRightsService _organizationRightsService; + private readonly IRoleAssignmentService _itContractRightService; + private readonly IRoleAssignmentService _itSystemRightService; + private readonly IRoleAssignmentService _itProjectRightService; + private readonly IRoleAssignmentService _organizationUnitRightService; + + + public HandleUserBeingDeleted(IDataProcessingRegistrationApplicationService dataProcessingRegistrationApplicationService, + IOrganizationRightsService organizationRightsService, + IRoleAssignmentService itContractRightService, + IRoleAssignmentService itSystemRightService, + IRoleAssignmentService itProjectRightService, + IRoleAssignmentService organizationUnitRightService) + { + _dataProcessingRegistrationApplicationService = dataProcessingRegistrationApplicationService; + _organizationRightsService = organizationRightsService; + _itContractRightService = itContractRightService; + _itSystemRightService = itSystemRightService; + _itProjectRightService = itProjectRightService; + _organizationUnitRightService = organizationUnitRightService; + } + + public void Handle(EntityBeingDeletedEvent domainEvent) + { + var user = domainEvent.Entity; + + ClearDataProcessingRegistrationRight(user); + ClearOrganizationRights(user); + ClearItContractRights(user); + ClearItSystemRights(user); + ClearItProjectRights(user); + ClearOrganizationUnitRights(user); + } + + private void ClearDataProcessingRegistrationRight(User user) + { + var roles = user.DataProcessingRegistrationRights; + if (roles == null) + return; + + roles.ToList().ForEach(x => _dataProcessingRegistrationApplicationService.RemoveRole(x.Id, x.RoleId, user.Id).ThrowOnFailure()); + roles.Clear(); + } + + private void ClearOrganizationRights(User user) + { + var roles = user.OrganizationRights; + if (roles == null) + return; + + roles.ToList().ForEach(x => _organizationRightsService.RemoveRole(x.OrganizationId, user.Id, x.Role).ThrowOnFailure()); + roles.Clear(); + } + + private void ClearItContractRights(User user) + { + var roles = user.ItContractRights; + if (roles == null) + return; + + roles.ToList().ForEach(x => _itContractRightService.RemoveRole(x.Object, x.RoleId, user.Id).ThrowOnFailure()); + roles.Clear(); + } + + private void ClearItSystemRights(User user) + { + var roles = user.ItSystemRights; + if (roles == null) + return; + + roles.ToList().ForEach(x => _itSystemRightService.RemoveRole(x.Object, x.RoleId, user.Id).ThrowOnFailure()); + roles.Clear(); + } + + private void ClearItProjectRights(User user) + { + var roles = user.ItProjectRights; + if (roles == null) + return; + + roles.ToList().ForEach(x => _itProjectRightService.RemoveRole(x.Object, x.RoleId, user.Id).ThrowOnFailure()); + roles.Clear(); + } + + private void ClearOrganizationUnitRights(User user) + { + var roles = user.OrganizationUnitRights; + if (roles == null) + return; + + roles.ToList().ForEach(x => _organizationUnitRightService.RemoveRole(x.Object, x.RoleId, user.Id).ThrowOnFailure()); + roles.Clear(); + } + + } +} diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index ab54407fdb..a7b6cc59ee 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -297,6 +297,8 @@ public Maybe DeleteUserFromKitos(Guid userUuid) if (!_authorizationContext.AllowDelete(user)) return Maybe.Some(new OperationError(OperationFailure.Forbidden)); + _domainEvents.Raise(new EntityBeingDeletedEvent(user)); + Delete(user); _domainEvents.Raise(new AccessRightsChanged(user.Id)); _userRepository.Save(); @@ -319,20 +321,12 @@ private void Delete(User user) //TODO: Check cascades - user.ItContractRights.Clear(); - /* - user.ItProjectRights.Clear(); - user.DataProcessingRegistrationRights.Clear(); - user.ItSystemRights.Clear(); - user.OrganizationRights.Clear(); - user.OrganizationUnitRights.Clear(); user.ItProjectStatuses.Clear(); user.ResponsibleForCommunications.Clear(); user.HandoverParticipants.Clear(); user.LifeCycleTrackingEvents.Clear(); user.ResponsibleForRisks.Clear(); user.SsoIdentities.Clear(); - user.PasswordResetRequests.Clear();*/ } } } diff --git a/Presentation.Web/Controllers/API/V1/OrganizationUnitController.cs b/Presentation.Web/Controllers/API/V1/OrganizationUnitController.cs index d8b8145b5a..480869998f 100644 --- a/Presentation.Web/Controllers/API/V1/OrganizationUnitController.cs +++ b/Presentation.Web/Controllers/API/V1/OrganizationUnitController.cs @@ -10,7 +10,6 @@ using Core.DomainServices.Extensions; using Newtonsoft.Json.Linq; using Presentation.Web.Infrastructure.Attributes; -using Presentation.Web.Models; using Presentation.Web.Models.API.V1; namespace Presentation.Web.Controllers.API.V1 diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index 7b9a59f7b2..fe28005ca0 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -111,6 +111,7 @@ using Core.ApplicationServices.Organizations.Handlers; using Core.ApplicationServices.Tracking; using Core.ApplicationServices.UIConfiguration; +using Core.ApplicationServices.UIConfiguration.Handlers; using Core.DomainServices.Repositories.UICustomization; using Core.DomainServices.Tracking; using Presentation.Web.Controllers.API.V2.External.ItSystems.Mapping; @@ -250,6 +251,8 @@ public void RegisterServices(IKernel kernel) RegisterRoleAssignmentService(kernel); RegisterRoleAssignmentService(kernel); RegisterRoleAssignmentService(kernel); + RegisterRoleAssignmentService(kernel); + RegisterRoleAssignmentService(kernel); //MembershipProvider & Roleprovider injection - see ProviderInitializationHttpModule.cs kernel.Bind().ToMethod(ctx => Membership.Provider); @@ -391,6 +394,8 @@ private void RegisterDomainEventsEngine(IKernel kernel) //Organization RegisterDomainEvent, HandleOrganizationBeingDeleted>(kernel); //TODO: Read models where it is involved must be scheduled for rebuild.. do it in a different handler (one of the read model handlers) + + RegisterDomainEvent, HandleUserBeingDeleted>(kernel); } private void RegisterDomainEvent(IKernel kernel) @@ -458,6 +463,12 @@ private void RegisterOptions(IKernel kernel) RegisterOptionsService(kernel); + //IT-Project + RegisterOptionsService(kernel); + + //OrganizationUnit + RegisterOptionsService(kernel); + //Attached options services kernel.Bind>().ToMethod(ctx => new AttachedOptionsAssignmentService(OptionType.REGISTERTYPEDATA, diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index 7e16d40f63..0f42f3675c 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -4,6 +4,7 @@ using System.Net; using System.Text; using System.Threading.Tasks; +using Core.DomainModel; using Core.DomainModel.Organization; using Tests.Integration.Presentation.Web.Tools.Model; using Xunit; @@ -12,36 +13,69 @@ namespace Tests.Integration.Presentation.Web.Tools.External.Rights { public class RightsHelper { - public static async Task AddUserRight(int userId, int orgId, RightsType rightsType, Cookie optionalLogin = null) + public static async Task AddUserRole(int userId, int orgId, RightsType rightsType, string name, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - + var roleDto = new RightDTO { UserId = userId, RoleId = (int)OrganizationRole.LocalAdmin //role.ToString("G") }; - var response = await HttpApi.PostWithCookieAsync(TestEnvironment.CreateUrl(PrepareUrl(1, orgId, rightsType)), cookie, roleDto); + var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType)); + var response = await HttpApi.PostWithCookieAsync(url, cookie, roleDto); Assert.Equal(HttpStatusCode.Created, response.StatusCode); } - private static string PrepareUrl(int id, int orgId, RightsType rightsType) + public static async Task AddOrganizationRoleToUser(int userId, int orgId, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var roleDto = new OrgRightDTO + { + UserId = userId, + Role = OrganizationRole.LocalAdmin.ToString("G") + }; + + var response = await HttpApi.PostWithCookieAsync(TestEnvironment.CreateUrl($"odata/organizations({orgId})/Rights"), cookie, roleDto); + Assert.Equal(HttpStatusCode.Created, response.StatusCode); + } + + public static async Task AddDprRoleToUser(int userId, int orgId, string name, Cookie optionalLogin = null) + { + //var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + var dpr= await DataProcessingRegistrationHelper.CreateAsync(orgId, name); + + var roles = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(dpr.Id); + var roleDtos = roles.ToList(); + Assert.True(roleDtos.Any()); + + var singleRole = roleDtos.FirstOrDefault(); + Assert.NotNull(singleRole); + + var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(dpr.Id, singleRole.Id, userId); + + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + } + + private static async Task PrepareUrl(int orgId, string name, RightsType rightsType) { switch (rightsType) { case RightsType.ItContractRights: - return $"api/itcontractright/{id}?organizationId={orgId}"; + var contract = await ItContractHelper.CreateContract(name, orgId); + return $"api/itcontractright/{contract.Id}?organizationId={orgId}"; case RightsType.ItProjectRights: - return $"api/itcontractright/{id}?organizationId={orgId}"; - case RightsType.DprRights: - return $"api/itcontractright/{id}?organizationId={orgId}"; + var project= await ItProjectHelper.CreateProject(name, orgId); + return $"api/itprojectright/{project.Id}?organizationId={orgId}"; case RightsType.ItSystemRights: - return $"api/itsystemusageright/{id}?organizationId={orgId}"; - case RightsType.OrganizationRights: - return $"api/itcontractright/{id}?organizationId={orgId}"; + var itSystem = await ItSystemHelper.CreateItSystemInOrganizationAsync(name, orgId, AccessModifier.Local); + var itSystemUsage = await ItSystemUsageHelper.CreateItSystemUsage(orgId, itSystem.Id); + return $"api/itSystemUsageRights/{itSystemUsage.Id}?organizationId={orgId}"; case RightsType.OrganizationUnitRights: - return $"api/organizationunitright/{id}?organizationId={orgId}"; + //TODO: Create org unit + return $"api/organizationunitrights/{orgId}?organizationId={orgId}"; default: throw new Exception(); } } diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs index 32c5e0c0ef..3ef35b2cd7 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs @@ -10,9 +10,7 @@ public enum RightsType { ItContractRights = 1, ItProjectRights = 2, - DprRights = 3, - ItSystemRights = 4, - OrganizationRights = 5, - OrganizationUnitRights = 6 + ItSystemRights = 3, + OrganizationUnitRights = 4 } } diff --git a/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs index 77de3d210b..7ed3dfcf8a 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs @@ -226,5 +226,20 @@ public static async Task SetIsHoldingDocumentRequestAsync(i Assert.Equal(HttpStatusCode.NoContent, response.StatusCode); return response; } + + public static async Task CreateItSystemUsage(int orgId, int itSystemId, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + var url = TestEnvironment.CreateUrl($"api/itSystemUsage"); + var body = new + { + OrganizationId = orgId, + ItSystemId = itSystemId + }; + + using var response = await HttpApi.PostWithCookieAsync(url, cookie, body); + Assert.Equal(HttpStatusCode.Created, response.StatusCode); + return await response.ReadResponseBodyAsKitosApiResponseAsync(); + } } } \ No newline at end of file diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 03833ac709..4ec0c80079 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -125,8 +125,14 @@ public async Task Cannot_Get_Users_Where_User_Has_StakeHolder_Or_ApiAccess_If_No public async Task Delete_User() { var (cookie, userId, organization) = await CreatePrerequisitesAsync(); + var name = A(); + + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItContractRights, name); + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItProjectRights, name); + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItSystemRights, name); + await RightsHelper.AddDprRoleToUser(userId, organization.Id, name); + await RightsHelper.AddOrganizationRoleToUser(userId, organization.Id); - await RightsHelper.AddUserRight(userId, organization.Id, RightsType.ItContractRights); var res = await UserHelper.SendDeleteUserAsync(userId); Assert.Equal(HttpStatusCode.OK, res.StatusCode); From dd94766842174845d0c72866b8f8b1e53caac7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 20 May 2022 12:53:15 +0200 Subject: [PATCH 005/432] Fixed incorrect order of the access rights changed event --- Core.ApplicationServices/OrganizationRoleService.cs | 3 ++- .../Organizations/OrganizationRightsService.cs | 4 ++-- Presentation.Web/Controllers/API/V1/GlobalAdminController.cs | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Core.ApplicationServices/OrganizationRoleService.cs b/Core.ApplicationServices/OrganizationRoleService.cs index 1c2679538c..b06feb9e30 100644 --- a/Core.ApplicationServices/OrganizationRoleService.cs +++ b/Core.ApplicationServices/OrganizationRoleService.cs @@ -29,8 +29,9 @@ private OrganizationRight AddOrganizationRoleToUser(User user, Organization orga User = user, Role = organizationRole, }); - _domainEvents.Raise(new AccessRightsChanged(user.Id)); + _organizationRights.Save(); + _domainEvents.Raise(new AccessRightsChanged(user.Id)); return result; } diff --git a/Core.ApplicationServices/Organizations/OrganizationRightsService.cs b/Core.ApplicationServices/Organizations/OrganizationRightsService.cs index 6de584d62f..e2abb4e685 100644 --- a/Core.ApplicationServices/Organizations/OrganizationRightsService.cs +++ b/Core.ApplicationServices/Organizations/OrganizationRightsService.cs @@ -43,8 +43,8 @@ public Result AssignRole(int organizationId } right = _organizationRightRepository.Insert(right); - _domainEvents.Raise(new AccessRightsChanged(userId)); _organizationRightRepository.Save(); + _domainEvents.Raise(new AccessRightsChanged(userId)); return right; } @@ -85,8 +85,8 @@ private Result RemoveRight(OrganizationRigh } _organizationRightRepository.DeleteByKey(right.Id); - _domainEvents.Raise(new AccessRightsChanged(right.UserId)); _organizationRightRepository.Save(); + _domainEvents.Raise(new AccessRightsChanged(right.UserId)); return right; } diff --git a/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs b/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs index 285b615043..8c4e888289 100644 --- a/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs +++ b/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs @@ -71,8 +71,8 @@ public HttpResponseMessage Post(CreateGlobalAdminDTO dto) } user.IsGlobalAdmin = true; - _domainEvents.Raise(new AccessRightsChanged(dto.UserId)); _userRepository.Save(); + _domainEvents.Raise(new AccessRightsChanged(dto.UserId)); var outDto = Mapper.Map(user); @@ -99,8 +99,8 @@ public HttpResponseMessage Delete([FromUri] int userId) var user = _userRepository.GetByKey(userId); user.IsGlobalAdmin = false; - _domainEvents.Raise(new AccessRightsChanged(userId)); _userRepository.Save(); + _domainEvents.Raise(new AccessRightsChanged(userId)); var outDto = Mapper.Map(user); From 6b3798f2e525328c33c24fa9b4d978a6982c9228 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 20 May 2022 12:57:12 +0200 Subject: [PATCH 006/432] Delete user api tests --- .../Handlers/HandleUserBeingDeleted.cs | 2 +- Core.ApplicationServices/UserService.cs | 11 ++++- .../API/V1/OData/BaseEntityController.cs | 2 +- .../Tests.Integration.Presentation.Web.csproj | 1 + .../Tools/External/Rights/RightsHelper.cs | 4 +- .../Tools/OrganizationUnitHelper.cs | 49 +++++++++++++++++++ .../Tools/UserHelper.cs | 16 ++++++ .../Users/UserTest.cs | 26 ++++++++-- 8 files changed, 102 insertions(+), 9 deletions(-) create mode 100644 Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs diff --git a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs index c72d598607..8bc55025c1 100644 --- a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs +++ b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs @@ -59,7 +59,7 @@ private void ClearDataProcessingRegistrationRight(User user) if (roles == null) return; - roles.ToList().ForEach(x => _dataProcessingRegistrationApplicationService.RemoveRole(x.Id, x.RoleId, user.Id).ThrowOnFailure()); + roles.ToList().ForEach(x => _dataProcessingRegistrationApplicationService.RemoveRole(x.ObjectId, x.RoleId, user.Id).ThrowOnFailure()); roles.Clear(); } diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index a7b6cc59ee..c03313a4b3 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -16,6 +16,7 @@ using Core.DomainModel.Organization.DomainEvents; using Infrastructure.Services.Cryptography; using Core.DomainServices.Authorization; +using Core.DomainServices.Context; using Core.DomainServices.Extensions; using Core.DomainServices.Queries; using Infrastructure.Services.DataAccess; @@ -41,6 +42,7 @@ public class UserService : IUserService private readonly IAuthorizationContext _authorizationContext; private readonly IDomainEvents _domainEvents; private readonly SHA256Managed _crypt; + private readonly Maybe _activeUserIdContext; private static readonly RNGCryptoServiceProvider rngCsp = new(); private const string KitosManualsLink = "https://os2.eu/Kitosvejledning"; @@ -58,7 +60,8 @@ public UserService(TimeSpan ttl, IDomainEvents domainEvents, IUserRepository repository, IOrganizationService organizationService, - ITransactionManager transactionManager) + ITransactionManager transactionManager, + Maybe activeUserIdContext) { _ttl = ttl; _baseUrl = baseUrl; @@ -75,6 +78,7 @@ public UserService(TimeSpan ttl, _repository = repository; _organizationService = organizationService; _transactionManager = transactionManager; + _activeUserIdContext = activeUserIdContext; _crypt = new SHA256Managed(); if (useDefaultUserPassword && string.IsNullOrWhiteSpace(defaultUserPassword)) { @@ -288,11 +292,15 @@ public Result GetUserInOrganization(Guid organizationUuid, public Maybe DeleteUserFromKitos(Guid userUuid) { + using var transaction = _transactionManager.Begin(); var user = _userRepository.AsQueryable().ByUuid(userUuid); if (user == null) return Maybe.Some(new OperationError(OperationFailure.NotFound)); + if(_activeUserIdContext.GetValueOrDefault().ActiveUserId == user.Id) + return Maybe.Some(new OperationError("You cannot delete an user you are currently logged in as", OperationFailure.Forbidden)); + if (!_authorizationContext.AllowDelete(user)) return Maybe.Some(new OperationError(OperationFailure.Forbidden)); @@ -315,6 +323,7 @@ private void Delete(User user) user.PhoneNumber = null; user.LastName = $"{(user.LastName ?? "").TrimEnd()} (SLETTET)"; user.DeletedDate = DateTime.Now; + user.Deleted = true; user.IsGlobalAdmin = false; user.HasApiAccess = false; user.HasStakeHolderAccess = false; diff --git a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs index 080afebfa7..f81d6444b5 100644 --- a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs @@ -77,7 +77,7 @@ public override IHttpActionResult Get(int key) { return Forbidden(); } - + return Ok(SingleResult.Create(result)); } diff --git a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj index 985f60c9c5..e35a7a9e8a 100644 --- a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj +++ b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj @@ -195,6 +195,7 @@ + diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index 0f42f3675c..87c1e4929f 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Core.DomainModel; using Core.DomainModel.Organization; +using Presentation.Web.Models.API.V1; using Tests.Integration.Presentation.Web.Tools.Model; using Xunit; @@ -75,7 +76,8 @@ private static async Task PrepareUrl(int orgId, string name, RightsType return $"api/itSystemUsageRights/{itSystemUsage.Id}?organizationId={orgId}"; case RightsType.OrganizationUnitRights: //TODO: Create org unit - return $"api/organizationunitrights/{orgId}?organizationId={orgId}"; + var orgUnit = OrganizationUnitHelper.GetOrganizationUnits(orgId); + return $"api/organizationunitright/{orgUnit.Result.Id}?organizationId={orgId}"; default: throw new Exception(); } } diff --git a/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs new file mode 100644 index 0000000000..5433371e27 --- /dev/null +++ b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Core.DomainModel.Organization; +using Presentation.Web.Models.API.V1; +using Xunit; + +namespace Tests.Integration.Presentation.Web.Tools +{ + public class OrganizationUnitHelper + { + public static async Task CreateOrganizationUnit(int orgId, string name, Cookie optionalLogin = null) + { + var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + var orgUnitDto = new OrgUnitDTO() + { + Id = 0, + Name = name, + OrganizationId = orgId, + LocalId = "test", + ObjectOwnerName = "test", + ObjectOwnerLastName = "last name", + LastChangedByUserId = 1, + LastChanged = DateTime.Now, + Uuid = Guid.NewGuid() + }; + var orgUnitUrl = TestEnvironment.CreateUrl($"odata/OrganizationUnit"); + + var response = await HttpApi.PostWithCookieAsync(orgUnitUrl, cookie, orgUnitDto); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + return await response.ReadResponseBodyAsAsync(); + } + + public static async Task GetOrganizationUnits(int orgId, Cookie optionalLogin = null) + { + var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + var orgUnitUrl = TestEnvironment.CreateUrl($"api/OrganizationUnit?organization={orgId}"); + + var response = await HttpApi.GetWithCookieAsync(orgUnitUrl, cookie); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + return await response.ReadResponseBodyAsKitosApiResponseAsync(); + } + } +} diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index 49f7adde08..93a9810cda 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -3,6 +3,8 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; +using Core.DomainModel; +using Presentation.Web.Models.API.V1; using Presentation.Web.Models.API.V1.Users; using Xunit; @@ -38,6 +40,20 @@ public static async Task SendGetUsersWithCrossAccessAsync(C return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("api/user/with-cross-organization-permissions"), cookie); } + public static async Task GetUserByIdAsync(int id, Cookie optionalLogin = null) + { + using var response = await SendGetUserByIdAsync(id, optionalLogin); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + return await response.ReadResponseBodyAsAsync(); + } + + public static async Task SendGetUserByIdAsync(int id, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl($"odata/users({id})"), cookie); + } + public static async Task SendDeleteUserAsync(int userId, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 4ec0c80079..22802eda45 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -124,25 +124,41 @@ public async Task Cannot_Get_Users_Where_User_Has_StakeHolder_Or_ApiAccess_If_No [Fact] public async Task Delete_User() { - var (cookie, userId, organization) = await CreatePrerequisitesAsync(); + var userRole = OrganizationRole.LocalAdmin; + + var (_, userId, organization) = await CreatePrerequisitesAsync(userRole); var name = A(); + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.OrganizationUnitRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItContractRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItProjectRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItSystemRights, name); await RightsHelper.AddDprRoleToUser(userId, organization.Id, name); await RightsHelper.AddOrganizationRoleToUser(userId, organization.Id); - var res = await UserHelper.SendDeleteUserAsync(userId); + var deleteResponse = await UserHelper.SendDeleteUserAsync(userId); + Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); + + var getDeletedUserResponse = await UserHelper.GetUserByIdAsync(userId); + Assert.True(getDeletedUserResponse.Deleted); + } + + [Fact] + public async Task Delete_User_Returns_Forbidden_When_User_Tries_To_Delete_Himself() + { + var userRole = OrganizationRole.GlobalAdmin; + + var (cookie, userId, _) = await CreatePrerequisitesAsync(userRole); - Assert.Equal(HttpStatusCode.OK, res.StatusCode); + var deleteResponse = await UserHelper.SendDeleteUserAsync(userId, cookie); + Assert.Equal(HttpStatusCode.Forbidden, deleteResponse.StatusCode); } - private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization)> CreatePrerequisitesAsync() + private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization)> CreatePrerequisitesAsync(OrganizationRole role) { var organization = await CreateOrganizationAsync(); var (userId, _, loginCookie) = - await HttpApi.CreateUserAndLogin(UIConfigurationHelper.CreateEmail(), OrganizationRole.LocalAdmin, organization.Id); + await HttpApi.CreateUserAndLogin(UIConfigurationHelper.CreateEmail(), role, organization.Id); return (loginCookie, userId, organization); } From 08e2a6ca6c3a7898ec5438f0679f66fcdd2495f5 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 20 May 2022 14:33:13 +0200 Subject: [PATCH 007/432] Added if user check is different than user to be deleted --- Core.ApplicationServices/UserService.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index c03313a4b3..942d74e8cf 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -292,19 +292,18 @@ public Result GetUserInOrganization(Guid organizationUuid, public Maybe DeleteUserFromKitos(Guid userUuid) { - using var transaction = _transactionManager.Begin(); var user = _userRepository.AsQueryable().ByUuid(userUuid); if (user == null) return Maybe.Some(new OperationError(OperationFailure.NotFound)); if(_activeUserIdContext.GetValueOrDefault().ActiveUserId == user.Id) - return Maybe.Some(new OperationError("You cannot delete an user you are currently logged in as", OperationFailure.Forbidden)); + return Maybe.Some(new OperationError("You cannot delete a user you are currently logged in as", OperationFailure.Forbidden)); if (!_authorizationContext.AllowDelete(user)) return Maybe.Some(new OperationError(OperationFailure.Forbidden)); - + _domainEvents.Raise(new EntityBeingDeletedEvent(user)); Delete(user); From 17444aa4eed9e7ec8944374bd959c7d4defec839 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 20 May 2022 14:37:58 +0200 Subject: [PATCH 008/432] Unit test fix --- .../ApplicationServices/UserServiceTest.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 4e147c109a..fbe1e1fc06 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -12,6 +12,7 @@ using Core.Abstractions.Types; using Core.ApplicationServices.Organizations; using Core.DomainModel.Events; +using Core.DomainServices.Context; using Core.DomainServices.Queries; using Infrastructure.Services.DataAccess; using Tests.Toolkit.Patterns; @@ -32,6 +33,7 @@ public class UserServiceTest : WithAutoFixture private readonly Mock _authorizationContextMock; private readonly Mock _domainEventsMock; private readonly Mock _organizationServiceMock; + private readonly Mock> _activeUserIdContextMock; public UserServiceTest() { @@ -43,6 +45,7 @@ public UserServiceTest() _cryptoServiceMock = new Mock(); _authorizationContextMock = new Mock(); _domainEventsMock = new Mock(); + _activeUserIdContextMock = new Mock>(); _organizationServiceMock = new Mock(); _sut = new UserService( @@ -60,7 +63,8 @@ public UserServiceTest() _domainEventsMock.Object, _repositoryMock.Object, _organizationServiceMock.Object, - Mock.Of()); + Mock.Of(), + _activeUserIdContextMock.Object); } [Fact] From 730694e1e15d7ed74be6a83c5321640aa28b2256 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 20 May 2022 14:37:58 +0200 Subject: [PATCH 009/432] Unit test fix --- Core.DomainServices/Context/ActiveUserIdContext.cs | 5 +++++ .../ApplicationServices/UserServiceTest.cs | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Core.DomainServices/Context/ActiveUserIdContext.cs b/Core.DomainServices/Context/ActiveUserIdContext.cs index 0df1b2df95..27f7c11c6a 100644 --- a/Core.DomainServices/Context/ActiveUserIdContext.cs +++ b/Core.DomainServices/Context/ActiveUserIdContext.cs @@ -8,5 +8,10 @@ public ActiveUserIdContext(int activeUserId) { ActiveUserId = activeUserId; } + + public ActiveUserIdContext() + { + + } } } diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 4e147c109a..799072abc9 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -12,6 +12,7 @@ using Core.Abstractions.Types; using Core.ApplicationServices.Organizations; using Core.DomainModel.Events; +using Core.DomainServices.Context; using Core.DomainServices.Queries; using Infrastructure.Services.DataAccess; using Tests.Toolkit.Patterns; @@ -32,6 +33,7 @@ public class UserServiceTest : WithAutoFixture private readonly Mock _authorizationContextMock; private readonly Mock _domainEventsMock; private readonly Mock _organizationServiceMock; + private readonly Mock _activeUserIdContextMock; public UserServiceTest() { @@ -43,6 +45,7 @@ public UserServiceTest() _cryptoServiceMock = new Mock(); _authorizationContextMock = new Mock(); _domainEventsMock = new Mock(); + _activeUserIdContextMock = new Mock(); _organizationServiceMock = new Mock(); _sut = new UserService( @@ -60,7 +63,8 @@ public UserServiceTest() _domainEventsMock.Object, _repositoryMock.Object, _organizationServiceMock.Object, - Mock.Of()); + Mock.Of(), + _activeUserIdContextMock.Object); } [Fact] From e012188828573bda0d274438671895450bc8b8eb Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 20 May 2022 15:15:35 +0200 Subject: [PATCH 010/432] WIP unit test fix --- Core.ApplicationServices/UserService.cs | 1 - .../Services/OrganizationServiceTest.cs | 17 ++++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 942d74e8cf..0f4d4f83c0 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -327,7 +327,6 @@ private void Delete(User user) user.HasApiAccess = false; user.HasStakeHolderAccess = false; - //TODO: Check cascades user.ItProjectStatuses.Clear(); user.ResponsibleForCommunications.Clear(); diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index a255f6096b..83447bf02f 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -41,6 +41,7 @@ public class OrganizationServiceTest : WithAutoFixture private readonly Mock _userContext; private readonly Mock _orgUnitServiceMock; private readonly Mock _domainEventsMock; + private readonly Mock _organizationRightsServiceMock; public OrganizationServiceTest() { @@ -56,6 +57,7 @@ public OrganizationServiceTest() _repositoryMock = new Mock(); _orgUnitServiceMock = new Mock(); _domainEventsMock = new Mock(); + _organizationRightsServiceMock = new Mock(); _sut = new OrganizationService( _organizationRepository.Object, _orgRightRepository.Object, @@ -65,7 +67,7 @@ public OrganizationServiceTest() Mock.Of(), _transactionManager.Object, _repositoryMock.Object, - Mock.Of(), + _organizationRightsServiceMock.Object, _orgUnitServiceMock.Object, _domainEventsMock.Object); } @@ -261,6 +263,7 @@ public void RemoveUser_Returns_Ok() var organization = new Organization(); ExpectGetOrganizationByKeyReturns(organizationId, organization); ExpectAllowModifyReturns(organization, true); + ExpectTransactionBeginReturns(); var matchedRight1 = CreateRight(organizationId, userId); var matchedRight2 = CreateRight(organizationId, userId); var unmatchedRight1 = CreateRight(A(), userId); @@ -795,6 +798,18 @@ private Organization CreateOrganization() return organization; } + private void ExpectTransactionBeginReturns() + { + var transaction = new Mock(); + _transactionManager.Setup(x => x.Begin()).Returns(transaction.Object); + } + + + private void ExpectOrganizationRightsRemoveRoleReturns(int rightId, Result expectedResult) + { + _organizationRightsServiceMock.Setup(x => x.RemoveRole(rightId)).Returns(expectedResult); + } + private void ExpectAllowDeleteReturns(Organization organization, bool value) { _authorizationContext.Setup(x => x.AllowDelete(organization)).Returns(value); From d65d598bc1643e7b9d9bbf5d55961bffeea22163 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 23 May 2022 09:34:22 +0200 Subject: [PATCH 011/432] Fixed unit tests --- .../OrganizationAuthorizationContext.cs | 2 +- .../ApplicationServices/UserServiceTest.cs | 1 + .../OrganizationAuthorizationContextTest.cs | 4 ++-- .../Services/OrganizationServiceTest.cs | 13 +++++++------ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs b/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs index 59035d6c29..937a7e46c6 100644 --- a/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs +++ b/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs @@ -236,7 +236,7 @@ public bool AllowDelete(IEntity entity) { result = entity switch { - User _ => IsGlobalAdmin(), + User user => IsGlobalAdmin() && EntityEqualsActiveUser(user) == false, ItInterface itInterface => //Even rightsholders are not allowed to delete interfaces IsGlobalAdmin() || IsLocalAdmin(itInterface.OrganizationId), diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 8f01954128..799072abc9 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -45,6 +45,7 @@ public UserServiceTest() _cryptoServiceMock = new Mock(); _authorizationContextMock = new Mock(); _domainEventsMock = new Mock(); + _activeUserIdContextMock = new Mock(); _organizationServiceMock = new Mock(); _sut = new UserService( diff --git a/Tests.Unit.Presentation.Web/Authorization/OrganizationAuthorizationContextTest.cs b/Tests.Unit.Presentation.Web/Authorization/OrganizationAuthorizationContextTest.cs index 415ea28668..a90b2ac076 100644 --- a/Tests.Unit.Presentation.Web/Authorization/OrganizationAuthorizationContextTest.cs +++ b/Tests.Unit.Presentation.Web/Authorization/OrganizationAuthorizationContextTest.cs @@ -544,7 +544,7 @@ public void Allow_Create_User_Returns(bool expectedResult) [Theory] //Checks not bound to context condition [InlineData(true, false, false, false, false, false, true)] - [InlineData(false, true, false, false, false, false, true)] + [InlineData(false, true, false, false, false, false, false)] [InlineData(false, false, true, true, false, false, true)] //Same organization - positive matches @@ -581,7 +581,7 @@ public void AllowDelete_For_Context_Dependent_Object_Returns( [Theory] [InlineData(true, false, false, true)] - [InlineData(false, true, false, true)] + [InlineData(false, true, false, false)] [InlineData(false, false, true, true)] [InlineData(false, false, false, false)] public void AllowDelete_For_Context_Independent_Object_Returns( diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 83447bf02f..51e94bb764 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -269,16 +269,17 @@ public void RemoveUser_Returns_Ok() var unmatchedRight1 = CreateRight(A(), userId); var unmatchedRight2 = CreateRight(organizationId, A()); _orgRightRepository.Setup(x => x.AsQueryable()).Returns(new[] { matchedRight1, unmatchedRight1, matchedRight2, unmatchedRight2 }.AsQueryable()); + ExpectOrganizationRightsRemoveRoleReturnsSuccess(); //Act var result = _sut.RemoveUser(organizationId, userId); //Assert that only the right entities were removed Assert.True(result.Ok); - _orgRightRepository.Verify(x => x.DeleteByKey(matchedRight1.Id), Times.Once); - _orgRightRepository.Verify(x => x.DeleteByKey(matchedRight2.Id), Times.Once); - _orgRightRepository.Verify(x => x.DeleteByKey(unmatchedRight1.Id), Times.Never); - _orgRightRepository.Verify(x => x.DeleteByKey(unmatchedRight2.Id), Times.Never); + _organizationRightsServiceMock.Verify(x => x.RemoveRole(matchedRight1.Id), Times.Once); + _organizationRightsServiceMock.Verify(x => x.RemoveRole(matchedRight2.Id), Times.Once); + _organizationRightsServiceMock.Verify(x => x.RemoveRole(unmatchedRight1.Id), Times.Never); + _organizationRightsServiceMock.Verify(x => x.RemoveRole(unmatchedRight2.Id), Times.Never); } [Fact] @@ -805,9 +806,9 @@ private void ExpectTransactionBeginReturns() } - private void ExpectOrganizationRightsRemoveRoleReturns(int rightId, Result expectedResult) + private void ExpectOrganizationRightsRemoveRoleReturnsSuccess() { - _organizationRightsServiceMock.Setup(x => x.RemoveRole(rightId)).Returns(expectedResult); + _organizationRightsServiceMock.Setup(x => x.RemoveRole(It.IsAny())).Returns(It.IsAny()); } private void ExpectAllowDeleteReturns(Organization organization, bool value) From c7485b418b2a340f2c4cd6e633dbc80df2081b06 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 23 May 2022 09:57:54 +0200 Subject: [PATCH 012/432] Changes --- Core.DomainServices/Context/ActiveUserIdContext.cs | 5 ----- .../Tools/External/Rights/RightsHelper.cs | 8 +++----- .../ApplicationServices/UserServiceTest.cs | 4 +++- .../Services/OrganizationServiceTest.cs | 2 +- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/Core.DomainServices/Context/ActiveUserIdContext.cs b/Core.DomainServices/Context/ActiveUserIdContext.cs index 27f7c11c6a..0df1b2df95 100644 --- a/Core.DomainServices/Context/ActiveUserIdContext.cs +++ b/Core.DomainServices/Context/ActiveUserIdContext.cs @@ -8,10 +8,5 @@ public ActiveUserIdContext(int activeUserId) { ActiveUserId = activeUserId; } - - public ActiveUserIdContext() - { - - } } } diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index 87c1e4929f..d130a27048 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -21,7 +21,7 @@ public static async Task AddUserRole(int userId, int orgId, RightsType rightsTyp var roleDto = new RightDTO { UserId = userId, - RoleId = (int)OrganizationRole.LocalAdmin //role.ToString("G") + RoleId = (int)OrganizationRole.LocalAdmin }; var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType)); @@ -43,9 +43,8 @@ public static async Task AddOrganizationRoleToUser(int userId, int orgId, Cookie Assert.Equal(HttpStatusCode.Created, response.StatusCode); } - public static async Task AddDprRoleToUser(int userId, int orgId, string name, Cookie optionalLogin = null) + public static async Task AddDprRoleToUser(int userId, int orgId, string name) { - //var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); var dpr= await DataProcessingRegistrationHelper.CreateAsync(orgId, name); var roles = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(dpr.Id); @@ -75,10 +74,9 @@ private static async Task PrepareUrl(int orgId, string name, RightsType var itSystemUsage = await ItSystemUsageHelper.CreateItSystemUsage(orgId, itSystem.Id); return $"api/itSystemUsageRights/{itSystemUsage.Id}?organizationId={orgId}"; case RightsType.OrganizationUnitRights: - //TODO: Create org unit var orgUnit = OrganizationUnitHelper.GetOrganizationUnits(orgId); return $"api/organizationunitright/{orgUnit.Result.Id}?organizationId={orgId}"; - default: throw new Exception(); + default: throw new Exception("Incorrect Rights Type"); } } } diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 799072abc9..3d9a24ec8a 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -45,7 +45,9 @@ public UserServiceTest() _cryptoServiceMock = new Mock(); _authorizationContextMock = new Mock(); _domainEventsMock = new Mock(); - _activeUserIdContextMock = new Mock(); + + var activeUserId = A(); + _activeUserIdContextMock = new Mock(activeUserId); _organizationServiceMock = new Mock(); _sut = new UserService( diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 51e94bb764..6bd456188c 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -289,7 +289,7 @@ public void GetAllOrganizations_Returns_All() var expectedOrg1 = new Organization() { Id = A() }; var expectedOrg2 = new Organization() { Id = A() }; var expectedOrg3 = new Organization() { Id = A() }; - _repositoryMock.Setup(x => x.GetAll()).Returns(new List() { expectedOrg1, expectedOrg2, expectedOrg3 }.AsQueryable()); + _repositoryMock.Setup(x => x.GetAll()).Returns(new List { expectedOrg1, expectedOrg2, expectedOrg3 }.AsQueryable()); _authorizationContext.Setup(x => x.GetCrossOrganizationReadAccess()).Returns(CrossOrganizationDataReadAccessLevel.All); //Act From c065210acf4c559bbdd4d3f6d60f61535be67efc Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 23 May 2022 15:55:03 +0200 Subject: [PATCH 013/432] Changes after review --- Core.ApplicationServices/UserService.cs | 12 ++-- .../API/V1/ItProjectStatusController.cs | 1 - .../Tools/External/Rights/RightsHelper.cs | 30 ++++++--- .../Tools/ItProjectHelper.cs | 63 +++++++++++++++++++ .../Tools/ItSystemUsageHelper.cs | 15 ----- .../Tools/OrganizationUnitHelper.cs | 15 +---- .../Tools/UserHelper.cs | 1 - .../Users/UserTest.cs | 12 +++- 8 files changed, 101 insertions(+), 48 deletions(-) diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 0f4d4f83c0..aa17005a19 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -296,13 +296,13 @@ public Maybe DeleteUserFromKitos(Guid userUuid) var user = _userRepository.AsQueryable().ByUuid(userUuid); if (user == null) - return Maybe.Some(new OperationError(OperationFailure.NotFound)); + return new OperationError(OperationFailure.NotFound); if(_activeUserIdContext.GetValueOrDefault().ActiveUserId == user.Id) - return Maybe.Some(new OperationError("You cannot delete a user you are currently logged in as", OperationFailure.Forbidden)); + return new OperationError("You cannot delete a user you are currently logged in as", OperationFailure.Forbidden); if (!_authorizationContext.AllowDelete(user)) - return Maybe.Some(new OperationError(OperationFailure.Forbidden)); + return new OperationError(OperationFailure.Forbidden); _domainEvents.Raise(new EntityBeingDeletedEvent(user)); @@ -314,7 +314,7 @@ public Maybe DeleteUserFromKitos(Guid userUuid) return Maybe.None; } - private void Delete(User user) + private static void Delete(User user) { user.LockedOutDate = DateTime.Now; user.EmailBeforeDeletion = user.Email; @@ -326,12 +326,10 @@ private void Delete(User user) user.IsGlobalAdmin = false; user.HasApiAccess = false; user.HasStakeHolderAccess = false; - - //TODO: Check cascades + user.ItProjectStatuses.Clear(); user.ResponsibleForCommunications.Clear(); user.HandoverParticipants.Clear(); - user.LifeCycleTrackingEvents.Clear(); user.ResponsibleForRisks.Clear(); user.SsoIdentities.Clear(); } diff --git a/Presentation.Web/Controllers/API/V1/ItProjectStatusController.cs b/Presentation.Web/Controllers/API/V1/ItProjectStatusController.cs index d0755cf39e..216e652bcf 100644 --- a/Presentation.Web/Controllers/API/V1/ItProjectStatusController.cs +++ b/Presentation.Web/Controllers/API/V1/ItProjectStatusController.cs @@ -11,7 +11,6 @@ using Core.DomainServices.Repositories.Project; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Infrastructure.Authorization.Controller.Crud; -using Presentation.Web.Models; using Presentation.Web.Models.API.V1; using Swashbuckle.Swagger.Annotations; diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index d130a27048..d72fc37354 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -1,12 +1,10 @@ using System; -using System.Collections.Generic; using System.Linq; using System.Net; -using System.Text; using System.Threading.Tasks; using Core.DomainModel; using Core.DomainModel.Organization; -using Presentation.Web.Models.API.V1; +using Core.DomainModel.SSO; using Tests.Integration.Presentation.Web.Tools.Model; using Xunit; @@ -14,7 +12,7 @@ namespace Tests.Integration.Presentation.Web.Tools.External.Rights { public class RightsHelper { - public static async Task AddUserRole(int userId, int orgId, RightsType rightsType, string name, Cookie optionalLogin = null) + public static async Task AddUserRole(int userId, int orgId, RightsType rightsType, string name, int projectId = 0, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); @@ -24,7 +22,7 @@ public static async Task AddUserRole(int userId, int orgId, RightsType rightsTyp RoleId = (int)OrganizationRole.LocalAdmin }; - var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType)); + var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType, projectId)); var response = await HttpApi.PostWithCookieAsync(url, cookie, roleDto); Assert.Equal(HttpStatusCode.Created, response.StatusCode); } @@ -59,7 +57,22 @@ public static async Task AddDprRoleToUser(int userId, int orgId, string name) Assert.Equal(HttpStatusCode.OK, response.StatusCode); } - private static async Task PrepareUrl(int orgId, string name, RightsType rightsType) + public static async Task AddSsoIdentityToUser(int userId) + { + var user = await UserHelper.GetUserByIdAsync(userId); + var ssoIdentity = new SsoUserIdentity + { + ExternalUuid = user.Uuid + }; + + DatabaseAccess.MutateDatabase(x => + { + x.SsoUserIdentities.Add(ssoIdentity); + x.SaveChanges(); + }); + } + + private static async Task PrepareUrl(int orgId, string name, RightsType rightsType, int projectId = 0) { switch (rightsType) { @@ -67,11 +80,10 @@ private static async Task PrepareUrl(int orgId, string name, RightsType var contract = await ItContractHelper.CreateContract(name, orgId); return $"api/itcontractright/{contract.Id}?organizationId={orgId}"; case RightsType.ItProjectRights: - var project= await ItProjectHelper.CreateProject(name, orgId); - return $"api/itprojectright/{project.Id}?organizationId={orgId}"; + return $"api/itprojectright/{projectId}?organizationId={orgId}"; case RightsType.ItSystemRights: var itSystem = await ItSystemHelper.CreateItSystemInOrganizationAsync(name, orgId, AccessModifier.Local); - var itSystemUsage = await ItSystemUsageHelper.CreateItSystemUsage(orgId, itSystem.Id); + var itSystemUsage = await ItSystemHelper.TakeIntoUseAsync(itSystem.Id, orgId); return $"api/itSystemUsageRights/{itSystemUsage.Id}?organizationId={orgId}"; case RightsType.OrganizationUnitRights: var orgUnit = OrganizationUnitHelper.GetOrganizationUnits(orgId); diff --git a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs index d115ee09d6..bb8bc369b1 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs @@ -229,6 +229,27 @@ public static async Task SendAddRiskRequestAsync(int organi return await HttpApi.PostWithCookieAsync(url, cookie, body); } + public static async Task AddRiskAsync(int orgId, int userId, int projectId, Cookie optionalLogin = null) + { + using var response = await SendAddRiskRequestAsync(orgId, userId, projectId, optionalLogin); + + Assert.Equal(HttpStatusCode.Created, response.StatusCode); + return await response.ReadResponseBodyAsKitosApiResponseAsync(); + } + + public static async Task SendAddRiskRequestAsync(int orgId, int userId, int projectId, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var communication = new RiskDTO() + { + ItProjectId = projectId, + ResponsibleUserId = userId + }; + + return await HttpApi.PostWithCookieAsync(TestEnvironment.CreateUrl($"api/risk?organizationId={orgId}"), cookie, communication); + } + public static async Task AddCommunicationAsync(int organizationId, int projectId, string media, string message, string purpose, int responsibleUserId, string targetAudience, DateTime dueDate, Cookie optionalLogin = null) { using (var response = await SendAddCommunicationRequestAsync(organizationId, projectId, media, message, purpose, responsibleUserId, targetAudience, dueDate, optionalLogin)) @@ -257,6 +278,27 @@ public static async Task SendAddCommunicationRequestAsync(i return await HttpApi.PostWithCookieAsync(url, cookie, body); } + public static async Task AddCommunicationAsync(int orgId, int userId, int projectId, Cookie optionalLogin = null) + { + using var response = await SendAddCommunicationRequestAsync(orgId, userId, projectId, optionalLogin); + + Assert.Equal(HttpStatusCode.Created, response.StatusCode); + return await response.ReadResponseBodyAsKitosApiResponseAsync(); + } + + public static async Task SendAddCommunicationRequestAsync(int orgId, int userId, int projectId, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var communication = new CommunicationDTO + { + ItProjectId = projectId, + ResponsibleUserId = userId + }; + + return await HttpApi.PostWithCookieAsync(TestEnvironment.CreateUrl($"api/communication?organizationId={orgId}"), cookie, communication); + } + public static async Task AddHandoverResponsibleAsync(int handoverId, int responsibleUserId, Cookie optionalLogin = null) { using (var response = await SendAddHandoverResponsibleRequestAsync(handoverId, responsibleUserId, optionalLogin)) @@ -275,6 +317,27 @@ public static async Task SendAddHandoverResponsibleRequestA return await HttpApi.PostWithCookieAsync(url, cookie, new object()); } + public static async Task AddAssignmentAsync(int orgId, int userId, int projectId, Cookie optionalLogin = null) + { + using var response = await SendAddAssignmentRequestAsync(orgId, userId, projectId, optionalLogin); + + Assert.Equal(HttpStatusCode.Created, response.StatusCode); + return await response.ReadResponseBodyAsKitosApiResponseAsync(); + } + + public static async Task SendAddAssignmentRequestAsync(int orgId, int userId, int projectId, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var assignment = new AssignmentDTO + { + AssociatedItProjectId = projectId, + AssociatedUserId = userId + }; + + return await HttpApi.PostWithCookieAsync(TestEnvironment.CreateUrl($"api/assignment?organizationId={orgId}"), cookie, assignment); + } + public static async Task DeleteProjectAsync(int projectId) { using var response = await SendDeleteProjectAsync(projectId); diff --git a/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs index 7ed3dfcf8a..77de3d210b 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItSystemUsageHelper.cs @@ -226,20 +226,5 @@ public static async Task SetIsHoldingDocumentRequestAsync(i Assert.Equal(HttpStatusCode.NoContent, response.StatusCode); return response; } - - public static async Task CreateItSystemUsage(int orgId, int itSystemId, Cookie optionalLogin = null) - { - var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - var url = TestEnvironment.CreateUrl($"api/itSystemUsage"); - var body = new - { - OrganizationId = orgId, - ItSystemId = itSystemId - }; - - using var response = await HttpApi.PostWithCookieAsync(url, cookie, body); - Assert.Equal(HttpStatusCode.Created, response.StatusCode); - return await response.ReadResponseBodyAsKitosApiResponseAsync(); - } } } \ No newline at end of file diff --git a/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs index 5433371e27..a4fbcbd692 100644 --- a/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; +using System.Net; using System.Threading.Tasks; using Core.DomainModel.Organization; using Presentation.Web.Models.API.V1; @@ -17,15 +13,8 @@ public static async Task CreateOrganizationUnit(int orgId, str var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); var orgUnitDto = new OrgUnitDTO() { - Id = 0, Name = name, - OrganizationId = orgId, - LocalId = "test", - ObjectOwnerName = "test", - ObjectOwnerLastName = "last name", - LastChangedByUserId = 1, - LastChanged = DateTime.Now, - Uuid = Guid.NewGuid() + OrganizationId = orgId }; var orgUnitUrl = TestEnvironment.CreateUrl($"odata/OrganizationUnit"); diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index 93a9810cda..254d8ec1fb 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -4,7 +4,6 @@ using System.Net.Http; using System.Threading.Tasks; using Core.DomainModel; -using Presentation.Web.Models.API.V1; using Presentation.Web.Models.API.V1.Users; using Xunit; diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 22802eda45..86a25ece4b 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -20,7 +20,7 @@ public async Task Can_Get_Users_And_Organizations_Where_User_Has_RightsholderAcc { //Arrange var (userId, userEmail, organization) = await CreateRightsHolderAccessUserInNewOrganizationAsync(); - + //Act var result = await UserHelper.GetUsersWithRightsholderAccessAsync(); @@ -129,13 +129,21 @@ public async Task Delete_User() var (_, userId, organization) = await CreatePrerequisitesAsync(userRole); var name = A(); + var project = await ItProjectHelper.CreateProject(name, organization.Id); + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.OrganizationUnitRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItContractRights, name); - await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItProjectRights, name); + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItProjectRights, name, project.Id); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItSystemRights, name); await RightsHelper.AddDprRoleToUser(userId, organization.Id, name); await RightsHelper.AddOrganizationRoleToUser(userId, organization.Id); + await ItProjectHelper.AddAssignmentAsync(organization.Id, userId, project.Id); + await ItProjectHelper.AddCommunicationAsync(organization.Id, userId, project.Id); + await ItProjectHelper.AddRiskAsync(organization.Id, userId, project.Id); + await ItProjectHelper.AddHandoverResponsibleAsync(project.Id, userId); + await RightsHelper.AddSsoIdentityToUser(userId); + var deleteResponse = await UserHelper.SendDeleteUserAsync(userId); Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); From 3f443a725f901bc0d6b3805a63b192ce55b9a9d3 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 24 May 2022 13:22:51 +0200 Subject: [PATCH 014/432] Changes after review --- .../Handlers/HandleUserBeingDeleted.cs | 21 +- Core.ApplicationServices/UserService.cs | 3 +- .../SSO/ISsoUserIdentityRepository.cs | 2 + .../SSO/SsoUserIdentityRepository.cs | 18 ++ .../Tools/External/Rights/RightsHelper.cs | 82 +++++--- .../Tools/ItContractHelper.cs | 11 + .../Tools/ItProjectHelper.cs | 13 ++ .../Tools/ItSystemHelper.cs | 12 ++ .../Tools/OrganizationUnitHelper.cs | 22 +- .../Users/UserTest.cs | 16 +- .../Handlers/HandleUserBeingDeletedTests.cs | 191 ++++++++++++++++++ .../ApplicationServices/UserServiceTest.cs | 44 +++- .../Tests.Unit.Core.csproj | 1 + .../Services/OrganizationServiceTest.cs | 4 + 14 files changed, 394 insertions(+), 46 deletions(-) create mode 100644 Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs diff --git a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs index 8bc55025c1..ce9ec51d11 100644 --- a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs +++ b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs @@ -12,6 +12,7 @@ using Core.DomainModel.ItSystem; using Core.DomainModel.ItSystemUsage; using Core.DomainModel.Organization; +using Core.DomainServices.Repositories.SSO; using Core.DomainServices.Role; namespace Core.ApplicationServices.UIConfiguration.Handlers @@ -24,6 +25,7 @@ public class HandleUserBeingDeleted : IDomainEventHandler _itSystemRightService; private readonly IRoleAssignmentService _itProjectRightService; private readonly IRoleAssignmentService _organizationUnitRightService; + private readonly ISsoUserIdentityRepository _ssoUserIdentityRepository; public HandleUserBeingDeleted(IDataProcessingRegistrationApplicationService dataProcessingRegistrationApplicationService, @@ -31,7 +33,8 @@ public HandleUserBeingDeleted(IDataProcessingRegistrationApplicationService data IRoleAssignmentService itContractRightService, IRoleAssignmentService itSystemRightService, IRoleAssignmentService itProjectRightService, - IRoleAssignmentService organizationUnitRightService) + IRoleAssignmentService organizationUnitRightService, + ISsoUserIdentityRepository ssoUserIdentityRepository) { _dataProcessingRegistrationApplicationService = dataProcessingRegistrationApplicationService; _organizationRightsService = organizationRightsService; @@ -39,18 +42,20 @@ public HandleUserBeingDeleted(IDataProcessingRegistrationApplicationService data _itSystemRightService = itSystemRightService; _itProjectRightService = itProjectRightService; _organizationUnitRightService = organizationUnitRightService; + _ssoUserIdentityRepository = ssoUserIdentityRepository; } public void Handle(EntityBeingDeletedEvent domainEvent) { var user = domainEvent.Entity; - ClearDataProcessingRegistrationRight(user); + ClearDataProcessingRegistrationRight(user); ClearOrganizationRights(user); ClearItContractRights(user); ClearItSystemRights(user); ClearItProjectRights(user); ClearOrganizationUnitRights(user); + ClearSsoIdentities(user); } private void ClearDataProcessingRegistrationRight(User user) @@ -113,5 +118,15 @@ private void ClearOrganizationUnitRights(User user) roles.Clear(); } + private void ClearSsoIdentities(User user) + { + var roles = user.SsoIdentities; + if (roles == null) + return; + + _ssoUserIdentityRepository.DeleteIdentitiesForUser(roles); + roles.Clear(); + } + } -} +} \ No newline at end of file diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index aa17005a19..393581eb70 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -326,12 +326,11 @@ private static void Delete(User user) user.IsGlobalAdmin = false; user.HasApiAccess = false; user.HasStakeHolderAccess = false; - + user.ItProjectStatuses.Clear(); user.ResponsibleForCommunications.Clear(); user.HandoverParticipants.Clear(); user.ResponsibleForRisks.Clear(); - user.SsoIdentities.Clear(); } } } diff --git a/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs index c8bb0c4cf2..da31cc2f84 100644 --- a/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Core.Abstractions.Types; using Core.DomainModel; using Core.DomainModel.SSO; @@ -10,5 +11,6 @@ public interface ISsoUserIdentityRepository { Maybe GetByExternalUuid(Guid externalId); Result AddNew(User user, Guid externalId); + void DeleteIdentitiesForUser(IEnumerable users); } } diff --git a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs index d06534454c..002c582013 100644 --- a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Core.Abstractions.Types; using Core.DomainModel; @@ -40,5 +41,22 @@ public Result AddNew(User user, Guid externalId _repository.Save(); return identity; } + + public void DeleteIdentitiesForUser(IEnumerable identities) + { + if (identities == null) + { + throw new ArgumentNullException(nameof(identities)); + } + + var identities2 = identities.ToList(); + + foreach (var identity in identities2) + { + _repository.Delete(identity); + } + + _repository.Save(); + } } } diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index d72fc37354..6cec349996 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -1,8 +1,10 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; using Core.DomainModel; +using Core.DomainModel.ItContract; using Core.DomainModel.Organization; using Core.DomainModel.SSO; using Tests.Integration.Presentation.Web.Tools.Model; @@ -15,32 +17,19 @@ public class RightsHelper public static async Task AddUserRole(int userId, int orgId, RightsType rightsType, string name, int projectId = 0, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - + + var roleId = await GetDefaultRoleIdForRight(rightsType, cookie); var roleDto = new RightDTO { UserId = userId, - RoleId = (int)OrganizationRole.LocalAdmin + RoleId = roleId }; - var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType, projectId)); + var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType, cookie, projectId)); var response = await HttpApi.PostWithCookieAsync(url, cookie, roleDto); Assert.Equal(HttpStatusCode.Created, response.StatusCode); } - public static async Task AddOrganizationRoleToUser(int userId, int orgId, Cookie optionalLogin = null) - { - var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - - var roleDto = new OrgRightDTO - { - UserId = userId, - Role = OrganizationRole.LocalAdmin.ToString("G") - }; - - var response = await HttpApi.PostWithCookieAsync(TestEnvironment.CreateUrl($"odata/organizations({orgId})/Rights"), cookie, roleDto); - Assert.Equal(HttpStatusCode.Created, response.StatusCode); - } - public static async Task AddDprRoleToUser(int userId, int orgId, string name) { var dpr= await DataProcessingRegistrationHelper.CreateAsync(orgId, name); @@ -57,27 +46,32 @@ public static async Task AddDprRoleToUser(int userId, int orgId, string name) Assert.Equal(HttpStatusCode.OK, response.StatusCode); } - public static async Task AddSsoIdentityToUser(int userId) + public static void AddSsoIdentityToUser(int userId) { - var user = await UserHelper.GetUserByIdAsync(userId); var ssoIdentity = new SsoUserIdentity { - ExternalUuid = user.Uuid + ExternalUuid = Guid.NewGuid() }; DatabaseAccess.MutateDatabase(x => { - x.SsoUserIdentities.Add(ssoIdentity); + var user = x.Users.FirstOrDefault(x => x.Id == userId); + if (user == null) + return; + + user.SsoIdentities.Add(ssoIdentity); x.SaveChanges(); }); } - private static async Task PrepareUrl(int orgId, string name, RightsType rightsType, int projectId = 0) + private static async Task PrepareUrl(int orgId, string name, RightsType rightsType, Cookie cookie, int projectId = 0) { switch (rightsType) { case RightsType.ItContractRights: var contract = await ItContractHelper.CreateContract(name, orgId); + var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItContractRoles"), cookie); + var roles = await response.ReadOdataListResponseBodyAsAsync(); return $"api/itcontractright/{contract.Id}?organizationId={orgId}"; case RightsType.ItProjectRights: return $"api/itprojectright/{projectId}?organizationId={orgId}"; @@ -86,8 +80,48 @@ private static async Task PrepareUrl(int orgId, string name, RightsType var itSystemUsage = await ItSystemHelper.TakeIntoUseAsync(itSystem.Id, orgId); return $"api/itSystemUsageRights/{itSystemUsage.Id}?organizationId={orgId}"; case RightsType.OrganizationUnitRights: - var orgUnit = OrganizationUnitHelper.GetOrganizationUnits(orgId); - return $"api/organizationunitright/{orgUnit.Result.Id}?organizationId={orgId}"; + var orgUnit = await OrganizationUnitHelper.GetOrganizationUnitsAsync(orgId); + return $"api/organizationunitright/{orgUnit.Id}?organizationId={orgId}"; + default: throw new Exception("Incorrect Rights Type"); + } + } + + private static async Task GetDefaultRoleIdForRight(RightsType rightsType, Cookie cookie) + { + switch (rightsType) + { + case RightsType.ItContractRights: + var contractRoles = await ItContractHelper.GetRolesAsync(cookie); + Assert.NotEmpty(contractRoles); + + var singleContractRole = contractRoles.FirstOrDefault(); + Assert.NotNull(singleContractRole); + + return singleContractRole.Id; + case RightsType.ItProjectRights: + var projectRoles = await ItProjectHelper.GetRolesAsync(cookie); + Assert.NotEmpty(projectRoles); + + var singleProjectRole = projectRoles.FirstOrDefault(); + Assert.NotNull(singleProjectRole); + + return singleProjectRole.Id; + case RightsType.ItSystemRights: + var systemRoles = await ItSystemHelper.GetRolesAsync(cookie); + Assert.NotEmpty(systemRoles); + + var singleSystemRole = systemRoles.FirstOrDefault(); + Assert.NotNull(singleSystemRole); + + return singleSystemRole.Id; + case RightsType.OrganizationUnitRights: + var organizationUnitRoles = await OrganizationUnitHelper.GetOrganizationUnitRolesAsync(cookie); + Assert.NotEmpty(organizationUnitRoles); + + var singleOrganizationUnit = organizationUnitRoles.FirstOrDefault(); + Assert.NotNull(singleOrganizationUnit); + + return singleOrganizationUnit.Id; default: throw new Exception("Incorrect Rights Type"); } } diff --git a/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs index 36c8f707d5..f6d7750ff2 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs @@ -4,6 +4,7 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; +using Core.DomainModel.ItContract; using Core.DomainModel.Organization; using Presentation.Web.Models.API.V1; using Xunit; @@ -185,5 +186,15 @@ public static async Task SendAssignSupplierAsync(int contra return await HttpApi.PatchWithCookieAsync(TestEnvironment.CreateUrl($"api/itcontract/{contractId}?organizationId={organizationId}"), cookie, new { supplierId = supplierId }); } + + public static async Task> GetRolesAsync(Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItContractRoles"), cookie); + + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + return await response.ReadOdataListResponseBodyAsAsync(); + } } } \ No newline at end of file diff --git a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs index bb8bc369b1..9485e1b4d1 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs @@ -1,7 +1,10 @@ using System; +using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; +using Core.DomainModel.ItContract; +using Core.DomainModel.ItProject; using Core.DomainModel.Organization; using Presentation.Web.Models; using Presentation.Web.Models.API.V1; @@ -343,5 +346,15 @@ public static async Task DeleteProjectAsync(int projectId) using var response = await SendDeleteProjectAsync(projectId); Assert.Equal(HttpStatusCode.OK,response.StatusCode); } + + public static async Task> GetRolesAsync(Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItProjectRoles"), cookie); + + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + return await response.ReadOdataListResponseBodyAsAsync(); + } } } diff --git a/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs index cef78afdee..a61460e81b 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs @@ -3,6 +3,8 @@ using System.Net.Http; using System.Threading.Tasks; using Core.DomainModel; +using Core.DomainModel.ItProject; +using Core.DomainModel.ItSystem; using Core.DomainModel.Organization; using Presentation.Web.Models.API.V1; using Xunit; @@ -262,5 +264,15 @@ public static async Task SendAddTaskRefRequestAsync(int sys }; return await HttpApi.PostWithCookieAsync(url, cookie, body); } + + public static async Task> GetRolesAsync(Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + + var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItSystemRoles"), cookie); + + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + return await response.ReadOdataListResponseBodyAsAsync(); + } } } diff --git a/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs index a4fbcbd692..3e71909622 100644 --- a/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs @@ -1,4 +1,5 @@ -using System.Net; +using System.Collections.Generic; +using System.Net; using System.Threading.Tasks; using Core.DomainModel.Organization; using Presentation.Web.Models.API.V1; @@ -8,31 +9,26 @@ namespace Tests.Integration.Presentation.Web.Tools { public class OrganizationUnitHelper { - public static async Task CreateOrganizationUnit(int orgId, string name, Cookie optionalLogin = null) + public static async Task GetOrganizationUnitsAsync(int orgId, Cookie optionalLogin = null) { var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - var orgUnitDto = new OrgUnitDTO() - { - Name = name, - OrganizationId = orgId - }; - var orgUnitUrl = TestEnvironment.CreateUrl($"odata/OrganizationUnit"); + var orgUnitUrl = TestEnvironment.CreateUrl($"api/OrganizationUnit?organization={orgId}"); - var response = await HttpApi.PostWithCookieAsync(orgUnitUrl, cookie, orgUnitDto); + var response = await HttpApi.GetWithCookieAsync(orgUnitUrl, cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); - return await response.ReadResponseBodyAsAsync(); + return await response.ReadResponseBodyAsKitosApiResponseAsync(); } - public static async Task GetOrganizationUnits(int orgId, Cookie optionalLogin = null) + public static async Task> GetOrganizationUnitRolesAsync(Cookie optionalLogin = null) { var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - var orgUnitUrl = TestEnvironment.CreateUrl($"api/OrganizationUnit?organization={orgId}"); + var orgUnitUrl = TestEnvironment.CreateUrl($"odata/OrganizationUnitRoles"); var response = await HttpApi.GetWithCookieAsync(orgUnitUrl, cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); - return await response.ReadResponseBodyAsKitosApiResponseAsync(); + return await response.ReadOdataListResponseBodyAsAsync(); } } } diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 86a25ece4b..66c23489b7 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -131,24 +131,34 @@ public async Task Delete_User() var project = await ItProjectHelper.CreateProject(name, organization.Id); - await RightsHelper.AddUserRole(userId, organization.Id, RightsType.OrganizationUnitRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItContractRights, name); + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.OrganizationUnitRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItProjectRights, name, project.Id); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItSystemRights, name); await RightsHelper.AddDprRoleToUser(userId, organization.Id, name); - await RightsHelper.AddOrganizationRoleToUser(userId, organization.Id); await ItProjectHelper.AddAssignmentAsync(organization.Id, userId, project.Id); await ItProjectHelper.AddCommunicationAsync(organization.Id, userId, project.Id); await ItProjectHelper.AddRiskAsync(organization.Id, userId, project.Id); await ItProjectHelper.AddHandoverResponsibleAsync(project.Id, userId); - await RightsHelper.AddSsoIdentityToUser(userId); + RightsHelper.AddSsoIdentityToUser(userId); var deleteResponse = await UserHelper.SendDeleteUserAsync(userId); Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); var getDeletedUserResponse = await UserHelper.GetUserByIdAsync(userId); + Assert.True(getDeletedUserResponse.Deleted); + Assert.False(getDeletedUserResponse.IsGlobalAdmin); + Assert.False(getDeletedUserResponse.HasApiAccess); + Assert.False(getDeletedUserResponse.HasStakeHolderAccess); + + Assert.Contains("_deleted_user@kitos.dk", getDeletedUserResponse.Email); + Assert.Contains("(SLETTET)", getDeletedUserResponse.LastName); + Assert.NotNull(getDeletedUserResponse.EmailBeforeDeletion); + Assert.NotNull(getDeletedUserResponse.LockedOutDate); + Assert.NotNull(getDeletedUserResponse.DeletedDate); + Assert.Null(getDeletedUserResponse.PhoneNumber); } [Fact] diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs new file mode 100644 index 0000000000..764bec73dc --- /dev/null +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Core.Abstractions.Types; +using Core.ApplicationServices.GDPR; +using Core.ApplicationServices.Organizations; +using Core.ApplicationServices.UIConfiguration.Handlers; +using Core.DomainModel; +using Core.DomainModel.Events; +using Core.DomainModel.GDPR; +using Core.DomainModel.ItContract; +using Core.DomainModel.ItProject; +using Core.DomainModel.ItSystem; +using Core.DomainModel.ItSystemUsage; +using Core.DomainModel.Organization; +using Core.DomainModel.SSO; +using Core.DomainServices.Repositories.SSO; +using Core.DomainServices.Role; +using Moq; +using Tests.Toolkit.Patterns; +using Xunit; + +namespace Tests.Unit.Core.ApplicationServices.Handlers +{ + public class HandleUserBeingDeletedTests : WithAutoFixture + { + private readonly Mock _dprApplicationServiceMock; + private readonly Mock _organizationRightsServiceMock; + private readonly Mock> _itContractRightServiceMock; + private readonly Mock> _itSystemRightServiceMock; + private readonly Mock> _itProjectRightServiceMock; + private readonly Mock> _organizationUnitRightServiceMock; + private readonly Mock _ssoUserIdentityRepository; + private readonly HandleUserBeingDeleted _sut; + + public HandleUserBeingDeletedTests() + { + _dprApplicationServiceMock = new Mock(); + _organizationRightsServiceMock = new Mock(); + _itContractRightServiceMock = new Mock>(); + _itSystemRightServiceMock = new Mock>(); + _itProjectRightServiceMock = new Mock>(); + _organizationUnitRightServiceMock = new Mock>(); + _ssoUserIdentityRepository = new Mock(); + + _sut = new HandleUserBeingDeleted(_dprApplicationServiceMock.Object, + _organizationRightsServiceMock.Object, + _itContractRightServiceMock.Object, + _itSystemRightServiceMock.Object, + _itProjectRightServiceMock.Object, + _organizationUnitRightServiceMock.Object, + _ssoUserIdentityRepository.Object); + } + + [Fact] + public void Handle_Deletes_All_User_Rights() + { + var roleId = A(); + var organizationRole = A(); + var user = SetupUser(roleId, organizationRole); + + _sut.Handle(new EntityBeingDeletedEvent(user)); + + _dprApplicationServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + Assert.Empty(user.DataProcessingRegistrationRights); + + _organizationRightsServiceMock.Verify(x => x.RemoveRole(It.IsAny(), user.Id, organizationRole), Times.AtLeastOnce); + Assert.Empty(user.OrganizationRights); + + _itContractRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + Assert.Empty(user.ItContractRights); + + _itSystemRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + Assert.Empty(user.ItSystemRights); + + _itProjectRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + Assert.Empty(user.ItProjectRights); + + _organizationUnitRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + Assert.Empty(user.OrganizationUnitRights); + + _ssoUserIdentityRepository.Verify(x => x.DeleteIdentitiesForUser(user.SsoIdentities), Times.AtLeastOnce); + Assert.Empty(user.SsoIdentities); + } + + private void ExpectDprApplicationRemoveRoleReturns(int objectId, int roleId, int userId, Result result) + { + _dprApplicationServiceMock.Setup(x => x.RemoveRole(objectId, roleId, userId)).Returns(result); + } + + private void ExpectOrganizationRemoveRoleReturns(int organizationId, OrganizationRole organizationRole, int userId, Result result) + { + _organizationRightsServiceMock.Setup(x => x.RemoveRole(organizationId, userId, organizationRole)).Returns(result); + } + + private void ExpectItContractRemoveRoleReturns(ItContract roleObject, int roleId, int userId, Result result) + { + _itContractRightServiceMock.Setup(x => x.RemoveRole(roleObject, roleId, userId)).Returns(result); + } + + private void ExpectItSystemRemoveRoleReturns(ItSystemUsage roleObject, int roleId, int userId, Result result) + { + _itSystemRightServiceMock.Setup(x => x.RemoveRole(roleObject, roleId, userId)).Returns(result); + } + + private void ExpectItProjectRemoveRoleReturns(ItProject roleObject, int roleId, int userId, Result result) + { + _itProjectRightServiceMock.Setup(x => x.RemoveRole(roleObject, roleId, userId)).Returns(result); + } + + private void ExpectOrganizationUnitRemoveRoleReturns(OrganizationUnit roleObject, int roleId, int userId, Result result) + { + _organizationUnitRightServiceMock.Setup(x => x.RemoveRole(roleObject, roleId, userId)).Returns(result); + } + + private void ExpectDeleteIdentitiesForUserReturns(IEnumerable identities) + { + _ssoUserIdentityRepository.Setup(x => x.DeleteIdentitiesForUser(identities)); + } + + private User SetupUser(int roleId, OrganizationRole organizationRole) + { + var user = new User + { + Id = A(), + DataProcessingRegistrationRights = new List(), + OrganizationRights = new List(), + ItContractRights = new List(), + ItSystemRights = new List(), + ItProjectStatuses = new List(), + OrganizationUnitRights = new List(), + SsoIdentities = new List() + }; + + var dprRight = new DataProcessingRegistrationRight + { + ObjectId = A(), + RoleId = roleId + }; + user.DataProcessingRegistrationRights.Add(dprRight); + ExpectDprApplicationRemoveRoleReturns(dprRight.ObjectId, roleId, user.Id, Result.Success(dprRight)); + + var organizationRight = new OrganizationRight + { + OrganizationId = A(), + Role = organizationRole + }; + user.OrganizationRights.Add(organizationRight); + ExpectOrganizationRemoveRoleReturns(organizationRight.OrganizationId, organizationRole, user.Id, Result.Success(organizationRight)); + + var itContractRight = new ItContractRight + { + Object = new ItContract(), + RoleId = roleId + }; + user.ItContractRights.Add(itContractRight); + ExpectItContractRemoveRoleReturns(itContractRight.Object, roleId, user.Id, Result.Success(itContractRight)); + + var itSystemRight = new ItSystemRight + { + Object = new ItSystemUsage(), + RoleId = roleId + }; + user.ItSystemRights.Add(itSystemRight); + ExpectItSystemRemoveRoleReturns(itSystemRight.Object, roleId, user.Id, Result.Success(itSystemRight)); + + var itProjectRight = new ItProjectRight + { + Object = new ItProject(), + RoleId = roleId + }; + user.ItProjectRights.Add(itProjectRight); + ExpectItProjectRemoveRoleReturns(itProjectRight.Object, roleId, user.Id, Result.Success(itProjectRight)); + + var organizationUnitRight = new OrganizationUnitRight + { + Object = new OrganizationUnit(), + RoleId = roleId + }; + user.OrganizationUnitRights.Add(organizationUnitRight); + ExpectOrganizationUnitRemoveRoleReturns(organizationUnitRight.Object, roleId, user.Id, Result.Success(organizationUnitRight)); + + user.SsoIdentities.Add(new SsoUserIdentity()); + ExpectDeleteIdentitiesForUserReturns(user.SsoIdentities); + + return user; + } + } +} diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 3d9a24ec8a..7747c9751e 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -12,8 +12,11 @@ using Core.Abstractions.Types; using Core.ApplicationServices.Organizations; using Core.DomainModel.Events; +using Core.DomainModel.Organization.DomainEvents; using Core.DomainServices.Context; +using Core.DomainServices.Extensions; using Core.DomainServices.Queries; +using FluentAssertions; using Infrastructure.Services.DataAccess; using Tests.Toolkit.Patterns; using Xunit; @@ -32,6 +35,7 @@ public class UserServiceTest : WithAutoFixture private readonly Mock _cryptoServiceMock; private readonly Mock _authorizationContextMock; private readonly Mock _domainEventsMock; + private readonly Mock _transactionManagerMock; private readonly Mock _organizationServiceMock; private readonly Mock _activeUserIdContextMock; @@ -45,6 +49,7 @@ public UserServiceTest() _cryptoServiceMock = new Mock(); _authorizationContextMock = new Mock(); _domainEventsMock = new Mock(); + _transactionManagerMock = new Mock(); var activeUserId = A(); _activeUserIdContextMock = new Mock(activeUserId); @@ -65,7 +70,7 @@ public UserServiceTest() _domainEventsMock.Object, _repositoryMock.Object, _organizationServiceMock.Object, - Mock.Of(), + _transactionManagerMock.Object, _activeUserIdContextMock.Object); } @@ -246,6 +251,27 @@ public void GetUserInOrganization_Returns_NotFound() Assert.True(result.Failed); Assert.Equal(OperationFailure.NotFound, result.Error.FailureType); } + + + [Fact] + public void DeleteUserFromKitos_Raises_EntityBeingDeletedEvent_And_AccessRights_Changed() + { + //Arrange + var userUuid = A(); + var isDeleteAllowed = true; + + ExpectTransactionBeginReturns(); + ExpectUserRepositoryByUuidReturns(userUuid); + ExpectAuthorizationAllowDeleteReturns(isDeleteAllowed); + + //Act + var result = _sut.DeleteUserFromKitos(userUuid); + + //Assert + Assert.True(result.IsNone); + _domainEventsMock.Verify(x => x.Raise(It.IsAny>()), Times.Once); + _domainEventsMock.Verify(x => x.Raise(It.IsAny()), Times.Once); + } private void ExpectGetOrganizationAccessReturns(int organizationId, OrganizationDataReadAccessLevel organizationDataReadAccessLevel) { @@ -257,5 +283,21 @@ private void ExpectGetOrganizationReturns(Guid organizationId, Result x.GetOrganization(organizationId,OrganizationDataReadAccessLevel.All)).Returns(organization); } + + private void ExpectTransactionBeginReturns() + { + var transaction = new Mock(); + _transactionManagerMock.Setup(x => x.Begin()).Returns(transaction.Object); + } + + private void ExpectUserRepositoryByUuidReturns(Guid uuid) + { + _userRepositoryMock.Setup(x => x.AsQueryable()).Returns(new List{new() {Uuid = uuid}}.AsQueryable); + } + + private void ExpectAuthorizationAllowDeleteReturns(bool result) + { + _authorizationContextMock.Setup(x => x.AllowDelete(It.IsAny())).Returns(result); + } } } diff --git a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj index 6d2beb87b9..35fb0ac062 100644 --- a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj +++ b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj @@ -177,6 +177,7 @@ + diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 6bd456188c..8322635fce 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -14,6 +14,7 @@ using Core.DomainModel.ItSystem; using Core.DomainModel.ItSystemUsage; using Core.DomainModel.Organization; +using Core.DomainModel.Organization.DomainEvents; using Core.DomainServices; using Core.DomainServices.Authorization; using Core.DomainServices.Queries; @@ -58,6 +59,7 @@ public OrganizationServiceTest() _orgUnitServiceMock = new Mock(); _domainEventsMock = new Mock(); _organizationRightsServiceMock = new Mock(); + _sut = new OrganizationService( _organizationRepository.Object, _orgRightRepository.Object, @@ -280,6 +282,8 @@ public void RemoveUser_Returns_Ok() _organizationRightsServiceMock.Verify(x => x.RemoveRole(matchedRight2.Id), Times.Once); _organizationRightsServiceMock.Verify(x => x.RemoveRole(unmatchedRight1.Id), Times.Never); _organizationRightsServiceMock.Verify(x => x.RemoveRole(unmatchedRight2.Id), Times.Never); + //_domainEventsMock.Verify(x => x.Raise(It.Is(rightsChanged => rightsChanged.UserId == userId)), Times.AtLeastOnce); + //_domainEventsMock.Verify(x => x.Raise(It.Is>(org => org.Entity == organization)), Times.Never()); } [Fact] From 313ac2173112dad38c5796182c4bee6ed043379e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 24 May 2022 13:29:38 +0200 Subject: [PATCH 015/432] Removed unnecessary usings --- .../UIConfiguration/Handlers/HandleUserBeingDeleted.cs | 5 +---- .../Tools/External/Rights/RightsHelper.cs | 1 - Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs | 2 -- Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs | 1 - .../Handlers/HandleUserBeingDeletedTests.cs | 6 +----- .../ApplicationServices/UserServiceTest.cs | 2 -- .../Services/OrganizationServiceTest.cs | 1 - 7 files changed, 2 insertions(+), 16 deletions(-) diff --git a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs index ce9ec51d11..22247666a9 100644 --- a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs +++ b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs @@ -1,12 +1,9 @@ -using System.Collections.Generic; -using System.Linq; -using System.Security.Policy; +using System.Linq; using Core.Abstractions.Extensions; using Core.ApplicationServices.GDPR; using Core.ApplicationServices.Organizations; using Core.DomainModel; using Core.DomainModel.Events; -using Core.DomainModel.GDPR; using Core.DomainModel.ItContract; using Core.DomainModel.ItProject; using Core.DomainModel.ItSystem; diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index 6cec349996..ba5d58c52b 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; diff --git a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs index 9485e1b4d1..e024bb14a5 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs @@ -3,10 +3,8 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; -using Core.DomainModel.ItContract; using Core.DomainModel.ItProject; using Core.DomainModel.Organization; -using Presentation.Web.Models; using Presentation.Web.Models.API.V1; using Xunit; diff --git a/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs index a61460e81b..111a7cba8a 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs @@ -3,7 +3,6 @@ using System.Net.Http; using System.Threading.Tasks; using Core.DomainModel; -using Core.DomainModel.ItProject; using Core.DomainModel.ItSystem; using Core.DomainModel.Organization; using Presentation.Web.Models.API.V1; diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs index 764bec73dc..e66a41ab14 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Collections.Generic; using Core.Abstractions.Types; using Core.ApplicationServices.GDPR; using Core.ApplicationServices.Organizations; diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 7747c9751e..8b38bc61dc 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -14,9 +14,7 @@ using Core.DomainModel.Events; using Core.DomainModel.Organization.DomainEvents; using Core.DomainServices.Context; -using Core.DomainServices.Extensions; using Core.DomainServices.Queries; -using FluentAssertions; using Infrastructure.Services.DataAccess; using Tests.Toolkit.Patterns; using Xunit; diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 8322635fce..935c4cb494 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -14,7 +14,6 @@ using Core.DomainModel.ItSystem; using Core.DomainModel.ItSystemUsage; using Core.DomainModel.Organization; -using Core.DomainModel.Organization.DomainEvents; using Core.DomainServices; using Core.DomainServices.Authorization; using Core.DomainServices.Queries; From 244332593c52fd50fbcdc0371517dafba9be8bdc Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 24 May 2022 14:00:45 +0200 Subject: [PATCH 016/432] Add dpr using AddUserRole method --- .../SSO/SsoUserIdentityRepository.cs | 4 +- .../Tools/External/Rights/RightsHelper.cs | 52 ++++++++++--------- .../Tools/External/Rights/RightsType.cs | 3 +- .../Users/UserTest.cs | 3 +- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs index 002c582013..51baa410cc 100644 --- a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs @@ -49,9 +49,9 @@ public void DeleteIdentitiesForUser(IEnumerable identities) throw new ArgumentNullException(nameof(identities)); } - var identities2 = identities.ToList(); + var identityList = identities.ToList(); - foreach (var identity in identities2) + foreach (var identity in identityList) { _repository.Delete(identity); } diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index ba5d58c52b..1cf84cc6f8 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Net; +using System.Net.Http; using System.Threading.Tasks; using Core.DomainModel; using Core.DomainModel.ItContract; @@ -13,36 +14,28 @@ namespace Tests.Integration.Presentation.Web.Tools.External.Rights { public class RightsHelper { - public static async Task AddUserRole(int userId, int orgId, RightsType rightsType, string name, int projectId = 0, Cookie optionalLogin = null) + public static async Task AddUserRole(int userId, int orgId, RightsType rightsType, string name, + int objectId = 0, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - var roleId = await GetDefaultRoleIdForRight(rightsType, cookie); + var roleId = await GetDefaultRoleIdForRight(rightsType, cookie, objectId); var roleDto = new RightDTO { UserId = userId, RoleId = roleId }; - var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType, cookie, projectId)); - var response = await HttpApi.PostWithCookieAsync(url, cookie, roleDto); - Assert.Equal(HttpStatusCode.Created, response.StatusCode); - } - - public static async Task AddDprRoleToUser(int userId, int orgId, string name) - { - var dpr= await DataProcessingRegistrationHelper.CreateAsync(orgId, name); - - var roles = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(dpr.Id); - var roleDtos = roles.ToList(); - Assert.True(roleDtos.Any()); - - var singleRole = roleDtos.FirstOrDefault(); - Assert.NotNull(singleRole); - - var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(dpr.Id, singleRole.Id, userId); + var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType, objectId)); + if (rightsType != RightsType.DprRights) + { + var createResponse = await HttpApi.PostWithCookieAsync(url, cookie, roleDto); + Assert.Equal(HttpStatusCode.Created, createResponse.StatusCode); + return; + } - Assert.Equal(HttpStatusCode.OK, response.StatusCode); + var patchResponse = await HttpApi.PatchWithCookieAsync(url, cookie, roleDto); + Assert.Equal(HttpStatusCode.OK, patchResponse.StatusCode); } public static void AddSsoIdentityToUser(int userId) @@ -63,17 +56,15 @@ public static void AddSsoIdentityToUser(int userId) }); } - private static async Task PrepareUrl(int orgId, string name, RightsType rightsType, Cookie cookie, int projectId = 0) + private static async Task PrepareUrl(int orgId, string name, RightsType rightsType, int objectId = 0) { switch (rightsType) { case RightsType.ItContractRights: var contract = await ItContractHelper.CreateContract(name, orgId); - var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItContractRoles"), cookie); - var roles = await response.ReadOdataListResponseBodyAsAsync(); return $"api/itcontractright/{contract.Id}?organizationId={orgId}"; case RightsType.ItProjectRights: - return $"api/itprojectright/{projectId}?organizationId={orgId}"; + return $"api/itprojectright/{objectId}?organizationId={orgId}"; case RightsType.ItSystemRights: var itSystem = await ItSystemHelper.CreateItSystemInOrganizationAsync(name, orgId, AccessModifier.Local); var itSystemUsage = await ItSystemHelper.TakeIntoUseAsync(itSystem.Id, orgId); @@ -81,11 +72,13 @@ private static async Task PrepareUrl(int orgId, string name, RightsType case RightsType.OrganizationUnitRights: var orgUnit = await OrganizationUnitHelper.GetOrganizationUnitsAsync(orgId); return $"api/organizationunitright/{orgUnit.Id}?organizationId={orgId}"; + case RightsType.DprRights: + return $"api/v1/data-processing-registration/{objectId}/roles/assign"; default: throw new Exception("Incorrect Rights Type"); } } - private static async Task GetDefaultRoleIdForRight(RightsType rightsType, Cookie cookie) + private static async Task GetDefaultRoleIdForRight(RightsType rightsType, Cookie cookie, int objectId = 0) { switch (rightsType) { @@ -121,6 +114,15 @@ private static async Task GetDefaultRoleIdForRight(RightsType rightsType, C Assert.NotNull(singleOrganizationUnit); return singleOrganizationUnit.Id; + case RightsType.DprRights: + var roles = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(objectId); + var roleDtos = roles.ToList(); + Assert.True(roleDtos.Any()); + + var singleRole = roleDtos.FirstOrDefault(); + Assert.NotNull(singleRole); + + return singleRole.Id; default: throw new Exception("Incorrect Rights Type"); } } diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs index 3ef35b2cd7..9999017a96 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs @@ -11,6 +11,7 @@ public enum RightsType ItContractRights = 1, ItProjectRights = 2, ItSystemRights = 3, - OrganizationUnitRights = 4 + OrganizationUnitRights = 4, + DprRights = 5 } } diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 66c23489b7..518dded0eb 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -130,12 +130,13 @@ public async Task Delete_User() var name = A(); var project = await ItProjectHelper.CreateProject(name, organization.Id); + var dpr = await DataProcessingRegistrationHelper.CreateAsync(organization.Id, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItContractRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.OrganizationUnitRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItProjectRights, name, project.Id); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItSystemRights, name); - await RightsHelper.AddDprRoleToUser(userId, organization.Id, name); + await RightsHelper.AddUserRole(userId, organization.Id, RightsType.DprRights, name, dpr.Id); await ItProjectHelper.AddAssignmentAsync(organization.Id, userId, project.Id); await ItProjectHelper.AddCommunicationAsync(organization.Id, userId, project.Id); From 60b30069d27b53ec2ae3d093e1910eb38773258c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 24 May 2022 14:29:24 +0200 Subject: [PATCH 017/432] Changed HandleUserBeingDeletedTest setup --- .../Handlers/HandleUserBeingDeletedTests.cs | 87 +++++++++++++++++-- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs index e66a41ab14..dc52994767 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using Core.Abstractions.Types; using Core.ApplicationServices.GDPR; using Core.ApplicationServices.Organizations; @@ -56,6 +57,14 @@ public void Handle_Deletes_All_User_Rights() var roleId = A(); var organizationRole = A(); var user = SetupUser(roleId, organizationRole); + var isSuccessExpected = true; + SetupUserDprMocking(user, roleId, isSuccessExpected); + SetupUserOrganizationRightsMocking(user, organizationRole, isSuccessExpected); + SetupUserItContractRightsMocking(user, roleId, isSuccessExpected); + SetupUserItSystemRightsMocking(user, roleId, isSuccessExpected); + SetupUserItProjectRightsMocking(user, roleId, isSuccessExpected); + SetupUserOrganizationUnitRightsMocking(user, roleId, isSuccessExpected); + SetupSsoIdentitiesMocking(user); _sut.Handle(new EntityBeingDeletedEvent(user)); @@ -136,7 +145,6 @@ private User SetupUser(int roleId, OrganizationRole organizationRole) RoleId = roleId }; user.DataProcessingRegistrationRights.Add(dprRight); - ExpectDprApplicationRemoveRoleReturns(dprRight.ObjectId, roleId, user.Id, Result.Success(dprRight)); var organizationRight = new OrganizationRight { @@ -144,7 +152,6 @@ private User SetupUser(int roleId, OrganizationRole organizationRole) Role = organizationRole }; user.OrganizationRights.Add(organizationRight); - ExpectOrganizationRemoveRoleReturns(organizationRight.OrganizationId, organizationRole, user.Id, Result.Success(organizationRight)); var itContractRight = new ItContractRight { @@ -152,7 +159,6 @@ private User SetupUser(int roleId, OrganizationRole organizationRole) RoleId = roleId }; user.ItContractRights.Add(itContractRight); - ExpectItContractRemoveRoleReturns(itContractRight.Object, roleId, user.Id, Result.Success(itContractRight)); var itSystemRight = new ItSystemRight { @@ -160,7 +166,6 @@ private User SetupUser(int roleId, OrganizationRole organizationRole) RoleId = roleId }; user.ItSystemRights.Add(itSystemRight); - ExpectItSystemRemoveRoleReturns(itSystemRight.Object, roleId, user.Id, Result.Success(itSystemRight)); var itProjectRight = new ItProjectRight { @@ -168,7 +173,6 @@ private User SetupUser(int roleId, OrganizationRole organizationRole) RoleId = roleId }; user.ItProjectRights.Add(itProjectRight); - ExpectItProjectRemoveRoleReturns(itProjectRight.Object, roleId, user.Id, Result.Success(itProjectRight)); var organizationUnitRight = new OrganizationUnitRight { @@ -176,12 +180,81 @@ private User SetupUser(int roleId, OrganizationRole organizationRole) RoleId = roleId }; user.OrganizationUnitRights.Add(organizationUnitRight); - ExpectOrganizationUnitRemoveRoleReturns(organizationUnitRight.Object, roleId, user.Id, Result.Success(organizationUnitRight)); user.SsoIdentities.Add(new SsoUserIdentity()); - ExpectDeleteIdentitiesForUserReturns(user.SsoIdentities); return user; } + + private void SetupUserDprMocking(User user, int roleId, bool isSuccessExpected) + { + foreach (var dprRight in user.DataProcessingRegistrationRights) + { + var result = isSuccessExpected + ? Result.Success(dprRight) + : Result.Failure(It.IsAny()); + ExpectDprApplicationRemoveRoleReturns(dprRight.ObjectId, roleId, user.Id, result); + } + } + + private void SetupUserOrganizationRightsMocking(User user, OrganizationRole organizationRole, bool isSuccessExpected) + { + foreach (var organizationRight in user.OrganizationRights) + { + var result = isSuccessExpected + ? Result.Success(organizationRight) + : Result.Failure(It.IsAny()); + ExpectOrganizationRemoveRoleReturns(organizationRight.OrganizationId, organizationRole, user.Id, result); + } + } + + private void SetupUserItContractRightsMocking(User user, int roleId, bool isSuccessExpected) + { + foreach (var itContractRight in user.ItContractRights) + { + var result = isSuccessExpected + ? Result.Success(itContractRight) + : Result.Failure(It.IsAny()); + ExpectItContractRemoveRoleReturns(itContractRight.Object, roleId, user.Id, result); + } + } + + private void SetupUserItSystemRightsMocking(User user, int roleId, bool isSuccessExpected) + { + foreach (var itSystemRight in user.ItSystemRights) + { + var result = isSuccessExpected + ? Result.Success(itSystemRight) + : Result.Failure(It.IsAny()); + ExpectItSystemRemoveRoleReturns(itSystemRight.Object, roleId, user.Id, result); + } + } + + private void SetupUserItProjectRightsMocking(User user, int roleId, bool isSuccessExpected) + { + foreach (var itProjectRight in user.ItProjectRights) + { + var result = isSuccessExpected + ? Result.Success(itProjectRight) + : Result.Failure(It.IsAny()); + ExpectItProjectRemoveRoleReturns(itProjectRight.Object, roleId, user.Id, result); + } + } + + private void SetupUserOrganizationUnitRightsMocking(User user, int roleId, bool isSuccessExpected) + { + foreach (var organizationUnitRight in user.OrganizationUnitRights) + { + var result = isSuccessExpected + ? Result.Success(organizationUnitRight) + : Result.Failure(It.IsAny()); + ExpectOrganizationUnitRemoveRoleReturns(organizationUnitRight.Object, roleId, user.Id, result); + } + } + + private void SetupSsoIdentitiesMocking(User user) + { + ExpectDeleteIdentitiesForUserReturns(user.SsoIdentities); + } } } From 8c28303ddc2ec0d0aa1a4f07fb2511593a81b6f9 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 24 May 2022 14:41:00 +0200 Subject: [PATCH 018/432] Removed green code --- Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 935c4cb494..1cb9ef5b7c 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -281,8 +281,6 @@ public void RemoveUser_Returns_Ok() _organizationRightsServiceMock.Verify(x => x.RemoveRole(matchedRight2.Id), Times.Once); _organizationRightsServiceMock.Verify(x => x.RemoveRole(unmatchedRight1.Id), Times.Never); _organizationRightsServiceMock.Verify(x => x.RemoveRole(unmatchedRight2.Id), Times.Never); - //_domainEventsMock.Verify(x => x.Raise(It.Is(rightsChanged => rightsChanged.UserId == userId)), Times.AtLeastOnce); - //_domainEventsMock.Verify(x => x.Raise(It.Is>(org => org.Entity == organization)), Times.Never()); } [Fact] From 72e8fe865d8175a3e43a1c4eb7b86769eb2d46d1 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 24 May 2022 15:54:51 +0200 Subject: [PATCH 019/432] WIP Changes after review #2 --- .../Handlers/HandleUserBeingDeleted.cs | 2 +- Core.ApplicationServices/UserService.cs | 8 +-- .../SSO/ISsoUserIdentityRepository.cs | 2 +- .../SSO/SsoUserIdentityRepository.cs | 15 ++--- .../API/V1/OData/BaseEntityController.cs | 1 + .../Tests.Integration.Presentation.Web.csproj | 1 + .../Tools/External/Rights/RightsHelper.cs | 46 +++++----------- .../Tools/External/Rights/RightsType.cs | 3 +- .../Tools/SsoIdentityHelper.cs | 31 +++++++++++ .../Users/UserTest.cs | 55 ++++++++++++------- 10 files changed, 92 insertions(+), 72 deletions(-) create mode 100644 Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs diff --git a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs index 22247666a9..b1ce6dec74 100644 --- a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs +++ b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs @@ -121,7 +121,7 @@ private void ClearSsoIdentities(User user) if (roles == null) return; - _ssoUserIdentityRepository.DeleteIdentitiesForUser(roles); + _ssoUserIdentityRepository.DeleteIdentitiesForUser(user); roles.Clear(); } diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 393581eb70..6e807a0351 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -42,7 +42,7 @@ public class UserService : IUserService private readonly IAuthorizationContext _authorizationContext; private readonly IDomainEvents _domainEvents; private readonly SHA256Managed _crypt; - private readonly Maybe _activeUserIdContext; + private readonly IOrganizationalUserContext _activeUserIdContext; private static readonly RNGCryptoServiceProvider rngCsp = new(); private const string KitosManualsLink = "https://os2.eu/Kitosvejledning"; @@ -60,8 +60,8 @@ public UserService(TimeSpan ttl, IDomainEvents domainEvents, IUserRepository repository, IOrganizationService organizationService, - ITransactionManager transactionManager, - Maybe activeUserIdContext) + ITransactionManager transactionManager, + IOrganizationalUserContext activeUserIdContext) { _ttl = ttl; _baseUrl = baseUrl; @@ -297,7 +297,7 @@ public Maybe DeleteUserFromKitos(Guid userUuid) var user = _userRepository.AsQueryable().ByUuid(userUuid); if (user == null) return new OperationError(OperationFailure.NotFound); - if(_activeUserIdContext.GetValueOrDefault().ActiveUserId == user.Id) + if(_activeUserIdContext.UserId.Select(context => context.ActiveUserId == user.Id).GetValueOrDefault()) return new OperationError("You cannot delete a user you are currently logged in as", OperationFailure.Forbidden); diff --git a/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs index da31cc2f84..81b57759f4 100644 --- a/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/ISsoUserIdentityRepository.cs @@ -11,6 +11,6 @@ public interface ISsoUserIdentityRepository { Maybe GetByExternalUuid(Guid externalId); Result AddNew(User user, Guid externalId); - void DeleteIdentitiesForUser(IEnumerable users); + void DeleteIdentitiesForUser(User user); } } diff --git a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs index 51baa410cc..cb740745c3 100644 --- a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs @@ -42,20 +42,13 @@ public Result AddNew(User user, Guid externalId return identity; } - public void DeleteIdentitiesForUser(IEnumerable identities) + public void DeleteIdentitiesForUser(User user) { + var identities = user.SsoIdentities; if (identities == null) - { - throw new ArgumentNullException(nameof(identities)); - } - - var identityList = identities.ToList(); - - foreach (var identity in identityList) - { - _repository.Delete(identity); - } + return; + _repository.RemoveRange(identities); _repository.Save(); } } diff --git a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs index f81d6444b5..0118f24add 100644 --- a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs @@ -77,6 +77,7 @@ public override IHttpActionResult Get(int key) { return Forbidden(); } + return Ok(SingleResult.Create(result)); } diff --git a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj index e35a7a9e8a..d5a726021c 100644 --- a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj +++ b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj @@ -198,6 +198,7 @@ + diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index 1cf84cc6f8..243eb3102a 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -7,6 +7,7 @@ using Core.DomainModel.ItContract; using Core.DomainModel.Organization; using Core.DomainModel.SSO; +using Core.DomainServices.Extensions; using Tests.Integration.Presentation.Web.Tools.Model; using Xunit; @@ -27,33 +28,25 @@ public static async Task AddUserRole(int userId, int orgId, RightsType rightsTyp }; var url = TestEnvironment.CreateUrl(await PrepareUrl(orgId, name, rightsType, objectId)); - if (rightsType != RightsType.DprRights) - { - var createResponse = await HttpApi.PostWithCookieAsync(url, cookie, roleDto); - Assert.Equal(HttpStatusCode.Created, createResponse.StatusCode); - return; - } + using var response = await HttpApi.PostWithCookieAsync(url, cookie, roleDto); - var patchResponse = await HttpApi.PatchWithCookieAsync(url, cookie, roleDto); - Assert.Equal(HttpStatusCode.OK, patchResponse.StatusCode); + Assert.Equal(HttpStatusCode.Created, response.StatusCode); } - public static void AddSsoIdentityToUser(int userId) + public static async Task AddDprRoleToUser(int userId, int orgId, string name) { - var ssoIdentity = new SsoUserIdentity - { - ExternalUuid = Guid.NewGuid() - }; + var dpr = await DataProcessingRegistrationHelper.CreateAsync(orgId, name); - DatabaseAccess.MutateDatabase(x => - { - var user = x.Users.FirstOrDefault(x => x.Id == userId); - if (user == null) - return; + var roles = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(dpr.Id); + var roleDtos = roles.ToList(); + Assert.True(roleDtos.Any()); - user.SsoIdentities.Add(ssoIdentity); - x.SaveChanges(); - }); + var singleRole = roleDtos.FirstOrDefault(); + Assert.NotNull(singleRole); + + using var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(dpr.Id, singleRole.Id, userId); + + Assert.Equal(HttpStatusCode.OK, response.StatusCode); } private static async Task PrepareUrl(int orgId, string name, RightsType rightsType, int objectId = 0) @@ -72,8 +65,6 @@ private static async Task PrepareUrl(int orgId, string name, RightsType case RightsType.OrganizationUnitRights: var orgUnit = await OrganizationUnitHelper.GetOrganizationUnitsAsync(orgId); return $"api/organizationunitright/{orgUnit.Id}?organizationId={orgId}"; - case RightsType.DprRights: - return $"api/v1/data-processing-registration/{objectId}/roles/assign"; default: throw new Exception("Incorrect Rights Type"); } } @@ -114,15 +105,6 @@ private static async Task GetDefaultRoleIdForRight(RightsType rightsType, C Assert.NotNull(singleOrganizationUnit); return singleOrganizationUnit.Id; - case RightsType.DprRights: - var roles = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(objectId); - var roleDtos = roles.ToList(); - Assert.True(roleDtos.Any()); - - var singleRole = roleDtos.FirstOrDefault(); - Assert.NotNull(singleRole); - - return singleRole.Id; default: throw new Exception("Incorrect Rights Type"); } } diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs index 9999017a96..3ef35b2cd7 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsType.cs @@ -11,7 +11,6 @@ public enum RightsType ItContractRights = 1, ItProjectRights = 2, ItSystemRights = 3, - OrganizationUnitRights = 4, - DprRights = 5 + OrganizationUnitRights = 4 } } diff --git a/Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs b/Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs new file mode 100644 index 0000000000..44b2e0a26a --- /dev/null +++ b/Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Core.DomainModel.SSO; +using Core.DomainServices.Extensions; + +namespace Tests.Integration.Presentation.Web.Tools +{ + public class SsoIdentityHelper + { + public static void AddSsoIdentityToUser(int userId) + { + var ssoIdentity = new SsoUserIdentity + { + ExternalUuid = Guid.NewGuid() + }; + + DatabaseAccess.MutateDatabase(x => + { + var user = x.Users.AsQueryable().ById(userId); + if (user == null) + throw new ArgumentNullException($"User with Id: {userId} doesn't exist"); + + user.SsoIdentities.Add(ssoIdentity); + x.SaveChanges(); + }); + } + } +} diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 518dded0eb..a3ec1d0062 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -126,40 +126,52 @@ public async Task Delete_User() { var userRole = OrganizationRole.LocalAdmin; - var (_, userId, organization) = await CreatePrerequisitesAsync(userRole); + var (_, userId, organization, originalEmail) = await CreatePrerequisitesAsync(userRole); var name = A(); var project = await ItProjectHelper.CreateProject(name, organization.Id); - var dpr = await DataProcessingRegistrationHelper.CreateAsync(organization.Id, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItContractRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.OrganizationUnitRights, name); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItProjectRights, name, project.Id); await RightsHelper.AddUserRole(userId, organization.Id, RightsType.ItSystemRights, name); - await RightsHelper.AddUserRole(userId, organization.Id, RightsType.DprRights, name, dpr.Id); + await RightsHelper.AddDprRoleToUser(userId, organization.Id, name); await ItProjectHelper.AddAssignmentAsync(organization.Id, userId, project.Id); await ItProjectHelper.AddCommunicationAsync(organization.Id, userId, project.Id); await ItProjectHelper.AddRiskAsync(organization.Id, userId, project.Id); await ItProjectHelper.AddHandoverResponsibleAsync(project.Id, userId); - RightsHelper.AddSsoIdentityToUser(userId); + SsoIdentityHelper.AddSsoIdentityToUser(userId); + var deleteResponse = await UserHelper.SendDeleteUserAsync(userId); Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); - var getDeletedUserResponse = await UserHelper.GetUserByIdAsync(userId); - - Assert.True(getDeletedUserResponse.Deleted); - Assert.False(getDeletedUserResponse.IsGlobalAdmin); - Assert.False(getDeletedUserResponse.HasApiAccess); - Assert.False(getDeletedUserResponse.HasStakeHolderAccess); - - Assert.Contains("_deleted_user@kitos.dk", getDeletedUserResponse.Email); - Assert.Contains("(SLETTET)", getDeletedUserResponse.LastName); - Assert.NotNull(getDeletedUserResponse.EmailBeforeDeletion); - Assert.NotNull(getDeletedUserResponse.LockedOutDate); - Assert.NotNull(getDeletedUserResponse.DeletedDate); - Assert.Null(getDeletedUserResponse.PhoneNumber); + var deletedUser = await UserHelper.GetUserByIdAsync(userId); + + Assert.True(deletedUser.Deleted); + Assert.False(deletedUser.IsGlobalAdmin); + Assert.False(deletedUser.HasApiAccess); + Assert.False(deletedUser.HasStakeHolderAccess); + + Assert.Contains("_deleted_user@kitos.dk", deletedUser.Email); + Assert.Contains("(SLETTET)", deletedUser.LastName); + Assert.Equal(originalEmail, deletedUser.EmailBeforeDeletion); + Assert.NotNull(deletedUser.LockedOutDate); + Assert.NotNull(deletedUser.DeletedDate); + Assert.Null(deletedUser.PhoneNumber); + + Assert.Empty(deletedUser.DataProcessingRegistrationRights); + Assert.Empty(deletedUser.OrganizationRights); + Assert.Empty(deletedUser.ItContractRights); + Assert.Empty(deletedUser.ItSystemRights); + Assert.Empty(deletedUser.ItProjectRights); + Assert.Empty(deletedUser.OrganizationUnitRights); + Assert.Empty(deletedUser.SsoIdentities); + Assert.Empty(deletedUser.ItProjectStatuses); + Assert.Empty(deletedUser.ResponsibleForCommunications); + Assert.Empty(deletedUser.HandoverParticipants); + Assert.Empty(deletedUser.ResponsibleForRisks); } [Fact] @@ -167,18 +179,19 @@ public async Task Delete_User_Returns_Forbidden_When_User_Tries_To_Delete_Himsel { var userRole = OrganizationRole.GlobalAdmin; - var (cookie, userId, _) = await CreatePrerequisitesAsync(userRole); + var (cookie, userId, _, _) = await CreatePrerequisitesAsync(userRole); var deleteResponse = await UserHelper.SendDeleteUserAsync(userId, cookie); Assert.Equal(HttpStatusCode.Forbidden, deleteResponse.StatusCode); } - private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization)> CreatePrerequisitesAsync(OrganizationRole role) + private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization, string email)> CreatePrerequisitesAsync(OrganizationRole role) { var organization = await CreateOrganizationAsync(); + var email = UIConfigurationHelper.CreateEmail(); var (userId, _, loginCookie) = - await HttpApi.CreateUserAndLogin(UIConfigurationHelper.CreateEmail(), role, organization.Id); - return (loginCookie, userId, organization); + await HttpApi.CreateUserAndLogin(email, role, organization.Id); + return (loginCookie, userId, organization, email); } private async Task<(int userId, string userEmail, string orgName)> CreateStakeHolderUserInNewOrganizationAsync(bool hasApiAccess, bool hasStakeholderAccess) From 4dee8c4c3fda293b6fdfa6cfc51b849167972bed Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 08:48:50 +0200 Subject: [PATCH 020/432] Changes after review #2 --- Core.ApplicationServices/UserService.cs | 9 ++- .../API/V1/OData/BaseEntityController.cs | 1 - .../Tools/External/Rights/RightsHelper.cs | 4 -- .../Tools/ItContractHelper.cs | 2 +- .../Tools/ItProjectHelper.cs | 2 +- .../Tools/ItSystemHelper.cs | 2 +- .../Tools/OrganizationUnitHelper.cs | 4 +- .../Tools/SsoIdentityHelper.cs | 3 - .../Handlers/HandleUserBeingDeletedTests.cs | 64 +++++++++++-------- .../ApplicationServices/UserServiceTest.cs | 36 ++++++----- .../Services/OrganizationServiceTest.cs | 12 ++-- 11 files changed, 74 insertions(+), 65 deletions(-) diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 6e807a0351..ade6da3107 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -16,7 +16,6 @@ using Core.DomainModel.Organization.DomainEvents; using Infrastructure.Services.Cryptography; using Core.DomainServices.Authorization; -using Core.DomainServices.Context; using Core.DomainServices.Extensions; using Core.DomainServices.Queries; using Infrastructure.Services.DataAccess; @@ -42,7 +41,7 @@ public class UserService : IUserService private readonly IAuthorizationContext _authorizationContext; private readonly IDomainEvents _domainEvents; private readonly SHA256Managed _crypt; - private readonly IOrganizationalUserContext _activeUserIdContext; + private readonly IOrganizationalUserContext _organizationalUserContext; private static readonly RNGCryptoServiceProvider rngCsp = new(); private const string KitosManualsLink = "https://os2.eu/Kitosvejledning"; @@ -61,7 +60,7 @@ public UserService(TimeSpan ttl, IUserRepository repository, IOrganizationService organizationService, ITransactionManager transactionManager, - IOrganizationalUserContext activeUserIdContext) + IOrganizationalUserContext organizationalUserContext) { _ttl = ttl; _baseUrl = baseUrl; @@ -78,7 +77,7 @@ public UserService(TimeSpan ttl, _repository = repository; _organizationService = organizationService; _transactionManager = transactionManager; - _activeUserIdContext = activeUserIdContext; + _organizationalUserContext = organizationalUserContext; _crypt = new SHA256Managed(); if (useDefaultUserPassword && string.IsNullOrWhiteSpace(defaultUserPassword)) { @@ -297,7 +296,7 @@ public Maybe DeleteUserFromKitos(Guid userUuid) var user = _userRepository.AsQueryable().ByUuid(userUuid); if (user == null) return new OperationError(OperationFailure.NotFound); - if(_activeUserIdContext.UserId.Select(context => context.ActiveUserId == user.Id).GetValueOrDefault()) + if(_organizationalUserContext.UserId == user.Id) return new OperationError("You cannot delete a user you are currently logged in as", OperationFailure.Forbidden); diff --git a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs index 0118f24add..080afebfa7 100644 --- a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs @@ -78,7 +78,6 @@ public override IHttpActionResult Get(int key) return Forbidden(); } - return Ok(SingleResult.Create(result)); } diff --git a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs index 243eb3102a..184b11f253 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/Rights/RightsHelper.cs @@ -1,13 +1,9 @@ using System; using System.Linq; using System.Net; -using System.Net.Http; using System.Threading.Tasks; using Core.DomainModel; -using Core.DomainModel.ItContract; using Core.DomainModel.Organization; -using Core.DomainModel.SSO; -using Core.DomainServices.Extensions; using Tests.Integration.Presentation.Web.Tools.Model; using Xunit; diff --git a/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs index f6d7750ff2..e127f0c265 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItContractHelper.cs @@ -191,7 +191,7 @@ public static async Task> GetRolesAsync(Cookie optionalLogi { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItContractRoles"), cookie); + using var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItContractRoles"), cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); return await response.ReadOdataListResponseBodyAsAsync(); diff --git a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs index e024bb14a5..f4d225cdb3 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItProjectHelper.cs @@ -349,7 +349,7 @@ public static async Task> GetRolesAsync(Cookie optionalLogin { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItProjectRoles"), cookie); + using var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItProjectRoles"), cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); return await response.ReadOdataListResponseBodyAsAsync(); diff --git a/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs b/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs index 111a7cba8a..5364857cd5 100644 --- a/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/ItSystemHelper.cs @@ -268,7 +268,7 @@ public static async Task> GetRolesAsync(Cookie optionalLogin { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItSystemRoles"), cookie); + using var response = await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("odata/ItSystemRoles"), cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); return await response.ReadOdataListResponseBodyAsAsync(); diff --git a/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs index 3e71909622..d96f7f24e1 100644 --- a/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/OrganizationUnitHelper.cs @@ -14,7 +14,7 @@ public static async Task GetOrganizationUnitsAsync(int orgId, Cookie var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); var orgUnitUrl = TestEnvironment.CreateUrl($"api/OrganizationUnit?organization={orgId}"); - var response = await HttpApi.GetWithCookieAsync(orgUnitUrl, cookie); + using var response = await HttpApi.GetWithCookieAsync(orgUnitUrl, cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); return await response.ReadResponseBodyAsKitosApiResponseAsync(); @@ -25,7 +25,7 @@ public static async Task> GetOrganizationUnitRolesAsy var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); var orgUnitUrl = TestEnvironment.CreateUrl($"odata/OrganizationUnitRoles"); - var response = await HttpApi.GetWithCookieAsync(orgUnitUrl, cookie); + using var response = await HttpApi.GetWithCookieAsync(orgUnitUrl, cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); return await response.ReadOdataListResponseBodyAsAsync(); diff --git a/Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs b/Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs index 44b2e0a26a..8331c7480b 100644 --- a/Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/SsoIdentityHelper.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using Core.DomainModel.SSO; using Core.DomainServices.Extensions; diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs index dc52994767..dbdf360b1d 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Handlers/HandleUserBeingDeletedTests.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; +using System.Linq; using Core.Abstractions.Types; using Core.ApplicationServices.GDPR; using Core.ApplicationServices.Organizations; @@ -57,6 +57,14 @@ public void Handle_Deletes_All_User_Rights() var roleId = A(); var organizationRole = A(); var user = SetupUser(roleId, organizationRole); + + var dprRight = user.DataProcessingRegistrationRights.FirstOrDefault(); + var organizationRight = user.OrganizationRights.FirstOrDefault(); + var itContractRight = user.ItContractRights.FirstOrDefault(); + var itSystemRight = user.ItSystemRights.FirstOrDefault(); + var itProjectRight = user.ItProjectRights.FirstOrDefault(); + var organizationUnitRight = user.OrganizationUnitRights.FirstOrDefault(); + var isSuccessExpected = true; SetupUserDprMocking(user, roleId, isSuccessExpected); SetupUserOrganizationRightsMocking(user, organizationRole, isSuccessExpected); @@ -67,26 +75,26 @@ public void Handle_Deletes_All_User_Rights() SetupSsoIdentitiesMocking(user); _sut.Handle(new EntityBeingDeletedEvent(user)); - - _dprApplicationServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + + _dprApplicationServiceMock.Verify(x => x.RemoveRole(dprRight.ObjectId, roleId, user.Id), Times.AtLeastOnce); Assert.Empty(user.DataProcessingRegistrationRights); - _organizationRightsServiceMock.Verify(x => x.RemoveRole(It.IsAny(), user.Id, organizationRole), Times.AtLeastOnce); + _organizationRightsServiceMock.Verify(x => x.RemoveRole(organizationRight.OrganizationId, user.Id, organizationRole), Times.AtLeastOnce); Assert.Empty(user.OrganizationRights); - - _itContractRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + + _itContractRightServiceMock.Verify(x => x.RemoveRole(itContractRight.Object, roleId, user.Id), Times.AtLeastOnce); Assert.Empty(user.ItContractRights); - - _itSystemRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + + _itSystemRightServiceMock.Verify(x => x.RemoveRole(itSystemRight.Object, roleId, user.Id), Times.AtLeastOnce); Assert.Empty(user.ItSystemRights); - - _itProjectRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + + _itProjectRightServiceMock.Verify(x => x.RemoveRole(itProjectRight.Object, roleId, user.Id), Times.AtLeastOnce); Assert.Empty(user.ItProjectRights); - _organizationUnitRightServiceMock.Verify(x => x.RemoveRole(It.IsAny(), roleId, user.Id), Times.AtLeastOnce); + _organizationUnitRightServiceMock.Verify(x => x.RemoveRole(organizationUnitRight.Object, roleId, user.Id), Times.AtLeastOnce); Assert.Empty(user.OrganizationUnitRights); - - _ssoUserIdentityRepository.Verify(x => x.DeleteIdentitiesForUser(user.SsoIdentities), Times.AtLeastOnce); + + _ssoUserIdentityRepository.Verify(x => x.DeleteIdentitiesForUser(user), Times.AtLeastOnce); Assert.Empty(user.SsoIdentities); } @@ -120,9 +128,9 @@ private void ExpectOrganizationUnitRemoveRoleReturns(OrganizationUnit roleObject _organizationUnitRightServiceMock.Setup(x => x.RemoveRole(roleObject, roleId, userId)).Returns(result); } - private void ExpectDeleteIdentitiesForUserReturns(IEnumerable identities) + private void ExpectDeleteIdentitiesForUserReturns(User user) { - _ssoUserIdentityRepository.Setup(x => x.DeleteIdentitiesForUser(identities)); + _ssoUserIdentityRepository.Setup(x => x.DeleteIdentitiesForUser(user)); } private User SetupUser(int roleId, OrganizationRole organizationRole) @@ -186,75 +194,75 @@ private User SetupUser(int roleId, OrganizationRole organizationRole) return user; } - private void SetupUserDprMocking(User user, int roleId, bool isSuccessExpected) + private void SetupUserDprMocking(User user, int roleId, bool isSuccessExpected, OperationFailure operationFailure = OperationFailure.UnknownError) { foreach (var dprRight in user.DataProcessingRegistrationRights) { var result = isSuccessExpected ? Result.Success(dprRight) - : Result.Failure(It.IsAny()); + : Result.Failure(operationFailure); ExpectDprApplicationRemoveRoleReturns(dprRight.ObjectId, roleId, user.Id, result); } } - private void SetupUserOrganizationRightsMocking(User user, OrganizationRole organizationRole, bool isSuccessExpected) + private void SetupUserOrganizationRightsMocking(User user, OrganizationRole organizationRole, bool isSuccessExpected, OperationFailure operationFailure = OperationFailure.UnknownError) { foreach (var organizationRight in user.OrganizationRights) { var result = isSuccessExpected ? Result.Success(organizationRight) - : Result.Failure(It.IsAny()); + : Result.Failure(operationFailure); ExpectOrganizationRemoveRoleReturns(organizationRight.OrganizationId, organizationRole, user.Id, result); } } - private void SetupUserItContractRightsMocking(User user, int roleId, bool isSuccessExpected) + private void SetupUserItContractRightsMocking(User user, int roleId, bool isSuccessExpected, OperationFailure operationFailure = OperationFailure.UnknownError) { foreach (var itContractRight in user.ItContractRights) { var result = isSuccessExpected ? Result.Success(itContractRight) - : Result.Failure(It.IsAny()); + : Result.Failure(operationFailure); ExpectItContractRemoveRoleReturns(itContractRight.Object, roleId, user.Id, result); } } - private void SetupUserItSystemRightsMocking(User user, int roleId, bool isSuccessExpected) + private void SetupUserItSystemRightsMocking(User user, int roleId, bool isSuccessExpected, OperationFailure operationFailure = OperationFailure.UnknownError) { foreach (var itSystemRight in user.ItSystemRights) { var result = isSuccessExpected ? Result.Success(itSystemRight) - : Result.Failure(It.IsAny()); + : Result.Failure(operationFailure); ExpectItSystemRemoveRoleReturns(itSystemRight.Object, roleId, user.Id, result); } } - private void SetupUserItProjectRightsMocking(User user, int roleId, bool isSuccessExpected) + private void SetupUserItProjectRightsMocking(User user, int roleId, bool isSuccessExpected, OperationFailure operationFailure = OperationFailure.UnknownError) { foreach (var itProjectRight in user.ItProjectRights) { var result = isSuccessExpected ? Result.Success(itProjectRight) - : Result.Failure(It.IsAny()); + : Result.Failure(operationFailure); ExpectItProjectRemoveRoleReturns(itProjectRight.Object, roleId, user.Id, result); } } - private void SetupUserOrganizationUnitRightsMocking(User user, int roleId, bool isSuccessExpected) + private void SetupUserOrganizationUnitRightsMocking(User user, int roleId, bool isSuccessExpected, OperationFailure operationFailure = OperationFailure.UnknownError) { foreach (var organizationUnitRight in user.OrganizationUnitRights) { var result = isSuccessExpected ? Result.Success(organizationUnitRight) - : Result.Failure(It.IsAny()); + : Result.Failure(operationFailure); ExpectOrganizationUnitRemoveRoleReturns(organizationUnitRight.Object, roleId, user.Id, result); } } private void SetupSsoIdentitiesMocking(User user) { - ExpectDeleteIdentitiesForUserReturns(user.SsoIdentities); + ExpectDeleteIdentitiesForUserReturns(user); } } } diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 8b38bc61dc..8348887e84 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -13,7 +13,6 @@ using Core.ApplicationServices.Organizations; using Core.DomainModel.Events; using Core.DomainModel.Organization.DomainEvents; -using Core.DomainServices.Context; using Core.DomainServices.Queries; using Infrastructure.Services.DataAccess; using Tests.Toolkit.Patterns; @@ -35,7 +34,7 @@ public class UserServiceTest : WithAutoFixture private readonly Mock _domainEventsMock; private readonly Mock _transactionManagerMock; private readonly Mock _organizationServiceMock; - private readonly Mock _activeUserIdContextMock; + private readonly Mock _organizationalUserContextMock; public UserServiceTest() { @@ -48,9 +47,7 @@ public UserServiceTest() _authorizationContextMock = new Mock(); _domainEventsMock = new Mock(); _transactionManagerMock = new Mock(); - - var activeUserId = A(); - _activeUserIdContextMock = new Mock(activeUserId); + _organizationalUserContextMock = new Mock(); _organizationServiceMock = new Mock(); _sut = new UserService( @@ -69,7 +66,7 @@ public UserServiceTest() _repositoryMock.Object, _organizationServiceMock.Object, _transactionManagerMock.Object, - _activeUserIdContextMock.Object); + _organizationalUserContextMock.Object); } [Fact] @@ -255,20 +252,22 @@ public void GetUserInOrganization_Returns_NotFound() public void DeleteUserFromKitos_Raises_EntityBeingDeletedEvent_And_AccessRights_Changed() { //Arrange + var userId = A(); var userUuid = A(); var isDeleteAllowed = true; - ExpectTransactionBeginReturns(); - ExpectUserRepositoryByUuidReturns(userUuid); - ExpectAuthorizationAllowDeleteReturns(isDeleteAllowed); + var transaction = ExpectTransactionBeginReturns(); + var user = ExpectUserRepositoryByUuidReturns(userId, userUuid); + ExpectAuthorizationAllowDeleteReturns(user, isDeleteAllowed); //Act var result = _sut.DeleteUserFromKitos(userUuid); //Assert Assert.True(result.IsNone); - _domainEventsMock.Verify(x => x.Raise(It.IsAny>()), Times.Once); + _domainEventsMock.Verify(x => x.Raise(It.Is>(deleteEvent => deleteEvent.Entity.Id == user.Id)), Times.Once); _domainEventsMock.Verify(x => x.Raise(It.IsAny()), Times.Once); + transaction.Verify(x => x.Commit(), Times.Once); } private void ExpectGetOrganizationAccessReturns(int organizationId, OrganizationDataReadAccessLevel organizationDataReadAccessLevel) @@ -282,20 +281,27 @@ private void ExpectGetOrganizationReturns(Guid organizationId, Result x.GetOrganization(organizationId,OrganizationDataReadAccessLevel.All)).Returns(organization); } - private void ExpectTransactionBeginReturns() + private Mock ExpectTransactionBeginReturns() { var transaction = new Mock(); _transactionManagerMock.Setup(x => x.Begin()).Returns(transaction.Object); + return transaction; } - private void ExpectUserRepositoryByUuidReturns(Guid uuid) + private User ExpectUserRepositoryByUuidReturns(int userId, Guid uuid) { - _userRepositoryMock.Setup(x => x.AsQueryable()).Returns(new List{new() {Uuid = uuid}}.AsQueryable); + var user = new User() + { + Id = userId, + Uuid = uuid + }; + _userRepositoryMock.Setup(x => x.AsQueryable()).Returns(new List{ user }.AsQueryable); + return user; } - private void ExpectAuthorizationAllowDeleteReturns(bool result) + private void ExpectAuthorizationAllowDeleteReturns(IEntity entity, bool result) { - _authorizationContextMock.Setup(x => x.AllowDelete(It.IsAny())).Returns(result); + _authorizationContextMock.Setup(x => x.AllowDelete(entity)).Returns(result); } } } diff --git a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs index 1cb9ef5b7c..d3a4e2253a 100644 --- a/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs +++ b/Tests.Unit.Presentation.Web/Services/OrganizationServiceTest.cs @@ -269,8 +269,9 @@ public void RemoveUser_Returns_Ok() var matchedRight2 = CreateRight(organizationId, userId); var unmatchedRight1 = CreateRight(A(), userId); var unmatchedRight2 = CreateRight(organizationId, A()); - _orgRightRepository.Setup(x => x.AsQueryable()).Returns(new[] { matchedRight1, unmatchedRight1, matchedRight2, unmatchedRight2 }.AsQueryable()); - ExpectOrganizationRightsRemoveRoleReturnsSuccess(); + var rightsArray = new[] {matchedRight1, unmatchedRight1, matchedRight2, unmatchedRight2}; + _orgRightRepository.Setup(x => x.AsQueryable()).Returns(rightsArray.AsQueryable()); + ExpectOrganizationRightsRemoveRoleReturnsSuccess(rightsArray); //Act var result = _sut.RemoveUser(organizationId, userId); @@ -807,9 +808,12 @@ private void ExpectTransactionBeginReturns() } - private void ExpectOrganizationRightsRemoveRoleReturnsSuccess() + private void ExpectOrganizationRightsRemoveRoleReturnsSuccess(OrganizationRight[] rights) { - _organizationRightsServiceMock.Setup(x => x.RemoveRole(It.IsAny())).Returns(It.IsAny()); + foreach (var right in rights) + { + _organizationRightsServiceMock.Setup(x => x.RemoveRole(right.Id)).Returns(right); + } } private void ExpectAllowDeleteReturns(Organization organization, bool value) From e3427304d7c79b7fd1a2d27ddab41e7aeb64872c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 09:03:53 +0200 Subject: [PATCH 021/432] Changes before review #3 --- .../UIConfiguration/Handlers/HandleUserBeingDeleted.cs | 5 ----- .../Repositories/SSO/SsoUserIdentityRepository.cs | 1 + Tests.Integration.Presentation.Web/Users/UserTest.cs | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs index b1ce6dec74..59f941e96d 100644 --- a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs +++ b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs @@ -117,12 +117,7 @@ private void ClearOrganizationUnitRights(User user) private void ClearSsoIdentities(User user) { - var roles = user.SsoIdentities; - if (roles == null) - return; - _ssoUserIdentityRepository.DeleteIdentitiesForUser(user); - roles.Clear(); } } diff --git a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs index cb740745c3..4fd2611693 100644 --- a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs @@ -50,6 +50,7 @@ public void DeleteIdentitiesForUser(User user) _repository.RemoveRange(identities); _repository.Save(); + identities.Clear(); } } } diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index a3ec1d0062..7ab27ba7f5 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -20,7 +20,7 @@ public async Task Can_Get_Users_And_Organizations_Where_User_Has_RightsholderAcc { //Arrange var (userId, userEmail, organization) = await CreateRightsHolderAccessUserInNewOrganizationAsync(); - + //Act var result = await UserHelper.GetUsersWithRightsholderAccessAsync(); From c21edd30fcb2f89801d1be6d5fa2e63828f30359 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 09:19:47 +0200 Subject: [PATCH 022/432] Fixed HandleUserBeingDeleted --- .../UIConfiguration/Handlers/HandleUserBeingDeleted.cs | 5 +++++ .../Repositories/SSO/SsoUserIdentityRepository.cs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs index 59f941e96d..b1ce6dec74 100644 --- a/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs +++ b/Core.ApplicationServices/UIConfiguration/Handlers/HandleUserBeingDeleted.cs @@ -117,7 +117,12 @@ private void ClearOrganizationUnitRights(User user) private void ClearSsoIdentities(User user) { + var roles = user.SsoIdentities; + if (roles == null) + return; + _ssoUserIdentityRepository.DeleteIdentitiesForUser(user); + roles.Clear(); } } diff --git a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs index 4fd2611693..0b7dd6c5ad 100644 --- a/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/SsoUserIdentityRepository.cs @@ -46,7 +46,7 @@ public void DeleteIdentitiesForUser(User user) { var identities = user.SsoIdentities; if (identities == null) - return; + throw new ArgumentNullException($"User with id: {user.Id} has no Sso Identities"); _repository.RemoveRange(identities); _repository.Save(); From 679dae4488a36510f7a16160a03b5d6d76949be1 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 10:29:26 +0200 Subject: [PATCH 023/432] Fixed UserDelete test --- Core.DomainModel/User.cs | 2 +- .../API/V1/OData/BaseEntityController.cs | 2 +- .../Tools/UserHelper.cs | 23 +++++++++++++++---- .../Users/UserTest.cs | 2 +- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Core.DomainModel/User.cs b/Core.DomainModel/User.cs index c4424147ef..8839f4b11f 100644 --- a/Core.DomainModel/User.cs +++ b/Core.DomainModel/User.cs @@ -29,7 +29,7 @@ public User() OrganizationUnitRights = new List(); ItProjectRights = new List(); ItSystemRights = new List(); - ItContractRights = new List(); + //ItContractRights = new List(); ItProjectStatuses = new List(); ResponsibleForRisks = new List(); ResponsibleForCommunications = new List(); diff --git a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs index 080afebfa7..f81d6444b5 100644 --- a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs @@ -77,7 +77,7 @@ public override IHttpActionResult Get(int key) { return Forbidden(); } - + return Ok(SingleResult.Create(result)); } diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index 254d8ec1fb..688fb64ddb 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -1,9 +1,11 @@ using Core.DomainModel.Organization; using System.Collections.Generic; +using System.Data.Entity; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Core.DomainModel; +using Core.DomainServices.Extensions; using Presentation.Web.Models.API.V1.Users; using Xunit; @@ -39,12 +41,23 @@ public static async Task SendGetUsersWithCrossAccessAsync(C return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("api/user/with-cross-organization-permissions"), cookie); } - public static async Task GetUserByIdAsync(int id, Cookie optionalLogin = null) + public static User GetUserByIdWithRightsAsync(int id) { - using var response = await SendGetUserByIdAsync(id, optionalLogin); - Assert.Equal(HttpStatusCode.OK, response.StatusCode); - - return await response.ReadResponseBodyAsAsync(); + var user = DatabaseAccess.MapFromEntitySet(x => x.AsQueryable() + .Include(user => user.DataProcessingRegistrationRights) + .Include(user => user.OrganizationRights) + .Include(user => user.ItContractRights) + .Include(user => user.ItProjectRights) + .Include(user => user.ItSystemRights) + .Include(user => user.OrganizationUnitRights) + .Include(user => user.SsoIdentities) + .Include(user => user.ItProjectStatuses) + .Include(user => user.ResponsibleForCommunications) + .Include(user => user.HandoverParticipants) + .Include(user => user.ResponsibleForRisks) + .ById(id)); + + return user; } public static async Task SendGetUserByIdAsync(int id, Cookie optionalLogin = null) diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 7ab27ba7f5..c5067bd6fc 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -147,7 +147,7 @@ public async Task Delete_User() var deleteResponse = await UserHelper.SendDeleteUserAsync(userId); Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); - var deletedUser = await UserHelper.GetUserByIdAsync(userId); + var deletedUser = UserHelper.GetUserByIdWithRightsAsync(userId); Assert.True(deletedUser.Deleted); Assert.False(deletedUser.IsGlobalAdmin); From 0b0a5a054ed3c5844482ecb5aad6b502dda03f3f Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 10:41:35 +0200 Subject: [PATCH 024/432] Uncomment initialization --- Core.DomainModel/User.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core.DomainModel/User.cs b/Core.DomainModel/User.cs index 8839f4b11f..c4424147ef 100644 --- a/Core.DomainModel/User.cs +++ b/Core.DomainModel/User.cs @@ -29,7 +29,7 @@ public User() OrganizationUnitRights = new List(); ItProjectRights = new List(); ItSystemRights = new List(); - //ItContractRights = new List(); + ItContractRights = new List(); ItProjectStatuses = new List(); ResponsibleForRisks = new List(); ResponsibleForCommunications = new List(); From 5106a0a62d62038f2222f5609e70176cf8669133 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 10:44:28 +0200 Subject: [PATCH 025/432] Remove unnecessary change --- .../Controllers/API/V1/OData/BaseEntityController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs index f81d6444b5..080afebfa7 100644 --- a/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/BaseEntityController.cs @@ -77,7 +77,7 @@ public override IHttpActionResult Get(int key) { return Forbidden(); } - + return Ok(SingleResult.Create(result)); } From c4c311158cf9b3e3aa294f5871002e526e53e4fb Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 10:47:53 +0200 Subject: [PATCH 026/432] Removed unused method --- Tests.Integration.Presentation.Web/Tools/UserHelper.cs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index 688fb64ddb..597ef0e2c3 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -60,12 +60,6 @@ public static User GetUserByIdWithRightsAsync(int id) return user; } - public static async Task SendGetUserByIdAsync(int id, Cookie optionalLogin = null) - { - var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl($"odata/users({id})"), cookie); - } - public static async Task SendDeleteUserAsync(int userId, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); From 4a22c3797c9b0f420cf8f663665623b176bcf653 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 11:41:43 +0200 Subject: [PATCH 027/432] Added search users method --- Core.ApplicationServices/IUserService.cs | 2 ++ Core.ApplicationServices/UserService.cs | 11 ++++++++ .../Controllers/API/V1/UserController.cs | 26 +++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/Core.ApplicationServices/IUserService.cs b/Core.ApplicationServices/IUserService.cs index d4e0e0460d..9ce791b11f 100644 --- a/Core.ApplicationServices/IUserService.cs +++ b/Core.ApplicationServices/IUserService.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Core.Abstractions.Types; using Core.DomainModel; @@ -18,5 +19,6 @@ public interface IUserService : IDisposable Result, OperationError> GetUsersWithRoleAssignedInAnyOrganization(OrganizationRole role); Result, OperationError> GetUsersInOrganization(Guid organizationUuid, params IDomainQuery[] queries); Result GetUserInOrganization(Guid organizationUuid, Guid userUuid); + Result, OperationError> SearchUsers(params IDomainQuery[] queries); } } \ No newline at end of file diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 2233ad4489..918a72b654 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Net.Mail; using System.Security; @@ -280,5 +281,15 @@ public Result GetUserInOrganization(Guid organizationUuid, ) ); } + + public Result, OperationError> SearchUsers(params IDomainQuery[] queries) + { + var query = new IntersectionQuery(queries); + + return _repository + .GetUsers() + .Transform(query.Apply) + .Transform(Result, OperationError>.Success); + } } } diff --git a/Presentation.Web/Controllers/API/V1/UserController.cs b/Presentation.Web/Controllers/API/V1/UserController.cs index 63134cce29..1bfcf468f2 100644 --- a/Presentation.Web/Controllers/API/V1/UserController.cs +++ b/Presentation.Web/Controllers/API/V1/UserController.cs @@ -13,10 +13,14 @@ using Core.DomainModel.Organization; using Core.DomainServices; using Core.DomainServices.Extensions; +using Core.DomainServices.Queries; +using Core.DomainServices.Queries.User; using Newtonsoft.Json.Linq; +using Presentation.Web.Extensions; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V1; using Presentation.Web.Models.API.V1.Users; +using Presentation.Web.Models.API.V2.Request.Generic.Queries; namespace Presentation.Web.Controllers.API.V1 { @@ -210,6 +214,28 @@ public HttpResponseMessage GetUsersWithCrossAccess() .Match(Ok, FromOperationError); } + /// + /// Returns the users with matching name or email + /// + /// Name or email of the user + /// A list of users + [HttpGet] + [Route("api/users/{nameOrEmailQuery}")] + public HttpResponseMessage GetUsersWithCrossAccess(string nameOrEmailQuery, [FromUri] BoundedPaginationQuery paginationQuery = null) + { + if (string.IsNullOrEmpty(nameOrEmailQuery)) + return BadRequest("Query needs a value"); + + var queries = new List> {new QueryUserByNameOrEmail(nameOrEmailQuery)}; + + return _userService + .SearchUsers(queries.ToArray()) + .Select(x => x.OrderBy(user => user.Id)) + .Select(x => x.Page(paginationQuery)) + .Select(x => x.ToList()/*.Select(user => (organizationUuid, user)).Select(ToUserResponseDTO)*/) + .Match(Ok, FromOperationError); + } + private static IEnumerable ToUserWithOrgDTOs(List dtos) { return dtos.Select(ToUserWithOrgDTO).ToList(); From 723d0e1cc14f4696c07e3aa7e0bd7810796a6fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 25 May 2022 13:00:45 +0200 Subject: [PATCH 028/432] review changes --- Core.ApplicationServices/UserService.cs | 5 +-- .../EntityPropertyProxyValueLoader.cs | 32 +++++++++++++++++++ .../GenericRepository.cs | 20 ++---------- .../Infrastructure.DataAccess.csproj | 1 + .../Tools/UserHelper.cs | 31 ++++++++---------- .../ApplicationServices/UserServiceTest.cs | 12 +++---- 6 files changed, 59 insertions(+), 42 deletions(-) create mode 100644 Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index ade6da3107..ffa39db28f 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -306,10 +306,11 @@ public Maybe DeleteUserFromKitos(Guid userUuid) _domainEvents.Raise(new EntityBeingDeletedEvent(user)); Delete(user); - _domainEvents.Raise(new AccessRightsChanged(user.Id)); _userRepository.Save(); - transaction.Commit(); + + _domainEvents.Raise(new AccessRightsChanged(user.Id)); + return Maybe.None; } diff --git a/Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs b/Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs new file mode 100644 index 0000000000..58be5f84f0 --- /dev/null +++ b/Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace Infrastructure.DataAccess.Extensions +{ + public class EntityPropertyProxyValueLoader + { + private readonly Lazy> _entityTypeVirtualGetters = + new( + () => + typeof(T) + .GetProperties() + .Where(property => property.CanRead) + .Select(property => property.GetMethod) + .Where(getMethod => getMethod.IsVirtual && getMethod.IsPublic) + .ToList() + .AsReadOnly() + ); + + public T LoadReferencedEntities(T entity) + { + //Invoke getters of all reference properties. This solves the issue of EF not cascading on optional foreign keys in reference objects which may reference either one or many of the different root elements. Example: TaskRef + _entityTypeVirtualGetters + .Value + .Select(methodInfo => methodInfo.Invoke(entity, new object[0])) + .ToList(); + return T; + } + } +} diff --git a/Infrastructure.DataAccess/GenericRepository.cs b/Infrastructure.DataAccess/GenericRepository.cs index 77d878071b..bb2f036098 100644 --- a/Infrastructure.DataAccess/GenericRepository.cs +++ b/Infrastructure.DataAccess/GenericRepository.cs @@ -5,8 +5,8 @@ using System.Diagnostics; using System.Linq; using System.Linq.Expressions; -using System.Reflection; using Core.DomainServices; +using Infrastructure.DataAccess.Extensions; namespace Infrastructure.DataAccess { @@ -17,17 +17,7 @@ public class GenericRepository : IGenericRepository private readonly DbSet _dbSet; private bool _disposed; - private readonly Lazy> _entityTypeVirtualGetters = - new Lazy>( - () => - typeof(T) - .GetProperties() - .Where(property => property.CanRead) - .Select(property => property.GetMethod) - .Where(getMethod => getMethod.IsVirtual && getMethod.IsPublic) - .ToList() - .AsReadOnly() - ); + private readonly Lazy> _proxyValueLoader = new(() => new EntityPropertyProxyValueLoader()); public GenericRepository(KitosContext context) { @@ -136,11 +126,7 @@ public void DeleteByKeyWithReferencePreload(params object[] key) private void LoadReferencedEntities(T entity) { - //Invoke getters of all reference properties. This solves the issue of EF not cascading on optional foreign keys in reference objects which may reference either one or many of the different root elements. Example: TaskRef - _entityTypeVirtualGetters - .Value - .Select(methodInfo => methodInfo.Invoke(entity, new object[0])) - .ToList(); + _proxyValueLoader.Value.LoadReferencedEntities(entity); } public void Update(T entity) diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 515928ff77..6ffc19e233 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -59,6 +59,7 @@ + diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index 597ef0e2c3..84485ad56a 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -1,11 +1,13 @@ -using Core.DomainModel.Organization; +using System; +using Core.DomainModel.Organization; using System.Collections.Generic; -using System.Data.Entity; using System.Net; using System.Net.Http; using System.Threading.Tasks; +using Core.Abstractions.Extensions; using Core.DomainModel; using Core.DomainServices.Extensions; +using Infrastructure.DataAccess.Extensions; using Presentation.Web.Models.API.V1.Users; using Xunit; @@ -13,6 +15,9 @@ namespace Tests.Integration.Presentation.Web.Tools { public static class UserHelper { + + private static readonly EntityPropertyProxyValueLoader ProxyLoader = new(); + public static async Task> GetUsersWithRightsholderAccessAsync(Cookie optionalLogin = null) { using var response = await SendGetUsersWithRightsholderAccessAsync(optionalLogin); @@ -43,21 +48,13 @@ public static async Task SendGetUsersWithCrossAccessAsync(C public static User GetUserByIdWithRightsAsync(int id) { - var user = DatabaseAccess.MapFromEntitySet(x => x.AsQueryable() - .Include(user => user.DataProcessingRegistrationRights) - .Include(user => user.OrganizationRights) - .Include(user => user.ItContractRights) - .Include(user => user.ItProjectRights) - .Include(user => user.ItSystemRights) - .Include(user => user.OrganizationUnitRights) - .Include(user => user.SsoIdentities) - .Include(user => user.ItProjectStatuses) - .Include(user => user.ResponsibleForCommunications) - .Include(user => user.HandoverParticipants) - .Include(user => user.ResponsibleForRisks) - .ById(id)); - - return user; + var user = DatabaseAccess.MapFromEntitySet(x => x.AsQueryable().ById(id)); + if (user == null) + { + throw new ArgumentException("Failed to find user with id", nameof(id)); + } + + return user.Transform(ProxyLoader.LoadReferencedEntities); } public static async Task SendDeleteUserAsync(int userId, Cookie optionalLogin = null) diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 8348887e84..89bc5037df 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -196,7 +196,7 @@ public void GetUserInOrganization_Returns_Ok() var organizationUuid = A(); var userUuid = A(); var organization = new Organization { Id = A(), Uuid = organizationUuid }; - var expectedUser = new User(){Uuid = userUuid}; + var expectedUser = new User() { Uuid = userUuid }; var allUsers = new[] { new User(), expectedUser, new User() }.AsQueryable(); ExpectGetOrganizationReturns(organizationUuid, organization); ExpectGetOrganizationAccessReturns(organization.Id, OrganizationDataReadAccessLevel.All); @@ -234,7 +234,7 @@ public void GetUserInOrganization_Returns_NotFound() var organizationUuid = A(); var userUuid = A(); var organization = new Organization { Id = A(), Uuid = organizationUuid }; - var allUsers = new[] { new User(), new User() }.AsQueryable(); + var allUsers = new[] { new User(), new User() }.AsQueryable(); ExpectGetOrganizationReturns(organizationUuid, organization); ExpectGetOrganizationAccessReturns(organization.Id, OrganizationDataReadAccessLevel.All); _repositoryMock.Setup(x => x.GetUsersInOrganization(organization.Id)).Returns(allUsers); @@ -246,7 +246,7 @@ public void GetUserInOrganization_Returns_NotFound() Assert.True(result.Failed); Assert.Equal(OperationFailure.NotFound, result.Error.FailureType); } - + [Fact] public void DeleteUserFromKitos_Raises_EntityBeingDeletedEvent_And_AccessRights_Changed() @@ -266,7 +266,7 @@ public void DeleteUserFromKitos_Raises_EntityBeingDeletedEvent_And_AccessRights_ //Assert Assert.True(result.IsNone); _domainEventsMock.Verify(x => x.Raise(It.Is>(deleteEvent => deleteEvent.Entity.Id == user.Id)), Times.Once); - _domainEventsMock.Verify(x => x.Raise(It.IsAny()), Times.Once); + _domainEventsMock.Verify(x => x.Raise(It.Is(changedEvent => changedEvent.UserId == user.Id)), Times.Once); transaction.Verify(x => x.Commit(), Times.Once); } @@ -278,7 +278,7 @@ private void ExpectGetOrganizationAccessReturns(int organizationId, Organization private void ExpectGetOrganizationReturns(Guid organizationId, Result organization) { - _organizationServiceMock.Setup(x => x.GetOrganization(organizationId,OrganizationDataReadAccessLevel.All)).Returns(organization); + _organizationServiceMock.Setup(x => x.GetOrganization(organizationId, OrganizationDataReadAccessLevel.All)).Returns(organization); } private Mock ExpectTransactionBeginReturns() @@ -295,7 +295,7 @@ private User ExpectUserRepositoryByUuidReturns(int userId, Guid uuid) Id = userId, Uuid = uuid }; - _userRepositoryMock.Setup(x => x.AsQueryable()).Returns(new List{ user }.AsQueryable); + _userRepositoryMock.Setup(x => x.AsQueryable()).Returns(new List { user }.AsQueryable); return user; } From fe0cc6aa2655957dc5e1ce398c169dc161f145d0 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 13:13:27 +0200 Subject: [PATCH 029/432] wip --- .../Controllers/API/V1/UserController.cs | 31 +++++++++------- .../Tools/HttpApi.cs | 3 +- .../Tools/UserHelper.cs | 14 ++++++++ .../Users/UserTest.cs | 36 ++++++++++++++++--- 4 files changed, 67 insertions(+), 17 deletions(-) diff --git a/Presentation.Web/Controllers/API/V1/UserController.cs b/Presentation.Web/Controllers/API/V1/UserController.cs index d809730121..9b9e87e5c0 100644 --- a/Presentation.Web/Controllers/API/V1/UserController.cs +++ b/Presentation.Web/Controllers/API/V1/UserController.cs @@ -224,20 +224,27 @@ public HttpResponseMessage GetUsersWithCrossAccess() /// Name or email of the user /// A list of users [HttpGet] - [Route("api/users/{nameOrEmailQuery}")] - public HttpResponseMessage GetUsersWithCrossAccess(string nameOrEmailQuery, [FromUri] BoundedPaginationQuery paginationQuery = null) + [Route("api/users/search/{nameOrEmailQuery}")] + public HttpResponseMessage SearchUsers(string nameOrEmailQuery, [FromUri] BoundedPaginationQuery paginationQuery = null) { - if (string.IsNullOrEmpty(nameOrEmailQuery)) - return BadRequest("Query needs a value"); + try + { + if (string.IsNullOrEmpty(nameOrEmailQuery)) + return BadRequest("Query needs a value"); - var queries = new List> {new QueryUserByNameOrEmail(nameOrEmailQuery)}; - - return _userService - .SearchUsers(queries.ToArray()) - .Select(x => x.OrderBy(user => user.Id)) - .Select(x => x.Page(paginationQuery)) - .Select(x => x.ToList()/*.Select(user => (organizationUuid, user)).Select(ToUserResponseDTO)*/) - .Match(Ok, FromOperationError); + var queries = new List> { new QueryUserByNameOrEmail(nameOrEmailQuery) }; + + return _userService + .SearchUsers(queries.ToArray()) + .Select(x => x.OrderBy(user => user.Id)) + .Select(x => x.Page(paginationQuery)) + .Select(x => x.ToList()/*.Select(user => (organizationUuid, user)).Select(ToUserResponseDTO)*/) + .Match(Ok, FromOperationError); + } + catch (Exception ex) + { + return BadRequest(ex.Message); + } } private static IEnumerable ToUserWithOrgDTOs(List dtos) diff --git a/Tests.Integration.Presentation.Web/Tools/HttpApi.cs b/Tests.Integration.Presentation.Web/Tools/HttpApi.cs index 3f27a1be9d..38999f9f36 100644 --- a/Tests.Integration.Presentation.Web/Tools/HttpApi.cs +++ b/Tests.Integration.Presentation.Web/Tools/HttpApi.cs @@ -416,7 +416,7 @@ public static async Task GetCookieAsync(OrganizationRole role, bool acce return await GetCookieAsync(userCredentials, acceptUnAuthorized); } - public static async Task<(int userId, KitosCredentials credentials, Cookie loginCookie)> CreateUserAndLogin(string email, OrganizationRole role, int organizationId = TestEnvironment.DefaultOrganizationId, bool apiAccess = false) + public static async Task<(int userId, KitosCredentials credentials, Cookie loginCookie)> CreateUserAndLogin(string email, OrganizationRole role, int organizationId = TestEnvironment.DefaultOrganizationId, bool apiAccess = false, string name = "") { var userId = await CreateOdataUserAsync(ObjectCreateHelper.MakeSimpleApiUserDto(email, apiAccess), role, organizationId); var password = Guid.NewGuid().ToString("N"); @@ -425,6 +425,7 @@ public static async Task GetCookieAsync(OrganizationRole role, bool acce using var crypto = new CryptoService(); var user = x.AsQueryable().ById(userId); user.Password = crypto.Encrypt(password + user.Salt); + user.Name = name; }); var cookie = await GetCookieAsync(new KitosCredentials(email, password)); diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index 597ef0e2c3..db2e934c77 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -65,5 +65,19 @@ public static async Task SendDeleteUserAsync(int userId, Co var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); return await HttpApi.DeleteWithCookieAsync(TestEnvironment.CreateUrl($"api/user/{userId}"), cookie); } + + public static async Task> SearchUsersAsync(string query, Cookie optionalLogin = null) + { + using var response = await SendSearchUsersAsync(query, optionalLogin); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + return await response.ReadResponseBodyAsKitosApiResponseAsync>(); + } + + public static async Task SendSearchUsersAsync(string query, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl($"api/users/search/{query}"), cookie); + } } } diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index c5067bd6fc..16d7e93d87 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using System.Xml.Schema; using Presentation.Web.Models.API.V1; using Tests.Integration.Presentation.Web.Tools; using Tests.Integration.Presentation.Web.Tools.External.Rights; @@ -185,13 +186,35 @@ public async Task Delete_User_Returns_Forbidden_When_User_Tries_To_Delete_Himsel Assert.Equal(HttpStatusCode.Forbidden, deleteResponse.StatusCode); } - private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization, string email)> CreatePrerequisitesAsync(OrganizationRole role) + [Fact] + public async Task Search_User_Returns_Users_With_Matching_Name_Or_Email() + { + var userRole = OrganizationRole.User; + var testPhrase = "testPhrase"; + + var email1 = CreateEmailContainingPhrase(testPhrase); + var email2 = CreateEmail(); + var email3 = CreateEmail(); + var name1 = CreateName(); + var name3 = CreateName(); + + var (_, userId1, _, _) = await CreatePrerequisitesAsync(userRole, email1, name1); + var (_, userId2, _, _) = await CreatePrerequisitesAsync(userRole, email2, testPhrase); + var (_, userId3, _, _) = await CreatePrerequisitesAsync(userRole, email3, name3); + + var users = await UserHelper.SearchUsersAsync(testPhrase); + + Assert.Contains(userId1, users.Select(x => x.Id)); + Assert.Contains(userId2, users.Select(x => x.Id)); + } + + private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization, string email)> CreatePrerequisitesAsync(OrganizationRole role, string email = "", string name = "", bool hasApiAccess = false) { var organization = await CreateOrganizationAsync(); - var email = UIConfigurationHelper.CreateEmail(); + var userEmail = string.IsNullOrEmpty(email) ? UIConfigurationHelper.CreateEmail() : email; var (userId, _, loginCookie) = - await HttpApi.CreateUserAndLogin(email, role, organization.Id); - return (loginCookie, userId, organization, email); + await HttpApi.CreateUserAndLogin(userEmail, role, organization.Id, hasApiAccess, name); + return (loginCookie, userId, organization, userEmail); } private async Task<(int userId, string userEmail, string orgName)> CreateStakeHolderUserInNewOrganizationAsync(bool hasApiAccess, bool hasStakeholderAccess) @@ -228,5 +251,10 @@ private string CreateEmail() { return $"{CreateName()}@kitos.dk"; } + + private string CreateEmailContainingPhrase(string phrase) + { + return $"{CreateName()}{phrase}@kitos.dk"; + } } } From 8412487d76d89803582afc051c94cf43198166c0 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 13:15:34 +0200 Subject: [PATCH 030/432] fix --- .../Extensions/EntityPropertyProxyValueLoader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs b/Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs index 58be5f84f0..8c66f13447 100644 --- a/Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs +++ b/Infrastructure.DataAccess/Extensions/EntityPropertyProxyValueLoader.cs @@ -26,7 +26,7 @@ public T LoadReferencedEntities(T entity) .Value .Select(methodInfo => methodInfo.Invoke(entity, new object[0])) .ToList(); - return T; + return entity; } } } From 011cda754564f7b7ba9b27388b0c064843bd999e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 14:17:27 +0200 Subject: [PATCH 031/432] wip --- Core.ApplicationServices/UserService.cs | 26 ++++++++++++------- .../Controllers/API/V1/UserController.cs | 20 ++++++++------ .../Tools/UserHelper.cs | 5 ++-- .../Users/UserTest.cs | 1 + 4 files changed, 32 insertions(+), 20 deletions(-) diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 2c37b43364..d4e608f210 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -290,6 +290,22 @@ public Result GetUserInOrganization(Guid organizationUuid, ); } + public Result, OperationError> SearchUsers(params IDomainQuery[] queries) + { + var currentUser = _userRepository.AsQueryable().ById(_organizationalUserContext.UserId); + if (!currentUser.IsGlobalAdmin) + { + return Result, OperationError>.Failure(OperationFailure.Forbidden); + } + + var query = new IntersectionQuery(queries); + + return _repository + .GetUsers() + .Transform(query.Apply) + .Transform(Result, OperationError>.Success); + } + public Maybe DeleteUserFromKitos(Guid userUuid) { using var transaction = _transactionManager.Begin(); @@ -332,15 +348,5 @@ private static void Delete(User user) user.HandoverParticipants.Clear(); user.ResponsibleForRisks.Clear(); } - - public Result, OperationError> SearchUsers(params IDomainQuery[] queries) - { - var query = new IntersectionQuery(queries); - - return _repository - .GetUsers() - .Transform(query.Apply) - .Transform(Result, OperationError>.Success); - } } } diff --git a/Presentation.Web/Controllers/API/V1/UserController.cs b/Presentation.Web/Controllers/API/V1/UserController.cs index 9b9e87e5c0..48275138bd 100644 --- a/Presentation.Web/Controllers/API/V1/UserController.cs +++ b/Presentation.Web/Controllers/API/V1/UserController.cs @@ -227,8 +227,6 @@ public HttpResponseMessage GetUsersWithCrossAccess() [Route("api/users/search/{nameOrEmailQuery}")] public HttpResponseMessage SearchUsers(string nameOrEmailQuery, [FromUri] BoundedPaginationQuery paginationQuery = null) { - try - { if (string.IsNullOrEmpty(nameOrEmailQuery)) return BadRequest("Query needs a value"); @@ -238,13 +236,9 @@ public HttpResponseMessage SearchUsers(string nameOrEmailQuery, [FromUri] Bounde .SearchUsers(queries.ToArray()) .Select(x => x.OrderBy(user => user.Id)) .Select(x => x.Page(paginationQuery)) - .Select(x => x.ToList()/*.Select(user => (organizationUuid, user)).Select(ToUserResponseDTO)*/) + .Select(x => x.ToList()) + .Select(ToUserWithEmailDtos) .Match(Ok, FromOperationError); - } - catch (Exception ex) - { - return BadRequest(ex.Message); - } } private static IEnumerable ToUserWithOrgDTOs(List dtos) @@ -257,6 +251,16 @@ private static UserWithOrganizationDTO ToUserWithOrgDTO(UserRoleAssociationDTO d return new(dto.User.Id, dto.User.GetFullName(), dto.User.Email, dto.Organization.Name, dto.User.HasApiAccess.GetValueOrDefault(false)); } + private static IEnumerable ToUserWithEmailDtos(List users) + { + return users.Select(ToUserWithEmailDto).ToList(); + } + + private static UserWithEmailDTO ToUserWithEmailDto(User user) + { + return new(user.Id, user.Name, user.Email); + } + private static IEnumerable ToUserWithCrossRightsDTOs(IEnumerable users) { return users.Select(ToUserWithCrossRightsDTO).ToList(); diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index db2e934c77..0059bb211d 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Core.DomainModel; using Core.DomainServices.Extensions; +using Presentation.Web.Models.API.V1; using Presentation.Web.Models.API.V1.Users; using Xunit; @@ -66,12 +67,12 @@ public static async Task SendDeleteUserAsync(int userId, Co return await HttpApi.DeleteWithCookieAsync(TestEnvironment.CreateUrl($"api/user/{userId}"), cookie); } - public static async Task> SearchUsersAsync(string query, Cookie optionalLogin = null) + public static async Task> SearchUsersAsync(string query, Cookie optionalLogin = null) { using var response = await SendSearchUsersAsync(query, optionalLogin); Assert.Equal(HttpStatusCode.OK, response.StatusCode); - return await response.ReadResponseBodyAsKitosApiResponseAsync>(); + return await response.ReadResponseBodyAsKitosApiResponseAsync>(); } public static async Task SendSearchUsersAsync(string query, Cookie optionalLogin = null) diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 16d7e93d87..990b41f57b 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -206,6 +206,7 @@ public async Task Search_User_Returns_Users_With_Matching_Name_Or_Email() Assert.Contains(userId1, users.Select(x => x.Id)); Assert.Contains(userId2, users.Select(x => x.Id)); + Assert.DoesNotContain(userId3, users.Select(x => x.Id)); } private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization, string email)> CreatePrerequisitesAsync(OrganizationRole role, string email = "", string name = "", bool hasApiAccess = false) From 2c8cadaf28549c439fea9811d2813564e094babf Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 14:31:40 +0200 Subject: [PATCH 032/432] Fixed get user with references --- .../Tools/UserHelper.cs | 12 ---- .../Users/UserTest.cs | 68 +++++++++++-------- 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index 84485ad56a..3d4b093df3 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -16,7 +16,6 @@ namespace Tests.Integration.Presentation.Web.Tools public static class UserHelper { - private static readonly EntityPropertyProxyValueLoader ProxyLoader = new(); public static async Task> GetUsersWithRightsholderAccessAsync(Cookie optionalLogin = null) { @@ -46,17 +45,6 @@ public static async Task SendGetUsersWithCrossAccessAsync(C return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl("api/user/with-cross-organization-permissions"), cookie); } - public static User GetUserByIdWithRightsAsync(int id) - { - var user = DatabaseAccess.MapFromEntitySet(x => x.AsQueryable().ById(id)); - if (user == null) - { - throw new ArgumentException("Failed to find user with id", nameof(id)); - } - - return user.Transform(ProxyLoader.LoadReferencedEntities); - } - public static async Task SendDeleteUserAsync(int userId, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index c5067bd6fc..aebc7e6d95 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -1,8 +1,12 @@ -using Core.DomainModel; +using System; +using Core.DomainModel; using Core.DomainModel.Organization; using System.Linq; using System.Net; using System.Threading.Tasks; +using Core.Abstractions.Extensions; +using Core.DomainServices.Extensions; +using Infrastructure.DataAccess.Extensions; using Presentation.Web.Models.API.V1; using Tests.Integration.Presentation.Web.Tools; using Tests.Integration.Presentation.Web.Tools.External.Rights; @@ -14,6 +18,7 @@ namespace Tests.Integration.Presentation.Web.Users { public class UserTest : WithAutoFixture { + private static readonly EntityPropertyProxyValueLoader ProxyLoader = new(); [Fact] public async Task Can_Get_Users_And_Organizations_Where_User_Has_RightsholderAccess() @@ -146,32 +151,41 @@ public async Task Delete_User() var deleteResponse = await UserHelper.SendDeleteUserAsync(userId); Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); - - var deletedUser = UserHelper.GetUserByIdWithRightsAsync(userId); - - Assert.True(deletedUser.Deleted); - Assert.False(deletedUser.IsGlobalAdmin); - Assert.False(deletedUser.HasApiAccess); - Assert.False(deletedUser.HasStakeHolderAccess); - - Assert.Contains("_deleted_user@kitos.dk", deletedUser.Email); - Assert.Contains("(SLETTET)", deletedUser.LastName); - Assert.Equal(originalEmail, deletedUser.EmailBeforeDeletion); - Assert.NotNull(deletedUser.LockedOutDate); - Assert.NotNull(deletedUser.DeletedDate); - Assert.Null(deletedUser.PhoneNumber); - - Assert.Empty(deletedUser.DataProcessingRegistrationRights); - Assert.Empty(deletedUser.OrganizationRights); - Assert.Empty(deletedUser.ItContractRights); - Assert.Empty(deletedUser.ItSystemRights); - Assert.Empty(deletedUser.ItProjectRights); - Assert.Empty(deletedUser.OrganizationUnitRights); - Assert.Empty(deletedUser.SsoIdentities); - Assert.Empty(deletedUser.ItProjectStatuses); - Assert.Empty(deletedUser.ResponsibleForCommunications); - Assert.Empty(deletedUser.HandoverParticipants); - Assert.Empty(deletedUser.ResponsibleForRisks); + + DatabaseAccess.MutateDatabase(db => + { + var user = db.Users.AsQueryable().ById(userId); + if (user == null) + { + throw new ArgumentException("Failed to find user with id", nameof(userId)); + } + + user.Transform(ProxyLoader.LoadReferencedEntities); + + Assert.True(user.Deleted); + Assert.False(user.IsGlobalAdmin); + Assert.False(user.HasApiAccess); + Assert.False(user.HasStakeHolderAccess); + + Assert.Contains("_deleted_user@kitos.dk", user.Email); + Assert.Contains("(SLETTET)", user.LastName); + Assert.Equal(originalEmail, user.EmailBeforeDeletion); + Assert.NotNull(user.LockedOutDate); + Assert.NotNull(user.DeletedDate); + Assert.Null(user.PhoneNumber); + + Assert.Empty(user.DataProcessingRegistrationRights); + Assert.Empty(user.OrganizationRights); + Assert.Empty(user.ItContractRights); + Assert.Empty(user.ItSystemRights); + Assert.Empty(user.ItProjectRights); + Assert.Empty(user.OrganizationUnitRights); + Assert.Empty(user.SsoIdentities); + Assert.Empty(user.ItProjectStatuses); + Assert.Empty(user.ResponsibleForCommunications); + Assert.Empty(user.HandoverParticipants); + Assert.Empty(user.ResponsibleForRisks); + }); } [Fact] From 8845990b787c94325ce6137ae562ee9810c32f79 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 15:11:24 +0200 Subject: [PATCH 033/432] Added user rights validation --- Core.ApplicationServices/IUserService.cs | 2 +- Core.ApplicationServices/UserService.cs | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Core.ApplicationServices/IUserService.cs b/Core.ApplicationServices/IUserService.cs index 66bc9e1535..31db5081ee 100644 --- a/Core.ApplicationServices/IUserService.cs +++ b/Core.ApplicationServices/IUserService.cs @@ -20,6 +20,6 @@ public interface IUserService : IDisposable Result, OperationError> GetUsersInOrganization(Guid organizationUuid, params IDomainQuery[] queries); Result GetUserInOrganization(Guid organizationUuid, Guid userUuid); Maybe DeleteUserFromKitos(Guid userUuid); - Result, OperationError> SearchUsers(params IDomainQuery[] queries); + Result, OperationError> SearchAllKitosUsers(params IDomainQuery[] queries); } } \ No newline at end of file diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index d4e608f210..232b38f25c 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -290,10 +290,9 @@ public Result GetUserInOrganization(Guid organizationUuid, ); } - public Result, OperationError> SearchUsers(params IDomainQuery[] queries) + public Result, OperationError> SearchAllKitosUsers(params IDomainQuery[] queries) { - var currentUser = _userRepository.AsQueryable().ById(_organizationalUserContext.UserId); - if (!currentUser.IsGlobalAdmin) + if (_authorizationContext.GetCrossOrganizationReadAccess() < CrossOrganizationDataReadAccessLevel.All) { return Result, OperationError>.Failure(OperationFailure.Forbidden); } From b737ad2a1de61bf62044f03643e094efe8958411 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 25 May 2022 15:27:19 +0200 Subject: [PATCH 034/432] Changed used method to MapFromEntitySet --- Tests.Integration.Presentation.Web/Users/UserTest.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index aebc7e6d95..e4ddb336f1 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -152,9 +152,9 @@ public async Task Delete_User() var deleteResponse = await UserHelper.SendDeleteUserAsync(userId); Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); - DatabaseAccess.MutateDatabase(db => + DatabaseAccess.MapFromEntitySet(repository => { - var user = db.Users.AsQueryable().ById(userId); + var user = repository.AsQueryable().ById(userId); if (user == null) { throw new ArgumentException("Failed to find user with id", nameof(userId)); @@ -185,6 +185,8 @@ public async Task Delete_User() Assert.Empty(user.ResponsibleForCommunications); Assert.Empty(user.HandoverParticipants); Assert.Empty(user.ResponsibleForRisks); + + return user; }); } From 5fb260dd0fb205da04728992c52aaccf0534d0c6 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 27 May 2022 07:49:35 +0200 Subject: [PATCH 035/432] Fixed SearchUsers uses correct method --- Presentation.Web/Controllers/API/V1/UserController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Presentation.Web/Controllers/API/V1/UserController.cs b/Presentation.Web/Controllers/API/V1/UserController.cs index 835102ad62..bf5bf268b9 100644 --- a/Presentation.Web/Controllers/API/V1/UserController.cs +++ b/Presentation.Web/Controllers/API/V1/UserController.cs @@ -16,6 +16,7 @@ using Core.DomainServices.Queries; using Core.DomainServices.Queries.User; using Newtonsoft.Json.Linq; +using Presentation.Web.Extensions; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V1; using Presentation.Web.Models.API.V1.Users; @@ -232,7 +233,7 @@ public HttpResponseMessage SearchUsers(string nameOrEmailQuery, [FromUri] Bounde var queries = new List> { new QueryUserByNameOrEmail(nameOrEmailQuery) }; return _userService - .SearchUsers(queries.ToArray()) + .SearchAllKitosUsers(queries.ToArray()) .Select(x => x.OrderBy(user => user.Id)) .Select(x => x.Page(paginationQuery)) .Select(x => x.ToList()) From 390167f6a93a252cb1212785577363346685f3f6 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 27 May 2022 14:13:58 +0200 Subject: [PATCH 036/432] added user deletion to global admin misc --- .../global-admin-misc.controller.ts | 76 +++++++++++++++++-- .../global-admin/global-admin-misc.view.html | 53 ++++++++++++- Presentation.Web/app/services/userServices.ts | 6 ++ 3 files changed, 127 insertions(+), 8 deletions(-) diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index e4313b4302..9ea056ce77 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -18,6 +18,7 @@ } }); }]); + app.controller("globalAdminMisc", [ "$rootScope", "$scope", @@ -29,6 +30,7 @@ "brokenLinkStatus", "usersWithRightsholderAccess", "usersWithCrossAccess", + "userService", ( $rootScope, $scope, @@ -39,13 +41,14 @@ $uibModal: ng.ui.bootstrap.IModalService, brokenLinkStatus: Kitos.Models.Api.BrokenLinksReport.IBrokenLinksReportDTO, usersWithRightsholderAccess: Kitos.Models.Api.IUserWithOrganizationName[], - usersWithCrossAccess: Kitos.Models.Api.IUserWithCrossAccess[]) => { - - + usersWithCrossAccess: Kitos.Models.Api.IUserWithCrossAccess[], + userService: Kitos.Services.UserService) => { + $rootScope.page.title = "Andet"; $scope.brokenLinksVm = Kitos.Models.ViewModel.GlobalAdmin.BrokenLinks.BrokenLinksViewModelMapper.mapFromApiResponse(brokenLinkStatus); $scope.usersWithRightsholderAccess = usersWithRightsholderAccess; $scope.usersWithCrossAccess = usersWithCrossAccess; + $scope.kitosUsers = []; $scope.showOrgsWhereUserActive = (activeOrgNames: string[]) => { $uibModal.open({ @@ -61,7 +64,9 @@ }, function onError(error) { // Swallow unhandled rejection errors. }); - } + }; + + $scope.userOptions = selectLazyLoading('api/users/search/', formatUser, null); getKleStatus(); function getKleStatus() { @@ -110,7 +115,7 @@ toggleKleButtonsClickAbility(true, false); notify.addErrorMessage("Der skete en fejl under henting af ændringer"); }); - } + }; $scope.UpdateKLE = () => { toggleKleButtonsClickAbility(false, false); @@ -135,12 +140,73 @@ } else { notify.addInfoMessage("KLE opdatering stoppet!"); } + }; + $scope.$watch("selectedUser", function (newVal, oldVal) { + if (newVal === oldVal || !newVal) return; + + $scope.kitosUsers.push(newVal); + $scope.selectedUser = null; + }); + + $scope.removeUser = (id: number) => { + userService.deleteUser(id) + .then(() => { + var user = $scope.kitosUsers.find(x => x.user.Id === id)[0]; + var index = $scope.kitosUsers.indexOf(user); + $scope.kitosUsers.splice(index, 1); + } + ).catch(ex => console.log(ex)); } function toggleKleButtonsClickAbility(updateAvailButton: boolean, updateButton: boolean) { $scope.KleUpdateAvailableButtonInteraction = updateAvailButton; $scope.KleApplyUpdateButtonInteraction = updateButton; } + + function formatUser(user) { + var result = '
' + user.text + '
'; + if (user.email) { + result += '
' + user.email + '
'; + } + return result; + } + + function selectLazyLoading(url, format, paramAry) { + return { + minimumInputLength: 1, + allowClear: true, + placeholder: ' ', + formatResult: format, + ajax: { + data: function (term, page) { + return { query: term }; + }, + quietMillis: 500, + transport: function (queryParams) { + var res = $http.get(url + queryParams.data.query).then(queryParams.success); + res.abort = function () { + return null; + }; + + return res; + }, + + results: function (data, page) { + var results = []; + + _.each(data.data.response, function (obj: { id: any; name: any; email: any }) { + results.push({ + id: obj.id, + text: obj.name ? obj.name : 'Unavngiven', + email: obj.email + }); + }); + + return { results: results }; + } + } + }; + } }]); })(angular, app); \ No newline at end of file diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index 416fbc0023..d2875c2f81 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -14,9 +14,56 @@

Rapport over brudte links

Antal registrerede fejl: {{brokenLinksVm.brokenLinksCount}}

Hent rapporten -
-

Rapporten over brudte links er endnu ikke tilgængelig. Forventet tilgængelighed er "Mandag i næste uge".

-
+
+

Rapporten over brudte links er endnu ikke tilgængelig. Forventet tilgængelighed er "Mandag i næste uge".

+
+ + +

*INSERT TEXT IN DANISH*

+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
{{ kitosUser.user.Name }} + {{ kitosUser.user.Email }} +
+ + + +
+
+ +
+

Oversigt over brugere med API relaterede rettigheder

diff --git a/Presentation.Web/app/services/userServices.ts b/Presentation.Web/app/services/userServices.ts index 314508bb5c..ec4f4ca30d 100644 --- a/Presentation.Web/app/services/userServices.ts +++ b/Presentation.Web/app/services/userServices.ts @@ -41,6 +41,7 @@ updateDefaultOrgUnit(newDefaultOrgUnitId: number): ng.IPromise; getUsersWithRightsholderAccess(): ng.IPromise; getUsersWithCrossAccess(): ng.IPromise; + deleteUser(id: number); } export class UserService implements IUserService { @@ -508,6 +509,11 @@ .get>("api/user/with-cross-organization-permissions") .then(result => result.data.response); } + + deleteUser(id: number) { + return this.$http + .delete(`api/user/${id}`); + } } app.service("userService", UserService); } From 0b65d0ef0a734d84d908d8281c3f96c60abc2484 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 30 May 2022 10:53:24 +0200 Subject: [PATCH 037/432] search and delete user --- Presentation.Web/Presentation.Web.csproj | 1 + .../global-admin-misc.controller.ts | 36 +++++++++---- .../global-admin/global-admin-misc.view.html | 54 +++++-------------- Presentation.Web/app/models/users/userDTO.ts | 5 ++ Presentation.Web/app/services/userServices.ts | 7 +++ 5 files changed, 52 insertions(+), 51 deletions(-) create mode 100644 Presentation.Web/app/models/users/userDTO.ts diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index d843fecb7b..e0651e2734 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -740,6 +740,7 @@ + diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index 9ea056ce77..701c0223e7 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -31,6 +31,7 @@ "usersWithRightsholderAccess", "usersWithCrossAccess", "userService", + "select2LoadingService", ( $rootScope, $scope, @@ -42,7 +43,8 @@ brokenLinkStatus: Kitos.Models.Api.BrokenLinksReport.IBrokenLinksReportDTO, usersWithRightsholderAccess: Kitos.Models.Api.IUserWithOrganizationName[], usersWithCrossAccess: Kitos.Models.Api.IUserWithCrossAccess[], - userService: Kitos.Services.UserService) => { + userService: Kitos.Services.IUserService, + select2LoadingService: Kitos.Services.ISelect2LoadingService) => { $rootScope.page.title = "Andet"; $scope.brokenLinksVm = Kitos.Models.ViewModel.GlobalAdmin.BrokenLinks.BrokenLinksViewModelMapper.mapFromApiResponse(brokenLinkStatus); @@ -66,7 +68,7 @@ }); }; - $scope.userOptions = selectLazyLoading('api/users/search/', formatUser, null); + $scope.userOptions = getAvailableUsers(); getKleStatus(); function getKleStatus() { @@ -144,20 +146,17 @@ $scope.$watch("selectedUser", function (newVal, oldVal) { if (newVal === oldVal || !newVal) return; - - $scope.kitosUsers.push(newVal); - $scope.selectedUser = null; + + $scope.userSelected = true; }); $scope.removeUser = (id: number) => { userService.deleteUser(id) .then(() => { - var user = $scope.kitosUsers.find(x => x.user.Id === id)[0]; - var index = $scope.kitosUsers.indexOf(user); - $scope.kitosUsers.splice(index, 1); + $scope.userSelected = false; } ).catch(ex => console.log(ex)); - } + }; function toggleKleButtonsClickAbility(updateAvailButton: boolean, updateButton: boolean) { $scope.KleUpdateAvailableButtonInteraction = updateAvailButton; @@ -172,6 +171,25 @@ return result; } + function getAvailableUsers() { + return select2LoadingService.loadSelect2WithDataSource( + (query: string) => + userService.searchUsers(query) + .then( + results => + results.map(result => + > + { + id: result.id, + text: result.name, + email: result.email, + optionalObjectContext: result + }) + ) + , false + , formatUser); + } + function selectLazyLoading(url, format, paramAry) { return { minimumInputLength: 1, diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index d2875c2f81..f96c0dd1b3 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -21,48 +21,18 @@

Rapport over brudte links

*INSERT TEXT IN DANISH*

- - - - - - - - - - - - - - - - - - - - - - - -
- - - -
{{ kitosUser.user.Name }} - {{ kitosUser.user.Email }} -
- - - -
-
- -
+ +

Oversigt over brugere med API relaterede rettigheder

diff --git a/Presentation.Web/app/models/users/userDTO.ts b/Presentation.Web/app/models/users/userDTO.ts new file mode 100644 index 0000000000..1c02bd1fe9 --- /dev/null +++ b/Presentation.Web/app/models/users/userDTO.ts @@ -0,0 +1,5 @@ +module Kitos.Models.Users { + export interface IUserWithEmailDTO extends Models.Generic.NamedEntity.NamedEntityDTO { + email: string + } +} \ No newline at end of file diff --git a/Presentation.Web/app/services/userServices.ts b/Presentation.Web/app/services/userServices.ts index ec4f4ca30d..fbaeafc5f0 100644 --- a/Presentation.Web/app/services/userServices.ts +++ b/Presentation.Web/app/services/userServices.ts @@ -42,6 +42,7 @@ getUsersWithRightsholderAccess(): ng.IPromise; getUsersWithCrossAccess(): ng.IPromise; deleteUser(id: number); + searchUsers(query: string): ng.IPromise; } export class UserService implements IUserService { @@ -514,6 +515,12 @@ return this.$http .delete(`api/user/${id}`); } + + searchUsers(query: string) { + return this.$http + .get>(`api/users/search/${query}`) + .then(result => result.data.response); + } } app.service("userService", UserService); } From 4fe2d9fd16633fc2956262bf5da41c6cf55c2691 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 30 May 2022 12:48:59 +0200 Subject: [PATCH 038/432] Changes after review, added GetUserOrganizations api method --- .../Organizations/IOrganizationService.cs | 3 ++ .../Organizations/OrganizationService.cs | 12 ++++++ .../Controllers/API/V1/AuthorizeController.cs | 13 ++++++ .../API/V1/Mapping/DTOMappingExtensions.cs | 7 ++- .../Controllers/API/V1/UserController.cs | 43 +++++++++---------- .../QueryablePaginationExtensions.cs | 19 +++++++- .../IV1StandardPaginationQueryParameters.cs | 14 ++++++ .../Queries/V1BoundedPaginationQuery.cs | 31 +++++++++++++ Presentation.Web/Presentation.Web.csproj | 2 + .../Tools/HttpApi.cs | 3 +- .../Tools/OrganizationHelper.cs | 7 +++ .../Tools/UserHelper.cs | 2 +- .../Users/UserTest.cs | 35 +++++++++++++-- 13 files changed, 162 insertions(+), 29 deletions(-) create mode 100644 Presentation.Web/Models/API/V1/Generic/Queries/IV1StandardPaginationQueryParameters.cs create mode 100644 Presentation.Web/Models/API/V1/Generic/Queries/V1BoundedPaginationQuery.cs diff --git a/Core.ApplicationServices/Organizations/IOrganizationService.cs b/Core.ApplicationServices/Organizations/IOrganizationService.cs index 112fb34caf..65dc90f8aa 100644 --- a/Core.ApplicationServices/Organizations/IOrganizationService.cs +++ b/Core.ApplicationServices/Organizations/IOrganizationService.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Core.Abstractions.Types; using Core.ApplicationServices.Model.Organizations; @@ -42,5 +43,7 @@ public interface IOrganizationService /// If set to true any removal conflicts will be ignored and the deletion will proceed /// Maybe RemoveOrganization(Guid organizationUuid, bool enforceDeletion); + + Result, OperationError> GetUserOrganizations(int userId); } } diff --git a/Core.ApplicationServices/Organizations/OrganizationService.cs b/Core.ApplicationServices/Organizations/OrganizationService.cs index 654c749563..f9f08bb8b2 100644 --- a/Core.ApplicationServices/Organizations/OrganizationService.cs +++ b/Core.ApplicationServices/Organizations/OrganizationService.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Core.Abstractions.Extensions; using Core.Abstractions.Types; @@ -339,6 +340,17 @@ public Maybe RemoveOrganization(Guid uuid, bool enforceDeletion) return Maybe.None; } + public Result, OperationError> GetUserOrganizations(int userId) + { + var user = _userRepository.GetByKey(userId); + if(user == null) + return Result, OperationError>.Failure(new OperationError($"User with id: {userId} was not found", OperationFailure.NotFound)); + + var userOrganizationsIds = user.GetOrganizationIds(); + + return Result, OperationError>.Success(_orgRepository.AsQueryable().ByIds(userOrganizationsIds.ToList())); + } + private Result WithDeletionAccess(Organization organization) { if (_authorizationContext.AllowDelete(organization)) diff --git a/Presentation.Web/Controllers/API/V1/AuthorizeController.cs b/Presentation.Web/Controllers/API/V1/AuthorizeController.cs index 772042e49d..c5e2167ad8 100644 --- a/Presentation.Web/Controllers/API/V1/AuthorizeController.cs +++ b/Presentation.Web/Controllers/API/V1/AuthorizeController.cs @@ -20,6 +20,7 @@ using Core.DomainServices.Extensions; using Infrastructure.Services.Cryptography; using Newtonsoft.Json; +using Presentation.Web.Extensions; using Presentation.Web.Helpers; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V1; @@ -78,6 +79,18 @@ public HttpResponseMessage GetOrganizations([FromUri]string orderBy = null, [Fro return Ok(dtos); } + [InternalApi] + [Route("api/authorize/GetOrganizations/{userId}")] + [SwaggerResponse(HttpStatusCode.OK, Type = typeof(ApiReturnDTO>))] + public HttpResponseMessage GetUserOrganizations(int userId) + { + return _organizationService.GetUserOrganizations(userId) + .Select(x => x.OrderBy(user => user.Id)) + .Select(x => x.ToList()) + .Select(Map, IEnumerable>) + .Match(Ok, FromOperationError); + } + private IQueryable GetOrganizationsWithMembershipAccess() { var orgs = _organizationService.SearchAccessibleOrganizations(); diff --git a/Presentation.Web/Controllers/API/V1/Mapping/DTOMappingExtensions.cs b/Presentation.Web/Controllers/API/V1/Mapping/DTOMappingExtensions.cs index 5e9e7a1606..a3ec5eafc1 100644 --- a/Presentation.Web/Controllers/API/V1/Mapping/DTOMappingExtensions.cs +++ b/Presentation.Web/Controllers/API/V1/Mapping/DTOMappingExtensions.cs @@ -36,7 +36,12 @@ public static NamedEntityDTO MapToNamedEntityDTO(this NamedEntity source) public static NamedEntityDTO MapToNamedEntityDTO(this User source) { - return new NamedEntityDTO(source.Id, $"{source.Name} {source.LastName}".TrimEnd()); + return new NamedEntityDTO(source.Id, source.GetFullName().TrimEnd()); + } + + public static UserWithEmailDTO MapToUserWithEmailDTO(this User source) + { + return new UserWithEmailDTO(source.Id, source.GetFullName(), source.Email); } public static NamedEntityWithEnabledStatusDTO MapToNamedEntityWithEnabledStatusDTO(this ItSystem source) diff --git a/Presentation.Web/Controllers/API/V1/UserController.cs b/Presentation.Web/Controllers/API/V1/UserController.cs index bf5bf268b9..480fed64b7 100644 --- a/Presentation.Web/Controllers/API/V1/UserController.cs +++ b/Presentation.Web/Controllers/API/V1/UserController.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net; using System.Net.Http; +using System.Web; using System.Web.Http; using Core.ApplicationServices; using Core.ApplicationServices.Authorization.Permissions; @@ -16,12 +18,12 @@ using Core.DomainServices.Queries; using Core.DomainServices.Queries.User; using Newtonsoft.Json.Linq; +using Presentation.Web.Controllers.API.V1.Mapping; using Presentation.Web.Extensions; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V1; +using Presentation.Web.Models.API.V1.Generic.Queries; using Presentation.Web.Models.API.V1.Users; -using Presentation.Web.Models.API.V2.Request.Generic.Queries; - namespace Presentation.Web.Controllers.API.V1 { [InternalApi] @@ -224,21 +226,23 @@ public HttpResponseMessage GetUsersWithCrossAccess() /// Name or email of the user /// A list of users [HttpGet] - [Route("api/users/search/{nameOrEmailQuery}")] - public HttpResponseMessage SearchUsers(string nameOrEmailQuery, [FromUri] BoundedPaginationQuery paginationQuery = null) + [Route("api/users/search")] + public HttpResponseMessage SearchUsers(string query, [FromUri] V1BoundedPaginationQuery paginationQuery = null) { - if (string.IsNullOrEmpty(nameOrEmailQuery)) - return BadRequest("Query needs a value"); - - var queries = new List> { new QueryUserByNameOrEmail(nameOrEmailQuery) }; - - return _userService - .SearchAllKitosUsers(queries.ToArray()) - .Select(x => x.OrderBy(user => user.Id)) - .Select(x => x.Page(paginationQuery)) - .Select(x => x.ToList()) - .Select(ToUserWithEmailDtos) - .Match(Ok, FromOperationError); + if (string.IsNullOrEmpty(query)) + return BadRequest("Query needs a value"); + + var decodedQuery = HttpUtility.UrlDecode(query); + + var queries = new List> { new QueryUserByNameOrEmail(decodedQuery) }; + + return _userService + .SearchAllKitosUsers(queries.ToArray()) + .Select(x => x.OrderBy(user => user.Id)) + .Select(x => x.Page(paginationQuery)) + .Select(x => x.ToList()) + .Select(ToUserWithEmailDtos) + .Match(Ok, FromOperationError); } private static IEnumerable ToUserWithOrgDTOs(List dtos) @@ -253,12 +257,7 @@ private static UserWithOrganizationDTO ToUserWithOrgDTO(UserRoleAssociationDTO d private static IEnumerable ToUserWithEmailDtos(List users) { - return users.Select(ToUserWithEmailDto).ToList(); - } - - private static UserWithEmailDTO ToUserWithEmailDto(User user) - { - return new(user.Id, user.Name, user.Email); + return users.Select(user => user.MapToUserWithEmailDTO()).ToList(); } private static IEnumerable ToUserWithCrossRightsDTOs(IEnumerable users) diff --git a/Presentation.Web/Extensions/QueryablePaginationExtensions.cs b/Presentation.Web/Extensions/QueryablePaginationExtensions.cs index c590aac12b..a4650a4d41 100644 --- a/Presentation.Web/Extensions/QueryablePaginationExtensions.cs +++ b/Presentation.Web/Extensions/QueryablePaginationExtensions.cs @@ -2,7 +2,7 @@ using System.Linq; using Core.Abstractions.Extensions; using Core.ApplicationServices.Shared; - +using Presentation.Web.Models.API.V1.Generic.Queries; using Presentation.Web.Models.API.V2.Request.Generic.Queries; namespace Presentation.Web.Extensions @@ -16,6 +16,13 @@ public static IQueryable Page(this IQueryable src, BoundedPaginationQue return src.Skip(page * paginationPageSize).Take(paginationPageSize); } + public static IQueryable Page(this IQueryable src, V1BoundedPaginationQuery pagination) + { + var paginationPageSize = GetPaginationPageSize(pagination); + var page = GetPaginationPage(pagination); + + return src.Skip(page * paginationPageSize).Take(paginationPageSize); + } public static IEnumerable Page(this IEnumerable src, BoundedPaginationQuery pagination) { @@ -72,5 +79,15 @@ private static int GetPaginationPage(IStandardPaginationQueryParameters paginati { return pagination?.Page.GetValueOrDefault(0) ?? 0; } + + private static int GetPaginationPageSize(V1BoundedPaginationQuery pagination) + { + return pagination?.PageSize.GetValueOrDefault(PagingContraints.MaxPageSize) ?? PagingContraints.MaxPageSize; + } + + private static int GetPaginationPage(IV1StandardPaginationQueryParameters pagination) + { + return pagination?.Page.GetValueOrDefault(0) ?? 0; + } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Generic/Queries/IV1StandardPaginationQueryParameters.cs b/Presentation.Web/Models/API/V1/Generic/Queries/IV1StandardPaginationQueryParameters.cs new file mode 100644 index 0000000000..84756fc653 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Generic/Queries/IV1StandardPaginationQueryParameters.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Presentation.Web.Models.API.V1.Generic.Queries +{ + public interface IV1StandardPaginationQueryParameters + { + public int? Page { get; set; } + public int? PageSize { get; set; } + } +} diff --git a/Presentation.Web/Models/API/V1/Generic/Queries/V1BoundedPaginationQuery.cs b/Presentation.Web/Models/API/V1/Generic/Queries/V1BoundedPaginationQuery.cs new file mode 100644 index 0000000000..063dd64b14 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Generic/Queries/V1BoundedPaginationQuery.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Web; +using Core.ApplicationServices.Shared; + +namespace Presentation.Web.Models.API.V1.Generic.Queries +{ + /// + /// Defines the a bounded pagination query parameter set + /// + public class V1BoundedPaginationQuery : IV1StandardPaginationQueryParameters + + { + /// + /// 0-based page number. Use this parameter to page through the requested collection. + /// Offset in the source collection will be (pageSize * page) + /// Range: [0,2^31] Default: 0 + /// + [Range(0, int.MaxValue)] + public int? Page { get; set; } = null; + + /// + /// Size of the page referred by 'page'. + /// Range: [1,100] Default: 100. + /// + [Range(PagingContraints.MinPageSize, PagingContraints.MaxPageSize)] + public int? PageSize { get; set; } = null; + } +} \ No newline at end of file diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index d843fecb7b..163463400e 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -431,6 +431,8 @@ + + diff --git a/Tests.Integration.Presentation.Web/Tools/HttpApi.cs b/Tests.Integration.Presentation.Web/Tools/HttpApi.cs index 38999f9f36..d44bb28eee 100644 --- a/Tests.Integration.Presentation.Web/Tools/HttpApi.cs +++ b/Tests.Integration.Presentation.Web/Tools/HttpApi.cs @@ -416,7 +416,7 @@ public static async Task GetCookieAsync(OrganizationRole role, bool acce return await GetCookieAsync(userCredentials, acceptUnAuthorized); } - public static async Task<(int userId, KitosCredentials credentials, Cookie loginCookie)> CreateUserAndLogin(string email, OrganizationRole role, int organizationId = TestEnvironment.DefaultOrganizationId, bool apiAccess = false, string name = "") + public static async Task<(int userId, KitosCredentials credentials, Cookie loginCookie)> CreateUserAndLogin(string email, OrganizationRole role, int organizationId = TestEnvironment.DefaultOrganizationId, bool apiAccess = false, string name = "", string lastName = "") { var userId = await CreateOdataUserAsync(ObjectCreateHelper.MakeSimpleApiUserDto(email, apiAccess), role, organizationId); var password = Guid.NewGuid().ToString("N"); @@ -426,6 +426,7 @@ public static async Task GetCookieAsync(OrganizationRole role, bool acce var user = x.AsQueryable().ById(userId); user.Password = crypto.Encrypt(password + user.Salt); user.Name = name; + user.LastName = lastName; }); var cookie = await GetCookieAsync(new KitosCredentials(email, password)); diff --git a/Tests.Integration.Presentation.Web/Tools/OrganizationHelper.cs b/Tests.Integration.Presentation.Web/Tools/OrganizationHelper.cs index b7c8a8e06e..cdcc94406d 100644 --- a/Tests.Integration.Presentation.Web/Tools/OrganizationHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/OrganizationHelper.cs @@ -156,5 +156,12 @@ public static async Task SendGetOrganizationSearchRequestAs var url = TestEnvironment.CreateUrl($"api/organization?q={search}"); return await HttpApi.GetWithCookieAsync(url, cookie); } + + public static async Task SendGetUserOrganizationsRequestAsync(int userId, Cookie optionalLogin = null) + { + var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + var url = TestEnvironment.CreateUrl($"api/authorize/GetOrganizations/{userId}"); + return await HttpApi.GetWithCookieAsync(url, cookie); + } } } diff --git a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs index cb88f2c206..548eb58a2a 100644 --- a/Tests.Integration.Presentation.Web/Tools/UserHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/UserHelper.cs @@ -58,7 +58,7 @@ public static async Task> SearchUsersAsync(string query, public static async Task SendSearchUsersAsync(string query, Cookie optionalLogin = null) { var cookie = optionalLogin ?? await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); - return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl($"api/users/search/{query}"), cookie); + return await HttpApi.GetWithCookieAsync(TestEnvironment.CreateUrl($"api/users/search?query={query}"), cookie); } } } diff --git a/Tests.Integration.Presentation.Web/Users/UserTest.cs b/Tests.Integration.Presentation.Web/Users/UserTest.cs index 56cb6f25b6..c4b884595d 100644 --- a/Tests.Integration.Presentation.Web/Users/UserTest.cs +++ b/Tests.Integration.Presentation.Web/Users/UserTest.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Core.DomainModel; using Core.DomainModel.Organization; using System.Linq; @@ -205,31 +206,59 @@ public async Task Delete_User_Returns_Forbidden_When_User_Tries_To_Delete_Himsel public async Task Search_User_Returns_Users_With_Matching_Name_Or_Email() { var userRole = OrganizationRole.User; - var testPhrase = "testPhrase"; + var testPhrase = A(); var email1 = CreateEmailContainingPhrase(testPhrase); var email2 = CreateEmail(); var email3 = CreateEmail(); + var email4 = CreateEmail(); var name1 = CreateName(); var name3 = CreateName(); + var name4 = CreateName(); var (_, userId1, _, _) = await CreatePrerequisitesAsync(userRole, email1, name1); var (_, userId2, _, _) = await CreatePrerequisitesAsync(userRole, email2, testPhrase); var (_, userId3, _, _) = await CreatePrerequisitesAsync(userRole, email3, name3); + var (_, userId4, _, _) = await CreatePrerequisitesAsync(userRole, email4, name4, testPhrase); var users = await UserHelper.SearchUsersAsync(testPhrase); + //Users is expected to contain userId1 because User1 email contains the testPhrase Assert.Contains(userId1, users.Select(x => x.Id)); + + //Users is expected to contain userId2 User2 name contains the testPhrase Assert.Contains(userId2, users.Select(x => x.Id)); + + //Users is expected to not contain userId3 because User3 email and name don't contain the testPhrase Assert.DoesNotContain(userId3, users.Select(x => x.Id)); + + //Users is expected to contain userId4 because User4 last name contains the testPhrase + Assert.Contains(userId4, users.Select(x => x.Id)); + } + + [Fact] + public async Task GetUserOrganizations_Returns_User_Organizations() + { + var userRole = OrganizationRole.User; + var (_, userId, org, _) = await CreatePrerequisitesAsync(userRole); + + var response = await OrganizationHelper.SendGetUserOrganizationsRequestAsync(userId); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + var organizations = await response.ReadResponseBodyAsKitosApiResponseAsync>(); + Assert.NotNull(organizations); + + var organizationSimpleDtos = organizations.ToList(); + Assert.Contains(org.Id, organizationSimpleDtos.Select(x => x.Id)); + Assert.Single(organizationSimpleDtos); } - private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization, string email)> CreatePrerequisitesAsync(OrganizationRole role, string email = "", string name = "", bool hasApiAccess = false) + private async Task<(Cookie loginCookie, int userId, OrganizationDTO organization, string email)> CreatePrerequisitesAsync(OrganizationRole role, string email = "", string name = "", string lastName = "", bool hasApiAccess = false) { var organization = await CreateOrganizationAsync(); var userEmail = string.IsNullOrEmpty(email) ? UIConfigurationHelper.CreateEmail() : email; var (userId, _, loginCookie) = - await HttpApi.CreateUserAndLogin(userEmail, role, organization.Id, hasApiAccess, name); + await HttpApi.CreateUserAndLogin(userEmail, role, organization.Id, hasApiAccess, name, lastName); return (loginCookie, userId, organization, userEmail); } From 6facc4c341118fd3a52160a82b80533186814aa0 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 30 May 2022 13:52:07 +0200 Subject: [PATCH 039/432] Added list of user organizations --- .../Controllers/API/V1/AuthorizeController.cs | 1 + .../global-admin-misc.controller.ts | 10 +++- .../global-admin/global-admin-misc.view.html | 47 +++++++++++++------ Presentation.Web/app/services/userServices.ts | 9 +++- 4 files changed, 50 insertions(+), 17 deletions(-) diff --git a/Presentation.Web/Controllers/API/V1/AuthorizeController.cs b/Presentation.Web/Controllers/API/V1/AuthorizeController.cs index c5e2167ad8..5033642113 100644 --- a/Presentation.Web/Controllers/API/V1/AuthorizeController.cs +++ b/Presentation.Web/Controllers/API/V1/AuthorizeController.cs @@ -84,6 +84,7 @@ public HttpResponseMessage GetOrganizations([FromUri]string orderBy = null, [Fro [SwaggerResponse(HttpStatusCode.OK, Type = typeof(ApiReturnDTO>))] public HttpResponseMessage GetUserOrganizations(int userId) { + var test = _organizationService.GetUserOrganizations(userId).Value.ToList(); return _organizationService.GetUserOrganizations(userId) .Select(x => x.OrderBy(user => user.Id)) .Select(x => x.ToList()) diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index 701c0223e7..0061414e99 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -51,6 +51,7 @@ $scope.usersWithRightsholderAccess = usersWithRightsholderAccess; $scope.usersWithCrossAccess = usersWithCrossAccess; $scope.kitosUsers = []; + $scope.userOrganizations = []; $scope.showOrgsWhereUserActive = (activeOrgNames: string[]) => { $uibModal.open({ @@ -146,14 +147,19 @@ $scope.$watch("selectedUser", function (newVal, oldVal) { if (newVal === oldVal || !newVal) return; - - $scope.userSelected = true; + + $scope.userOrganizations = []; + userService.getUserOrganizations(newVal).then(res => { + $scope.userOrganizations.pushArray(res); + $scope.userSelected = true; + }); }); $scope.removeUser = (id: number) => { userService.deleteUser(id) .then(() => { $scope.userSelected = false; + $scope.selectedUser = null; } ).catch(ex => console.log(ex)); }; diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index f96c0dd1b3..6a4c1fc620 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -20,20 +20,39 @@

Rapport over brudte links

*INSERT TEXT IN DANISH*

-
- - -
+
+
+ + +
+ + + + + + + + + + + + + + +
Organization name
{{ org.name }}
+

Oversigt over brugere med API relaterede rettigheder

diff --git a/Presentation.Web/app/services/userServices.ts b/Presentation.Web/app/services/userServices.ts index fbaeafc5f0..32ff5567e9 100644 --- a/Presentation.Web/app/services/userServices.ts +++ b/Presentation.Web/app/services/userServices.ts @@ -43,6 +43,7 @@ getUsersWithCrossAccess(): ng.IPromise; deleteUser(id: number); searchUsers(query: string): ng.IPromise; + getUserOrganizations(userId: number): ng.IPromise; } export class UserService implements IUserService { @@ -518,7 +519,13 @@ searchUsers(query: string) { return this.$http - .get>(`api/users/search/${query}`) + .get>(`api/users/search?query=${query}`) + .then(result => result.data.response); + } + + getUserOrganizations(userId: number) { + return this.$http + .get>(`api/authorize/GetOrganizations/${userId}`) .then(result => result.data.response); } } From 815ba8b9f8efac7b4cdd47138d0396fa90e54a97 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 30 May 2022 13:52:27 +0200 Subject: [PATCH 040/432] Fixed integration test --- .../Organizations/V2/OrganizationUserApiV2Test.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests.Integration.Presentation.Web/Organizations/V2/OrganizationUserApiV2Test.cs b/Tests.Integration.Presentation.Web/Organizations/V2/OrganizationUserApiV2Test.cs index 4e02b73022..5aada6e78f 100644 --- a/Tests.Integration.Presentation.Web/Organizations/V2/OrganizationUserApiV2Test.cs +++ b/Tests.Integration.Presentation.Web/Organizations/V2/OrganizationUserApiV2Test.cs @@ -229,7 +229,7 @@ private static void AssertUser(User dbUser, OrganizationUserResponseDTO dtoUser, private async Task CreateUser(OrganizationDTO organization) { - var userAndGetToken = await HttpApi.CreateUserAndLogin(CreateEmail(), OrganizationRole.User, organization.Id, false); + var userAndGetToken = await HttpApi.CreateUserAndLogin(CreateEmail(), OrganizationRole.User, organization.Id, false, name: A(), lastName: A()); var user = DatabaseAccess.MapFromEntitySet(x => x.AsQueryable().ById(userAndGetToken.userId)); return user; } From 06317c4a67f3e0a37506b1495478d56d70fbe437 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 30 May 2022 14:00:28 +0200 Subject: [PATCH 041/432] Don't show deleted users when using search all method --- Core.ApplicationServices/UserService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 98fb2842e6..65b7e5b801 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -301,6 +301,7 @@ public Result, OperationError> SearchAllKitosUsers(params IDoma return _repository .GetUsers() + .Where(x => !x.Deleted) .Transform(query.Apply) .Transform(Result, OperationError>.Success); } From 03103304f8dc7307747ad390d0df0d5669d74e12 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 30 May 2022 14:14:46 +0200 Subject: [PATCH 042/432] removed unused method --- .../global-admin-misc.controller.ts | 37 ------------------- .../global-admin/global-admin-misc.view.html | 3 +- 2 files changed, 1 insertion(+), 39 deletions(-) diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index 0061414e99..a8599dfb6b 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -195,42 +195,5 @@ , false , formatUser); } - - function selectLazyLoading(url, format, paramAry) { - return { - minimumInputLength: 1, - allowClear: true, - placeholder: ' ', - formatResult: format, - ajax: { - data: function (term, page) { - return { query: term }; - }, - quietMillis: 500, - transport: function (queryParams) { - var res = $http.get(url + queryParams.data.query).then(queryParams.success); - res.abort = function () { - return null; - }; - - return res; - }, - - results: function (data, page) { - var results = []; - - _.each(data.data.response, function (obj: { id: any; name: any; email: any }) { - results.push({ - id: obj.id, - text: obj.name ? obj.name : 'Unavngiven', - email: obj.email - }); - }); - - return { results: results }; - } - } - }; - } }]); })(angular, app); \ No newline at end of file diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index 6a4c1fc620..4e02180211 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -26,8 +26,7 @@

*INSERT TEXT IN DANISH*

class="col-xs-11" ui-select2="::userOptions" placeholder="Vælg bruger" - ng-model="selectedUser" - ng-change="submitRole()"> + ng-model="selectedUser">
+
 
+ + + +
+ +
diff --git a/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts new file mode 100644 index 0000000000..435e0879e7 --- /dev/null +++ b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts @@ -0,0 +1,53 @@ +module Kitos.Models.UICustomization.Configs.BluePrints { + export const ItContractUiCustomizationBluePrint = { + module: UICustomization.CustomizableKitosModule.ItContract, + readOnly: false, + //TODO: Replace the text + helpText: "INSERT TEXT", + text: "Kontraktoverblik - Økonomi", + children: { + frontPage: { + text: "Kontraktforside", + readOnly: true, + helpText: Configs.helpTexts.cannotChangeTab + }, + itSystems: { + text: "IT Systemer", + readOnly: true + }, + dataProcessing: { + text: "Databehandling", + readOnly: true + }, + deadlines: { + text: "Aftalefrister", + readOnly: true + }, + paymentModel: { + text: "Betalingsmodel", + readOnly: true + }, + economy: { + text: "Økonomi", + readOnly: true + }, + contractRoles: { + text: "Kontraktroller", + }, + hierarchy: { + text: "Hierarki", + readOnly: true + }, + advice: { + text: "Advis" + }, + references: { + text: "Referencer", + readOnly: true + } + } + } + + // Mandatory post-processing to build the keys + processConfigurationTree(ItContractUiCustomizationBluePrint.module, ItContractUiCustomizationBluePrint, []); +} \ No newline at end of file diff --git a/Presentation.Web/app/models/ui-customization/ui-customization.ts b/Presentation.Web/app/models/ui-customization/ui-customization.ts index 8eaf6194db..ee53e49747 100644 --- a/Presentation.Web/app/models/ui-customization/ui-customization.ts +++ b/Presentation.Web/app/models/ui-customization/ui-customization.ts @@ -4,7 +4,8 @@ * Defines the valid customization modules for kitos */ export enum CustomizableKitosModule { - ItSystemUsage = "ItSystemUsages" + ItSystemUsage = "ItSystemUsages", + ItContract = "ItContracts" } export interface IUICustomizationTreeVisitor { diff --git a/Presentation.Web/app/services/ui-customization/ui-customization-service.ts b/Presentation.Web/app/services/ui-customization/ui-customization-service.ts index fed6c32bd2..35c4596045 100644 --- a/Presentation.Web/app/services/ui-customization/ui-customization-service.ts +++ b/Presentation.Web/app/services/ui-customization/ui-customization-service.ts @@ -45,6 +45,8 @@ switch (module) { case Models.UICustomization.CustomizableKitosModule.ItSystemUsage: return Models.UICustomization.Configs.BluePrints.ItSystemUsageUiCustomizationBluePrint; + case Models.UICustomization.CustomizableKitosModule.ItContract: + return Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; default: throw `Unknown module blueprint:${module}`; } @@ -118,6 +120,12 @@ bluePrint = this.loadBluePrint(module); break; } + case Models.UICustomization.CustomizableKitosModule.ItContract: + { + persisted = this.loadPersistedPreferences(module); + bluePrint = this.loadBluePrint(module); + break; + } default: throw `Unknown module:${module}`; } diff --git a/Presentation.Web/app/services/ui-customization/ui-customization-state-service.ts b/Presentation.Web/app/services/ui-customization/ui-customization-state-service.ts index 02f1ae3f1e..813ad0f851 100644 --- a/Presentation.Web/app/services/ui-customization/ui-customization-state-service.ts +++ b/Presentation.Web/app/services/ui-customization/ui-customization-state-service.ts @@ -4,7 +4,8 @@ const cache: UiCustomizationStateCache = { - ItSystemUsages: null + ItSystemUsages: null, + ItContracts: null } /** From 7e57918c2dc29cfcfe7cf248cb10814660ce7a9e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 31 May 2022 13:42:28 +0200 Subject: [PATCH 049/432] Applied UiConfiguration to Contract tabs and overview --- .../it-contract-edit.controller.ts | 22 +++++- .../it-contract/it-contract-edit.view.html | 20 ++--- .../it-contract-overview.controller.ts | 79 +++++++++++-------- 3 files changed, 73 insertions(+), 48 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts index d50a34d6f2..4b6ccac150 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts @@ -17,14 +17,17 @@ .createContractAuthorization() .getAuthorizationForItem($stateParams.id) ], - hasWriteAccess: ["userAccessRights", (userAccessRights: Kitos.Models.Api.Authorization.EntityAccessRightsDTO) => userAccessRights.canEdit] + hasWriteAccess: ["userAccessRights", (userAccessRights: Kitos.Models.Api.Authorization.EntityAccessRightsDTO) => userAccessRights.canEdit], + uiState: [ + "uiCustomizationStateService", (uiCustomizationStateService: Kitos.Services.UICustomization.IUICustomizationStateService) => uiCustomizationStateService.getCurrentState(Kitos.Models.UICustomization.CustomizableKitosModule.ItContract) + ] } }); } ]); - app.controller("contract.EditCtrl", ["$scope", "$rootScope", "contract", "hasWriteAccess","userAccessRights", - ($scope, $rootScope, contract, hasWriteAccess, userAccessRights: Kitos.Models.Api.Authorization.EntityAccessRightsDTO) => { + app.controller("contract.EditCtrl", ["$scope", "$rootScope", "contract", "hasWriteAccess","userAccessRights", "uiState", + ($scope, $rootScope, contract, hasWriteAccess, userAccessRights: Kitos.Models.Api.Authorization.EntityAccessRightsDTO, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI) => { $scope.hasWriteAccess = hasWriteAccess; $scope.allowClearOption = { allowClear: true @@ -34,5 +37,18 @@ if (!userAccessRights.canDelete) { _.remove($rootScope.page.subnav.buttons, (o: any) => o.text === "Slet IT Kontrakt"); } + + const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; + + $scope.isFrontPageEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage); + $scope.isItSystemsEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.itSystems); + $scope.isDataProcessingEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.dataProcessing); + $scope.isDeadlinesEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.deadlines); + $scope.isPaymentModelEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.paymentModel); + $scope.isEconomyEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.economy); + $scope.isContractRolesEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.contractRoles); + $scope.isHierarchyEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.hierarchy); + $scope.isAdviceEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.advice); + $scope.isReferencesEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.references); }]); })(angular, app); diff --git a/Presentation.Web/app/components/it-contract/it-contract-edit.view.html b/Presentation.Web/app/components/it-contract/it-contract-edit.view.html index 7a5be1643b..76aa9ea2dd 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-edit.view.html +++ b/Presentation.Web/app/components/it-contract/it-contract-edit.view.html @@ -7,34 +7,34 @@

IT Kontrakt

diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 9b1d478868..b813d17c68 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -56,7 +56,8 @@ "$uibModal", "needsWidthFixService", "exportGridToExcelService", - "userAccessRights" + "userAccessRights", + "uiState" ]; constructor( @@ -78,7 +79,8 @@ private $modal, private needsWidthFixService, private exportGridToExcelService, - private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO) { + private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO, + private uiState: Models.UICustomization.ICustomizedModuleUI) { this.$rootScope.page.title = "IT Kontrakt - Økonomi"; this.$scope.$on("kendoWidgetCreated", (event, widget) => { @@ -107,7 +109,7 @@ var self = this; - var modalInstance = this.$modal.open({ + this.$modal.open({ windowClass: "modal fade in", templateUrl: "app/components/it-contract/it-contract-modal-create.view.html", controller: ["$scope", "$uibModalInstance", function ($scope, $modalInstance) { @@ -230,6 +232,7 @@ } private activate() { + const uiBluePrint = Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; var self = this; var clonedItContractRoles = this._.cloneDeep(this.itContractRoles); this._.forEach(clonedItContractRoles, n => n.Id = `role${n.Id}`); @@ -747,46 +750,49 @@ // add a role column for each of the roles // note iterating in reverse so we don't have to update the insert index - this._.forEachRight(this.itContractRoles, role => { - var roleColumn: IKendoGridColumn = { - field: `role${role.Id}`, - title: role.Name, - persistId: `role${role.Id}`, - template: dataItem => { - var roles = ""; + if (this.uiState.isBluePrintNodeAvailable(uiBluePrint.children.contractRoles)) { - if (dataItem.roles[role.Id] === undefined) - return roles; + this._.forEachRight(this.itContractRoles, role => { + var roleColumn: IKendoGridColumn = { + field: `role${role.Id}`, + title: role.Name, + persistId: `role${role.Id}`, + template: dataItem => { + var roles = ""; - roles = self.concatRoles(dataItem.roles[role.Id]); + if (dataItem.roles[role.Id] === undefined) + return roles; - var link = `${roles}`; + roles = self.concatRoles(dataItem.roles[role.Id]); - return link; - }, - excelTemplate: dataItem => { - var roles = ""; + var link = `${roles}`; - if (!dataItem || dataItem.roles[role.Id] === undefined) - return roles; + return link; + }, + excelTemplate: dataItem => { + var roles = ""; - return self.concatRoles(dataItem.roles[role.Id]); - }, - width: 200, - hidden: !(role.Name === "Kontraktejer"), // hardcoded role name :( - sortable: false, - filterable: { - cell: { - dataSource: [], - showOperators: false, - operator: "contains" + if (!dataItem || dataItem.roles[role.Id] === undefined) + return roles; + + return self.concatRoles(dataItem.roles[role.Id]); + }, + width: 200, + hidden: !(role.Name === "Kontraktejer"), // hardcoded role name :( + sortable: false, + filterable: { + cell: { + dataSource: [], + showOperators: false, + operator: "contains" + } } - } - }; + }; - // insert the generated column at the correct location - mainGridOptions.columns.splice(insertIndex, 0, roleColumn); - }); + // insert the generated column at the correct location + mainGridOptions.columns.splice(insertIndex, 0, roleColumn); + }); + } // assign the generated grid options to the scope value, kendo will do the rest this.mainGridOptions = mainGridOptions; @@ -936,6 +942,9 @@ "$http", "user", "notify", ($http, user, notify) => $http.get(`/odata/ExternEconomyStreams(Organization=${user.currentOrganizationId})`) .then(result => result.data.value, () => $stateProvider.transitionTo("home", { q: "updated search term" })) + ], + uiState: [ + "uiCustomizationStateService", (uiCustomizationStateService: Kitos.Services.UICustomization.IUICustomizationStateService) => uiCustomizationStateService.getCurrentState(Kitos.Models.UICustomization.CustomizableKitosModule.ItContract) ] } }); From eebe3135156c219aa4530ddf664e49728e394157 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 31 May 2022 15:22:11 +0200 Subject: [PATCH 050/432] added protractor test --- Presentation.Web/Presentation.Web.csproj | 2 + ...min.ItContract.UiCustomization.e2e.spec.ts | 78 +++++++++++++++++++ .../SideNavigation/ContractNavigationSrefs.ts | 6 ++ 3 files changed, 86 insertions(+) create mode 100644 Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts create mode 100644 Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 4b8431b36f..3675b36509 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1098,6 +1098,7 @@ + @@ -1115,6 +1116,7 @@ + diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts new file mode 100644 index 0000000000..cfd7d51537 --- /dev/null +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -0,0 +1,78 @@ +import Login = require("../../Helpers/LoginHelper"); +import TestFixtureWrapper = require("../../Utility/TestFixtureWrapper"); +import ContractHelper = require("../../Helpers/ContractHelper"); +import NavigationHelper = require("../../Utility/NavigationHelper"); +import ContractNavigationSrefs = require("../../Helpers/SideNavigation/ContractNavigationSrefs"); + +describe("Local admin is able customize the IT-System usage UI", () => { + + var loginHelper = new Login(); + var testFixture = new TestFixtureWrapper(); + var navigation = new NavigationHelper(); + + beforeAll(() => { + testFixture.enableLongRunningTest(); + }); + + afterAll(() => { + testFixture.cleanupState(); + testFixture.disableLongRunningTest(); + }); + + var localSystemPath: string | null = null; + + it("Disabling Tabs/fields will hide the tabs/fields on the IT-System details page", () => { + var contractName = createName("contractName"); + + return loginHelper.loginAsGlobalAdmin() + .then(() => ContractHelper.createContract(contractName)) + .then(() => loginHelper.logout()) + .then(() => loginHelper.loginAsLocalAdmin()) + .then(() => testTabCustomization(contractName, "ItContracts.contractRoles", ContractNavigationSrefs.contractRolesSref)) + .then(() => testTabCustomization(contractName, "ItContracts.advice", ContractNavigationSrefs.adviceSref)); + }); + + function testTabCustomization(name: string, settingId: string, tabSref: string) { + console.log("testTabCustomization for ", name, " and tabSref:", tabSref, " settingId:", settingId); + return verifyTabVisibility(name, tabSref, true) //Check that the tab is visible before the change + .then(() => toggleSetting(settingId)) //Toggle the setting + .then(() => verifyTabVisibility(name, tabSref, false)); //Verify that the tab has now been hidden + } + + function navigateToContract(contractName: string) { + let navigationPromise; + + if (localSystemPath === null) { + navigationPromise = ContractHelper + .openContract(contractName) + .then(() => browser.getCurrentUrl()) + .then(url => localSystemPath = url.substr(browser.params.baseUrl.length)); + } else { + // Save some time going directly to the system in stead of going through kendo + navigationPromise = navigation.getPage(localSystemPath); + } + return navigationPromise; + } + + function verifyTabVisibility(contractName: string, tabSref: string, expectedToBePresent: boolean) { + console.log("verifyTabVisibility for ", contractName, " and tabSref:", tabSref, " expectedPresence:", expectedToBePresent); + + return navigateToContract(contractName) + .then(() => expect(navigation.findSubMenuElement(tabSref).isPresent()).toBe(expectedToBePresent, `Failed to validate tab:${tabSref} to be ${expectedToBePresent ? "_present_" : "_removed_"}`)); + } + + function toggleSetting(settingId: string) { + console.log("toggleSetting for ", settingId); + return navigation.getPage("/#/local-config/contract") + .then(() => element(by.id("expand_collapse_ItContracts")).click()) + .then(() => browser.waitForAngular()) + .then(() => element(by.id(settingId)).click()) + .then(() => browser.waitForAngular()); + } + + function createName(prefix: string) { + return `${prefix}_${new Date().getTime()}`; + } +}); + + diff --git a/Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts b/Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts new file mode 100644 index 0000000000..a3aee3ce89 --- /dev/null +++ b/Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts @@ -0,0 +1,6 @@ +class ContractNavigationSrefs { + static adviceSref = "it-contract.edit.advice-generic({type: 'itContract'})"; + static contractRolesSref = "it-contract.edit.roles"; +} + +export = ContractNavigationSrefs; \ No newline at end of file From ef4e8cd0a42971cb126040af70cb43328d760e0e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 08:11:49 +0200 Subject: [PATCH 051/432] renamed variables --- ...calAdmin.ItContract.UiCustomization.e2e.spec.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts index cfd7d51537..027b90848d 100644 --- a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -4,7 +4,7 @@ import ContractHelper = require("../../Helpers/ContractHelper"); import NavigationHelper = require("../../Utility/NavigationHelper"); import ContractNavigationSrefs = require("../../Helpers/SideNavigation/ContractNavigationSrefs"); -describe("Local admin is able customize the IT-System usage UI", () => { +describe("Local admin is able customize the IT-Contract usage UI", () => { var loginHelper = new Login(); var testFixture = new TestFixtureWrapper(); @@ -19,9 +19,9 @@ describe("Local admin is able customize the IT-System usage UI", () => { testFixture.disableLongRunningTest(); }); - var localSystemPath: string | null = null; + var localContractPath: string | null = null; - it("Disabling Tabs/fields will hide the tabs/fields on the IT-System details page", () => { + it("Disabling Tabs/fields will hide the tabs/fields on the IT-Contract details page", () => { var contractName = createName("contractName"); return loginHelper.loginAsGlobalAdmin() @@ -42,14 +42,14 @@ describe("Local admin is able customize the IT-System usage UI", () => { function navigateToContract(contractName: string) { let navigationPromise; - if (localSystemPath === null) { + if (localContractPath === null) { navigationPromise = ContractHelper .openContract(contractName) .then(() => browser.getCurrentUrl()) - .then(url => localSystemPath = url.substr(browser.params.baseUrl.length)); + .then(url => localContractPath = url.substr(browser.params.baseUrl.length)); } else { - // Save some time going directly to the system in stead of going through kendo - navigationPromise = navigation.getPage(localSystemPath); + // Save some time going directly to the contract in stead of going through kendo + navigationPromise = navigation.getPage(localContractPath); } return navigationPromise; } From c3906f511ec55115c4b56eaf3e0c989e48535ef8 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 09:29:09 +0200 Subject: [PATCH 052/432] Updated model and validation --- Core.DomainModel/ItContract/ItContract.cs | 22 +++++++++---------- .../Mapping/ItContractResponseMapper.cs | 6 ++--- .../V2/Types/Contract/ProcurementPlanDTO.cs | 10 +++++---- .../tabs/it-contract-tab-main.view.html | 4 ++-- .../Contract/ItContractWriteServiceTest.cs | 4 ++-- .../Model/ItContractTest.cs | 16 ++++++++------ .../Models/V2/ItContractResponseMapperTest.cs | 4 ++-- 7 files changed, 35 insertions(+), 31 deletions(-) diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index b137ce6f53..4814f62951 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -234,21 +234,21 @@ public bool IsActive public virtual ProcurementStrategyType ProcurementStrategy { get; set; } /// - /// Gets or sets the procurement plan half. (udbudsplan) + /// Gets or sets the procurement plan half. (genanskaffelsesplan) /// /// /// The other part of this option is /// /// - /// Can be either 1 for the 1st and 2nd quarter or 2 for the 3rd and 4th quarter. + /// Can have a value between 1 and 4 for each of the quarters. /// - public int? ProcurementPlanHalf { get; set; } + public int? ProcurementPlanQuarter { get; set; } /// - /// Gets or sets the procurement plan year. (udbudsplan) + /// Gets or sets the procurement plan year. (genanskaffelsesplan) /// /// - /// the other part of this option is + /// the other part of this option is /// /// /// The procurement plan year. @@ -660,19 +660,19 @@ public void ResetPurchaseForm() public void ResetProcurementPlan() { - ProcurementPlanHalf = null; + ProcurementPlanQuarter = null; ProcurementPlanYear = null; } - public Maybe UpdateProcurementPlan((byte half, int year) plan) + public Maybe UpdateProcurementPlan((byte quarter, int year) plan) { - var (half, year) = plan; - if (half is < 1 or > 2) + var (quarter, year) = plan; + if (quarter is < 1 or > 2) { - return new OperationError("Half Of Year has to be either 1 or 2", OperationFailure.BadInput); + return new OperationError("Quarter Of Year has to be either 1, 2, 3 or 4", OperationFailure.BadInput); } - ProcurementPlanHalf = half; + ProcurementPlanQuarter = quarter; ProcurementPlanYear = year; return Maybe.None; } diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs index b47220359f..35311cf890 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs @@ -179,15 +179,15 @@ private static ContractProcurementDataResponseDTO MapProcurement(ItContract cont private static ProcurementPlanDTO MapProcurementPlan(ItContract contract) { - if (!contract.ProcurementPlanHalf.HasValue) + if (!contract.ProcurementPlanQuarter.HasValue) return null; if (!contract.ProcurementPlanYear.HasValue) return null; - return new ProcurementPlanDTO() + return new ProcurementPlanDTO { - HalfOfYear = Convert.ToByte(contract.ProcurementPlanHalf.Value), + QuarterOfYear = Convert.ToByte(contract.ProcurementPlanQuarter.Value), Year = contract.ProcurementPlanYear.Value }; } diff --git a/Presentation.Web/Models/API/V2/Types/Contract/ProcurementPlanDTO.cs b/Presentation.Web/Models/API/V2/Types/Contract/ProcurementPlanDTO.cs index 2bc4076c87..56018f343d 100644 --- a/Presentation.Web/Models/API/V2/Types/Contract/ProcurementPlanDTO.cs +++ b/Presentation.Web/Models/API/V2/Types/Contract/ProcurementPlanDTO.cs @@ -7,12 +7,14 @@ public class ProcurementPlanDTO /// /// Which half of the year is the procurement plan for. /// Range: - /// - 1: First half of the year - /// - 2: Second half of the year + /// - 1: First quarter of the year + /// - 2: Second quarter of the year + /// - 3: Third quarter of the year + /// - 4: Fourth quarter of the year /// [Required] - [Range(1, 2)] - public byte HalfOfYear { get; set; } + [Range(1, 4)] + public byte QuarterOfYear { get; set; } /// /// Which year the procurement plan is for /// diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index b3b93855cd..875a65340a 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -98,8 +98,8 @@

{{contract.name}}

(), + ProcurementPlanQuarter = A(), ProcurementPlanYear = A() }; @@ -304,27 +304,29 @@ public void Can_ResetProcurementPlan() sut.ResetProcurementPlan(); //Assert - Assert.Null(sut.ProcurementPlanHalf); + Assert.Null(sut.ProcurementPlanQuarter); Assert.Null(sut.ProcurementPlanYear); } [Theory] [InlineData(1)] [InlineData(2)] - public void Can_UpdateProcurementPlan(int halfValue) + [InlineData(3)] + [InlineData(4)] + public void Can_UpdateProcurementPlan(int quarterValue) { //Arrange var sut = new ItContract(); - var half = Convert.ToByte(halfValue); + var quarter = Convert.ToByte(quarterValue); var year = A(); //Act - var result = sut.UpdateProcurementPlan((half, year)); + var result = sut.UpdateProcurementPlan((quarter, year)); //Assert Assert.True(result.IsNone); - Assert.NotNull(sut.ProcurementPlanHalf); - Assert.Equal(halfValue, sut.ProcurementPlanHalf); + Assert.NotNull(sut.ProcurementPlanQuarter); + Assert.Equal(quarterValue, Convert.ToInt32(sut.ProcurementPlanQuarter)); Assert.NotNull(sut.ProcurementPlanYear); Assert.Equal(year, sut.ProcurementPlanYear); } diff --git a/Tests.Unit.Presentation.Web/Models/V2/ItContractResponseMapperTest.cs b/Tests.Unit.Presentation.Web/Models/V2/ItContractResponseMapperTest.cs index 992cef7b95..edfc789cf6 100644 --- a/Tests.Unit.Presentation.Web/Models/V2/ItContractResponseMapperTest.cs +++ b/Tests.Unit.Presentation.Web/Models/V2/ItContractResponseMapperTest.cs @@ -179,7 +179,7 @@ public void MapContractDTO_Maps_Procurement_Properties(bool withOptionalCrossRef AssertOptionalIdentity(contract.PurchaseForm, dto.Procurement.PurchaseType); if (withOptionalCrossReferences) { - Assert.Equal(Convert.ToByte(contract.ProcurementPlanHalf.Value), dto.Procurement.ProcurementPlan.HalfOfYear); + Assert.Equal(Convert.ToByte(contract.ProcurementPlanQuarter.Value), dto.Procurement.ProcurementPlan.QuarterOfYear); Assert.Equal(contract.ProcurementPlanYear.Value, dto.Procurement.ProcurementPlan.Year); } else @@ -695,7 +695,7 @@ private void AssignProcurementPropertiesSection(ItContract contract, bool withOp contract.PurchaseForm = withOptionalCrossReferences ? new PurchaseFormType() { Uuid = A(), Name = A() } : null; - contract.ProcurementPlanHalf = withOptionalCrossReferences + contract.ProcurementPlanQuarter = withOptionalCrossReferences ? A() % 2 : null; contract.ProcurementPlanYear = withOptionalCrossReferences From ce424fcecce3ec5e2ea74bc8202cb51ffed0114a Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 09:29:21 +0200 Subject: [PATCH 053/432] Added migration script --- .../Infrastructure.DataAccess.csproj | 7 + ...edProcurementPlanHalfToQuarter.Designer.cs | 29 ++++ ...273_ChangedProcurementPlanHalfToQuarter.cs | 26 ++++ ...3_ChangedProcurementPlanHalfToQuarter.resx | 126 ++++++++++++++++++ 4 files changed, 188 insertions(+) create mode 100644 Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.resx diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 6ffc19e233..3cfe394f05 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -865,6 +865,10 @@ 202205190801320_UserDelete.cs + + + 202206010716273_ChangedProcurementPlanHalfToQuarter.cs + @@ -1428,6 +1432,9 @@ 202205190801320_UserDelete.cs + + 202206010716273_ChangedProcurementPlanHalfToQuarter.cs + diff --git a/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.Designer.cs b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.Designer.cs new file mode 100644 index 0000000000..657eed054a --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class ChangedProcurementPlanHalfToQuarter : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(ChangedProcurementPlanHalfToQuarter)); + + string IMigrationMetadata.Id + { + get { return "202206010716273_ChangedProcurementPlanHalfToQuarter"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs new file mode 100644 index 0000000000..3a60900f2b --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs @@ -0,0 +1,26 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class ChangedProcurementPlanHalfToQuarter : DbMigration + { + public override void Up() + { + Sql(@"UPDATE dbo.ItContract + SET ProcurementPlanHalf = + CASE ProcurementPlanHalf + WHEN 1 THEN 1 + WHEN 2 THEN 3 + ELSE ProcurementPlanHalf + END;" + ); + RenameColumn("dbo.ItContract", "ProcurementPlanHalf", "ProcurementPlanQuarter"); + } + + public override void Down() + { + RenameColumn("dbo.ItContract", "ProcurementPlanQuarter", "ProcurementPlanHalf"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.resx b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.resx new file mode 100644 index 0000000000..1a0c338e4f --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file From d3e074b7f64be513f84a57ddc7f40c4ce65aba39 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 09:35:50 +0200 Subject: [PATCH 054/432] Mapping update --- .../ItContracts/Mapping/ItContractWriteModelMapper.cs | 4 ++-- .../Contract/V2/ItContractsApiV2Test.cs | 4 ++-- .../Models/V2/ItContractWriteModelMapperTest.cs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs index c8f02862ec..31f545ce53 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs @@ -329,9 +329,9 @@ private IEnumerable MapReferences(IEnumerabl return BaseMapReferences(dtos); } - private static Maybe<(byte half, int year)> MapProcurementPlan(ProcurementPlanDTO plan) + private static Maybe<(byte quarter, int year)> MapProcurementPlan(ProcurementPlanDTO plan) { - return plan == null ? Maybe<(byte half, int year)>.None : (plan.HalfOfYear, plan.Year); + return plan == null ? Maybe<(byte quarter, int year)>.None : (plan.QuarterOfYear, plan.Year); } } } \ No newline at end of file diff --git a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs index 617673c722..ec97d9354b 100644 --- a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs +++ b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs @@ -2288,7 +2288,7 @@ private static void AssertProcurement(ContractProcurementDataWriteRequestDTO exp } else { - Assert.Equal(expected.ProcurementPlan.HalfOfYear, actual.ProcurementPlan.HalfOfYear); + Assert.Equal(expected.ProcurementPlan.QuarterOfYear, actual.ProcurementPlan.QuarterOfYear); Assert.Equal(expected.ProcurementPlan.Year, actual.ProcurementPlan.Year); } } @@ -2303,7 +2303,7 @@ private static void AssertProcurement(ContractProcurementDataWriteRequestDTO exp PurchaseTypeUuid = purchaseType.Uuid, ProcurementPlan = new ProcurementPlanDTO() { - HalfOfYear = Convert.ToByte((A() % 1) + 1), + QuarterOfYear = Convert.ToByte((A() % 1) + 1), Year = A() } }; diff --git a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs index 014215737e..2b0b25abed 100644 --- a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs +++ b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs @@ -1525,7 +1525,7 @@ private static void AssertProcurement(bool hasValues, ContractProcurementDataWri if (hasValues) { var (half, year) = AssertPropertyContainsDataChange(actual.ProcurementPlan); - Assert.Equal(expected.ProcurementPlan.HalfOfYear, half); + Assert.Equal(expected.ProcurementPlan.QuarterOfYear, half); Assert.Equal(expected.ProcurementPlan.Year, year); } else @@ -1543,7 +1543,7 @@ private ContractProcurementDataWriteRequestDTO CreateProcurementRequest(bool has ProcurementPlan = hasValues ? new ProcurementPlanDTO() { - HalfOfYear = Convert.ToByte(A() % 1 + 1), + QuarterOfYear = Convert.ToByte(A() % 1 + 1), Year = A() } : null From 91114a75df7217270027e28f8878677adcea413c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 10:48:12 +0200 Subject: [PATCH 055/432] Updated overview --- .../it-contract-plan.controller.ts | 6 ++-- .../tabs/it-contract-tab-main.controller.ts | 30 +++++++++---------- .../app/models/it-contract/it-contract.ts | 6 ++-- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 8d7f73a506..d13aae8888 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -806,13 +806,13 @@ }, { field: "ProcurementPlanYear", - title: "Udbuds plan", + title: "Genanskaffelses plan", width: 90, persistId: "procurementPlan", // DON'T YOU DARE RENAME! attributes: { "class": "text-center" }, template: dataItem => - dataItem.ProcurementPlanHalf && dataItem.ProcurementPlanYear - ? `${dataItem.ProcurementPlanYear} | ${dataItem.ProcurementPlanHalf}` + dataItem.ProcurementPlanQuarter && dataItem.ProcurementPlanYear + ? `${dataItem.ProcurementPlanYear} | Q${dataItem.ProcurementPlanQuarter}` : "", filterable: { cell: { diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 533e0feb17..ced226a0c7 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -107,18 +107,18 @@ $scope.procurementPlans = []; var currentDate = moment(); - for (var i = 0; i < 20; i++) { - var half = currentDate.quarter() <= 2 ? 1 : 2; // 1 for the first 6 months, 2 for the rest + for (var i = 0; i < 40; i++) { + var quarter = currentDate.quarter(); var year = currentDate.year(); - var obj = { id: String(i), text: half + " | " + year, half: half, year: year }; + var obj = { id: String(i), text: `Q${quarter} | ${year}`, quarter: quarter, year: year }; $scope.procurementPlans.push(obj); - // add 6 months for next iter - currentDate.add(6, 'months'); + // add 3 months for next iter + currentDate.add(3, 'months'); } - var foundPlan: { id } = _.find($scope.procurementPlans, function (plan: { half; year; id; }) { - return plan.half == contract.procurementPlanHalf && plan.year == contract.procurementPlanYear; + var foundPlan: { id } = _.find($scope.procurementPlans, function (plan: { quarter; year; id; }) { + return plan.quarter == contract.procurementPlanQuarter && plan.year == contract.procurementPlanYear; }); if (foundPlan) { // plan is found in the list, replace it to get object equality @@ -126,8 +126,8 @@ } else { // plan is not found, add missing plan to begining of list // if not null - if (contract.procurementPlanHalf != null) { - var plan = { id: String($scope.procurementPlans.length), text: contract.procurementPlanHalf + " | " + contract.procurementPlanYear, half: contract.procurementPlanHalf, year: contract.procurementPlanYear }; + if (contract.procurementPlanQuarter != null) { + var plan = { id: String($scope.procurementPlans.length), text: contract.procurementPlanQuarter + " | " + contract.procurementPlanYear, quarter: contract.procurementPlanQuarter, year: contract.procurementPlanYear }; $scope.procurementPlans.unshift(plan); // add to list $scope.procurementPlanId = plan; // select it } @@ -152,7 +152,7 @@ } $scope.saveProcurement = function (id) { - if (id === null && contract.procurementPlanHalf !== null && contract.procurementPlanYear !== null) { + if (id === null && contract.procurementPlanQuarter !== null && contract.procurementPlanYear !== null) { updateProcurement(null, null); } else { @@ -161,18 +161,18 @@ } var result = _.find($scope.procurementPlans, (plan) => plan.id === id); - if (result.half === contract.procurementPlanHalf && result.year === contract.procurementPlanYear) { + if (result.quarter === contract.procurementPlanQuarter && result.year === contract.procurementPlanYear) { return; } - updateProcurement(result.half, result.year); + updateProcurement(result.quarter, result.year); } }; - function updateProcurement(procurementPlanHalf, procurementPlanYear) { + function updateProcurement(procurementPlanQuarter, procurementPlanYear) { contract = $scope.contract; - var payload = { procurementPlanHalf: procurementPlanHalf, procurementPlanYear: procurementPlanYear }; - $scope.contract.procurementPlanHalf = payload.procurementPlanHalf; + var payload = { procurementPlanQuarter: procurementPlanQuarter, procurementPlanYear: procurementPlanYear }; + $scope.contract.procurementPlanQuarter = payload.procurementPlanQuarter; $scope.contract.procurementPlanYear = payload.procurementPlanYear; patch(payload, $scope.autoSaveUrl + '?organizationId=' + user.currentOrganizationId); } diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index 5f5c0d2f9a..5c5eadf995 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -35,9 +35,9 @@ ProcurementStrategyId: number; /** Gets or sets the chosen procurement strategy option. (udbudsstrategi) */ ProcurementStrategy: IProcurementStrategy; - /** Gets or sets the procurement plan half. (udbudsplan) */ - ProcurementPlanHalf: number; - /** Gets or sets the procurement plan year. (udbudsplan) */ + /** Gets or sets the procurement plan quarter. (genanskaffelsesplan) */ + ProcurementPlanQuarter: number; + /** Gets or sets the procurement plan year. (genanskaffelsesplan) */ ProcurementPlanYear: number; /** Gets or sets the chosen contract template identifier. */ ContractTemplateId: number; From a35b972de35f9395bdb0ba9aa44bb710603e4fbc Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 10:48:20 +0200 Subject: [PATCH 056/432] Updated tests --- Core.DomainModel/ItContract/ItContract.cs | 2 +- Presentation.Web/Models/API/V1/ItContractDTO.cs | 2 +- .../Contract/ItContractWriteServiceTest.cs | 6 +++--- .../Model/ItContractTest.cs | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index 4814f62951..6fbcd4a422 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -667,7 +667,7 @@ public void ResetProcurementPlan() public Maybe UpdateProcurementPlan((byte quarter, int year) plan) { var (quarter, year) = plan; - if (quarter is < 1 or > 2) + if (quarter is < 1 or > 4) { return new OperationError("Quarter Of Year has to be either 1, 2, 3 or 4", OperationFailure.BadInput); } diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index a1ac99e46e..ce55fffa96 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -44,7 +44,7 @@ public class ItContractDTO public Guid? SupplierUuid { get; set; } public int? ProcurementStrategyId { get; set; } public string ProcurementStrategyName { get; set; } - public int? ProcurementPlanHalf { get; set; } + public int? ProcurementPlanQuarter { get; set; } public int? ProcurementPlanYear { get; set; } public int? ContractTemplateId { get; set; } public string ContractTemplateName { get; set; } diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs index 657b12bd42..613eb339cf 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs @@ -544,9 +544,9 @@ public void Cannot_Create_With_Procurement_If_UpdateIndependentOptionTypeAssignm [Theory] [InlineData(0)] - [InlineData(3)] + [InlineData(5)] [InlineData(10)] - public void Cannot_Create_With_Procurement_If_Half_Of_Year_Is_Other_Than_1_Or_2(int halfOfYear) + public void Cannot_Create_With_Procurement_If_Quarter_Of_Year_Is_Other_Than_1_To_4(int halfOfYear) { //Arrange var procurement = new ItContractProcurementModificationParameters() @@ -559,7 +559,7 @@ public void Cannot_Create_With_Procurement_If_Half_Of_Year_Is_Other_Than_1_Or_2( var result = _sut.Create(organizationUuid, parameters); //Assert - AssertFailureWithKnownErrorDetails(result, "Failed to update procurement plan with error message: Half Of Year has to be either 1 or 2", OperationFailure.BadInput, transaction); + AssertFailureWithKnownErrorDetails(result, "Failed to update procurement plan with error message: Quarter Of Year has to be either 1, 2, 3 or 4", OperationFailure.BadInput, transaction); } [Fact] diff --git a/Tests.Unit.Core.ApplicationServices/Model/ItContractTest.cs b/Tests.Unit.Core.ApplicationServices/Model/ItContractTest.cs index f8cb8eb0df..dec205000f 100644 --- a/Tests.Unit.Core.ApplicationServices/Model/ItContractTest.cs +++ b/Tests.Unit.Core.ApplicationServices/Model/ItContractTest.cs @@ -326,15 +326,15 @@ public void Can_UpdateProcurementPlan(int quarterValue) //Assert Assert.True(result.IsNone); Assert.NotNull(sut.ProcurementPlanQuarter); - Assert.Equal(quarterValue, Convert.ToInt32(sut.ProcurementPlanQuarter)); + Assert.Equal(quarterValue, sut.ProcurementPlanQuarter); Assert.NotNull(sut.ProcurementPlanYear); Assert.Equal(year, sut.ProcurementPlanYear); } [Theory] [InlineData(0)] - [InlineData(3)] - public void Cannot_UpdateProcurementPlan_If_Half_Not_1_Or_2(int halfValue) + [InlineData(5)] + public void Cannot_UpdateProcurementPlan_If_Quarter_Not_Between_1_And_4(int halfValue) { //Arrange var sut = new ItContract(); @@ -346,7 +346,7 @@ public void Cannot_UpdateProcurementPlan_If_Half_Not_1_Or_2(int halfValue) //Assert Assert.True(result.HasValue); - Assert.Contains("Half Of Year has to be either 1 or 2", result.Value.Message.GetValueOrEmptyString()); + Assert.Contains("Quarter Of Year has to be either 1, 2, 3 or 4", result.Value.Message.GetValueOrEmptyString()); Assert.Equal(OperationFailure.BadInput, result.Value.FailureType); } From bf398f2ebf7fa8d9ea02e69d9c74fafbe99b8374 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 11:01:37 +0200 Subject: [PATCH 057/432] added down sql update query --- ...206010716273_ChangedProcurementPlanHalfToQuarter.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs index 3a60900f2b..d449754221 100644 --- a/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs +++ b/Infrastructure.DataAccess/Migrations/202206010716273_ChangedProcurementPlanHalfToQuarter.cs @@ -20,6 +20,16 @@ ELSE ProcurementPlanHalf public override void Down() { + Sql(@"UPDATE dbo.ItContract + SET ProcurementPlanQuarter = + CASE ProcurementPlanQuarter + WHEN 1 THEN 1 + WHEN 2 THEN 1 + WHEN 3 THEN 2 + WHEN 4 THEN 2 + ELSE ProcurementPlanQuarter + END;" + ); RenameColumn("dbo.ItContract", "ProcurementPlanQuarter", "ProcurementPlanHalf"); } } From e028e15e68dba73bd7af7e37853f72e6066f5364 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 11:11:09 +0200 Subject: [PATCH 058/432] Removed unnecessary convert to int --- .../ApplicationServices/Contract/ItContractWriteServiceTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs index 613eb339cf..62b83eca1e 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs @@ -1670,7 +1670,7 @@ private static void AssertProcurement(ItContractProcurementModificationParameter { if (expected.ProcurementPlan.HasChange && expected.ProcurementPlan.NewValue.HasValue) { - Assert.Equal(expected.ProcurementPlan.NewValue.Value.half, Convert.ToInt32(actual.ProcurementPlanQuarter)); + Assert.Equal(expected.ProcurementPlan.NewValue.Value.half, actual.ProcurementPlanQuarter); Assert.Equal(expected.ProcurementPlan.NewValue.Value.year, actual.ProcurementPlanYear); } else From d373eb311d412d07db9265d0884b2258ed0e6310 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 11:20:57 +0200 Subject: [PATCH 059/432] renamed property half to quarter --- .../Write/ItContractProcurementModificationParameters.cs | 2 +- .../ApplicationServices/Contract/ItContractWriteServiceTest.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs index d6057cb2e8..15912865df 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs @@ -8,6 +8,6 @@ public class ItContractProcurementModificationParameters { public OptionalValueChange PurchaseTypeUuid { get; set; } = OptionalValueChange.None; public OptionalValueChange ProcurementStrategyUuid { get; set; } = OptionalValueChange.None; - public OptionalValueChange> ProcurementPlan { get; set; } = OptionalValueChange>.None; + public OptionalValueChange> ProcurementPlan { get; set; } = OptionalValueChange>.None; } } \ No newline at end of file diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs index 62b83eca1e..4bf7e58b91 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs @@ -1670,7 +1670,7 @@ private static void AssertProcurement(ItContractProcurementModificationParameter { if (expected.ProcurementPlan.HasChange && expected.ProcurementPlan.NewValue.HasValue) { - Assert.Equal(expected.ProcurementPlan.NewValue.Value.half, actual.ProcurementPlanQuarter); + Assert.Equal(expected.ProcurementPlan.NewValue.Value.quarter, actual.ProcurementPlanQuarter); Assert.Equal(expected.ProcurementPlan.NewValue.Value.year, actual.ProcurementPlanYear); } else From 04ace92dfa532653e2466e86ff55508852d19ffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 1 Jun 2022 11:41:18 +0200 Subject: [PATCH 060/432] added missing read model updates --- ...ldDataProcessingRegistrationReadModelOnChangesHandler.cs | 6 ++++++ .../BuildItSystemUsageOverviewReadModelOnChangesHandler.cs | 6 ++++++ Presentation.Web/Ninject/KernelBuilder.cs | 2 ++ 3 files changed, 14 insertions(+) diff --git a/Core.DomainServices/GDPR/BuildDataProcessingRegistrationReadModelOnChangesHandler.cs b/Core.DomainServices/GDPR/BuildDataProcessingRegistrationReadModelOnChangesHandler.cs index bc64a77c22..1eb22bcc8e 100644 --- a/Core.DomainServices/GDPR/BuildDataProcessingRegistrationReadModelOnChangesHandler.cs +++ b/Core.DomainServices/GDPR/BuildDataProcessingRegistrationReadModelOnChangesHandler.cs @@ -19,6 +19,7 @@ public class BuildDataProcessingRegistrationReadModelOnChangesHandler : IDomainEventHandler>, IDomainEventHandler>, IDomainEventHandler>, + IDomainEventHandler>, IDomainEventHandler>, IDomainEventHandler>, IDomainEventHandler>, @@ -156,5 +157,10 @@ public void Handle(EntityBeingDeletedEvent domainEvent) .ToList() .ForEach(_pendingReadModelUpdateRepository.Add); } + + public void Handle(EntityBeingDeletedEvent domainEvent) + { + _pendingReadModelUpdateRepository.Add(PendingReadModelUpdate.Create(domainEvent.Entity, PendingReadModelUpdateSourceCategory.DataProcessingRegistration_User)); + } } } diff --git a/Core.DomainServices/SystemUsage/BuildItSystemUsageOverviewReadModelOnChangesHandler.cs b/Core.DomainServices/SystemUsage/BuildItSystemUsageOverviewReadModelOnChangesHandler.cs index f98d737b1f..cf503275bf 100644 --- a/Core.DomainServices/SystemUsage/BuildItSystemUsageOverviewReadModelOnChangesHandler.cs +++ b/Core.DomainServices/SystemUsage/BuildItSystemUsageOverviewReadModelOnChangesHandler.cs @@ -21,6 +21,7 @@ public class BuildItSystemUsageOverviewReadModelOnChangesHandler : IDomainEventHandler>, IDomainEventHandler>, IDomainEventHandler>, + IDomainEventHandler>, IDomainEventHandler>, IDomainEventHandler>, IDomainEventHandler>, @@ -200,5 +201,10 @@ private void BuildFromSource(ItSystemUsageOverviewReadModel model, ItSystemUsage { _readModelUpdate.Apply(itSystemUsage, model); } + + public void Handle(EntityBeingDeletedEvent domainEvent) + { + _pendingReadModelUpdateRepository.Add(PendingReadModelUpdate.Create(domainEvent.Entity, PendingReadModelUpdateSourceCategory.ItSystemUsage_User)); + } } } diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index fe28005ca0..a9273fdb56 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -329,6 +329,7 @@ private void RegisterDomainEventsEngine(IKernel kernel) RegisterDomainEvent, BuildDataProcessingRegistrationReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildDataProcessingRegistrationReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildDataProcessingRegistrationReadModelOnChangesHandler>(kernel); + RegisterDomainEvent, BuildDataProcessingRegistrationReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildDataProcessingRegistrationReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildDataProcessingRegistrationReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildDataProcessingRegistrationReadModelOnChangesHandler>(kernel); @@ -356,6 +357,7 @@ private void RegisterDomainEventsEngine(IKernel kernel) RegisterDomainEvent, BuildItSystemUsageOverviewReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildItSystemUsageOverviewReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildItSystemUsageOverviewReadModelOnChangesHandler>(kernel); + RegisterDomainEvent, BuildItSystemUsageOverviewReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildItSystemUsageOverviewReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildItSystemUsageOverviewReadModelOnChangesHandler>(kernel); RegisterDomainEvent, BuildItSystemUsageOverviewReadModelOnChangesHandler>(kernel); From 9c4ca6b521f28aef335da7ef77f7165df4cc25f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 1 Jun 2022 14:18:50 +0200 Subject: [PATCH 061/432] added organization uuid resolver --- .../Core.DomainServices.csproj | 5 + .../Organizations/IStsOrganizationService.cs | 12 + .../SSO/StsBrugerInfoService.cs | 55 +- .../Factories/BasicHttpBindingFactory.cs | 25 + ...X509CertificateClientCertificateFactory.cs | 31 + .../Infrastructure.STS.Common.csproj | 52 + .../Properties/AssemblyInfo.cs | 36 + .../ServiceReference/AuthorityContext_1.xsd | 14 + .../ServiceReference/CallContext_1.xsd | 29 + ...eReference.ImporterResponseType.datasource | 10 + ...rviceReference.LaesResponseType.datasource | 10 + ...rviceReference.ListResponseType.datasource | 10 + ...viceReference.OpretResponseType.datasource | 10 + ...eReference.PassiverResponseType.datasource | 10 + ...viceReference.RequestHeaderType.datasource | 10 + ...erviceReference.RetResponseType.datasource | 10 + ...rviceReference.SletResponseType.datasource | 10 + ...rviceReference.SoegResponseType.datasource | 10 + ...rviceReference.importerResponse.datasource | 10 + ...n.ServiceReference.laesResponse.datasource | 10 + ...n.ServiceReference.listResponse.datasource | 10 + ....ServiceReference.opretResponse.datasource | 10 + ...rviceReference.passiverResponse.datasource | 10 + ...on.ServiceReference.retResponse.datasource | 10 + ...n.ServiceReference.sletResponse.datasource | 10 + ...n.ServiceReference.soegResponse.datasource | 10 + .../ServiceReference/Organisation.xsd | 75 + .../ServiceReference/OrganisationFaelles.xsd | 25 + .../OrganisationOperationer.xsd | 86 + .../ServiceReference/OrganisationService.wsdl | 238 + .../OrganisationServiceMsg.xsd | 118 + .../ServiceReference/Part.xsd | 10 + .../ServiceReference/Reference.cs | 4152 +++++++++++++++++ .../ServiceReference/Reference.svcmap | 43 + .../ServiceReference/RequestHeader.xsd | 18 + .../ServiceReference/SagDokObjekt.xsd | 803 ++++ .../ServiceplatformFaultMessage.wsdl | 11 + .../ServiceplatformFault_1.xsd | 20 + .../ServiceReference/configuration.svcinfo | 11 + .../ServiceReference/configuration91.svcinfo | 310 ++ .../ServiceReference/policies.wsdl | 34 + .../DomainServices/StsOrganizationService.cs | 106 + .../Infrastructure.STS.Organization.csproj | 225 + .../Properties/AssemblyInfo.cs | 36 + Infrastructure.STS.Organization/Readme.md | 3 + .../OrganisationServiceMsg.xsd | 150 + .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 + .../xsd/1.1.STS-3/Organisation.xsd | 91 + .../xsd/1.1.STS-3/OrganisationBesked.xsd | 24 + .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 + .../xsd/1.1.STS-3/OrganisationOperationer.xsd | 113 + .../SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd | 20 + .../xsd/common/RequestHeader.xsd | 26 + .../SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd | 1059 +++++ .../ServiceContract/sp/AuthorityContext_1.xsd | 22 + .../ServiceContract/sp/CallContext_1.xsd | 38 + .../sp/InvocationContext_1.xsd | 67 + .../sp/ServiceplatformFaultMessage_1.wsdl | 18 + .../sp/ServiceplatformFault_1.xsd | 27 + .../ServiceContract/sp/service.properties | 6 + .../wsdl/context/OrganisationService.wsdl | 245 + .../wsdl/context/policies.wsdl | 40 + .../wsdl/token/OrganisationService.wsdl | 245 + .../ServiceContract/wsdl/token/policies.wsdl | 83 + Infrastructure.STS.Organization/app.config | 18 + KITOS.sln | 19 +- Presentation.Web/Ninject/KernelBuilder.cs | 4 + Presentation.Web/Presentation.Web.csproj | 4 + 68 files changed, 9124 insertions(+), 49 deletions(-) create mode 100644 Core.DomainServices/Organizations/IStsOrganizationService.cs create mode 100644 Infrastructure.STS.Common/Factories/BasicHttpBindingFactory.cs create mode 100644 Infrastructure.STS.Common/Factories/X509CertificateClientCertificateFactory.cs create mode 100644 Infrastructure.STS.Common/Infrastructure.STS.Common.csproj create mode 100644 Infrastructure.STS.Common/Properties/AssemblyInfo.cs create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/AuthorityContext_1.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/CallContext_1.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ImporterResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.LaesResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ListResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.OpretResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.PassiverResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RequestHeaderType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RetResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SletResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SoegResponseType.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.importerResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.laesResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.listResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.opretResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.passiverResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.retResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.sletResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.soegResponse.datasource create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Organisation.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationFaelles.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationOperationer.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationService.wsdl create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationServiceMsg.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Part.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.cs create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.svcmap create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/RequestHeader.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/SagDokObjekt.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFault_1.xsd create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration.svcinfo create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration91.svcinfo create mode 100644 Infrastructure.STS.Organization/Connected Services/ServiceReference/policies.wsdl create mode 100644 Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs create mode 100644 Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj create mode 100644 Infrastructure.STS.Organization/Properties/AssemblyInfo.cs create mode 100644 Infrastructure.STS.Organization/Readme.md create mode 100644 Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl create mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd create mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/service.properties create mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl create mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl create mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl create mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl create mode 100644 Infrastructure.STS.Organization/app.config diff --git a/Core.DomainServices/Core.DomainServices.csproj b/Core.DomainServices/Core.DomainServices.csproj index 62b7499c13..0ef8b8f743 100644 --- a/Core.DomainServices/Core.DomainServices.csproj +++ b/Core.DomainServices/Core.DomainServices.csproj @@ -90,6 +90,7 @@ + @@ -261,6 +262,10 @@ {a05389ea-25f4-45b5-8534-0775d9671456} Infrastructure.Soap + + {423D7522-4882-4438-94F4-7B3F5778C83F} + Infrastructure.STS.Common + diff --git a/Core.DomainServices/Organizations/IStsOrganizationService.cs b/Core.DomainServices/Organizations/IStsOrganizationService.cs new file mode 100644 index 0000000000..290382e7ba --- /dev/null +++ b/Core.DomainServices/Organizations/IStsOrganizationService.cs @@ -0,0 +1,12 @@ +using System; +using Core.Abstractions.Types; +using Core.DomainModel.Organization; + +namespace Core.DomainServices.Organizations +{ + public interface IStsOrganizationService + { + //TODO: Consider specific enum for this error + Result ResolveStsOrganizationUuid(Organization organization); + } +} diff --git a/Core.DomainServices/SSO/StsBrugerInfoService.cs b/Core.DomainServices/SSO/StsBrugerInfoService.cs index e93d5ad4b7..9ecc27733f 100644 --- a/Core.DomainServices/SSO/StsBrugerInfoService.cs +++ b/Core.DomainServices/SSO/StsBrugerInfoService.cs @@ -1,11 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Security.Cryptography.X509Certificates; -using System.ServiceModel; using Core.Abstractions.Types; using Infrastructure.Soap.STSBruger; +using Infrastructure.STS.Common.Factories; using Serilog; namespace Core.DomainServices.SSO @@ -65,9 +64,9 @@ public Maybe GetStsBrugerInfo(Guid uuid, string cvrNumber) private Result<(string emailAdresseUuid, string organisationUuid, string personUuid), string> CollectStsBrugerInformationFromUuid(Guid uuid, string cvrNumber) { - using (var clientCertificate = GetClientCertificate(_certificateThumbprint)) + using (var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint)) { - var client = StsBrugerHelpers.CreateBrugerPortTypeClient(CreateHttpBinding(), + using var client = StsBrugerHelpers.CreateBrugerPortTypeClient(BasicHttpBindingFactory.CreateHttpBinding(), _urlServicePlatformBrugerService, clientCertificate); var laesRequest = StsBrugerHelpers.CreateStsBrugerLaesRequest(cvrNumber, uuid); var brugerPortType = client.ChannelFactory.CreateChannel(); @@ -166,9 +165,9 @@ public Maybe GetStsBrugerInfo(Guid uuid, string cvrNumber) private Result, string> GetStsAdresseEmailFromUuid(string emailAdresseUuid, string cvrNumber) { - using (var clientCertificate = GetClientCertificate(_certificateThumbprint)) + using (var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint)) { - var client = StsAdresseHelpers.CreateAdressePortTypeClient(CreateHttpBinding(), + using var client = StsAdresseHelpers.CreateAdressePortTypeClient(BasicHttpBindingFactory.CreateHttpBinding(), _urlServicePlatformAdresseService, clientCertificate); var laesRequest = StsAdresseHelpers.CreateStsAdresseLaesRequest(cvrNumber, emailAdresseUuid); var adressePortType = client.ChannelFactory.CreateChannel(); @@ -223,9 +222,9 @@ private Result, string> GetStsAdresseEmailFromUuid(string em private Result GetStsPersonFromUuid(string personUuid, string cvrNumber) { - using (var clientCertificate = GetClientCertificate(_certificateThumbprint)) + using (var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint)) { - var client = StsPersonHelpers.CreatePersonPortTypeClient(CreateHttpBinding(), + using var client = StsPersonHelpers.CreatePersonPortTypeClient(BasicHttpBindingFactory.CreateHttpBinding(), _urlServicePlatformPersonService, clientCertificate); var laesRequest = StsPersonHelpers.CreateStsPersonLaesRequest(cvrNumber, personUuid); var virksomhedPortType = client.ChannelFactory.CreateChannel(); @@ -274,45 +273,5 @@ private Result GetStsPersonFromUuid(string personUuid, st return Result.Failure($"Unable to resolve person from personuuid:{personUuid}"); } } - - private static BasicHttpBinding CreateHttpBinding() - { - return new BasicHttpBinding - { - Security = - { - Mode = BasicHttpSecurityMode.Transport, - Transport = {ClientCredentialType = HttpClientCredentialType.Certificate} - }, - MaxReceivedMessageSize = int.MaxValue, - OpenTimeout = new TimeSpan(0, 3, 0), - CloseTimeout = new TimeSpan(0, 3, 0), - ReceiveTimeout = new TimeSpan(0, 3, 0), - SendTimeout = new TimeSpan(0, 3, 0) - }; - } - - private static X509Certificate2 GetClientCertificate(string thumbprint) - { - using (var store = new X509Store(StoreName.My, StoreLocation.LocalMachine)) - { - store.Open(OpenFlags.ReadOnly); - X509Certificate2 result; - try - { - var results = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); - if (results.Count == 0) - { - throw new Exception("Unable to find certificate!"); - } - result = results[0]; - } - finally - { - store.Close(); - } - return result; - } - } } } diff --git a/Infrastructure.STS.Common/Factories/BasicHttpBindingFactory.cs b/Infrastructure.STS.Common/Factories/BasicHttpBindingFactory.cs new file mode 100644 index 0000000000..286d90e3bb --- /dev/null +++ b/Infrastructure.STS.Common/Factories/BasicHttpBindingFactory.cs @@ -0,0 +1,25 @@ +using System; +using System.ServiceModel; + +namespace Infrastructure.STS.Common.Factories +{ + public static class BasicHttpBindingFactory + { + public static BasicHttpBinding CreateHttpBinding() + { + return new BasicHttpBinding + { + Security = + { + Mode = BasicHttpSecurityMode.Transport, + Transport = {ClientCredentialType = HttpClientCredentialType.Certificate} + }, + MaxReceivedMessageSize = int.MaxValue, + OpenTimeout = new TimeSpan(0, 3, 0), + CloseTimeout = new TimeSpan(0, 3, 0), + ReceiveTimeout = new TimeSpan(0, 3, 0), + SendTimeout = new TimeSpan(0, 3, 0) + }; + } + } +} diff --git a/Infrastructure.STS.Common/Factories/X509CertificateClientCertificateFactory.cs b/Infrastructure.STS.Common/Factories/X509CertificateClientCertificateFactory.cs new file mode 100644 index 0000000000..00c193c337 --- /dev/null +++ b/Infrastructure.STS.Common/Factories/X509CertificateClientCertificateFactory.cs @@ -0,0 +1,31 @@ +using System; +using System.Security.Cryptography.X509Certificates; + +namespace Infrastructure.STS.Common.Factories +{ + public static class X509CertificateClientCertificateFactory + { + public static X509Certificate2 GetClientCertificate(string thumbprint, StoreName storeName = StoreName.My, StoreLocation storeLocation = StoreLocation.LocalMachine) + { + using (var store = new X509Store(storeName, storeLocation)) + { + store.Open(OpenFlags.ReadOnly); + X509Certificate2 result; + try + { + var results = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); + if (results.Count == 0) + { + throw new Exception("Unable to find certificate!"); + } + result = results[0]; + } + finally + { + store.Close(); + } + return result; + } + } + } +} diff --git a/Infrastructure.STS.Common/Infrastructure.STS.Common.csproj b/Infrastructure.STS.Common/Infrastructure.STS.Common.csproj new file mode 100644 index 0000000000..bc58944030 --- /dev/null +++ b/Infrastructure.STS.Common/Infrastructure.STS.Common.csproj @@ -0,0 +1,52 @@ + + + + + Debug + AnyCPU + {423D7522-4882-4438-94F4-7B3F5778C83F} + Library + Properties + Infrastructure.STS.Common + Infrastructure.STS.Common + v4.8 + 512 + true + latest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Common/Properties/AssemblyInfo.cs b/Infrastructure.STS.Common/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..5baf45232c --- /dev/null +++ b/Infrastructure.STS.Common/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Infrastructure.STS.Common")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Infrastructure.STS.Common")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("423d7522-4882-4438-94f4-7b3f5778c83f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/AuthorityContext_1.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/AuthorityContext_1.xsd new file mode 100644 index 0000000000..c4b7c49243 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/AuthorityContext_1.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/CallContext_1.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/CallContext_1.xsd new file mode 100644 index 0000000000..b8fe8f6901 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/CallContext_1.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ImporterResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ImporterResponseType.datasource new file mode 100644 index 0000000000..a2f7cd7e06 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ImporterResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.ImporterResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.LaesResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.LaesResponseType.datasource new file mode 100644 index 0000000000..46944fe8bd --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.LaesResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.LaesResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ListResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ListResponseType.datasource new file mode 100644 index 0000000000..029d843a5e --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.ListResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.ListResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.OpretResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.OpretResponseType.datasource new file mode 100644 index 0000000000..1f2691f71f --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.OpretResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.OpretResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.PassiverResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.PassiverResponseType.datasource new file mode 100644 index 0000000000..955acaaf92 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.PassiverResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.PassiverResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RequestHeaderType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RequestHeaderType.datasource new file mode 100644 index 0000000000..2f7fb6c4bc --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RequestHeaderType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.RequestHeaderType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RetResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RetResponseType.datasource new file mode 100644 index 0000000000..01294f6a59 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.RetResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.RetResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SletResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SletResponseType.datasource new file mode 100644 index 0000000000..fc26a2b6eb --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SletResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.SletResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SoegResponseType.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SoegResponseType.datasource new file mode 100644 index 0000000000..55fb5c4601 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.SoegResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.SoegResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.importerResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.importerResponse.datasource new file mode 100644 index 0000000000..3cac56e525 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.importerResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.importerResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.laesResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.laesResponse.datasource new file mode 100644 index 0000000000..2ecf02b532 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.laesResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.laesResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.listResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.listResponse.datasource new file mode 100644 index 0000000000..8f6357d8ea --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.listResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.listResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.opretResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.opretResponse.datasource new file mode 100644 index 0000000000..e1cf5110bd --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.opretResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.opretResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.passiverResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.passiverResponse.datasource new file mode 100644 index 0000000000..a115018630 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.passiverResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.passiverResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.retResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.retResponse.datasource new file mode 100644 index 0000000000..ad0abeb7c5 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.retResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.retResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.sletResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.sletResponse.datasource new file mode 100644 index 0000000000..9f6bf356fc --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.sletResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.sletResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.soegResponse.datasource b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.soegResponse.datasource new file mode 100644 index 0000000000..53330b7884 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Infrastructure.STS.Organization.ServiceReference.soegResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Organization.ServiceReference.soegResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Organisation.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Organisation.xsd new file mode 100644 index 0000000000..851b0076d6 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Organisation.xsd @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationFaelles.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationFaelles.xsd new file mode 100644 index 0000000000..18c70764b2 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationFaelles.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationOperationer.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationOperationer.xsd new file mode 100644 index 0000000000..f61a6d5d52 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationOperationer.xsd @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationService.wsdl b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationService.wsdl new file mode 100644 index 0000000000..fc2c3f5e55 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationService.wsdl @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationServiceMsg.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationServiceMsg.xsd new file mode 100644 index 0000000000..401db5738e --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/OrganisationServiceMsg.xsd @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Part.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Part.xsd new file mode 100644 index 0000000000..2ce9ea4273 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Part.xsd @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.cs b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.cs new file mode 100644 index 0000000000..53b6b869ad --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.cs @@ -0,0 +1,4152 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Infrastructure.STS.Organization.ServiceReference { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + public partial class ServiceplatformFaultType : object, System.ComponentModel.INotifyPropertyChanged { + + private ErrorType[] errorListField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Error", IsNullable=false)] + public ErrorType[] ErrorList { + get { + return this.errorListField; + } + set { + this.errorListField = value; + this.RaisePropertyChanged("ErrorList"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + public partial class ErrorType : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string errorTextField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ErrorText { + get { + return this.errorTextField; + } + set { + this.errorTextField = value; + this.RaisePropertyChanged("ErrorText"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RegistreringType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RegistreringType : object, System.ComponentModel.INotifyPropertyChanged { + + private string noteTekstField; + + private System.DateTime tidspunktField; + + private bool tidspunktFieldSpecified; + + private LivscyklusKodeType livscyklusKodeField; + + private bool livscyklusKodeFieldSpecified; + + private UnikIdType brugerRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime Tidspunkt { + get { + return this.tidspunktField; + } + set { + this.tidspunktField = value; + this.RaisePropertyChanged("Tidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TidspunktSpecified { + get { + return this.tidspunktFieldSpecified; + } + set { + this.tidspunktFieldSpecified = value; + this.RaisePropertyChanged("TidspunktSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public LivscyklusKodeType LivscyklusKode { + get { + return this.livscyklusKodeField; + } + set { + this.livscyklusKodeField = value; + this.RaisePropertyChanged("LivscyklusKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LivscyklusKodeSpecified { + get { + return this.livscyklusKodeFieldSpecified; + } + set { + this.livscyklusKodeFieldSpecified = value; + this.RaisePropertyChanged("LivscyklusKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public UnikIdType BrugerRef { + get { + return this.brugerRefField; + } + set { + this.brugerRefField = value; + this.RaisePropertyChanged("BrugerRef"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public enum LivscyklusKodeType { + + /// + Opstaaet, + + /// + Importeret, + + /// + Passiveret, + + /// + Slettet, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UnikIdType : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("URNIdentifikator", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("UUIDIdentifikator", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0", IncludeInSchema=false)] + public enum ItemChoiceType { + + /// + URNIdentifikator, + + /// + UUIDIdentifikator, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="RegistreringType", Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class RegistreringType1 : RegistreringType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class AttributListeType : object, System.ComponentModel.INotifyPropertyChanged { + + private EgenskabType[] egenskabField; + + private LokalUdvidelseType lokalUdvidelseField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Egenskab", Order=0)] + public EgenskabType[] Egenskab { + get { + return this.egenskabField; + } + set { + this.egenskabField = value; + this.RaisePropertyChanged("Egenskab"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public LokalUdvidelseType LokalUdvidelse { + get { + return this.lokalUdvidelseField; + } + set { + this.lokalUdvidelseField = value; + this.RaisePropertyChanged("LokalUdvidelse"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class EgenskabType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private string brugervendtNoegleTekstField; + + private string organisationNavnField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public string BrugervendtNoegleTekst { + get { + return this.brugervendtNoegleTekstField; + } + set { + this.brugervendtNoegleTekstField = value; + this.RaisePropertyChanged("BrugervendtNoegleTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=2)] + public string OrganisationNavn { + get { + return this.organisationNavnField; + } + set { + this.organisationNavnField = value; + this.RaisePropertyChanged("OrganisationNavn"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class VirkningType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private UnikIdType aktoerRefField; + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public UnikIdType AktoerRef { + get { + return this.aktoerRefField; + } + set { + this.aktoerRefField = value; + this.RaisePropertyChanged("AktoerRef"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class TidspunktType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("GraenseIndikator", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("TidsstempelDatoTid", typeof(System.DateTime), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public enum AktoerTypeKodeType { + + /// + Organisation, + + /// + OrganisationEnhed, + + /// + OrganisationFunktion, + + /// + Bruger, + + /// + ItSystem, + + /// + Interessefaellesskab, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LokalUdvidelseType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class TilstandListeType : object, System.ComponentModel.INotifyPropertyChanged { + + private GyldighedType[] gyldighedField; + + private LokalUdvidelseType lokalUdvidelseField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Gyldighed", Namespace="urn:oio:sts:organisation:1.1.3.0", Order=0)] + public GyldighedType[] Gyldighed { + get { + return this.gyldighedField; + } + set { + this.gyldighedField = value; + this.RaisePropertyChanged("Gyldighed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public LokalUdvidelseType LokalUdvidelse { + get { + return this.lokalUdvidelseField; + } + set { + this.lokalUdvidelseField = value; + this.RaisePropertyChanged("LokalUdvidelse"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:1.1.3.0")] + public partial class GyldighedType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private GyldighedStatusKodeType gyldighedStatusKodeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public GyldighedStatusKodeType GyldighedStatusKode { + get { + return this.gyldighedStatusKodeField; + } + set { + this.gyldighedStatusKodeField = value; + this.RaisePropertyChanged("GyldighedStatusKode"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:1.1.3.0")] + public enum GyldighedStatusKodeType { + + /// + Aktiv, + + /// + Inaktiv, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class RelationListeType : object, System.ComponentModel.INotifyPropertyChanged { + + private AdresseFlerRelationType[] adresserField; + + private PersonFlerRelationType[] ansatteField; + + private KlasseRelationType brancheField; + + private KlasseRelationType organisationstypeField; + + private MyndighedRelationType myndighedField; + + private KlasseRelationType myndighedstypeField; + + private KlasseFlerRelationType[] opgaverField; + + private OrganisationEnhedRelationType overordnetField; + + private VirksomhedRelationType produktionsenhedField; + + private VirksomhedRelationType skatteenhedField; + + private OrganisationRelationType tilhoererField; + + private BrugerFlerRelationType[] tilknyttedeBrugereField; + + private OrganisationEnhedFlerRelationType[] tilknyttedeEnhederField; + + private OrganisationFunktionFlerRelationType[] tilknyttedeFunktionerField; + + private InteressefaellesskabFlerRelationType[] tilknyttedeInteressefaellesskaberField; + + private OrganisationFlerRelationType[] tilknyttedeOrganisationerField; + + private PersonFlerRelationType[] tilknyttedePersonerField; + + private ItSystemFlerRelationType[] tilknyttedeItSystemerField; + + private VirksomhedRelationType virksomhedField; + + private KlasseRelationType virksomhedstypeField; + + private LokalUdvidelseType lokalUdvidelseField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Adresser", Namespace="urn:oio:sagdok:3.0.0", Order=0)] + public AdresseFlerRelationType[] Adresser { + get { + return this.adresserField; + } + set { + this.adresserField = value; + this.RaisePropertyChanged("Adresser"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Ansatte", Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public PersonFlerRelationType[] Ansatte { + get { + return this.ansatteField; + } + set { + this.ansatteField = value; + this.RaisePropertyChanged("Ansatte"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=2)] + public KlasseRelationType Branche { + get { + return this.brancheField; + } + set { + this.brancheField = value; + this.RaisePropertyChanged("Branche"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=3)] + public KlasseRelationType Organisationstype { + get { + return this.organisationstypeField; + } + set { + this.organisationstypeField = value; + this.RaisePropertyChanged("Organisationstype"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=4)] + public MyndighedRelationType Myndighed { + get { + return this.myndighedField; + } + set { + this.myndighedField = value; + this.RaisePropertyChanged("Myndighed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=5)] + public KlasseRelationType Myndighedstype { + get { + return this.myndighedstypeField; + } + set { + this.myndighedstypeField = value; + this.RaisePropertyChanged("Myndighedstype"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Opgaver", Namespace="urn:oio:sagdok:3.0.0", Order=6)] + public KlasseFlerRelationType[] Opgaver { + get { + return this.opgaverField; + } + set { + this.opgaverField = value; + this.RaisePropertyChanged("Opgaver"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=7)] + public OrganisationEnhedRelationType Overordnet { + get { + return this.overordnetField; + } + set { + this.overordnetField = value; + this.RaisePropertyChanged("Overordnet"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=8)] + public VirksomhedRelationType Produktionsenhed { + get { + return this.produktionsenhedField; + } + set { + this.produktionsenhedField = value; + this.RaisePropertyChanged("Produktionsenhed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=9)] + public VirksomhedRelationType Skatteenhed { + get { + return this.skatteenhedField; + } + set { + this.skatteenhedField = value; + this.RaisePropertyChanged("Skatteenhed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=10)] + public OrganisationRelationType Tilhoerer { + get { + return this.tilhoererField; + } + set { + this.tilhoererField = value; + this.RaisePropertyChanged("Tilhoerer"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeBrugere", Namespace="urn:oio:sagdok:3.0.0", Order=11)] + public BrugerFlerRelationType[] TilknyttedeBrugere { + get { + return this.tilknyttedeBrugereField; + } + set { + this.tilknyttedeBrugereField = value; + this.RaisePropertyChanged("TilknyttedeBrugere"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeEnheder", Namespace="urn:oio:sagdok:3.0.0", Order=12)] + public OrganisationEnhedFlerRelationType[] TilknyttedeEnheder { + get { + return this.tilknyttedeEnhederField; + } + set { + this.tilknyttedeEnhederField = value; + this.RaisePropertyChanged("TilknyttedeEnheder"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeFunktioner", Namespace="urn:oio:sagdok:3.0.0", Order=13)] + public OrganisationFunktionFlerRelationType[] TilknyttedeFunktioner { + get { + return this.tilknyttedeFunktionerField; + } + set { + this.tilknyttedeFunktionerField = value; + this.RaisePropertyChanged("TilknyttedeFunktioner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeInteressefaellesskaber", Namespace="urn:oio:sagdok:3.0.0", Order=14)] + public InteressefaellesskabFlerRelationType[] TilknyttedeInteressefaellesskaber { + get { + return this.tilknyttedeInteressefaellesskaberField; + } + set { + this.tilknyttedeInteressefaellesskaberField = value; + this.RaisePropertyChanged("TilknyttedeInteressefaellesskaber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeOrganisationer", Namespace="urn:oio:sagdok:3.0.0", Order=15)] + public OrganisationFlerRelationType[] TilknyttedeOrganisationer { + get { + return this.tilknyttedeOrganisationerField; + } + set { + this.tilknyttedeOrganisationerField = value; + this.RaisePropertyChanged("TilknyttedeOrganisationer"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedePersoner", Namespace="urn:oio:sagdok:3.0.0", Order=16)] + public PersonFlerRelationType[] TilknyttedePersoner { + get { + return this.tilknyttedePersonerField; + } + set { + this.tilknyttedePersonerField = value; + this.RaisePropertyChanged("TilknyttedePersoner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeItSystemer", Namespace="urn:oio:sagdok:3.0.0", Order=17)] + public ItSystemFlerRelationType[] TilknyttedeItSystemer { + get { + return this.tilknyttedeItSystemerField; + } + set { + this.tilknyttedeItSystemerField = value; + this.RaisePropertyChanged("TilknyttedeItSystemer"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=18)] + public VirksomhedRelationType Virksomhed { + get { + return this.virksomhedField; + } + set { + this.virksomhedField = value; + this.RaisePropertyChanged("Virksomhed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=19)] + public KlasseRelationType Virksomhedstype { + get { + return this.virksomhedstypeField; + } + set { + this.virksomhedstypeField = value; + this.RaisePropertyChanged("Virksomhedstype"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=20)] + public LokalUdvidelseType LokalUdvidelse { + get { + return this.lokalUdvidelseField; + } + set { + this.lokalUdvidelseField = value; + this.RaisePropertyChanged("LokalUdvidelse"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class AdresseFlerRelationType : FlerRelationType { + + private UnikIdType rolleField; + + private UnikIdType typeField; + + private string indeksField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public UnikIdType Rolle { + get { + return this.rolleField; + } + set { + this.rolleField = value; + this.RaisePropertyChanged("Rolle"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public UnikIdType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Indeks { + get { + return this.indeksField; + } + set { + this.indeksField = value; + this.RaisePropertyChanged("Indeks"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ArkivFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(DokumentFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PartFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(SagFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ItSystemFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(InteressefaellesskabFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationFunktionFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationEnhedFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BrugerFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(KlasseFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PersonFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AdresseFlerRelationType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class FlerRelationType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private UnikIdType referenceIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public UnikIdType ReferenceID { + get { + return this.referenceIDField; + } + set { + this.referenceIDField = value; + this.RaisePropertyChanged("ReferenceID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ArkivFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class DokumentFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class PartFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SagFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class AktoerFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ItSystemFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class InteressefaellesskabFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationFunktionFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationEnhedFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class BrugerFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class KlasseFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class PersonFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class KlasseRelationType : RelationType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(KlassifikationRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(FacetRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(DokumentRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(SagRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ArkivRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VirksomhedRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationEnhedRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MyndighedRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(KlasseRelationType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RelationType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private UnikIdType referenceIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public UnikIdType ReferenceID { + get { + return this.referenceIDField; + } + set { + this.referenceIDField = value; + this.RaisePropertyChanged("ReferenceID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class KlassifikationRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class FacetRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class DokumentRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SagRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ArkivRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class AktoerRelationType : RelationType { + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class VirksomhedRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationEnhedRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class MyndighedRelationType : RelationType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(LaesFiltreretOutputType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PartType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SagDokObjektType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LaesFiltreretOutputType : SagDokObjektType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:part:1.1.3.0")] + public partial class PartType : SagDokObjektType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:1.1.3.0")] + public partial class AktoerType : PartType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class OrganisationType : AktoerType { + + private RegistreringType1[] registreringField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Registrering", Order=0)] + public RegistreringType1[] Registrering { + get { + return this.registreringField; + } + set { + this.registreringField = value; + this.RaisePropertyChanged("Registrering"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class FiltreretOejebliksbilledeType : object, System.ComponentModel.INotifyPropertyChanged { + + private SagDokObjektType objektTypeField; + + private RegistreringType1[] registreringField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SagDokObjektType ObjektType { + get { + return this.objektTypeField; + } + set { + this.objektTypeField = value; + this.RaisePropertyChanged("ObjektType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Registrering", Order=1)] + public RegistreringType1[] Registrering { + get { + return this.registreringField; + } + set { + this.registreringField = value; + this.RaisePropertyChanged("Registrering"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(UnikReturType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class StandardReturType : object, System.ComponentModel.INotifyPropertyChanged { + + private string statusKodeField; + + private string fejlbeskedTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string StatusKode { + get { + return this.statusKodeField; + } + set { + this.statusKodeField = value; + this.RaisePropertyChanged("StatusKode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FejlbeskedTekst { + get { + return this.fejlbeskedTekstField; + } + set { + this.fejlbeskedTekstField = value; + this.RaisePropertyChanged("FejlbeskedTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UnikReturType : StandardReturType { + + private string typeField; + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpretOutputType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(LaesOutputType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class BasicOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OpretOutputType : BasicOutputType { + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class LaesOutputType : BasicOutputType { + + private FiltreretOejebliksbilledeType filtreretOejebliksbilledeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public FiltreretOejebliksbilledeType FiltreretOejebliksbillede { + get { + return this.filtreretOejebliksbilledeField; + } + set { + this.filtreretOejebliksbilledeField = value; + this.RaisePropertyChanged("FiltreretOejebliksbillede"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class OpretResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private OpretOutputType opretOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public OpretOutputType OpretOutput { + get { + return this.opretOutputField; + } + set { + this.opretOutputField = value; + this.RaisePropertyChanged("OpretOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpretInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OpretInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="OpretInputType", Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class OpretInputType1 : OpretInputType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/")] + public partial class AuthorityContextType : object, System.ComponentModel.INotifyPropertyChanged { + + private string municipalityCVRField; + + /// + public string MunicipalityCVR { + get { + return this.municipalityCVRField; + } + set { + this.municipalityCVRField = value; + this.RaisePropertyChanged("MunicipalityCVR"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/")] + public partial class CallContextType : object, System.ComponentModel.INotifyPropertyChanged { + + private string onBehalfOfUserField; + + private string callersServiceCallIdentifierField; + + private string accountingInfoField; + + /// + public string OnBehalfOfUser { + get { + return this.onBehalfOfUserField; + } + set { + this.onBehalfOfUserField = value; + this.RaisePropertyChanged("OnBehalfOfUser"); + } + } + + /// + public string CallersServiceCallIdentifier { + get { + return this.callersServiceCallIdentifierField; + } + set { + this.callersServiceCallIdentifierField = value; + this.RaisePropertyChanged("CallersServiceCallIdentifier"); + } + } + + /// + public string AccountingInfo { + get { + return this.accountingInfoField; + } + set { + this.accountingInfoField = value; + this.RaisePropertyChanged("AccountingInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class OpretRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private OpretInputType1 opretInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public OpretInputType1 OpretInput { + get { + return this.opretInputField; + } + set { + this.opretInputField = value; + this.RaisePropertyChanged("OpretInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", ConfigurationName="ServiceReference.OrganisationPortType")] + public interface OrganisationPortType { + + // CODEGEN: Generating message contract since the operation opret is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/opret", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/opret", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.opretResponse opret(Infrastructure.STS.Organization.ServiceReference.opretRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/opret", ReplyAction="*")] + System.Threading.Tasks.Task opretAsync(Infrastructure.STS.Organization.ServiceReference.opretRequest request); + + // CODEGEN: Generating message contract since the operation importer is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/importer", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/importer", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.importerResponse importer(Infrastructure.STS.Organization.ServiceReference.importerRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/importer", ReplyAction="*")] + System.Threading.Tasks.Task importerAsync(Infrastructure.STS.Organization.ServiceReference.importerRequest request); + + // CODEGEN: Generating message contract since the operation passiver is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/passiver", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/passiver", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.passiverResponse passiver(Infrastructure.STS.Organization.ServiceReference.passiverRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/passiver", ReplyAction="*")] + System.Threading.Tasks.Task passiverAsync(Infrastructure.STS.Organization.ServiceReference.passiverRequest request); + + // CODEGEN: Generating message contract since the operation laes is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/laes", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/laes", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.laesResponse laes(Infrastructure.STS.Organization.ServiceReference.laesRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/laes", ReplyAction="*")] + System.Threading.Tasks.Task laesAsync(Infrastructure.STS.Organization.ServiceReference.laesRequest request); + + // CODEGEN: Generating message contract since the operation ret is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/ret", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/ret", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.retResponse ret(Infrastructure.STS.Organization.ServiceReference.retRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/ret", ReplyAction="*")] + System.Threading.Tasks.Task retAsync(Infrastructure.STS.Organization.ServiceReference.retRequest request); + + // CODEGEN: Generating message contract since the operation slet is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/slet", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/slet", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.sletResponse slet(Infrastructure.STS.Organization.ServiceReference.sletRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/slet", ReplyAction="*")] + System.Threading.Tasks.Task sletAsync(Infrastructure.STS.Organization.ServiceReference.sletRequest request); + + // CODEGEN: Generating message contract since the operation soeg is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/soeg", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/soeg", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.soegResponse soeg(Infrastructure.STS.Organization.ServiceReference.soegRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/soeg", ReplyAction="*")] + System.Threading.Tasks.Task soegAsync(Infrastructure.STS.Organization.ServiceReference.soegRequest request); + + // CODEGEN: Generating message contract since the operation list is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/list", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Organization.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/list", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Organization.ServiceReference.listResponse list(Infrastructure.STS.Organization.ServiceReference.listRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/list", ReplyAction="*")] + System.Threading.Tasks.Task listAsync(Infrastructure.STS.Organization.ServiceReference.listRequest request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public partial class RequestHeaderType : object, System.ComponentModel.INotifyPropertyChanged { + + private string transactionUUIDField; + + /// + public string TransactionUUID { + get { + return this.transactionUUIDField; + } + set { + this.transactionUUIDField = value; + this.RaisePropertyChanged("TransactionUUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class opretRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="OpretRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.OpretRequestType OpretRequest1; + + public opretRequest() { + } + + public opretRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.OpretRequestType OpretRequest1) { + this.RequestHeader = RequestHeader; + this.OpretRequest1 = OpretRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class opretResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="OpretResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.OpretResponseType OpretResponse1; + + public opretResponse() { + } + + public opretResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.OpretResponseType OpretResponse1) { + this.RequestHeader = RequestHeader; + this.OpretResponse1 = OpretResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class ImporterRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private ImportInputType importInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public ImportInputType ImportInput { + get { + return this.importInputField; + } + set { + this.importInputField = value; + this.RaisePropertyChanged("ImportInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class ImportInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private OrganisationType organisationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public OrganisationType Organisation { + get { + return this.organisationField; + } + set { + this.organisationField = value; + this.RaisePropertyChanged("Organisation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class ImporterResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType importOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public BasicOutputType ImportOutput { + get { + return this.importOutputField; + } + set { + this.importOutputField = value; + this.RaisePropertyChanged("ImportOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importerRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ImporterRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.ImporterRequestType ImporterRequest1; + + public importerRequest() { + } + + public importerRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ImporterRequestType ImporterRequest1) { + this.RequestHeader = RequestHeader; + this.ImporterRequest1 = ImporterRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importerResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ImporterResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.ImporterResponseType ImporterResponse1; + + public importerResponse() { + } + + public importerResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ImporterResponseType ImporterResponse1) { + this.RequestHeader = RequestHeader; + this.ImporterResponse1 = ImporterResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class PassiverRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private UuidNoteInputType passiverInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public UuidNoteInputType PassiverInput { + get { + return this.passiverInputField; + } + set { + this.passiverInputField = value; + this.RaisePropertyChanged("PassiverInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UuidNoteInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class PassiverResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType passiverOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public BasicOutputType PassiverOutput { + get { + return this.passiverOutputField; + } + set { + this.passiverOutputField = value; + this.RaisePropertyChanged("PassiverOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class passiverRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="PassiverRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.PassiverRequestType PassiverRequest1; + + public passiverRequest() { + } + + public passiverRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.PassiverRequestType PassiverRequest1) { + this.RequestHeader = RequestHeader; + this.PassiverRequest1 = PassiverRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class passiverResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="PassiverResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.PassiverResponseType PassiverResponse1; + + public passiverResponse() { + } + + public passiverResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.PassiverResponseType PassiverResponse1) { + this.RequestHeader = RequestHeader; + this.PassiverResponse1 = PassiverResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class LaesRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private LaesInputType laesInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public LaesInputType LaesInput { + get { + return this.laesInputField; + } + set { + this.laesInputField = value; + this.RaisePropertyChanged("LaesInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LaesInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private TidspunktType virkningFraFilterField; + + private TidspunktType virkningTilFilterField; + + private TidspunktType registreringFraFilterField; + + private TidspunktType registreringTilFilterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType VirkningFraFilter { + get { + return this.virkningFraFilterField; + } + set { + this.virkningFraFilterField = value; + this.RaisePropertyChanged("VirkningFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public TidspunktType VirkningTilFilter { + get { + return this.virkningTilFilterField; + } + set { + this.virkningTilFilterField = value; + this.RaisePropertyChanged("VirkningTilFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public TidspunktType RegistreringFraFilter { + get { + return this.registreringFraFilterField; + } + set { + this.registreringFraFilterField = value; + this.RaisePropertyChanged("RegistreringFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public TidspunktType RegistreringTilFilter { + get { + return this.registreringTilFilterField; + } + set { + this.registreringTilFilterField = value; + this.RaisePropertyChanged("RegistreringTilFilter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class LaesResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private LaesOutputType laesOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public LaesOutputType LaesOutput { + get { + return this.laesOutputField; + } + set { + this.laesOutputField = value; + this.RaisePropertyChanged("LaesOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class laesRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="LaesRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.LaesRequestType LaesRequest1; + + public laesRequest() { + } + + public laesRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.LaesRequestType LaesRequest1) { + this.RequestHeader = RequestHeader; + this.LaesRequest1 = LaesRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class laesResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="LaesResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.LaesResponseType LaesResponse1; + + public laesResponse() { + } + + public laesResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.LaesResponseType LaesResponse1) { + this.RequestHeader = RequestHeader; + this.LaesResponse1 = LaesResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class RetRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private RetInputType1 retInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public RetInputType1 RetInput { + get { + return this.retInputField; + } + set { + this.retInputField = value; + this.RaisePropertyChanged("RetInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="RetInputType", Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class RetInputType1 : RetInputType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RetInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RetInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class RetResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType retOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public BasicOutputType RetOutput { + get { + return this.retOutputField; + } + set { + this.retOutputField = value; + this.RaisePropertyChanged("RetOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class retRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="RetRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.RetRequestType RetRequest1; + + public retRequest() { + } + + public retRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.RetRequestType RetRequest1) { + this.RequestHeader = RequestHeader; + this.RetRequest1 = RetRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class retResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="RetResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.RetResponseType RetResponse1; + + public retResponse() { + } + + public retResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.RetResponseType RetResponse1) { + this.RequestHeader = RequestHeader; + this.RetResponse1 = RetResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class SletRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private UuidNoteInputType sletInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public UuidNoteInputType SletInput { + get { + return this.sletInputField; + } + set { + this.sletInputField = value; + this.RaisePropertyChanged("SletInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class SletResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType sletOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public BasicOutputType SletOutput { + get { + return this.sletOutputField; + } + set { + this.sletOutputField = value; + this.RaisePropertyChanged("SletOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class sletRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SletRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.SletRequestType SletRequest1; + + public sletRequest() { + } + + public sletRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SletRequestType SletRequest1) { + this.RequestHeader = RequestHeader; + this.SletRequest1 = SletRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class sletResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SletResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.SletResponseType SletResponse1; + + public sletResponse() { + } + + public sletResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SletResponseType SletResponse1) { + this.RequestHeader = RequestHeader; + this.SletResponse1 = SletResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class SoegRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private SoegInputType1 soegInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public SoegInputType1 SoegInput { + get { + return this.soegInputField; + } + set { + this.soegInputField = value; + this.RaisePropertyChanged("SoegInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="SoegInputType", Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class SoegInputType1 : SoegInputType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(SoegInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string foersteResultatReferenceField; + + private string maksimalAntalKvantitetField; + + private SoegRegistreringType soegRegistreringField; + + private SoegVirkningType soegVirkningField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string FoersteResultatReference { + get { + return this.foersteResultatReferenceField; + } + set { + this.foersteResultatReferenceField = value; + this.RaisePropertyChanged("FoersteResultatReference"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string MaksimalAntalKvantitet { + get { + return this.maksimalAntalKvantitetField; + } + set { + this.maksimalAntalKvantitetField = value; + this.RaisePropertyChanged("MaksimalAntalKvantitet"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public SoegRegistreringType SoegRegistrering { + get { + return this.soegRegistreringField; + } + set { + this.soegRegistreringField = value; + this.RaisePropertyChanged("SoegRegistrering"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public SoegVirkningType SoegVirkning { + get { + return this.soegVirkningField; + } + set { + this.soegVirkningField = value; + this.RaisePropertyChanged("SoegVirkning"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegRegistreringType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private LivscyklusKodeType livscyklusKodeField; + + private bool livscyklusKodeFieldSpecified; + + private UnikIdType brugerRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public LivscyklusKodeType LivscyklusKode { + get { + return this.livscyklusKodeField; + } + set { + this.livscyklusKodeField = value; + this.RaisePropertyChanged("LivscyklusKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LivscyklusKodeSpecified { + get { + return this.livscyklusKodeFieldSpecified; + } + set { + this.livscyklusKodeFieldSpecified = value; + this.RaisePropertyChanged("LivscyklusKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public UnikIdType BrugerRef { + get { + return this.brugerRefField; + } + set { + this.brugerRefField = value; + this.RaisePropertyChanged("BrugerRef"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegVirkningType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private UnikIdType aktoerRefField; + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public UnikIdType AktoerRef { + get { + return this.aktoerRefField; + } + set { + this.aktoerRefField = value; + this.RaisePropertyChanged("AktoerRef"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class SoegResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private SoegOutputType soegOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public SoegOutputType SoegOutput { + get { + return this.soegOutputField; + } + set { + this.soegOutputField = value; + this.RaisePropertyChanged("SoegOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + private string[] idListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=1)] + [System.Xml.Serialization.XmlArrayItemAttribute("UUIDIdentifikator", IsNullable=false)] + public string[] IdListe { + get { + return this.idListeField; + } + set { + this.idListeField = value; + this.RaisePropertyChanged("IdListe"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class soegRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SoegRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.SoegRequestType SoegRequest1; + + public soegRequest() { + } + + public soegRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SoegRequestType SoegRequest1) { + this.RequestHeader = RequestHeader; + this.SoegRequest1 = SoegRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class soegResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SoegResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.SoegResponseType SoegResponse1; + + public soegResponse() { + } + + public soegResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SoegResponseType SoegResponse1) { + this.RequestHeader = RequestHeader; + this.SoegResponse1 = SoegResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class ListRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private ListInputType listInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=2)] + public ListInputType ListInput { + get { + return this.listInputField; + } + set { + this.listInputField = value; + this.RaisePropertyChanged("ListInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ListInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] uUIDIdentifikatorField; + + private TidspunktType virkningFraFilterField; + + private TidspunktType virkningTilFilterField; + + private TidspunktType registreringFraFilterField; + + private TidspunktType registreringTilFilterField; + + /// + [System.Xml.Serialization.XmlElementAttribute("UUIDIdentifikator", Order=0)] + public string[] UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType VirkningFraFilter { + get { + return this.virkningFraFilterField; + } + set { + this.virkningFraFilterField = value; + this.RaisePropertyChanged("VirkningFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public TidspunktType VirkningTilFilter { + get { + return this.virkningTilFilterField; + } + set { + this.virkningTilFilterField = value; + this.RaisePropertyChanged("VirkningTilFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public TidspunktType RegistreringFraFilter { + get { + return this.registreringFraFilterField; + } + set { + this.registreringFraFilterField = value; + this.RaisePropertyChanged("RegistreringFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public TidspunktType RegistreringTilFilter { + get { + return this.registreringTilFilterField; + } + set { + this.registreringTilFilterField = value; + this.RaisePropertyChanged("RegistreringTilFilter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/")] + public partial class ListResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private ListOutputType1 listOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisation:1.1.3.0", Order=0)] + public ListOutputType1 ListOutput { + get { + return this.listOutputField; + } + set { + this.listOutputField = value; + this.RaisePropertyChanged("ListOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="ListOutputType", Namespace="urn:oio:sts:organisation:organisation:1.1.3.0")] + public partial class ListOutputType1 : ListOutputType { + + private FiltreretOejebliksbilledeType[] filtreretOejebliksbilledeField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FiltreretOejebliksbillede", Order=0)] + public FiltreretOejebliksbilledeType[] FiltreretOejebliksbillede { + get { + return this.filtreretOejebliksbilledeField; + } + set { + this.filtreretOejebliksbilledeField = value; + this.RaisePropertyChanged("FiltreretOejebliksbillede"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ListOutputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ListOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class listRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ListRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.ListRequestType ListRequest1; + + public listRequest() { + } + + public listRequest(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ListRequestType ListRequest1) { + this.RequestHeader = RequestHeader; + this.ListRequest1 = ListRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class listResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ListResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Organisation/5/", Order=0)] + public Infrastructure.STS.Organization.ServiceReference.ListResponseType ListResponse1; + + public listResponse() { + } + + public listResponse(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ListResponseType ListResponse1) { + this.RequestHeader = RequestHeader; + this.ListResponse1 = ListResponse1; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface OrganisationPortTypeChannel : Infrastructure.STS.Organization.ServiceReference.OrganisationPortType, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class OrganisationPortTypeClient : System.ServiceModel.ClientBase, Infrastructure.STS.Organization.ServiceReference.OrganisationPortType { + + public OrganisationPortTypeClient() { + } + + public OrganisationPortTypeClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public OrganisationPortTypeClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public OrganisationPortTypeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public OrganisationPortTypeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.opretResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.opret(Infrastructure.STS.Organization.ServiceReference.opretRequest request) { + return base.Channel.opret(request); + } + + public Infrastructure.STS.Organization.ServiceReference.OpretResponseType opret(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.OpretRequestType OpretRequest1) { + Infrastructure.STS.Organization.ServiceReference.opretRequest inValue = new Infrastructure.STS.Organization.ServiceReference.opretRequest(); + inValue.RequestHeader = RequestHeader; + inValue.OpretRequest1 = OpretRequest1; + Infrastructure.STS.Organization.ServiceReference.opretResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).opret(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.OpretResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.opretAsync(Infrastructure.STS.Organization.ServiceReference.opretRequest request) { + return base.Channel.opretAsync(request); + } + + public System.Threading.Tasks.Task opretAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.OpretRequestType OpretRequest1) { + Infrastructure.STS.Organization.ServiceReference.opretRequest inValue = new Infrastructure.STS.Organization.ServiceReference.opretRequest(); + inValue.RequestHeader = RequestHeader; + inValue.OpretRequest1 = OpretRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).opretAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.importerResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.importer(Infrastructure.STS.Organization.ServiceReference.importerRequest request) { + return base.Channel.importer(request); + } + + public Infrastructure.STS.Organization.ServiceReference.ImporterResponseType importer(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ImporterRequestType ImporterRequest1) { + Infrastructure.STS.Organization.ServiceReference.importerRequest inValue = new Infrastructure.STS.Organization.ServiceReference.importerRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ImporterRequest1 = ImporterRequest1; + Infrastructure.STS.Organization.ServiceReference.importerResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).importer(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.ImporterResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.importerAsync(Infrastructure.STS.Organization.ServiceReference.importerRequest request) { + return base.Channel.importerAsync(request); + } + + public System.Threading.Tasks.Task importerAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ImporterRequestType ImporterRequest1) { + Infrastructure.STS.Organization.ServiceReference.importerRequest inValue = new Infrastructure.STS.Organization.ServiceReference.importerRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ImporterRequest1 = ImporterRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).importerAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.passiverResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.passiver(Infrastructure.STS.Organization.ServiceReference.passiverRequest request) { + return base.Channel.passiver(request); + } + + public Infrastructure.STS.Organization.ServiceReference.PassiverResponseType passiver(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.PassiverRequestType PassiverRequest1) { + Infrastructure.STS.Organization.ServiceReference.passiverRequest inValue = new Infrastructure.STS.Organization.ServiceReference.passiverRequest(); + inValue.RequestHeader = RequestHeader; + inValue.PassiverRequest1 = PassiverRequest1; + Infrastructure.STS.Organization.ServiceReference.passiverResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).passiver(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.PassiverResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.passiverAsync(Infrastructure.STS.Organization.ServiceReference.passiverRequest request) { + return base.Channel.passiverAsync(request); + } + + public System.Threading.Tasks.Task passiverAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.PassiverRequestType PassiverRequest1) { + Infrastructure.STS.Organization.ServiceReference.passiverRequest inValue = new Infrastructure.STS.Organization.ServiceReference.passiverRequest(); + inValue.RequestHeader = RequestHeader; + inValue.PassiverRequest1 = PassiverRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).passiverAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.laesResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.laes(Infrastructure.STS.Organization.ServiceReference.laesRequest request) { + return base.Channel.laes(request); + } + + public Infrastructure.STS.Organization.ServiceReference.LaesResponseType laes(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.LaesRequestType LaesRequest1) { + Infrastructure.STS.Organization.ServiceReference.laesRequest inValue = new Infrastructure.STS.Organization.ServiceReference.laesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.LaesRequest1 = LaesRequest1; + Infrastructure.STS.Organization.ServiceReference.laesResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).laes(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.LaesResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.laesAsync(Infrastructure.STS.Organization.ServiceReference.laesRequest request) { + return base.Channel.laesAsync(request); + } + + public System.Threading.Tasks.Task laesAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.LaesRequestType LaesRequest1) { + Infrastructure.STS.Organization.ServiceReference.laesRequest inValue = new Infrastructure.STS.Organization.ServiceReference.laesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.LaesRequest1 = LaesRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).laesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.retResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.ret(Infrastructure.STS.Organization.ServiceReference.retRequest request) { + return base.Channel.ret(request); + } + + public Infrastructure.STS.Organization.ServiceReference.RetResponseType ret(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.RetRequestType RetRequest1) { + Infrastructure.STS.Organization.ServiceReference.retRequest inValue = new Infrastructure.STS.Organization.ServiceReference.retRequest(); + inValue.RequestHeader = RequestHeader; + inValue.RetRequest1 = RetRequest1; + Infrastructure.STS.Organization.ServiceReference.retResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).ret(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.RetResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.retAsync(Infrastructure.STS.Organization.ServiceReference.retRequest request) { + return base.Channel.retAsync(request); + } + + public System.Threading.Tasks.Task retAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.RetRequestType RetRequest1) { + Infrastructure.STS.Organization.ServiceReference.retRequest inValue = new Infrastructure.STS.Organization.ServiceReference.retRequest(); + inValue.RequestHeader = RequestHeader; + inValue.RetRequest1 = RetRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).retAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.sletResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.slet(Infrastructure.STS.Organization.ServiceReference.sletRequest request) { + return base.Channel.slet(request); + } + + public Infrastructure.STS.Organization.ServiceReference.SletResponseType slet(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SletRequestType SletRequest1) { + Infrastructure.STS.Organization.ServiceReference.sletRequest inValue = new Infrastructure.STS.Organization.ServiceReference.sletRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SletRequest1 = SletRequest1; + Infrastructure.STS.Organization.ServiceReference.sletResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).slet(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.SletResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.sletAsync(Infrastructure.STS.Organization.ServiceReference.sletRequest request) { + return base.Channel.sletAsync(request); + } + + public System.Threading.Tasks.Task sletAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SletRequestType SletRequest1) { + Infrastructure.STS.Organization.ServiceReference.sletRequest inValue = new Infrastructure.STS.Organization.ServiceReference.sletRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SletRequest1 = SletRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).sletAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.soegResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.soeg(Infrastructure.STS.Organization.ServiceReference.soegRequest request) { + return base.Channel.soeg(request); + } + + public Infrastructure.STS.Organization.ServiceReference.SoegResponseType soeg(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SoegRequestType SoegRequest1) { + Infrastructure.STS.Organization.ServiceReference.soegRequest inValue = new Infrastructure.STS.Organization.ServiceReference.soegRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SoegRequest1 = SoegRequest1; + Infrastructure.STS.Organization.ServiceReference.soegResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).soeg(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.SoegResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.soegAsync(Infrastructure.STS.Organization.ServiceReference.soegRequest request) { + return base.Channel.soegAsync(request); + } + + public System.Threading.Tasks.Task soegAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.SoegRequestType SoegRequest1) { + Infrastructure.STS.Organization.ServiceReference.soegRequest inValue = new Infrastructure.STS.Organization.ServiceReference.soegRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SoegRequest1 = SoegRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).soegAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Organization.ServiceReference.listResponse Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.list(Infrastructure.STS.Organization.ServiceReference.listRequest request) { + return base.Channel.list(request); + } + + public Infrastructure.STS.Organization.ServiceReference.ListResponseType list(ref Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ListRequestType ListRequest1) { + Infrastructure.STS.Organization.ServiceReference.listRequest inValue = new Infrastructure.STS.Organization.ServiceReference.listRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ListRequest1 = ListRequest1; + Infrastructure.STS.Organization.ServiceReference.listResponse retVal = ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).list(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.ListResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Organization.ServiceReference.OrganisationPortType.listAsync(Infrastructure.STS.Organization.ServiceReference.listRequest request) { + return base.Channel.listAsync(request); + } + + public System.Threading.Tasks.Task listAsync(Infrastructure.STS.Organization.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Organization.ServiceReference.ListRequestType ListRequest1) { + Infrastructure.STS.Organization.ServiceReference.listRequest inValue = new Infrastructure.STS.Organization.ServiceReference.listRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ListRequest1 = ListRequest1; + return ((Infrastructure.STS.Organization.ServiceReference.OrganisationPortType)(this)).listAsync(inValue); + } + } +} diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.svcmap b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.svcmap new file mode 100644 index 0000000000..1d66fa040b --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/Reference.svcmap @@ -0,0 +1,43 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/RequestHeader.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/RequestHeader.xsd new file mode 100644 index 0000000000..86cc4c8882 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/RequestHeader.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/SagDokObjekt.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/SagDokObjekt.xsd new file mode 100644 index 0000000000..7d028a840d --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/SagDokObjekt.xsd @@ -0,0 +1,803 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl b/Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl new file mode 100644 index 0000000000..7b2666e388 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFault_1.xsd b/Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFault_1.xsd new file mode 100644 index 0000000000..b0b7ce41e9 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/ServiceplatformFault_1.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration.svcinfo b/Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration.svcinfo new file mode 100644 index 0000000000..a82aa108ac --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration91.svcinfo b/Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration91.svcinfo new file mode 100644 index 0000000000..07d93dba81 --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/configuration91.svcinfo @@ -0,0 +1,310 @@ + + + + + + + OrganisationBinding + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + OrganisationBinding1 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + https://localhost:8080/service/Organisation/Organisation/5 + + + + + + basicHttpBinding + + + OrganisationBinding + + + ServiceReference.OrganisationPortType + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + OrganisationPort + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Connected Services/ServiceReference/policies.wsdl b/Infrastructure.STS.Organization/Connected Services/ServiceReference/policies.wsdl new file mode 100644 index 0000000000..ff60ad349b --- /dev/null +++ b/Infrastructure.STS.Organization/Connected Services/ServiceReference/policies.wsdl @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs new file mode 100644 index 0000000000..17a75b5e7a --- /dev/null +++ b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs @@ -0,0 +1,106 @@ +using System; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; +using Core.Abstractions.Types; +using Core.DomainServices.Extensions; +using Core.DomainServices.Organizations; +using Core.DomainServices.SSO; +using Infrastructure.STS.Common.Factories; +using Infrastructure.STS.Organization.ServiceReference; + +namespace Infrastructure.STS.Organization.DomainServices +{ + public class StsOrganizationService : IStsOrganizationService + { + private readonly string _certificateThumbprint; + private readonly string _serviceRoot; + + public StsOrganizationService(StsOrganisationIntegrationConfiguration configuration) + { + _certificateThumbprint = configuration.CertificateThumbprint; + _serviceRoot = $"https://{configuration.EndpointHost}/service/Organisation/Organisation/5"; + } + + public Result ResolveStsOrganizationUuid(Core.DomainModel.Organization.Organization organization) + { + if (organization == null) + { + throw new ArgumentNullException(nameof(organization)); + } + + var fkOrgIdentity = organization.SsoIdentities.FirstOrDefault(); + if (fkOrgIdentity != null) + { + return fkOrgIdentity.ExternalUuid; + } + + if (!organization.IsCvrInvalid()) + { + return new OperationError("Organization is missing CVR or has an invalid CVR", OperationFailure.BadInput); + } + + using var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint); + using var organizationPortTypeClient = CreateOrganizationPortTypeClient(BasicHttpBindingFactory.CreateHttpBinding(), _serviceRoot, clientCertificate); + var searchRequest = CreateSearchForOrganizationRequest(organization); + var channel = organizationPortTypeClient.ChannelFactory.CreateChannel(); + var response = channel.soeg(searchRequest); + var statusResult = response.SoegResponse1.SoegOutput.StandardRetur; + if (statusResult.StatusKode != "20") //TODO: Create helper + { + return new OperationError($"Error resolving the organization from STS:{statusResult.StatusKode}:{statusResult.FejlbeskedTekst}", OperationFailure.UnknownError); + } + + var ids = response.SoegResponse1.SoegOutput.IdListe; + if (ids.Length != 1) + { + return new OperationError($"Error resolving the organization from STS. Expected a single UUID but got:{string.Join(",", ids)}", OperationFailure.UnknownError); + + } + + return new Guid(ids.Single()); + } + + private static soegRequest CreateSearchForOrganizationRequest(Core.DomainModel.Organization.Organization organization) + { + return new soegRequest + { + SoegRequest1 = new SoegRequestType + { + AuthorityContext = new AuthorityContextType + { + MunicipalityCVR = organization.Cvr + }, + SoegInput = new SoegInputType1 + { + RelationListe = new RelationListeType() + { + Virksomhed = new VirksomhedRelationType() + { + ReferenceID = new UnikIdType() + { + ItemElementName = ItemChoiceType.URNIdentifikator, + Item = $"urn:oio:cvr-nummer:{organization.Cvr}" + } + } + } + } + } + }; + } + + private static OrganisationPortTypeClient CreateOrganizationPortTypeClient(BasicHttpBinding binding, string urlServicePlatformService, X509Certificate2 certificate) + { + return new OrganisationPortTypeClient(binding, new EndpointAddress(urlServicePlatformService)) + { + ClientCredentials = + { + ClientCertificate = + { + Certificate = certificate + } + } + }; + } + } +} diff --git a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj new file mode 100644 index 0000000000..32e1cc08c5 --- /dev/null +++ b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj @@ -0,0 +1,225 @@ + + + + + Debug + AnyCPU + {3DC91665-93BB-442D-B186-7E90C7CD6E32} + Library + Properties + Infrastructure.STS.Organization + Infrastructure.STS.Organization + v4.8 + 512 + true + latest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + True + True + Reference.svcmap + + + + + + + + Designer + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Designer + + + Designer + + + Designer + + + + Designer + + + Designer + + + + Designer + + + Designer + + + + Designer + + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + + + Designer + + + + + + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + + {bd8c90e7-52c7-4ad0-935d-98a2aa89e449} + Core.Abstractions + + + {a76a8e41-74f7-4443-a5f3-059b5414d83b} + Core.DomainModel + + + {adcacc1d-f538-464c-9102-f4c1d6fa35d3} + Core.DomainServices + + + {423D7522-4882-4438-94F4-7B3F5778C83F} + Infrastructure.STS.Common + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Properties/AssemblyInfo.cs b/Infrastructure.STS.Organization/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..ce0ed0eade --- /dev/null +++ b/Infrastructure.STS.Organization/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Infrastructure.STS.Organization")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Infrastructure.STS.Organization")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3dc91665-93bb-442d-b186-7e90c7cd6e32")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Infrastructure.STS.Organization/Readme.md b/Infrastructure.STS.Organization/Readme.md new file mode 100644 index 0000000000..032273d767 --- /dev/null +++ b/Infrastructure.STS.Organization/Readme.md @@ -0,0 +1,3 @@ +Contents of "ServiceContract" are based on this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=4afb35be-7b7a-45b3-ab01-bd5017a8b182 + +Web service proxy is generated based on `ServiceContract\wsdl\context\OrganisationService.wsdl` \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd b/Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd new file mode 100644 index 0000000000..dffc5dadb5 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd new file mode 100644 index 0000000000..ef7604df82 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd new file mode 100644 index 0000000000..6697e76bd2 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd new file mode 100644 index 0000000000..b9e7066a5b --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd new file mode 100644 index 0000000000..e8e1d1b218 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd new file mode 100644 index 0000000000..0090b101b3 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd new file mode 100644 index 0000000000..a6b994566c --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd new file mode 100644 index 0000000000..6b8579c4b9 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd new file mode 100644 index 0000000000..6962705066 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd @@ -0,0 +1,1059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd new file mode 100644 index 0000000000..5346245539 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd new file mode 100644 index 0000000000..545b0beffc --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd new file mode 100644 index 0000000000..e7ab223045 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl new file mode 100644 index 0000000000..d0d0592848 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd new file mode 100644 index 0000000000..92b85d4711 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/service.properties b/Infrastructure.STS.Organization/ServiceContract/sp/service.properties new file mode 100644 index 0000000000..6249fd70f6 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/sp/service.properties @@ -0,0 +1,6 @@ +service.uuid=4afb35be-7b7a-45b3-ab01-bd5017a8b182 +service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 +service.token.wsdl.path= +service.context.wsdl.path= +service.class= +service.endpoint= \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl new file mode 100644 index 0000000000..c7710a1b1e --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl new file mode 100644 index 0000000000..fb482aab5a --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl new file mode 100644 index 0000000000..c7710a1b1e --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl new file mode 100644 index 0000000000..635b7af405 --- /dev/null +++ b/Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/app.config b/Infrastructure.STS.Organization/app.config new file mode 100644 index 0000000000..89eb72b26f --- /dev/null +++ b/Infrastructure.STS.Organization/app.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/KITOS.sln b/KITOS.sln index 4ccd991907..7ad3edb1be 100644 --- a/KITOS.sln +++ b/KITOS.sln @@ -111,6 +111,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure.Ninject", "I EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Abstractions", "Core.Abstractions\Core.Abstractions.csproj", "{BD8C90E7-52C7-4AD0-935D-98A2AA89E449}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure.STS.Organization", "Infrastructure.STS.Organization\Infrastructure.STS.Organization.csproj", "{3DC91665-93BB-442D-B186-7E90C7CD6E32}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure.STS.Common", "Infrastructure.STS.Common\Infrastructure.STS.Common.csproj", "{423D7522-4882-4438-94F4-7B3F5778C83F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "STS", "STS", "{3F0ABEAA-2F6E-4385-8BB1-71695E633E0A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -189,6 +195,14 @@ Global {BD8C90E7-52C7-4AD0-935D-98A2AA89E449}.Debug|Any CPU.Build.0 = Debug|Any CPU {BD8C90E7-52C7-4AD0-935D-98A2AA89E449}.Release|Any CPU.ActiveCfg = Release|Any CPU {BD8C90E7-52C7-4AD0-935D-98A2AA89E449}.Release|Any CPU.Build.0 = Release|Any CPU + {3DC91665-93BB-442D-B186-7E90C7CD6E32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DC91665-93BB-442D-B186-7E90C7CD6E32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DC91665-93BB-442D-B186-7E90C7CD6E32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DC91665-93BB-442D-B186-7E90C7CD6E32}.Release|Any CPU.Build.0 = Release|Any CPU + {423D7522-4882-4438-94F4-7B3F5778C83F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {423D7522-4882-4438-94F4-7B3F5778C83F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {423D7522-4882-4438-94F4-7B3F5778C83F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {423D7522-4882-4438-94F4-7B3F5778C83F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -213,10 +227,13 @@ Global {43199485-65C5-4BFF-88B2-B594D5B58146} = {D8C15077-71C5-4837-9F3C-3B642B142434} {D8C15077-71C5-4837-9F3C-3B642B142434} = {42678F6A-7BFE-40AF-A659-0726A06DCE29} {2285BE42-1FDB-4B48-B9C3-4E87D829515A} = {1755BABD-3C1F-497A-AB69-9D643B576506} - {A05389EA-25F4-45B5-8534-0775D9671456} = {500B4C1D-B871-49A0-94E7-BD0623101EF6} + {A05389EA-25F4-45B5-8534-0775D9671456} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} {7F765808-5258-4E41-8B27-6E7D4667AA24} = {2AC4CFA8-D99E-4DF2-9E2D-202E3A7BD29E} {C01C5F9E-6904-4B4C-94B1-12D7C83F8070} = {500B4C1D-B871-49A0-94E7-BD0623101EF6} {BD8C90E7-52C7-4AD0-935D-98A2AA89E449} = {2AC4CFA8-D99E-4DF2-9E2D-202E3A7BD29E} + {3DC91665-93BB-442D-B186-7E90C7CD6E32} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} + {423D7522-4882-4438-94F4-7B3F5778C83F} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} + {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} = {500B4C1D-B871-49A0-94E7-BD0623101EF6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4890FA32-C82F-4C98-AC7A-2F4EE7F21687} diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index fe28005ca0..b604b551cf 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -114,6 +114,7 @@ using Core.ApplicationServices.UIConfiguration.Handlers; using Core.DomainServices.Repositories.UICustomization; using Core.DomainServices.Tracking; +using Infrastructure.STS.Organization.DomainServices; using Presentation.Web.Controllers.API.V2.External.ItSystems.Mapping; using Presentation.Web.Controllers.API.V2.External.ItInterfaces.Mapping; @@ -274,6 +275,9 @@ public void RegisterServices(IKernel kernel) kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); + + //STS Organization + kernel.Bind().To().InCommandScope(Mode); } private void RegisterMappers(IKernel kernel) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 163463400e..221a2efa53 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1733,6 +1733,10 @@ {0326cae6-87a1-4d66-84ae-eb8ce0340e9f} Infrastructure.Services + + {3DC91665-93BB-442D-B186-7E90C7CD6E32} + Infrastructure.STS.Organization + 10.0 From d1b6fd03f3acd4d58bb66c97f19a2d37e800c07d Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 14:24:15 +0200 Subject: [PATCH 062/432] changes after review --- .../Controllers/API/V1/AuthorizeController.cs | 1 - Presentation.Web/Presentation.Web.csproj | 3 +- .../global-admin-local-admins.controller.ts | 10 +--- .../global-admin-misc.controller.ts | 42 +++++++++------- .../global-admin/global-admin-misc.view.html | 48 +++++++++---------- .../tabs/it-contract-tab-main.controller.ts | 10 +--- ...t-system-usage-tab-archiving.controller.ts | 10 +--- Presentation.Web/app/helpers/FormatHelper.ts | 19 ++++++++ .../models/users/{userDTO.ts => user-dto.ts} | 0 Presentation.Web/app/services/userServices.ts | 2 +- 10 files changed, 75 insertions(+), 70 deletions(-) create mode 100644 Presentation.Web/app/helpers/FormatHelper.ts rename Presentation.Web/app/models/users/{userDTO.ts => user-dto.ts} (100%) diff --git a/Presentation.Web/Controllers/API/V1/AuthorizeController.cs b/Presentation.Web/Controllers/API/V1/AuthorizeController.cs index 5033642113..c5e2167ad8 100644 --- a/Presentation.Web/Controllers/API/V1/AuthorizeController.cs +++ b/Presentation.Web/Controllers/API/V1/AuthorizeController.cs @@ -84,7 +84,6 @@ public HttpResponseMessage GetOrganizations([FromUri]string orderBy = null, [Fro [SwaggerResponse(HttpStatusCode.OK, Type = typeof(ApiReturnDTO>))] public HttpResponseMessage GetUserOrganizations(int userId) { - var test = _organizationService.GetUserOrganizations(userId).Value.ToList(); return _organizationService.GetUserOrganizations(userId) .Select(x => x.OrderBy(user => user.Id)) .Select(x => x.ToList()) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index bcb75364f0..09a509382c 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -344,6 +344,7 @@ + @@ -742,7 +743,7 @@ - + diff --git a/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts index ec249e14d5..acfbddf66e 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts @@ -99,15 +99,7 @@ }); }; - $scope.organizationSelectOptions = selectLazyLoading('api/organization', formatOrganization, null); - - function formatOrganization(org) { - var result = '
' + org.text + '
'; - if (org.cvr) { - result += '
' + org.cvr + '
'; - } - return result; - } + $scope.organizationSelectOptions = selectLazyLoading('api/organization', Kitos.Helpers.FormatHelper.formatOrganizationWithCvr, null); function selectLazyLoading(url, format, paramAry) { return { diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index a8599dfb6b..7d344efa7b 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -32,6 +32,7 @@ "usersWithCrossAccess", "userService", "select2LoadingService", + "$state", ( $rootScope, $scope, @@ -44,7 +45,8 @@ usersWithRightsholderAccess: Kitos.Models.Api.IUserWithOrganizationName[], usersWithCrossAccess: Kitos.Models.Api.IUserWithCrossAccess[], userService: Kitos.Services.IUserService, - select2LoadingService: Kitos.Services.ISelect2LoadingService) => { + select2LoadingService: Kitos.Services.ISelect2LoadingService, + $state) => { $rootScope.page.title = "Andet"; $scope.brokenLinksVm = Kitos.Models.ViewModel.GlobalAdmin.BrokenLinks.BrokenLinksViewModelMapper.mapFromApiResponse(brokenLinkStatus); @@ -148,6 +150,8 @@ $scope.$watch("selectedUser", function (newVal, oldVal) { if (newVal === oldVal || !newVal) return; + if (typeof newVal === "object") + return; $scope.userOrganizations = []; userService.getUserOrganizations(newVal).then(res => { $scope.userOrganizations.pushArray(res); @@ -156,26 +160,32 @@ }); $scope.removeUser = (id: number) => { - userService.deleteUser(id) - .then(() => { - $scope.userSelected = false; - $scope.selectedUser = null; - } - ).catch(ex => console.log(ex)); + const name = $scope.selectedUser.text; + const email = $scope.selectedUser.email; + + //$state.go("global-admin-misc-user-delete", { id: id}); + const nameAndEmail = `${$scope.selectedUser.text}, ${$scope.selectedUser.email}`; + if (confirm(`Er du sikker på, at du vil slette ${nameAndEmail}`)) { + notify.addInfoMessage(`Sletter ${nameAndEmail}`); + userService.deleteUser(id) + .then(() => { + notify.addSuccessMessage(`Sletter ${nameAndEmail}`); + $scope.userSelected = false; + $scope.selectedUser = null; + } + ).catch(ex => { + console.log(ex); + notify.addErrorMessage(`Fejl ifm. sletning af brugeren Sletter ${nameAndEmail}`); + $scope.reload(); + }); + $state.reload(); + } }; function toggleKleButtonsClickAbility(updateAvailButton: boolean, updateButton: boolean) { $scope.KleUpdateAvailableButtonInteraction = updateAvailButton; $scope.KleApplyUpdateButtonInteraction = updateButton; } - - function formatUser(user) { - var result = '
' + user.text + '
'; - if (user.email) { - result += '
' + user.email + '
'; - } - return result; - } function getAvailableUsers() { return select2LoadingService.loadSelect2WithDataSource( @@ -193,7 +203,7 @@ }) ) , false - , formatUser); + , Kitos.Helpers.FormatHelper.formatUserWithEmail); } }]); })(angular, app); \ No newline at end of file diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index 4e02180211..2cf230dffe 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -17,40 +17,40 @@

Rapport over brudte links

Rapporten over brudte links er endnu ikke tilgængelig. Forventet tilgængelighed er "Mandag i næste uge".

- - -

*INSERT TEXT IN DANISH*

+ +

Nedlæg bruger

-
+
- - - - - - - - - - - - - +
+ {{selectedUser.text}} {{selectedUser.email}} + Brugeren er stadig medlem af følgende organisationer +
Organization name
{{ org.name }}
+ + + + + + + + + + + -
Organisation
{{ org.name }}
+ +

Oversigt over brugere med API relaterede rettigheder

diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 533e0feb17..7e4ce5bec3 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -207,15 +207,7 @@ }; } - $scope.suppliersSelectOptions = selectLazyLoading('api/organization', false, formatSupplier, ['take=100','orgId=' + user.currentOrganizationId]); - - function formatSupplier(supplier) { - var result = '
' + supplier.text + '
'; - if (supplier.cvr) { - result += '
' + supplier.cvr + '
'; - } - return result; - } + $scope.suppliersSelectOptions = selectLazyLoading('api/organization', false, Kitos.Helpers.FormatHelper.formatOrganizationWithCvr, ['take=100','orgId=' + user.currentOrganizationId]); function selectLazyLoading(url, excludeSelf, format, paramAry) { return { diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts index c871efe9b6..f630f66b7b 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts @@ -170,15 +170,7 @@ text: item.name ? item.name : 'Unavngiven', cvr: item.cvr }); - }, "q", formatSupplier); - - function formatSupplier(supplier) { - var result = '
' + supplier.text + '
'; - if (supplier.cvr) { - result += '
' + supplier.cvr + '
'; - } - return result; - } + }, "q", Kitos.Helpers.FormatHelper.formatOrganizationWithCvr); $scope.patchDatePeriode = (field, value, id) => { var formatDateString = "YYYY-MM-DD"; diff --git a/Presentation.Web/app/helpers/FormatHelper.ts b/Presentation.Web/app/helpers/FormatHelper.ts new file mode 100644 index 0000000000..92c7ea0ae8 --- /dev/null +++ b/Presentation.Web/app/helpers/FormatHelper.ts @@ -0,0 +1,19 @@ +module Kitos.Helpers { + export class FormatHelper { + public static formatUserWithEmail(user: any): string { + var result = '
' + user.text + '
'; + if (user.email) { + result += '
' + user.email + '
'; + } + return result; + } + + public static formatOrganizationWithCvr(org: any): string { + var result = '
' + org.text + '
'; + if (org.cvr) { + result += '
' + org.cvr + '
'; + } + return result; + } + } +} diff --git a/Presentation.Web/app/models/users/userDTO.ts b/Presentation.Web/app/models/users/user-dto.ts similarity index 100% rename from Presentation.Web/app/models/users/userDTO.ts rename to Presentation.Web/app/models/users/user-dto.ts diff --git a/Presentation.Web/app/services/userServices.ts b/Presentation.Web/app/services/userServices.ts index 32ff5567e9..6bb7c47f81 100644 --- a/Presentation.Web/app/services/userServices.ts +++ b/Presentation.Web/app/services/userServices.ts @@ -41,7 +41,7 @@ updateDefaultOrgUnit(newDefaultOrgUnitId: number): ng.IPromise; getUsersWithRightsholderAccess(): ng.IPromise; getUsersWithCrossAccess(): ng.IPromise; - deleteUser(id: number); + deleteUser(id: number): ng.IPromise; searchUsers(query: string): ng.IPromise; getUserOrganizations(userId: number): ng.IPromise; } From a3254f0b6b0bc6a3e02bfaa1604780954079a285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 1 Jun 2022 14:58:24 +0200 Subject: [PATCH 063/432] added working search - missing use of Virksomhed service to get the company uuid based on cvr --- .../ServiceReference/AuthorityContext_1.xsd | 14 + .../ServiceReference/CallContext_1.xsd | 29 + .../GenerelleDefinitioner.xsd | 57 + ...eReference.ImporterResponseType.datasource | 10 + ...rviceReference.LaesResponseType.datasource | 10 + ...rviceReference.ListResponseType.datasource | 10 + ...viceReference.OpretResponseType.datasource | 10 + ...eReference.PassiverResponseType.datasource | 10 + ...viceReference.RequestHeaderType.datasource | 10 + ...erviceReference.RetResponseType.datasource | 10 + ...rviceReference.SletResponseType.datasource | 10 + ...rviceReference.SoegResponseType.datasource | 10 + ...rviceReference.importerResponse.datasource | 10 + ...y.ServiceReference.laesResponse.datasource | 10 + ...y.ServiceReference.listResponse.datasource | 10 + ....ServiceReference.opretResponse.datasource | 10 + ...rviceReference.passiverResponse.datasource | 10 + ...ny.ServiceReference.retResponse.datasource | 10 + ...y.ServiceReference.sletResponse.datasource | 10 + ...y.ServiceReference.soegResponse.datasource | 10 + .../ServiceReference/Part.xsd | 10 + .../ServiceReference/Reference.cs | 3267 +++++++++++++++++ .../ServiceReference/Reference.svcmap | 43 + .../ServiceReference/RequestHeader.xsd | 18 + .../ServiceReference/SagDokObjekt.xsd | 803 ++++ .../ServiceplatformFaultMessage.wsdl | 11 + .../ServiceplatformFault_1.xsd | 20 + .../ServiceReference/Virksomhed.xsd | 53 + .../VirksomhedOperationer.xsd | 84 + .../ServiceReference/VirksomhedService.wsdl | 238 ++ .../ServiceReference/VirksomhedServiceMsg.xsd | 118 + .../ServiceReference/configuration.svcinfo | 11 + .../ServiceReference/configuration91.svcinfo | 310 ++ .../ServiceReference/policies.wsdl | 34 + .../Infrastructure.STS.Company.csproj | 206 ++ .../Properties/AssemblyInfo.cs | 36 + Infrastructure.STS.Company/Readme.md | 3 + .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 + .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 + .../SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd | 20 + .../xsd/1.1.STS-3/Virksomhed.xsd | 74 + .../xsd/1.1.STS-3/VirksomhedBesked.xsd | 22 + .../xsd/1.1.STS-3/VirksomhedOperationer.xsd | 110 + .../xsd/common/RequestHeader.xsd | 26 + .../xsd/common/SagDokObjekt.xsd | 1059 ++++++ .../ServiceContract/VirksomhedServiceMsg.xsd | 149 + .../ServiceContract/sp/AuthorityContext_1.xsd | 22 + .../ServiceContract/sp/CallContext_1.xsd | 38 + .../sp/InvocationContext_1.xsd | 67 + .../sp/ServiceplatformFaultMessage_1.wsdl | 18 + .../sp/ServiceplatformFault_1.xsd | 27 + .../ServiceContract/sp/service.properties | 6 + .../wsdl/context/VirksomhedService.wsdl | 262 ++ .../wsdl/context/policies.wsdl | 40 + .../wsdl/token/VirksomhedService.wsdl | 262 ++ .../ServiceContract/wsdl/token/policies.wsdl | 83 + Infrastructure.STS.Company/app.config | 18 + .../DomainServices/StsOrganizationService.cs | 27 +- .../Infrastructure.STS.Organization.csproj | 4 + .../packages.config | 4 + KITOS.sln | 7 + .../API/V1/HealthCheckController.cs | 17 +- Presentation.Web/Web.config | 73 +- 63 files changed, 8010 insertions(+), 61 deletions(-) create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/AuthorityContext_1.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/CallContext_1.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/GenerelleDefinitioner.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ImporterResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.LaesResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ListResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.OpretResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.PassiverResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RequestHeaderType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RetResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SletResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SoegResponseType.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.importerResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.laesResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.listResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.opretResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.passiverResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.retResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.sletResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.soegResponse.datasource create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Part.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.cs create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.svcmap create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/RequestHeader.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/SagDokObjekt.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFault_1.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/Virksomhed.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedOperationer.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedService.wsdl create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedServiceMsg.xsd create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/configuration.svcinfo create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/configuration91.svcinfo create mode 100644 Infrastructure.STS.Company/Connected Services/ServiceReference/policies.wsdl create mode 100644 Infrastructure.STS.Company/Infrastructure.STS.Company.csproj create mode 100644 Infrastructure.STS.Company/Properties/AssemblyInfo.cs create mode 100644 Infrastructure.STS.Company/Readme.md create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl create mode 100644 Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd create mode 100644 Infrastructure.STS.Company/ServiceContract/sp/service.properties create mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl create mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl create mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl create mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl create mode 100644 Infrastructure.STS.Company/app.config create mode 100644 Infrastructure.STS.Organization/packages.config diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/AuthorityContext_1.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/AuthorityContext_1.xsd new file mode 100644 index 0000000000..c4b7c49243 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/AuthorityContext_1.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/CallContext_1.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/CallContext_1.xsd new file mode 100644 index 0000000000..b8fe8f6901 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/CallContext_1.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/GenerelleDefinitioner.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/GenerelleDefinitioner.xsd new file mode 100644 index 0000000000..1cd19da05d --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/GenerelleDefinitioner.xsd @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ImporterResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ImporterResponseType.datasource new file mode 100644 index 0000000000..8b2081347f --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ImporterResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.ImporterResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.LaesResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.LaesResponseType.datasource new file mode 100644 index 0000000000..ee66aea259 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.LaesResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.LaesResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ListResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ListResponseType.datasource new file mode 100644 index 0000000000..fd30a4cdf0 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.ListResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.ListResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.OpretResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.OpretResponseType.datasource new file mode 100644 index 0000000000..d183f625bf --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.OpretResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.OpretResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.PassiverResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.PassiverResponseType.datasource new file mode 100644 index 0000000000..e63ab89a31 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.PassiverResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.PassiverResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RequestHeaderType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RequestHeaderType.datasource new file mode 100644 index 0000000000..4c6d22177c --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RequestHeaderType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.RequestHeaderType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RetResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RetResponseType.datasource new file mode 100644 index 0000000000..3f7833015b --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.RetResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.RetResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SletResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SletResponseType.datasource new file mode 100644 index 0000000000..f63b4ef2f9 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SletResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.SletResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SoegResponseType.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SoegResponseType.datasource new file mode 100644 index 0000000000..113525b4fa --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.SoegResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.SoegResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.importerResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.importerResponse.datasource new file mode 100644 index 0000000000..a4d7032623 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.importerResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.importerResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.laesResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.laesResponse.datasource new file mode 100644 index 0000000000..4e60f2d82f --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.laesResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.laesResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.listResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.listResponse.datasource new file mode 100644 index 0000000000..52ce551214 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.listResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.listResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.opretResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.opretResponse.datasource new file mode 100644 index 0000000000..8dc2bac6d0 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.opretResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.opretResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.passiverResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.passiverResponse.datasource new file mode 100644 index 0000000000..9e5a8048eb --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.passiverResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.passiverResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.retResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.retResponse.datasource new file mode 100644 index 0000000000..89592104c6 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.retResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.retResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.sletResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.sletResponse.datasource new file mode 100644 index 0000000000..a782a59d4a --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.sletResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.sletResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.soegResponse.datasource b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.soegResponse.datasource new file mode 100644 index 0000000000..1d772d94de --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Infrastructure.STS.Company.ServiceReference.soegResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.Company.ServiceReference.soegResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Part.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/Part.xsd new file mode 100644 index 0000000000..2ce9ea4273 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Part.xsd @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.cs b/Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.cs new file mode 100644 index 0000000000..4e05692e29 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.cs @@ -0,0 +1,3267 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Infrastructure.STS.Company.ServiceReference { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + public partial class ServiceplatformFaultType : object, System.ComponentModel.INotifyPropertyChanged { + + private ErrorType[] errorListField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Error", IsNullable=false)] + public ErrorType[] ErrorList { + get { + return this.errorListField; + } + set { + this.errorListField = value; + this.RaisePropertyChanged("ErrorList"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + public partial class ErrorType : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string errorTextField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ErrorText { + get { + return this.errorTextField; + } + set { + this.errorTextField = value; + this.RaisePropertyChanged("ErrorText"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RegistreringType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RegistreringType : object, System.ComponentModel.INotifyPropertyChanged { + + private string noteTekstField; + + private System.DateTime tidspunktField; + + private bool tidspunktFieldSpecified; + + private LivscyklusKodeType livscyklusKodeField; + + private bool livscyklusKodeFieldSpecified; + + private UnikIdType brugerRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime Tidspunkt { + get { + return this.tidspunktField; + } + set { + this.tidspunktField = value; + this.RaisePropertyChanged("Tidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TidspunktSpecified { + get { + return this.tidspunktFieldSpecified; + } + set { + this.tidspunktFieldSpecified = value; + this.RaisePropertyChanged("TidspunktSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public LivscyklusKodeType LivscyklusKode { + get { + return this.livscyklusKodeField; + } + set { + this.livscyklusKodeField = value; + this.RaisePropertyChanged("LivscyklusKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LivscyklusKodeSpecified { + get { + return this.livscyklusKodeFieldSpecified; + } + set { + this.livscyklusKodeFieldSpecified = value; + this.RaisePropertyChanged("LivscyklusKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public UnikIdType BrugerRef { + get { + return this.brugerRefField; + } + set { + this.brugerRefField = value; + this.RaisePropertyChanged("BrugerRef"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public enum LivscyklusKodeType { + + /// + Opstaaet, + + /// + Importeret, + + /// + Passiveret, + + /// + Slettet, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UnikIdType : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("URNIdentifikator", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("UUIDIdentifikator", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0", IncludeInSchema=false)] + public enum ItemChoiceType { + + /// + URNIdentifikator, + + /// + UUIDIdentifikator, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="RegistreringType", Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class RegistreringType1 : RegistreringType { + + private EgenskabType[] attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Egenskab", IsNullable=false)] + public EgenskabType[] AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class EgenskabType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private string brugervendtNoegleTekstField; + + private string cVRNummerTekstField; + + private string sENummerTekstField; + + private string pNummerTekstField; + + private string navnTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public string BrugervendtNoegleTekst { + get { + return this.brugervendtNoegleTekstField; + } + set { + this.brugervendtNoegleTekstField = value; + this.RaisePropertyChanged("BrugervendtNoegleTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CVR-NummerTekst", Namespace="urn:oio:sts:1.1.3.0", Order=2)] + public string CVRNummerTekst { + get { + return this.cVRNummerTekstField; + } + set { + this.cVRNummerTekstField = value; + this.RaisePropertyChanged("CVRNummerTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("SE-NummerTekst", Namespace="urn:oio:sts:1.1.3.0", Order=3)] + public string SENummerTekst { + get { + return this.sENummerTekstField; + } + set { + this.sENummerTekstField = value; + this.RaisePropertyChanged("SENummerTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("P-NummerTekst", Namespace="urn:oio:sts:1.1.3.0", Order=4)] + public string PNummerTekst { + get { + return this.pNummerTekstField; + } + set { + this.pNummerTekstField = value; + this.RaisePropertyChanged("PNummerTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:1.1.3.0", Order=5)] + public string NavnTekst { + get { + return this.navnTekstField; + } + set { + this.navnTekstField = value; + this.RaisePropertyChanged("NavnTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class VirkningType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private UnikIdType aktoerRefField; + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public UnikIdType AktoerRef { + get { + return this.aktoerRefField; + } + set { + this.aktoerRefField = value; + this.RaisePropertyChanged("AktoerRef"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class TidspunktType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("GraenseIndikator", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("TidsstempelDatoTid", typeof(System.DateTime), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public enum AktoerTypeKodeType { + + /// + Organisation, + + /// + OrganisationEnhed, + + /// + OrganisationFunktion, + + /// + Bruger, + + /// + ItSystem, + + /// + Interessefaellesskab, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class TilstandListeType : object, System.ComponentModel.INotifyPropertyChanged { + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class RelationListeType : object, System.ComponentModel.INotifyPropertyChanged { + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PartType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VirksomhedType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(LaesFiltreretOutputType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SagDokObjektType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VirksomhedType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:part:1.1.3.0")] + public partial class PartType : SagDokObjektType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class VirksomhedType : PartType { + + private RegistreringType1[] registreringField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Registrering", Order=0)] + public RegistreringType1[] Registrering { + get { + return this.registreringField; + } + set { + this.registreringField = value; + this.RaisePropertyChanged("Registrering"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LaesFiltreretOutputType : SagDokObjektType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class FiltreretOejebliksbilledeType : object, System.ComponentModel.INotifyPropertyChanged { + + private SagDokObjektType objektTypeField; + + private RegistreringType1[] registreringField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SagDokObjektType ObjektType { + get { + return this.objektTypeField; + } + set { + this.objektTypeField = value; + this.RaisePropertyChanged("ObjektType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Registrering", Order=1)] + public RegistreringType1[] Registrering { + get { + return this.registreringField; + } + set { + this.registreringField = value; + this.RaisePropertyChanged("Registrering"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(UnikReturType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class StandardReturType : object, System.ComponentModel.INotifyPropertyChanged { + + private string statusKodeField; + + private string fejlbeskedTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string StatusKode { + get { + return this.statusKodeField; + } + set { + this.statusKodeField = value; + this.RaisePropertyChanged("StatusKode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FejlbeskedTekst { + get { + return this.fejlbeskedTekstField; + } + set { + this.fejlbeskedTekstField = value; + this.RaisePropertyChanged("FejlbeskedTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UnikReturType : StandardReturType { + + private string typeField; + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpretOutputType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ListOutputType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(LaesOutputType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class BasicOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OpretOutputType : BasicOutputType { + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class ListOutputType : BasicOutputType { + + private FiltreretOejebliksbilledeType[] filtreretOejebliksbilledeField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FiltreretOejebliksbillede", Order=0)] + public FiltreretOejebliksbilledeType[] FiltreretOejebliksbillede { + get { + return this.filtreretOejebliksbilledeField; + } + set { + this.filtreretOejebliksbilledeField = value; + this.RaisePropertyChanged("FiltreretOejebliksbillede"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class LaesOutputType : BasicOutputType { + + private FiltreretOejebliksbilledeType filtreretOejebliksbilledeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public FiltreretOejebliksbilledeType FiltreretOejebliksbillede { + get { + return this.filtreretOejebliksbilledeField; + } + set { + this.filtreretOejebliksbilledeField = value; + this.RaisePropertyChanged("FiltreretOejebliksbillede"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class OpretResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private OpretOutputType opretOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public OpretOutputType OpretOutput { + get { + return this.opretOutputField; + } + set { + this.opretOutputField = value; + this.RaisePropertyChanged("OpretOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpretInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OpretInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="OpretInputType", Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class OpretInputType1 : OpretInputType { + + private EgenskabType[] attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Egenskab", IsNullable=false)] + public EgenskabType[] AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/")] + public partial class AuthorityContextType : object, System.ComponentModel.INotifyPropertyChanged { + + private string municipalityCVRField; + + /// + public string MunicipalityCVR { + get { + return this.municipalityCVRField; + } + set { + this.municipalityCVRField = value; + this.RaisePropertyChanged("MunicipalityCVR"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/")] + public partial class CallContextType : object, System.ComponentModel.INotifyPropertyChanged { + + private string onBehalfOfUserField; + + private string callersServiceCallIdentifierField; + + private string accountingInfoField; + + /// + public string OnBehalfOfUser { + get { + return this.onBehalfOfUserField; + } + set { + this.onBehalfOfUserField = value; + this.RaisePropertyChanged("OnBehalfOfUser"); + } + } + + /// + public string CallersServiceCallIdentifier { + get { + return this.callersServiceCallIdentifierField; + } + set { + this.callersServiceCallIdentifierField = value; + this.RaisePropertyChanged("CallersServiceCallIdentifier"); + } + } + + /// + public string AccountingInfo { + get { + return this.accountingInfoField; + } + set { + this.accountingInfoField = value; + this.RaisePropertyChanged("AccountingInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class OpretRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private OpretInputType1 opretInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public OpretInputType1 OpretInput { + get { + return this.opretInputField; + } + set { + this.opretInputField = value; + this.RaisePropertyChanged("OpretInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", ConfigurationName="ServiceReference.VirksomhedPortType")] + public interface VirksomhedPortType { + + // CODEGEN: Generating message contract since the operation opret is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/opret", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/opret", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.opretResponse opret(Infrastructure.STS.Company.ServiceReference.opretRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/opret", ReplyAction="*")] + System.Threading.Tasks.Task opretAsync(Infrastructure.STS.Company.ServiceReference.opretRequest request); + + // CODEGEN: Generating message contract since the operation importer is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/importer", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/importer", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.importerResponse importer(Infrastructure.STS.Company.ServiceReference.importerRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/importer", ReplyAction="*")] + System.Threading.Tasks.Task importerAsync(Infrastructure.STS.Company.ServiceReference.importerRequest request); + + // CODEGEN: Generating message contract since the operation passiver is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/passiver", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/passiver", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.passiverResponse passiver(Infrastructure.STS.Company.ServiceReference.passiverRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/passiver", ReplyAction="*")] + System.Threading.Tasks.Task passiverAsync(Infrastructure.STS.Company.ServiceReference.passiverRequest request); + + // CODEGEN: Generating message contract since the operation laes is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/laes", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/laes", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.laesResponse laes(Infrastructure.STS.Company.ServiceReference.laesRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/laes", ReplyAction="*")] + System.Threading.Tasks.Task laesAsync(Infrastructure.STS.Company.ServiceReference.laesRequest request); + + // CODEGEN: Generating message contract since the operation ret is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/ret", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/ret", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.retResponse ret(Infrastructure.STS.Company.ServiceReference.retRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/ret", ReplyAction="*")] + System.Threading.Tasks.Task retAsync(Infrastructure.STS.Company.ServiceReference.retRequest request); + + // CODEGEN: Generating message contract since the operation slet is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/slet", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/slet", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.sletResponse slet(Infrastructure.STS.Company.ServiceReference.sletRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/slet", ReplyAction="*")] + System.Threading.Tasks.Task sletAsync(Infrastructure.STS.Company.ServiceReference.sletRequest request); + + // CODEGEN: Generating message contract since the operation soeg is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/soeg", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/soeg", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.soegResponse soeg(Infrastructure.STS.Company.ServiceReference.soegRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/soeg", ReplyAction="*")] + System.Threading.Tasks.Task soegAsync(Infrastructure.STS.Company.ServiceReference.soegRequest request); + + // CODEGEN: Generating message contract since the operation list is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/list", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.Company.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/list", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.Company.ServiceReference.listResponse list(Infrastructure.STS.Company.ServiceReference.listRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/list", ReplyAction="*")] + System.Threading.Tasks.Task listAsync(Infrastructure.STS.Company.ServiceReference.listRequest request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public partial class RequestHeaderType : object, System.ComponentModel.INotifyPropertyChanged { + + private string transactionUUIDField; + + /// + public string TransactionUUID { + get { + return this.transactionUUIDField; + } + set { + this.transactionUUIDField = value; + this.RaisePropertyChanged("TransactionUUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class opretRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="OpretRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.OpretRequestType OpretRequest1; + + public opretRequest() { + } + + public opretRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.OpretRequestType OpretRequest1) { + this.RequestHeader = RequestHeader; + this.OpretRequest1 = OpretRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class opretResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="OpretResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.OpretResponseType OpretResponse1; + + public opretResponse() { + } + + public opretResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.OpretResponseType OpretResponse1) { + this.RequestHeader = RequestHeader; + this.OpretResponse1 = OpretResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class ImporterRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private ImportInputType importInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public ImportInputType ImportInput { + get { + return this.importInputField; + } + set { + this.importInputField = value; + this.RaisePropertyChanged("ImportInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class ImportInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirksomhedType virksomhedField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VirksomhedType Virksomhed { + get { + return this.virksomhedField; + } + set { + this.virksomhedField = value; + this.RaisePropertyChanged("Virksomhed"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class ImporterResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType importOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public BasicOutputType ImportOutput { + get { + return this.importOutputField; + } + set { + this.importOutputField = value; + this.RaisePropertyChanged("ImportOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importerRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ImporterRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.ImporterRequestType ImporterRequest1; + + public importerRequest() { + } + + public importerRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ImporterRequestType ImporterRequest1) { + this.RequestHeader = RequestHeader; + this.ImporterRequest1 = ImporterRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importerResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ImporterResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.ImporterResponseType ImporterResponse1; + + public importerResponse() { + } + + public importerResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ImporterResponseType ImporterResponse1) { + this.RequestHeader = RequestHeader; + this.ImporterResponse1 = ImporterResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class PassiverRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private UuidNoteInputType passiverInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public UuidNoteInputType PassiverInput { + get { + return this.passiverInputField; + } + set { + this.passiverInputField = value; + this.RaisePropertyChanged("PassiverInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UuidNoteInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class PassiverResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType passiverOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public BasicOutputType PassiverOutput { + get { + return this.passiverOutputField; + } + set { + this.passiverOutputField = value; + this.RaisePropertyChanged("PassiverOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class passiverRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="PassiverRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.PassiverRequestType PassiverRequest1; + + public passiverRequest() { + } + + public passiverRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.PassiverRequestType PassiverRequest1) { + this.RequestHeader = RequestHeader; + this.PassiverRequest1 = PassiverRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class passiverResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="PassiverResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.PassiverResponseType PassiverResponse1; + + public passiverResponse() { + } + + public passiverResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.PassiverResponseType PassiverResponse1) { + this.RequestHeader = RequestHeader; + this.PassiverResponse1 = PassiverResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class LaesRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private LaesInputType laesInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public LaesInputType LaesInput { + get { + return this.laesInputField; + } + set { + this.laesInputField = value; + this.RaisePropertyChanged("LaesInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LaesInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private TidspunktType virkningFraFilterField; + + private TidspunktType virkningTilFilterField; + + private TidspunktType registreringFraFilterField; + + private TidspunktType registreringTilFilterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType VirkningFraFilter { + get { + return this.virkningFraFilterField; + } + set { + this.virkningFraFilterField = value; + this.RaisePropertyChanged("VirkningFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public TidspunktType VirkningTilFilter { + get { + return this.virkningTilFilterField; + } + set { + this.virkningTilFilterField = value; + this.RaisePropertyChanged("VirkningTilFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public TidspunktType RegistreringFraFilter { + get { + return this.registreringFraFilterField; + } + set { + this.registreringFraFilterField = value; + this.RaisePropertyChanged("RegistreringFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public TidspunktType RegistreringTilFilter { + get { + return this.registreringTilFilterField; + } + set { + this.registreringTilFilterField = value; + this.RaisePropertyChanged("RegistreringTilFilter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class LaesResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private LaesOutputType laesOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public LaesOutputType LaesOutput { + get { + return this.laesOutputField; + } + set { + this.laesOutputField = value; + this.RaisePropertyChanged("LaesOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class laesRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="LaesRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.LaesRequestType LaesRequest1; + + public laesRequest() { + } + + public laesRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.LaesRequestType LaesRequest1) { + this.RequestHeader = RequestHeader; + this.LaesRequest1 = LaesRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class laesResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="LaesResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.LaesResponseType LaesResponse1; + + public laesResponse() { + } + + public laesResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.LaesResponseType LaesResponse1) { + this.RequestHeader = RequestHeader; + this.LaesResponse1 = LaesResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class RetRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private RetInputType1 retInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public RetInputType1 RetInput { + get { + return this.retInputField; + } + set { + this.retInputField = value; + this.RaisePropertyChanged("RetInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="RetInputType", Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class RetInputType1 : RetInputType { + + private EgenskabType[] attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Egenskab", IsNullable=false)] + public EgenskabType[] AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RetInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RetInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class RetResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType retOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public BasicOutputType RetOutput { + get { + return this.retOutputField; + } + set { + this.retOutputField = value; + this.RaisePropertyChanged("RetOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class retRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="RetRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.RetRequestType RetRequest1; + + public retRequest() { + } + + public retRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.RetRequestType RetRequest1) { + this.RequestHeader = RequestHeader; + this.RetRequest1 = RetRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class retResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="RetResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.RetResponseType RetResponse1; + + public retResponse() { + } + + public retResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.RetResponseType RetResponse1) { + this.RequestHeader = RequestHeader; + this.RetResponse1 = RetResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class SletRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private UuidNoteInputType sletInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public UuidNoteInputType SletInput { + get { + return this.sletInputField; + } + set { + this.sletInputField = value; + this.RaisePropertyChanged("SletInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class SletResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType sletOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public BasicOutputType SletOutput { + get { + return this.sletOutputField; + } + set { + this.sletOutputField = value; + this.RaisePropertyChanged("SletOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class sletRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SletRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.SletRequestType SletRequest1; + + public sletRequest() { + } + + public sletRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SletRequestType SletRequest1) { + this.RequestHeader = RequestHeader; + this.SletRequest1 = SletRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class sletResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SletResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.SletResponseType SletResponse1; + + public sletResponse() { + } + + public sletResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SletResponseType SletResponse1) { + this.RequestHeader = RequestHeader; + this.SletResponse1 = SletResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class SoegRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private SoegInputType1 soegInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public SoegInputType1 SoegInput { + get { + return this.soegInputField; + } + set { + this.soegInputField = value; + this.RaisePropertyChanged("SoegInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="SoegInputType", Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0")] + public partial class SoegInputType1 : SoegInputType { + + private EgenskabType[] attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Egenskab", IsNullable=false)] + public EgenskabType[] AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(SoegInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string foersteResultatReferenceField; + + private string maksimalAntalKvantitetField; + + private SoegRegistreringType soegRegistreringField; + + private SoegVirkningType soegVirkningField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string FoersteResultatReference { + get { + return this.foersteResultatReferenceField; + } + set { + this.foersteResultatReferenceField = value; + this.RaisePropertyChanged("FoersteResultatReference"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string MaksimalAntalKvantitet { + get { + return this.maksimalAntalKvantitetField; + } + set { + this.maksimalAntalKvantitetField = value; + this.RaisePropertyChanged("MaksimalAntalKvantitet"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public SoegRegistreringType SoegRegistrering { + get { + return this.soegRegistreringField; + } + set { + this.soegRegistreringField = value; + this.RaisePropertyChanged("SoegRegistrering"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public SoegVirkningType SoegVirkning { + get { + return this.soegVirkningField; + } + set { + this.soegVirkningField = value; + this.RaisePropertyChanged("SoegVirkning"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegRegistreringType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private LivscyklusKodeType livscyklusKodeField; + + private bool livscyklusKodeFieldSpecified; + + private UnikIdType brugerRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public LivscyklusKodeType LivscyklusKode { + get { + return this.livscyklusKodeField; + } + set { + this.livscyklusKodeField = value; + this.RaisePropertyChanged("LivscyklusKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LivscyklusKodeSpecified { + get { + return this.livscyklusKodeFieldSpecified; + } + set { + this.livscyklusKodeFieldSpecified = value; + this.RaisePropertyChanged("LivscyklusKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public UnikIdType BrugerRef { + get { + return this.brugerRefField; + } + set { + this.brugerRefField = value; + this.RaisePropertyChanged("BrugerRef"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegVirkningType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private UnikIdType aktoerRefField; + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public UnikIdType AktoerRef { + get { + return this.aktoerRefField; + } + set { + this.aktoerRefField = value; + this.RaisePropertyChanged("AktoerRef"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class SoegResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private SoegOutputType soegOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public SoegOutputType SoegOutput { + get { + return this.soegOutputField; + } + set { + this.soegOutputField = value; + this.RaisePropertyChanged("SoegOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + private string[] idListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=1)] + [System.Xml.Serialization.XmlArrayItemAttribute("UUIDIdentifikator", IsNullable=false)] + public string[] IdListe { + get { + return this.idListeField; + } + set { + this.idListeField = value; + this.RaisePropertyChanged("IdListe"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class soegRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SoegRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.SoegRequestType SoegRequest1; + + public soegRequest() { + } + + public soegRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SoegRequestType SoegRequest1) { + this.RequestHeader = RequestHeader; + this.SoegRequest1 = SoegRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class soegResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SoegResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.SoegResponseType SoegResponse1; + + public soegResponse() { + } + + public soegResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SoegResponseType SoegResponse1) { + this.RequestHeader = RequestHeader; + this.SoegResponse1 = SoegResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class ListRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private ListInputType listInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=2)] + public ListInputType ListInput { + get { + return this.listInputField; + } + set { + this.listInputField = value; + this.RaisePropertyChanged("ListInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ListInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] uUIDIdentifikatorField; + + private TidspunktType virkningFraFilterField; + + private TidspunktType virkningTilFilterField; + + private TidspunktType registreringFraFilterField; + + private TidspunktType registreringTilFilterField; + + /// + [System.Xml.Serialization.XmlElementAttribute("UUIDIdentifikator", Order=0)] + public string[] UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType VirkningFraFilter { + get { + return this.virkningFraFilterField; + } + set { + this.virkningFraFilterField = value; + this.RaisePropertyChanged("VirkningFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public TidspunktType VirkningTilFilter { + get { + return this.virkningTilFilterField; + } + set { + this.virkningTilFilterField = value; + this.RaisePropertyChanged("VirkningTilFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public TidspunktType RegistreringFraFilter { + get { + return this.registreringFraFilterField; + } + set { + this.registreringFraFilterField = value; + this.RaisePropertyChanged("RegistreringFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public TidspunktType RegistreringTilFilter { + get { + return this.registreringTilFilterField; + } + set { + this.registreringTilFilterField = value; + this.RaisePropertyChanged("RegistreringTilFilter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/")] + public partial class ListResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private ListOutputType listOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:virksomhed:1.1.3.0", Order=0)] + public ListOutputType ListOutput { + get { + return this.listOutputField; + } + set { + this.listOutputField = value; + this.RaisePropertyChanged("ListOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class listRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ListRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.ListRequestType ListRequest1; + + public listRequest() { + } + + public listRequest(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ListRequestType ListRequest1) { + this.RequestHeader = RequestHeader; + this.ListRequest1 = ListRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class listResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ListResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/Virksomhed/5/", Order=0)] + public Infrastructure.STS.Company.ServiceReference.ListResponseType ListResponse1; + + public listResponse() { + } + + public listResponse(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ListResponseType ListResponse1) { + this.RequestHeader = RequestHeader; + this.ListResponse1 = ListResponse1; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface VirksomhedPortTypeChannel : Infrastructure.STS.Company.ServiceReference.VirksomhedPortType, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class VirksomhedPortTypeClient : System.ServiceModel.ClientBase, Infrastructure.STS.Company.ServiceReference.VirksomhedPortType { + + public VirksomhedPortTypeClient() { + } + + public VirksomhedPortTypeClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public VirksomhedPortTypeClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public VirksomhedPortTypeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public VirksomhedPortTypeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.opretResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.opret(Infrastructure.STS.Company.ServiceReference.opretRequest request) { + return base.Channel.opret(request); + } + + public Infrastructure.STS.Company.ServiceReference.OpretResponseType opret(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.OpretRequestType OpretRequest1) { + Infrastructure.STS.Company.ServiceReference.opretRequest inValue = new Infrastructure.STS.Company.ServiceReference.opretRequest(); + inValue.RequestHeader = RequestHeader; + inValue.OpretRequest1 = OpretRequest1; + Infrastructure.STS.Company.ServiceReference.opretResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).opret(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.OpretResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.opretAsync(Infrastructure.STS.Company.ServiceReference.opretRequest request) { + return base.Channel.opretAsync(request); + } + + public System.Threading.Tasks.Task opretAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.OpretRequestType OpretRequest1) { + Infrastructure.STS.Company.ServiceReference.opretRequest inValue = new Infrastructure.STS.Company.ServiceReference.opretRequest(); + inValue.RequestHeader = RequestHeader; + inValue.OpretRequest1 = OpretRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).opretAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.importerResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.importer(Infrastructure.STS.Company.ServiceReference.importerRequest request) { + return base.Channel.importer(request); + } + + public Infrastructure.STS.Company.ServiceReference.ImporterResponseType importer(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ImporterRequestType ImporterRequest1) { + Infrastructure.STS.Company.ServiceReference.importerRequest inValue = new Infrastructure.STS.Company.ServiceReference.importerRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ImporterRequest1 = ImporterRequest1; + Infrastructure.STS.Company.ServiceReference.importerResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).importer(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.ImporterResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.importerAsync(Infrastructure.STS.Company.ServiceReference.importerRequest request) { + return base.Channel.importerAsync(request); + } + + public System.Threading.Tasks.Task importerAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ImporterRequestType ImporterRequest1) { + Infrastructure.STS.Company.ServiceReference.importerRequest inValue = new Infrastructure.STS.Company.ServiceReference.importerRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ImporterRequest1 = ImporterRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).importerAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.passiverResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.passiver(Infrastructure.STS.Company.ServiceReference.passiverRequest request) { + return base.Channel.passiver(request); + } + + public Infrastructure.STS.Company.ServiceReference.PassiverResponseType passiver(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.PassiverRequestType PassiverRequest1) { + Infrastructure.STS.Company.ServiceReference.passiverRequest inValue = new Infrastructure.STS.Company.ServiceReference.passiverRequest(); + inValue.RequestHeader = RequestHeader; + inValue.PassiverRequest1 = PassiverRequest1; + Infrastructure.STS.Company.ServiceReference.passiverResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).passiver(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.PassiverResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.passiverAsync(Infrastructure.STS.Company.ServiceReference.passiverRequest request) { + return base.Channel.passiverAsync(request); + } + + public System.Threading.Tasks.Task passiverAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.PassiverRequestType PassiverRequest1) { + Infrastructure.STS.Company.ServiceReference.passiverRequest inValue = new Infrastructure.STS.Company.ServiceReference.passiverRequest(); + inValue.RequestHeader = RequestHeader; + inValue.PassiverRequest1 = PassiverRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).passiverAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.laesResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.laes(Infrastructure.STS.Company.ServiceReference.laesRequest request) { + return base.Channel.laes(request); + } + + public Infrastructure.STS.Company.ServiceReference.LaesResponseType laes(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.LaesRequestType LaesRequest1) { + Infrastructure.STS.Company.ServiceReference.laesRequest inValue = new Infrastructure.STS.Company.ServiceReference.laesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.LaesRequest1 = LaesRequest1; + Infrastructure.STS.Company.ServiceReference.laesResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).laes(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.LaesResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.laesAsync(Infrastructure.STS.Company.ServiceReference.laesRequest request) { + return base.Channel.laesAsync(request); + } + + public System.Threading.Tasks.Task laesAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.LaesRequestType LaesRequest1) { + Infrastructure.STS.Company.ServiceReference.laesRequest inValue = new Infrastructure.STS.Company.ServiceReference.laesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.LaesRequest1 = LaesRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).laesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.retResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.ret(Infrastructure.STS.Company.ServiceReference.retRequest request) { + return base.Channel.ret(request); + } + + public Infrastructure.STS.Company.ServiceReference.RetResponseType ret(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.RetRequestType RetRequest1) { + Infrastructure.STS.Company.ServiceReference.retRequest inValue = new Infrastructure.STS.Company.ServiceReference.retRequest(); + inValue.RequestHeader = RequestHeader; + inValue.RetRequest1 = RetRequest1; + Infrastructure.STS.Company.ServiceReference.retResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).ret(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.RetResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.retAsync(Infrastructure.STS.Company.ServiceReference.retRequest request) { + return base.Channel.retAsync(request); + } + + public System.Threading.Tasks.Task retAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.RetRequestType RetRequest1) { + Infrastructure.STS.Company.ServiceReference.retRequest inValue = new Infrastructure.STS.Company.ServiceReference.retRequest(); + inValue.RequestHeader = RequestHeader; + inValue.RetRequest1 = RetRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).retAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.sletResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.slet(Infrastructure.STS.Company.ServiceReference.sletRequest request) { + return base.Channel.slet(request); + } + + public Infrastructure.STS.Company.ServiceReference.SletResponseType slet(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SletRequestType SletRequest1) { + Infrastructure.STS.Company.ServiceReference.sletRequest inValue = new Infrastructure.STS.Company.ServiceReference.sletRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SletRequest1 = SletRequest1; + Infrastructure.STS.Company.ServiceReference.sletResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).slet(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.SletResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.sletAsync(Infrastructure.STS.Company.ServiceReference.sletRequest request) { + return base.Channel.sletAsync(request); + } + + public System.Threading.Tasks.Task sletAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SletRequestType SletRequest1) { + Infrastructure.STS.Company.ServiceReference.sletRequest inValue = new Infrastructure.STS.Company.ServiceReference.sletRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SletRequest1 = SletRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).sletAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.soegResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.soeg(Infrastructure.STS.Company.ServiceReference.soegRequest request) { + return base.Channel.soeg(request); + } + + public Infrastructure.STS.Company.ServiceReference.SoegResponseType soeg(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SoegRequestType SoegRequest1) { + Infrastructure.STS.Company.ServiceReference.soegRequest inValue = new Infrastructure.STS.Company.ServiceReference.soegRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SoegRequest1 = SoegRequest1; + Infrastructure.STS.Company.ServiceReference.soegResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).soeg(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.SoegResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.soegAsync(Infrastructure.STS.Company.ServiceReference.soegRequest request) { + return base.Channel.soegAsync(request); + } + + public System.Threading.Tasks.Task soegAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.SoegRequestType SoegRequest1) { + Infrastructure.STS.Company.ServiceReference.soegRequest inValue = new Infrastructure.STS.Company.ServiceReference.soegRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SoegRequest1 = SoegRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).soegAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.Company.ServiceReference.listResponse Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.list(Infrastructure.STS.Company.ServiceReference.listRequest request) { + return base.Channel.list(request); + } + + public Infrastructure.STS.Company.ServiceReference.ListResponseType list(ref Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ListRequestType ListRequest1) { + Infrastructure.STS.Company.ServiceReference.listRequest inValue = new Infrastructure.STS.Company.ServiceReference.listRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ListRequest1 = ListRequest1; + Infrastructure.STS.Company.ServiceReference.listResponse retVal = ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).list(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.ListResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.Company.ServiceReference.VirksomhedPortType.listAsync(Infrastructure.STS.Company.ServiceReference.listRequest request) { + return base.Channel.listAsync(request); + } + + public System.Threading.Tasks.Task listAsync(Infrastructure.STS.Company.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.Company.ServiceReference.ListRequestType ListRequest1) { + Infrastructure.STS.Company.ServiceReference.listRequest inValue = new Infrastructure.STS.Company.ServiceReference.listRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ListRequest1 = ListRequest1; + return ((Infrastructure.STS.Company.ServiceReference.VirksomhedPortType)(this)).listAsync(inValue); + } + } +} diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.svcmap b/Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.svcmap new file mode 100644 index 0000000000..84da77c783 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Reference.svcmap @@ -0,0 +1,43 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/RequestHeader.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/RequestHeader.xsd new file mode 100644 index 0000000000..86cc4c8882 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/RequestHeader.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/SagDokObjekt.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/SagDokObjekt.xsd new file mode 100644 index 0000000000..7d028a840d --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/SagDokObjekt.xsd @@ -0,0 +1,803 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl b/Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl new file mode 100644 index 0000000000..7b2666e388 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFault_1.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFault_1.xsd new file mode 100644 index 0000000000..b0b7ce41e9 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/ServiceplatformFault_1.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/Virksomhed.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/Virksomhed.xsd new file mode 100644 index 0000000000..b5dc4877a5 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/Virksomhed.xsd @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedOperationer.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedOperationer.xsd new file mode 100644 index 0000000000..3d1801d70c --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedOperationer.xsd @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedService.wsdl b/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedService.wsdl new file mode 100644 index 0000000000..2283191a62 --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedService.wsdl @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedServiceMsg.xsd b/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedServiceMsg.xsd new file mode 100644 index 0000000000..7de9d0ee7a --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/VirksomhedServiceMsg.xsd @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/configuration.svcinfo b/Infrastructure.STS.Company/Connected Services/ServiceReference/configuration.svcinfo new file mode 100644 index 0000000000..aab9a2333d --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/configuration91.svcinfo b/Infrastructure.STS.Company/Connected Services/ServiceReference/configuration91.svcinfo new file mode 100644 index 0000000000..4cd57071ab --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/configuration91.svcinfo @@ -0,0 +1,310 @@ + + + + + + + VirksomhedBinding + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + VirksomhedBinding1 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + https://localhost:8080/service/Organisation/Virksomhed/5 + + + + + + basicHttpBinding + + + VirksomhedBinding + + + ServiceReference.VirksomhedPortType + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + VirksomhedPort + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Connected Services/ServiceReference/policies.wsdl b/Infrastructure.STS.Company/Connected Services/ServiceReference/policies.wsdl new file mode 100644 index 0000000000..ff60ad349b --- /dev/null +++ b/Infrastructure.STS.Company/Connected Services/ServiceReference/policies.wsdl @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj b/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj new file mode 100644 index 0000000000..caa64f6dd7 --- /dev/null +++ b/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj @@ -0,0 +1,206 @@ + + + + + Debug + AnyCPU + {09A799FA-3781-419B-AB54-3C76219FD2DE} + Library + Properties + Infrastructure.STS.Company + Infrastructure.STS.Company + v4.8 + 512 + true + latest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + True + True + Reference.svcmap + + + + + + + Designer + + + Designer + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Designer + + + + Designer + + + Designer + + + + Designer + + + Designer + + + Designer + + + + Designer + + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + + + Designer + + + Designer + + + + + + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/Properties/AssemblyInfo.cs b/Infrastructure.STS.Company/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..c1630fdad1 --- /dev/null +++ b/Infrastructure.STS.Company/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Infrastructure.STS.Company")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Infrastructure.STS.Company")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("09a799fa-3781-419b-ab54-3c76219fd2de")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Infrastructure.STS.Company/Readme.md b/Infrastructure.STS.Company/Readme.md new file mode 100644 index 0000000000..1c141b86d4 --- /dev/null +++ b/Infrastructure.STS.Company/Readme.md @@ -0,0 +1,3 @@ +Contents of "ServiceContract" are based on this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=9fdac538-fae1-494d-b326-23898eeb182c + +Web service proxy is generated based on `ServiceContract\wsdl\context\VirksomhedService.wsdl` \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd new file mode 100644 index 0000000000..ef7604df82 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd new file mode 100644 index 0000000000..e8e1d1b218 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd new file mode 100644 index 0000000000..a6b994566c --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd new file mode 100644 index 0000000000..4b4a20a6c9 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd new file mode 100644 index 0000000000..951454e3c5 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd new file mode 100644 index 0000000000..453a73a435 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd new file mode 100644 index 0000000000..6b8579c4b9 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd new file mode 100644 index 0000000000..6962705066 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd @@ -0,0 +1,1059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd b/Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd new file mode 100644 index 0000000000..484dacf8ca --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd new file mode 100644 index 0000000000..5346245539 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd new file mode 100644 index 0000000000..545b0beffc --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd new file mode 100644 index 0000000000..e7ab223045 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl new file mode 100644 index 0000000000..d0d0592848 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd new file mode 100644 index 0000000000..92b85d4711 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/sp/service.properties b/Infrastructure.STS.Company/ServiceContract/sp/service.properties new file mode 100644 index 0000000000..43d7bbdb80 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/sp/service.properties @@ -0,0 +1,6 @@ +service.uuid=9fdac538-fae1-494d-b326-23898eeb182c +service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 +service.token.wsdl.path= +service.context.wsdl.path= +service.class= +service.endpoint= \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl new file mode 100644 index 0000000000..924d8319f0 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl new file mode 100644 index 0000000000..fb482aab5a --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl new file mode 100644 index 0000000000..924d8319f0 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl new file mode 100644 index 0000000000..635b7af405 --- /dev/null +++ b/Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Company/app.config b/Infrastructure.STS.Company/app.config new file mode 100644 index 0000000000..5ed36f2464 --- /dev/null +++ b/Infrastructure.STS.Company/app.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs index 17a75b5e7a..771f6b5df2 100644 --- a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs +++ b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs @@ -8,6 +8,7 @@ using Core.DomainServices.SSO; using Infrastructure.STS.Common.Factories; using Infrastructure.STS.Organization.ServiceReference; +using Newtonsoft.Json; namespace Infrastructure.STS.Organization.DomainServices { @@ -35,15 +36,20 @@ public Result ResolveStsOrganizationUuid(Core.DomainModel. return fkOrgIdentity.ExternalUuid; } - if (!organization.IsCvrInvalid()) + if (organization.IsCvrInvalid()) { return new OperationError("Organization is missing CVR or has an invalid CVR", OperationFailure.BadInput); } + //TODO: Get the company by cvr first and then filter by virksomhed uuid + using var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint); using var organizationPortTypeClient = CreateOrganizationPortTypeClient(BasicHttpBindingFactory.CreateHttpBinding(), _serviceRoot, clientCertificate); - var searchRequest = CreateSearchForOrganizationRequest(organization); + + var searchRequest = CreateSearchForOrganizationRequest(organization, new Guid("7302f1a5-bbec-4439-a1ec-ea605bdf5ab3")); //TODO: Get the company uuid from a different service "Virksomhed" var channel = organizationPortTypeClient.ChannelFactory.CreateChannel(); + + var response = channel.soeg(searchRequest); var statusResult = response.SoegResponse1.SoegOutput.StandardRetur; if (statusResult.StatusKode != "20") //TODO: Create helper @@ -55,13 +61,13 @@ public Result ResolveStsOrganizationUuid(Core.DomainModel. if (ids.Length != 1) { return new OperationError($"Error resolving the organization from STS. Expected a single UUID but got:{string.Join(",", ids)}", OperationFailure.UnknownError); - } + //TODO: Remember to save the uuid on the organization!-> need a databasecontrol thing for that return new Guid(ids.Single()); } - private static soegRequest CreateSearchForOrganizationRequest(Core.DomainModel.Organization.Organization organization) + private static soegRequest CreateSearchForOrganizationRequest(Core.DomainModel.Organization.Organization organization, Guid companyUuid) { return new soegRequest { @@ -73,14 +79,17 @@ private static soegRequest CreateSearchForOrganizationRequest(Core.DomainModel.O }, SoegInput = new SoegInputType1 { - RelationListe = new RelationListeType() + MaksimalAntalKvantitet = "2", //We expect only one match so get 2 as max to see if something is off + AttributListe = new AttributListeType(), //Required by the schema even if it is not used + TilstandListe = new TilstandListeType(), //Required by the schema even if it is not used + RelationListe = new RelationListeType { - Virksomhed = new VirksomhedRelationType() + Virksomhed = new VirksomhedRelationType { - ReferenceID = new UnikIdType() + ReferenceID = new UnikIdType { - ItemElementName = ItemChoiceType.URNIdentifikator, - Item = $"urn:oio:cvr-nummer:{organization.Cvr}" + ItemElementName = ItemChoiceType.UUIDIdentifikator, + Item = companyUuid.ToString("D") } } } diff --git a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj index 32e1cc08c5..707456ba07 100644 --- a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj +++ b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj @@ -32,6 +32,9 @@ 4
+ + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + @@ -138,6 +141,7 @@ Designer + Designer diff --git a/Infrastructure.STS.Organization/packages.config b/Infrastructure.STS.Organization/packages.config new file mode 100644 index 0000000000..281c145594 --- /dev/null +++ b/Infrastructure.STS.Organization/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/KITOS.sln b/KITOS.sln index 7ad3edb1be..13a8615872 100644 --- a/KITOS.sln +++ b/KITOS.sln @@ -117,6 +117,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure.STS.Common", EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "STS", "STS", "{3F0ABEAA-2F6E-4385-8BB1-71695E633E0A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure.STS.Company", "Infrastructure.STS.Company\Infrastructure.STS.Company.csproj", "{09A799FA-3781-419B-AB54-3C76219FD2DE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -203,6 +205,10 @@ Global {423D7522-4882-4438-94F4-7B3F5778C83F}.Debug|Any CPU.Build.0 = Debug|Any CPU {423D7522-4882-4438-94F4-7B3F5778C83F}.Release|Any CPU.ActiveCfg = Release|Any CPU {423D7522-4882-4438-94F4-7B3F5778C83F}.Release|Any CPU.Build.0 = Release|Any CPU + {09A799FA-3781-419B-AB54-3C76219FD2DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09A799FA-3781-419B-AB54-3C76219FD2DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09A799FA-3781-419B-AB54-3C76219FD2DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09A799FA-3781-419B-AB54-3C76219FD2DE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -234,6 +240,7 @@ Global {3DC91665-93BB-442D-B186-7E90C7CD6E32} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} {423D7522-4882-4438-94F4-7B3F5778C83F} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} = {500B4C1D-B871-49A0-94E7-BD0623101EF6} + {09A799FA-3781-419B-AB54-3C76219FD2DE} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4890FA32-C82F-4C98-AC7A-2F4EE7F21687} diff --git a/Presentation.Web/Controllers/API/V1/HealthCheckController.cs b/Presentation.Web/Controllers/API/V1/HealthCheckController.cs index 0ef7c04a79..e99d6f25a7 100644 --- a/Presentation.Web/Controllers/API/V1/HealthCheckController.cs +++ b/Presentation.Web/Controllers/API/V1/HealthCheckController.cs @@ -1,4 +1,7 @@ -using System.Web.Http; +using System.Linq; +using System.Web.Http; +using Core.DomainServices.Organizations; +using Core.DomainServices.Repositories.Organization; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Properties; @@ -8,11 +11,23 @@ namespace Presentation.Web.Controllers.API.V1 [InternalApi] public class HealthCheckController : ApiController { + private readonly IOrganizationRepository _organizationRepository; + private readonly IStsOrganizationService _stsOrganizationService; private static readonly string DeploymentVersion = Settings.Default.DeploymentVersion; + //TODO: Revert changes in this file + public HealthCheckController(IOrganizationRepository organizationRepository, IStsOrganizationService stsOrganizationService) + { + _organizationRepository = organizationRepository; + _stsOrganizationService = stsOrganizationService; + } + [HttpGet] public IHttpActionResult Get() { + var organization = _organizationRepository.GetAll().First(); + organization.Cvr = "58271713"; //ballerup + var result = _stsOrganizationService.ResolveStsOrganizationUuid(organization); return Ok(DeploymentVersion); } } diff --git a/Presentation.Web/Web.config b/Presentation.Web/Web.config index 7a27192652..feb44cadca 100644 --- a/Presentation.Web/Web.config +++ b/Presentation.Web/Web.config @@ -6,27 +6,18 @@ --> - -
+ +
-
+
- - + + @@ -43,8 +34,7 @@ - + @@ -65,18 +55,13 @@ - + - + @@ -110,8 +95,7 @@ - + @@ -121,8 +105,7 @@ - + @@ -232,13 +215,11 @@ - + - + @@ -246,8 +227,7 @@ - + @@ -259,28 +239,23 @@ - + - + - + - + - + @@ -307,8 +282,7 @@ - + @@ -353,12 +327,10 @@ --> - + 30 true - + SHA256 https://kitos-local.strongminds.dk @@ -388,8 +360,7 @@ urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName - + From da9af493d1fbb973e88d26546f0abfc1341c9be2 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 15:25:15 +0200 Subject: [PATCH 064/432] changes after review --- .../API/V1/OData/ItContractsController.cs | 4 +--- .../it-contract-overview.controller.ts | 8 +++---- .../it-contract-plan.controller.ts | 22 +++++++++++++++++-- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs b/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs index d637ae8421..dee6605639 100644 --- a/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs @@ -60,9 +60,7 @@ public IHttpActionResult GetItContracts(int key) return Forbidden(); } - var result = Repository.AsQueryable() - .Include(x => x.LastChangedByUser) - .ByOrganizationId(key); + var result = Repository.AsQueryable().ByOrganizationId(key); return Ok(result); } diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 3325d71844..296af4a11b 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -622,16 +622,16 @@ }, { field: "LastChangedName", title: "Sidst redigeret: Bruger", width: 150, - persistId: "lastchangedname", // DON'T YOU DARE RENAME! - template: dataItem => dataItem && dataItem.LastChangedByUser ? `${dataItem.LastChangedByUser.Name} ${dataItem.LastChangedByUser.LastName}` : "", + persistId: "lastchangedname", + template: dataItem => `${dataItem.LastChangedByUser.Name} ${dataItem.LastChangedByUser.LastName}`, hidden: true, sortable: false, filterable: false }, { field: "LastChanged", title: "Sidste redigeret: Dato", width: 150, - persistId: "lastchanged", // DON'T YOU DARE RENAME! - template: dataItem => dataItem?.LastChanged ? dataItem.LastChanged.toString() : "", + persistId: "lastchanged", + template: dataItem => dataItem?.LastChanged ? dataItem.LastChanged.toLocaleDateString() : "", hidden: true, sortable: true, filterable: false diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 8d7f73a506..6a81934a61 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -233,7 +233,8 @@ "ProcurementStrategy($select=Name)," + "AssociatedSystemUsages($select=ItSystemUsageId)," + //Only using the length, so select 1 field "AssociatedSystemRelations($select=Id)," + //Only using the length, so select 1 field - "Reference($select=URL,Title,ExternalReferenceId)"; + "Reference($select=URL,Title,ExternalReferenceId)," + + "LastChangedByUser($select=Name,LastName)"; // if orgunit is set then the org unit filter is active var orgUnitId = this.$window.sessionStorage.getItem(this.orgUnitStorageKey); if (orgUnitId === null) { @@ -319,6 +320,7 @@ if (!contract.PurchaseForm) { contract.PurchaseForm = { Name: "" }; } if (!contract.TerminationDeadline) { contract.TerminationDeadline = { Name: "" }; } if (!contract.Reference) { contract.Reference = { Title: "", ExternalReferenceId: "" }; } + if (!contract.LastChangedByUser) { contract.LastChangedByUser = { Name: "", LastName: "" }; } }); return response; } @@ -822,7 +824,23 @@ operator: "contains" } } - } + }, + { + field: "LastChangedName", title: "Sidst redigeret: Bruger", width: 150, + persistId: "lastchangedname", + template: dataItem => `${dataItem.LastChangedByUser.Name} ${dataItem.LastChangedByUser.LastName}`, + hidden: true, + sortable: false, + filterable: false + }, + { + field: "LastChanged", title: "Sidste redigeret: Dato", width: 150, + persistId: "lastchanged", + template: dataItem => dataItem?.LastChanged ? dataItem.LastChanged.toLocaleDateString() : "", + hidden: true, + sortable: true, + filterable: false + }, ] }; From 084c9c38f7d9a98b9d351951378d054ecd00b1f0 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 15:30:51 +0200 Subject: [PATCH 065/432] deleted unnecessary import --- .../Controllers/API/V1/OData/ItContractsController.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs b/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs index dee6605639..c243ae14df 100644 --- a/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Data.Entity; using System.Linq; using System.Net; using System.Web.Http; From 22db462e69efcf8178ae251e7bfaa6d1aad7553e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 1 Jun 2022 15:32:23 +0200 Subject: [PATCH 066/432] added removed line --- .../Controllers/API/V1/OData/ItContractsController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs b/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs index c243ae14df..870b7eaeb6 100644 --- a/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/ItContractsController.cs @@ -60,6 +60,7 @@ public IHttpActionResult GetItContracts(int key) } var result = Repository.AsQueryable().ByOrganizationId(key); + return Ok(result); } From 83d06b885d7d8206da7e36ffccf7045fef9a31bf Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 2 Jun 2022 09:44:11 +0200 Subject: [PATCH 067/432] added inactive column removal --- .../it-contract-plan.controller.ts | 21 +++++++++++++++++-- .../tabs/it-contract-tab-main.controller.ts | 11 ++++++++-- .../tabs/it-contract-tab-main.view.html | 2 +- Presentation.Web/app/kitos.ts | 1 + ...tract-ui-customization-config-blueprint.ts | 8 +++++-- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index d13aae8888..97b323d91f 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -44,7 +44,8 @@ "$uibModal", "needsWidthFixService", "exportGridToExcelService", - "userAccessRights" + "userAccessRights", + "uiState" ]; constructor( @@ -65,9 +66,11 @@ private $modal, private needsWidthFixService, private exportGridToExcelService, - private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO) { + private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO, + private uiState: Models.UICustomization.ICustomizedModuleUI) { this.$rootScope.page.title = "IT Kontrakt - Tid"; + $scope.$on("kendoWidgetCreated", (event, widget) => { // the event is emitted for every widget; if we have multiple @@ -204,6 +207,7 @@ } private activate() { + const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; var clonedItContractRoles = this._.cloneDeep(this.itContractRoles); this._.forEach(clonedItContractRoles, n => n.Id = `role${n.Id}`); @@ -810,6 +814,7 @@ width: 90, persistId: "procurementPlan", // DON'T YOU DARE RENAME! attributes: { "class": "text-center" }, + isAvailable: this.uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.replacementPlan), template: dataItem => dataItem.ProcurementPlanQuarter && dataItem.ProcurementPlanYear ? `${dataItem.ProcurementPlanYear} | Q${dataItem.ProcurementPlanQuarter}` @@ -826,6 +831,15 @@ ] }; + //TODO: use helper method + mainGridOptions.columns.forEach(column => { + if (column.isAvailable === undefined || column.isAvailable) + return; + + const index = mainGridOptions.columns.indexOf(column); + mainGridOptions.columns.splice(index); + }); + function customFilter(args) { args.element.kendoAutoComplete({ noDataTemplate: '' @@ -1036,6 +1050,9 @@ ], orgUnits: [ "$http", "user", "_", ($http, user, _) => $http.get(`/odata/Organizations(${user.currentOrganizationId})/OrganizationUnits`).then(result => _.addHierarchyLevelOnFlatAndSort(result.data.value, "Id", "ParentId")) + ], + uiState: [ + "uiCustomizationStateService", (uiCustomizationStateService: Kitos.Services.UICustomization.IUICustomizationStateService) => uiCustomizationStateService.getCurrentState(Kitos.Models.UICustomization.CustomizableKitosModule.ItContract) ] } }); diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index ced226a0c7..dc45368fc2 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -64,6 +64,9 @@ return results; }); } + ], + uiState: [ + "uiCustomizationStateService", (uiCustomizationStateService: Kitos.Services.UICustomization.IUICustomizationStateService) => uiCustomizationStateService.getCurrentState(Kitos.Models.UICustomization.CustomizableKitosModule.ItContract) ] } }); @@ -72,8 +75,10 @@ app.controller('contract.EditMainCtrl', [ - '$scope', '$http', '_', '$stateParams', 'notify', 'contract', 'contractTypes', 'contractTemplates', 'purchaseForms', 'procurementStrategies', 'orgUnits', 'hasWriteAccess', 'user', 'autofocus', 'kitosUsers', - function ($scope, $http, _, $stateParams, notify, contract, contractTypes, contractTemplates, purchaseForms, procurementStrategies, orgUnits: Kitos.Models.ViewModel.Generic.Select2OptionViewModelWithIndentation[], hasWriteAccess, user : Kitos.Services.IUser, autofocus, kitosUsers) { + '$scope', '$http', '_', '$stateParams', 'notify', 'contract', 'contractTypes', 'contractTemplates', 'purchaseForms', 'procurementStrategies', 'orgUnits', 'hasWriteAccess', 'user', 'autofocus', 'kitosUsers', "uiState", + function ($scope, $http, _, $stateParams, notify, contract, contractTypes, contractTemplates, purchaseForms, procurementStrategies, orgUnits: Kitos.Models.ViewModel.Generic.Select2OptionViewModelWithIndentation[], hasWriteAccess, user: Kitos.Services.IUser, autofocus, kitosUsers, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI) { + + const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; $scope.autoSaveUrl = 'api/itcontract/' + $stateParams.id; $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; @@ -88,6 +93,8 @@ $scope.procurementStrategies = procurementStrategies; $scope.orgUnits = orgUnits; $scope.allowClear = true; + $scope.isReplacementPlanEnabled = + uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.replacementPlan); var today = new Date(); if (!contract.active) { diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 875a65340a..a1d5ae83f4 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -96,7 +96,7 @@

{{contract.name}}

-
+
extends kendo.ui.GridColumn { persistId: string; tempVisual?: boolean; + isAvailable?: boolean; excelTemplate?(dataItem: TDataSource): string; template?: ((dataItem: TDataSource) => string)|string; } diff --git a/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts index 435e0879e7..c329975da9 100644 --- a/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts +++ b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts @@ -2,14 +2,18 @@ export const ItContractUiCustomizationBluePrint = { module: UICustomization.CustomizableKitosModule.ItContract, readOnly: false, - //TODO: Replace the text helpText: "INSERT TEXT", text: "Kontraktoverblik - Økonomi", children: { frontPage: { text: "Kontraktforside", readOnly: true, - helpText: Configs.helpTexts.cannotChangeTab + helpText: Configs.helpTexts.cannotChangeTab, + children: { + replacementPlan: { + text: "Genanskaffelsesplan" + } + } }, itSystems: { text: "IT Systemer", From d248020afd15c80f7b83244e8fcc8b9e60ee72a0 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 2 Jun 2022 10:01:52 +0200 Subject: [PATCH 068/432] Added UiCustomizationHelper --- Presentation.Web/Presentation.Web.csproj | 1 + .../it-contract-overview.controller.ts | 70 +++++++++---------- .../app/helpers/UiCustomizationHelper.ts | 17 +++++ Presentation.Web/app/kitos.ts | 1 + 4 files changed, 54 insertions(+), 35 deletions(-) create mode 100644 Presentation.Web/app/helpers/UiCustomizationHelper.ts diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 3675b36509..915e7e0e7e 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -349,6 +349,7 @@ + diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index b813d17c68..50628eab25 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -750,49 +750,49 @@ // add a role column for each of the roles // note iterating in reverse so we don't have to update the insert index - if (this.uiState.isBluePrintNodeAvailable(uiBluePrint.children.contractRoles)) { + this._.forEachRight(this.itContractRoles, role => { + var roleColumn: IKendoGridColumn = { + field: `role${role.Id}`, + title: role.Name, + persistId: `role${role.Id}`, + isAvailable: this.uiState.isBluePrintNodeAvailable(uiBluePrint.children.contractRoles), + template: dataItem => { + var roles = ""; - this._.forEachRight(this.itContractRoles, role => { - var roleColumn: IKendoGridColumn = { - field: `role${role.Id}`, - title: role.Name, - persistId: `role${role.Id}`, - template: dataItem => { - var roles = ""; - - if (dataItem.roles[role.Id] === undefined) - return roles; + if (dataItem.roles[role.Id] === undefined) + return roles; - roles = self.concatRoles(dataItem.roles[role.Id]); + roles = self.concatRoles(dataItem.roles[role.Id]); - var link = `${roles}`; + var link = `${roles}`; - return link; - }, - excelTemplate: dataItem => { - var roles = ""; + return link; + }, + excelTemplate: dataItem => { + var roles = ""; - if (!dataItem || dataItem.roles[role.Id] === undefined) - return roles; + if (!dataItem || dataItem.roles[role.Id] === undefined) + return roles; - return self.concatRoles(dataItem.roles[role.Id]); - }, - width: 200, - hidden: !(role.Name === "Kontraktejer"), // hardcoded role name :( - sortable: false, - filterable: { - cell: { - dataSource: [], - showOperators: false, - operator: "contains" - } + return self.concatRoles(dataItem.roles[role.Id]); + }, + width: 200, + hidden: !(role.Name === "Kontraktejer"), // hardcoded role name :( + sortable: false, + filterable: { + cell: { + dataSource: [], + showOperators: false, + operator: "contains" } - }; + } + }; - // insert the generated column at the correct location - mainGridOptions.columns.splice(insertIndex, 0, roleColumn); - }); - } + // insert the generated column at the correct location + mainGridOptions.columns.splice(insertIndex, 0, roleColumn); + }); + + Helpers.UiCustomizationHelper.removeUnavailableColumns(mainGridOptions.columns); // assign the generated grid options to the scope value, kendo will do the rest this.mainGridOptions = mainGridOptions; diff --git a/Presentation.Web/app/helpers/UiCustomizationHelper.ts b/Presentation.Web/app/helpers/UiCustomizationHelper.ts new file mode 100644 index 0000000000..bc67ef460b --- /dev/null +++ b/Presentation.Web/app/helpers/UiCustomizationHelper.ts @@ -0,0 +1,17 @@ +module Kitos.Helpers { + + export class UiCustomizationHelper { + + public static removeUnavailableColumns(columns: IKendoGridColumn[]) { + columns.forEach(column => { + if (column.isAvailable === undefined || column.isAvailable) + return; + + const index = columns.indexOf(column); + columns.splice(index); + }); + } + } +} + + diff --git a/Presentation.Web/app/kitos.ts b/Presentation.Web/app/kitos.ts index 64b1b5720a..cdac79f9e6 100644 --- a/Presentation.Web/app/kitos.ts +++ b/Presentation.Web/app/kitos.ts @@ -6,6 +6,7 @@ export interface IKendoGridColumn extends kendo.ui.GridColumn { persistId: string; tempVisual?: boolean; + isAvailable?: boolean; excelTemplate?(dataItem: TDataSource): string; template?: ((dataItem: TDataSource) => string)|string; } From e70079d254217a0289b0930a3a098815affa27e2 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 2 Jun 2022 11:17:36 +0200 Subject: [PATCH 069/432] columns removed using helper --- .../it-contract/it-contract-plan.controller.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 97b323d91f..50f5d91d30 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -831,14 +831,7 @@ ] }; - //TODO: use helper method - mainGridOptions.columns.forEach(column => { - if (column.isAvailable === undefined || column.isAvailable) - return; - - const index = mainGridOptions.columns.indexOf(column); - mainGridOptions.columns.splice(index); - }); + Helpers.UiCustomizationHelper.removeUnavailableColumns(mainGridOptions.columns); function customFilter(args) { args.element.kendoAutoComplete({ From 559b279480192e9ecda86eecc8bc7d6d147871e6 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 2 Jun 2022 20:56:21 +0200 Subject: [PATCH 070/432] added ref, changed localAdmin elementIds --- ...min.ItContract.UiCustomization.e2e.spec.ts | 20 ++++++++++++++++++- .../SideNavigation/ContractNavigationSrefs.ts | 1 + 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts index 027b90848d..662645f612 100644 --- a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -29,7 +29,8 @@ describe("Local admin is able customize the IT-Contract usage UI", () => { .then(() => loginHelper.logout()) .then(() => loginHelper.loginAsLocalAdmin()) .then(() => testTabCustomization(contractName, "ItContracts.contractRoles", ContractNavigationSrefs.contractRolesSref)) - .then(() => testTabCustomization(contractName, "ItContracts.advice", ContractNavigationSrefs.adviceSref)); + .then(() => testTabCustomization(contractName, "ItContracts.advice", ContractNavigationSrefs.adviceSref)) + .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.replacementPlan", ContractNavigationSrefs.frontPageSref, /*"replacementPlans"*/ "s2id_contract-plan")); }); function testTabCustomization(name: string, settingId: string, tabSref: string) { @@ -39,6 +40,13 @@ describe("Local admin is able customize the IT-Contract usage UI", () => { .then(() => verifyTabVisibility(name, tabSref, false)); //Verify that the tab has now been hidden } + function testFieldCustomization(contractName: string, settingId: string, tabSref: string, settingElementId: string) { + console.log("testFieldCustomization for ", contractName, " and tabSref:", tabSref, " settingId:", settingId); + return verifySettingVisibility(contractName, tabSref, settingElementId, true) //Check that the setting is visible before the change + .then(() => toggleSetting(settingId)) //Toggle the setting + .then(() => verifySettingVisibility(contractName, tabSref, settingElementId, false)); //Verify that the setting has now been hidden + } + function navigateToContract(contractName: string) { let navigationPromise; @@ -61,6 +69,16 @@ describe("Local admin is able customize the IT-Contract usage UI", () => { .then(() => expect(navigation.findSubMenuElement(tabSref).isPresent()).toBe(expectedToBePresent, `Failed to validate tab:${tabSref} to be ${expectedToBePresent ? "_present_" : "_removed_"}`)); } + function verifySettingVisibility(contractName: string, tabSref: string, settingElementId: string, expectedToBePresent: boolean) { + console.log("verifySettingVisibility for ", contractName, " and field", settingElementId, " located on tabSref:", tabSref, " expectedPresence:", expectedToBePresent); + + return navigateToContract(contractName) + .then(() => expect(navigation.findSubMenuElement(tabSref).isPresent()).toBe(true, `Tab ${tabSref} containing setting ${settingElementId} is not present`)) + .then(() => navigation.findSubMenuElement(tabSref).click()) + .then(() => browser.waitForAngular()) + .then(() => expect(element(by.id(settingElementId)).isPresent()).toBe(expectedToBePresent, `Setting: ${settingElementId} failed to meet expected visibility of ${expectedToBePresent}`)); + } + function toggleSetting(settingId: string) { console.log("toggleSetting for ", settingId); return navigation.getPage("/#/local-config/contract") diff --git a/Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts b/Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts index a3aee3ce89..41521185e8 100644 --- a/Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts +++ b/Presentation.Web/Tests/Helpers/SideNavigation/ContractNavigationSrefs.ts @@ -1,6 +1,7 @@ class ContractNavigationSrefs { static adviceSref = "it-contract.edit.advice-generic({type: 'itContract'})"; static contractRolesSref = "it-contract.edit.roles"; + static frontPageSref = "it-contract.edit.main"; } export = ContractNavigationSrefs; \ No newline at end of file From 539b3fbee2a3f66a69aa2108383ff6e9b82f671a Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 3 Jun 2022 10:11:52 +0200 Subject: [PATCH 071/432] added required fields --- .../API/V1/ItSystemUsageController.cs | 2 +- Presentation.Web/Models/API/V1/ItSystemDTO.cs | 1 + .../tabs/it-system-usage-tab-main.controller.ts | 4 ++-- .../tabs/it-system-usage-tab-main.view.html | 16 ++++++++++++++++ .../ViewModel/it-system/system-view-models.ts | 6 ++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs index f4bb34aebd..a50755f385 100644 --- a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs +++ b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs @@ -14,7 +14,6 @@ using Core.DomainServices.Authorization; using Core.DomainServices.Extensions; using Presentation.Web.Infrastructure.Attributes; -using Presentation.Web.Models; using Presentation.Web.Models.API.V1; using Swashbuckle.Swagger.Annotations; @@ -90,6 +89,7 @@ public override HttpResponseMessage GetSingle(int id) } var dto = Map(item); + dto.ItSystem.LastChangedByName = item.LastChangedByUser.GetFullName(); if (GetOrganizationReadAccessLevel(item.OrganizationId) < OrganizationDataReadAccessLevel.All) { diff --git a/Presentation.Web/Models/API/V1/ItSystemDTO.cs b/Presentation.Web/Models/API/V1/ItSystemDTO.cs index ba0d890626..20883e17ca 100644 --- a/Presentation.Web/Models/API/V1/ItSystemDTO.cs +++ b/Presentation.Web/Models/API/V1/ItSystemDTO.cs @@ -65,6 +65,7 @@ public string ObjectOwnerFullName public int? InterfaceId { get; set; } public DateTime LastChanged { get; set; } + public string LastChangedByName { get; set; } public int LastChangedByUserId { get; set; } /// diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts index 9e866c21f7..6f79bb3c75 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts @@ -29,8 +29,8 @@ { id: "0", text: "<10" }, { id: "1", text: "10-50" }, { id: "2", text: "50-100" }, - { id: "3", text: ">100" }, - ] + { id: "3", text: ">100" } + ]; $scope.datepickerOptions = { format: "dd-MM-yyyy", diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html index 58a83ddb21..3ade6e08b0 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html @@ -115,6 +115,22 @@

{{systemUsageName}}

+
+ + +
+
+ + +
diff --git a/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts b/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts index cba27fd9e2..1965a31948 100644 --- a/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts +++ b/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts @@ -19,6 +19,8 @@ readonly businessTypeName: string, readonly archiveDuty: IArchiveDuty, readonly uuid: string, + readonly lastChanged: string, + readonly lastChangedByName: string, } export class SystemViewModel implements ISystemViewModel { @@ -34,6 +36,8 @@ readonly businessTypeName: string; readonly archiveDuty: IArchiveDuty; readonly uuid: string; + readonly lastChanged: string; + readonly lastChangedByName: string; constructor(itSystem: any) { this.name = Helpers.SystemNameFormat.apply(itSystem.name, itSystem.disabled); @@ -50,6 +54,8 @@ this.disabled = itSystem.disabled; this.archiveDuty = this.mapArchiveDuty(itSystem); this.accessModifier = Mappers.AccessModifierMapper.mapAccessModifier(itSystem.accessModifier); + this.lastChanged = itSystem.lastChanged; + this.lastChangedByName = itSystem.lastChangedByName; } private mapArchiveDuty(system): IArchiveDuty { From c0af2d97cf6be2a41f39a767775d54c3428b1b11 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 3 Jun 2022 12:38:20 +0200 Subject: [PATCH 072/432] added replacementPlan Id --- .../LocalAdmin.ItContract.UiCustomization.e2e.spec.ts | 2 +- .../components/it-contract/tabs/it-contract-tab-main.view.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts index 662645f612..bf3f590ae5 100644 --- a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -30,7 +30,7 @@ describe("Local admin is able customize the IT-Contract usage UI", () => { .then(() => loginHelper.loginAsLocalAdmin()) .then(() => testTabCustomization(contractName, "ItContracts.contractRoles", ContractNavigationSrefs.contractRolesSref)) .then(() => testTabCustomization(contractName, "ItContracts.advice", ContractNavigationSrefs.adviceSref)) - .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.replacementPlan", ContractNavigationSrefs.frontPageSref, /*"replacementPlans"*/ "s2id_contract-plan")); + .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.replacementPlan", ContractNavigationSrefs.frontPageSref, "selectReplacementPlan")); }); function testTabCustomization(name: string, settingId: string, tabSref: string) { diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index a1d5ae83f4..21eea018d3 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -96,7 +96,7 @@

{{contract.name}}

-
+
Date: Fri, 3 Jun 2022 15:03:55 +0200 Subject: [PATCH 073/432] added LastChanged to DRPReadModel --- .../GDPR/Read/DataProcessingRegistrationReadModel.cs | 3 +++ Infrastructure.DataAccess/Infrastructure.DataAccess.csproj | 7 +++++++ .../Mapping/DataProcessingRegistrationReadModelMap.cs | 5 +++++ .../data-processing-registration-overview.controller.ts | 3 ++- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs b/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs index d6f52ec29d..f87e88ce40 100644 --- a/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs +++ b/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs @@ -59,5 +59,8 @@ public DataProcessingRegistrationReadModel() public YesNoUndecidedOption? IsOversightCompleted { get; set; } public string ContractNamesAsCsv { get; set; } + public DateTime LastChanged { get; set; } + public User LastChangedByUser { get; set; } + public int LastChangedByUserId { get; set; } } } diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 6ffc19e233..9ffdfcdf4c 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -865,6 +865,10 @@ 202205190801320_UserDelete.cs + + + 202206031302349_AddDPRReadModelLastChanged.cs + @@ -1428,6 +1432,9 @@ 202205190801320_UserDelete.cs + + 202206031302349_AddDPRReadModelLastChanged.cs + diff --git a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs index de6a95e18c..298216b867 100644 --- a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs +++ b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs @@ -35,6 +35,11 @@ public DataProcessingRegistrationReadModelMap() .HasForeignKey(x => x.SourceEntityId) .WillCascadeOnDelete(false); + HasRequired(x => x.LastChangedByUser) + .WithMany() + .HasForeignKey(x => x.LastChangedByUserId) + .WillCascadeOnDelete(false); + //No index bc we don't know how long it might be Property(x => x.DataProcessorNamesAsCsv).IsOptional(); Property(x => x.SubDataProcessorNamesAsCsv).IsOptional(); diff --git a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts index b6cad27754..8b5946a13c 100644 --- a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts +++ b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts @@ -96,7 +96,8 @@ .withStorageKey("data-processing-registration-overview-options") .withFixedSourceUrl( `/odata/Organizations(${user.currentOrganizationId - })/DataProcessingRegistrationReadModels?$expand=RoleAssignments`) + })/DataProcessingRegistrationReadModels?$expand=RoleAssignments, + LastChangedByUser($select=Name,LastName)`) .withParameterMapping((options, type) => { // get kendo to map parameters to an odata url var parameterMap = kendo.data.transports["odata-v4"].parameterMap(options, type); From 47feba63659f03b528b265b526f9a793c77abc9e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 10:40:51 +0200 Subject: [PATCH 074/432] changes after review --- ...min.ItContract.UiCustomization.e2e.spec.ts | 2 +- .../it-contract-edit.controller.ts | 8 ++++---- .../it-contract-overview.controller.ts | 13 ++++++++---- .../it-contract-plan.controller.ts | 17 ++++++++++++++-- .../local-config-contract.view.html | 3 +++ .../app/helpers/UiCustomizationHelper.ts | 9 +++++++++ ...tract-ui-customization-config-blueprint.ts | 12 ++++++++--- ...usage-ui-customization-config-blueprint.ts | 2 +- .../ui-customization-config-primitives.ts | 3 ++- .../ui-customization-service.ts | 20 ++----------------- 10 files changed, 55 insertions(+), 34 deletions(-) diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts index 027b90848d..ac3e2b4b78 100644 --- a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -4,7 +4,7 @@ import ContractHelper = require("../../Helpers/ContractHelper"); import NavigationHelper = require("../../Utility/NavigationHelper"); import ContractNavigationSrefs = require("../../Helpers/SideNavigation/ContractNavigationSrefs"); -describe("Local admin is able customize the IT-Contract usage UI", () => { +describe("Local admin is able customize the IT-Contract UI", () => { var loginHelper = new Login(); var testFixture = new TestFixtureWrapper(); diff --git a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts index 4b6ccac150..ef071fac53 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts @@ -26,8 +26,8 @@ } ]); - app.controller("contract.EditCtrl", ["$scope", "$rootScope", "contract", "hasWriteAccess","userAccessRights", "uiState", - ($scope, $rootScope, contract, hasWriteAccess, userAccessRights: Kitos.Models.Api.Authorization.EntityAccessRightsDTO, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI) => { + app.controller("contract.EditCtrl", ["$scope", "$rootScope", "contract", "hasWriteAccess", "userAccessRights", "user", "uiState", + ($scope, $rootScope, contract, hasWriteAccess, userAccessRights: Kitos.Models.Api.Authorization.EntityAccessRightsDTO, user, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI) => { $scope.hasWriteAccess = hasWriteAccess; $scope.allowClearOption = { allowClear: true @@ -41,8 +41,8 @@ const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; $scope.isFrontPageEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage); - $scope.isItSystemsEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.itSystems); - $scope.isDataProcessingEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.dataProcessing); + $scope.isItSystemsEnabled = user.currentConfig.ShowItSystemModule && uiState.isBluePrintNodeAvailable(blueprint.children.itSystems); + $scope.isDataProcessingEnabled = user.currentConfig.ShowDataProcessing && uiState.isBluePrintNodeAvailable(blueprint.children.dataProcessing); $scope.isDeadlinesEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.deadlines); $scope.isPaymentModelEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.paymentModel); $scope.isEconomyEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.economy); diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 50628eab25..4369382169 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -33,6 +33,7 @@ private orgUnitStorageKey = "it-contract-overview-orgunit"; private gridState = this.gridStateService.getService(this.storageKey, this.user); private roleSelectorDataSource; + private uiBluePrint = Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; public mainGrid: IKendoGrid; public mainGridOptions: kendo.ui.GridOptions; public canCreate: boolean; @@ -82,7 +83,7 @@ private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO, private uiState: Models.UICustomization.ICustomizedModuleUI) { this.$rootScope.page.title = "IT Kontrakt - Økonomi"; - + this.$scope.$on("kendoWidgetCreated", (event, widget) => { // the event is emitted for every widget; if we have multiple // widgets in this controller, we need to check that the event @@ -232,8 +233,8 @@ } private activate() { - const uiBluePrint = Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; var self = this; + const selectRoleFilterName = "selectRoleFilter"; var clonedItContractRoles = this._.cloneDeep(this.itContractRoles); this._.forEach(clonedItContractRoles, n => n.Id = `role${n.Id}`); clonedItContractRoles.push({ Id: "ContractSigner", Name: "Kontraktunderskriver" }); @@ -401,6 +402,7 @@ "" }, { + name: selectRoleFilterName, template: kendo.template(self.$("#role-selector").html()) } ], @@ -755,9 +757,9 @@ field: `role${role.Id}`, title: role.Name, persistId: `role${role.Id}`, - isAvailable: this.uiState.isBluePrintNodeAvailable(uiBluePrint.children.contractRoles), + isAvailable: this.uiState.isBluePrintNodeAvailable(this.uiBluePrint.children.contractRoles), template: dataItem => { - var roles = ""; + var roles = ""; if (dataItem.roles[role.Id] === undefined) return roles; @@ -793,6 +795,9 @@ }); Helpers.UiCustomizationHelper.removeUnavailableColumns(mainGridOptions.columns); + if (!this.uiState.isBluePrintNodeAvailable(this.uiBluePrint.children.contractRoles)) { + Helpers.UiCustomizationHelper.removeItemFromToolbarByName(selectRoleFilterName, mainGridOptions.toolbar); + } // assign the generated grid options to the scope value, kendo will do the rest this.mainGridOptions = mainGridOptions; diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 8d7f73a506..39350f191f 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -22,6 +22,7 @@ private orgUnitStorageKey = "it-contract-plan-orgunit"; private gridState = this.gridStateService.getService(this.storageKey, this.user); private roleSelectorDataSource; + private uiBluePrint = Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; public mainGrid: Kitos.IKendoGrid; public mainGridOptions: kendo.ui.GridOptions; public canCreate: boolean; @@ -44,7 +45,8 @@ "$uibModal", "needsWidthFixService", "exportGridToExcelService", - "userAccessRights" + "userAccessRights", + "uiState" ]; constructor( @@ -65,7 +67,8 @@ private $modal, private needsWidthFixService, private exportGridToExcelService, - private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO) { + private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO, + private uiState: Models.UICustomization.ICustomizedModuleUI) { this.$rootScope.page.title = "IT Kontrakt - Tid"; $scope.$on("kendoWidgetCreated", @@ -205,6 +208,7 @@ private activate() { + const selectRoleFilterName = "selectRoleFilter"; var clonedItContractRoles = this._.cloneDeep(this.itContractRoles); this._.forEach(clonedItContractRoles, n => n.Id = `role${n.Id}`); clonedItContractRoles.push({ Id: "ContractSigner", Name: "Kontraktunderskriver" }); @@ -355,6 +359,7 @@ "" }, { + name: selectRoleFilterName, template: kendo.template(this.$("#role-selector").html()) } ], @@ -897,6 +902,11 @@ mainGridOptions.columns.splice(insertIndex, 0, roleColumn); }); + Helpers.UiCustomizationHelper.removeUnavailableColumns(mainGridOptions.columns); + if (!this.uiState.isBluePrintNodeAvailable(this.uiBluePrint.children.contractRoles)) { + Helpers.UiCustomizationHelper.removeItemFromToolbarByName(selectRoleFilterName, mainGridOptions.toolbar); + } + // assign the generated grid options to the scope value, kendo will do the rest this.mainGridOptions = mainGridOptions; @@ -1036,6 +1046,9 @@ ], orgUnits: [ "$http", "user", "_", ($http, user, _) => $http.get(`/odata/Organizations(${user.currentOrganizationId})/OrganizationUnits`).then(result => _.addHierarchyLevelOnFlatAndSort(result.data.value, "Id", "ParentId")) + ], + uiState: [ + "uiCustomizationStateService", (uiCustomizationStateService: Kitos.Services.UICustomization.IUICustomizationStateService) => uiCustomizationStateService.getCurrentState(Kitos.Models.UICustomization.CustomizableKitosModule.ItContract) ] } }); diff --git a/Presentation.Web/app/components/local-config/local-config-contract.view.html b/Presentation.Web/app/components/local-config/local-config-contract.view.html index 564abb95d5..70dc4f71e9 100644 --- a/Presentation.Web/app/components/local-config/local-config-contract.view.html +++ b/Presentation.Web/app/components/local-config/local-config-contract.view.html @@ -2,6 +2,9 @@
+
+ +
diff --git a/Presentation.Web/app/helpers/UiCustomizationHelper.ts b/Presentation.Web/app/helpers/UiCustomizationHelper.ts index bc67ef460b..5368f67590 100644 --- a/Presentation.Web/app/helpers/UiCustomizationHelper.ts +++ b/Presentation.Web/app/helpers/UiCustomizationHelper.ts @@ -11,6 +11,15 @@ columns.splice(index); }); } + + public static removeItemFromToolbarByName(name: string, items: IKendoGridToolbarItem[]) { + const item = items.filter(x => x.name === name)[0]; + if (item === undefined) + return; + + const index = items.indexOf(item); + items.splice(index); + } } } diff --git a/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts index 435e0879e7..00edad7000 100644 --- a/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts +++ b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts @@ -2,9 +2,8 @@ export const ItContractUiCustomizationBluePrint = { module: UICustomization.CustomizableKitosModule.ItContract, readOnly: false, - //TODO: Replace the text - helpText: "INSERT TEXT", - text: "Kontraktoverblik - Økonomi", + helpText: Configs.helpTexts.generalUiCustomizationHelpText, + text: "IT Kontrakt", children: { frontPage: { text: "Kontraktforside", @@ -13,22 +12,27 @@ }, itSystems: { text: "IT Systemer", + helpText: Configs.helpTexts.cannotChangeTabOnlyThroughModuleConfig, readOnly: true }, dataProcessing: { text: "Databehandling", + helpText: Configs.helpTexts.cannotChangeTabOnlyThroughModuleConfig, readOnly: true }, deadlines: { text: "Aftalefrister", + helpText: Configs.helpTexts.cannotChangeTab, readOnly: true }, paymentModel: { text: "Betalingsmodel", + helpText: Configs.helpTexts.cannotChangeTab, readOnly: true }, economy: { text: "Økonomi", + helpText: Configs.helpTexts.cannotChangeTab, readOnly: true }, contractRoles: { @@ -36,6 +40,7 @@ }, hierarchy: { text: "Hierarki", + helpText: Configs.helpTexts.cannotChangeTab, readOnly: true }, advice: { @@ -43,6 +48,7 @@ }, references: { text: "Referencer", + helpText: Configs.helpTexts.cannotChangeTab, readOnly: true } } diff --git a/Presentation.Web/app/models/ui-customization/config/blueprints/it-system-usage-ui-customization-config-blueprint.ts b/Presentation.Web/app/models/ui-customization/config/blueprints/it-system-usage-ui-customization-config-blueprint.ts index 73fd4a2711..324c1451fa 100644 --- a/Presentation.Web/app/models/ui-customization/config/blueprints/it-system-usage-ui-customization-config-blueprint.ts +++ b/Presentation.Web/app/models/ui-customization/config/blueprints/it-system-usage-ui-customization-config-blueprint.ts @@ -2,7 +2,7 @@ export const ItSystemUsageUiCustomizationBluePrint = { module: UICustomization.CustomizableKitosModule.ItSystemUsage, readOnly: false, - helpText: "Bemærk: Skjules faneblad/felt fjernes relaterede felt(er) også fra overbliksbillederne.", + helpText: Configs.helpTexts.generalUiCustomizationHelpText, text: "IT-Systemer i anvendelse", children: { frontPage: { diff --git a/Presentation.Web/app/models/ui-customization/config/ui-customization-config-primitives.ts b/Presentation.Web/app/models/ui-customization/config/ui-customization-config-primitives.ts index dff4a7769d..31b73d072c 100644 --- a/Presentation.Web/app/models/ui-customization/config/ui-customization-config-primitives.ts +++ b/Presentation.Web/app/models/ui-customization/config/ui-customization-config-primitives.ts @@ -36,6 +36,7 @@ export const helpTexts = { cannotChangeTab: "Det er ikke muligt at slå dette faneblad fra", - cannotChangeTabOnlyThroughModuleConfig: "Det er kun muligt at fjerne dette faneblad ved at slå det relaterede module fra" + cannotChangeTabOnlyThroughModuleConfig: "Det er kun muligt at fjerne dette faneblad ved at slå det relaterede module fra", + generalUiCustomizationHelpText: "Bemærk: Skjules faneblad/felt fjernes relaterede felt(er) også fra overbliksbillederne." } } \ No newline at end of file diff --git a/Presentation.Web/app/services/ui-customization/ui-customization-service.ts b/Presentation.Web/app/services/ui-customization/ui-customization-service.ts index 35c4596045..89f5785eb7 100644 --- a/Presentation.Web/app/services/ui-customization/ui-customization-service.ts +++ b/Presentation.Web/app/services/ui-customization/ui-customization-service.ts @@ -110,25 +110,9 @@ } loadActiveConfiguration(module: Models.UICustomization.CustomizableKitosModule): ng.IPromise { - let persisted: angular.IPromise; - let bluePrint: Models.UICustomization.Configs.ICustomizableUIModuleConfigBluePrint; + const persisted = this.loadPersistedPreferences(module); + const bluePrint = this.loadBluePrint(module); - switch (module) { - case Models.UICustomization.CustomizableKitosModule.ItSystemUsage: - { - persisted = this.loadPersistedPreferences(module); - bluePrint = this.loadBluePrint(module); - break; - } - case Models.UICustomization.CustomizableKitosModule.ItContract: - { - persisted = this.loadPersistedPreferences(module); - bluePrint = this.loadBluePrint(module); - break; - } - default: - throw `Unknown module:${module}`; - } return persisted .then(config => this.buildActiveConfiguration(bluePrint, config)) .then(activeConfig => { From 4d7d4838d67f40344ad2c21cd51e4e5de3f223be Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 11:01:37 +0200 Subject: [PATCH 075/432] changes after review --- Presentation.Web/Presentation.Web.csproj | 2 +- ...processing-registration-tab-main.controller.ts | 15 +++------------ .../global-admin-local-admins.controller.ts | 2 +- .../global-admin/global-admin-misc.controller.ts | 12 ++++-------- .../global-admin/global-admin-misc.view.html | 6 +++--- .../tabs/it-contract-tab-main.controller.ts | 2 +- .../it-system-usage-tab-archiving.controller.ts | 2 +- ...tHelper.ts => select2-option-format-helper.ts} | 5 ++++- 8 files changed, 18 insertions(+), 28 deletions(-) rename Presentation.Web/app/helpers/{FormatHelper.ts => select2-option-format-helper.ts} (73%) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 09a509382c..ded264da6e 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -344,7 +344,7 @@ - + diff --git a/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts b/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts index c43e7a3d13..c91fd2d06a 100644 --- a/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts +++ b/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts @@ -219,16 +219,6 @@ ); } - private formatDataProcessorChoice(choice: Models.ViewModel.Generic.Select2OptionViewModel) { - let result = `
${choice.text}
`; - - if (choice.optionalObjectContext?.cvrNumber) { - result += `
${choice.optionalObjectContext.cvrNumber}
`; - } - - return result; - } - private bindDataProcessors() { const pageSize = 100; this.bindingService.bindMultiSelectConfiguration( @@ -241,9 +231,10 @@ (query) => this.dataProcessingRegistrationService.getApplicableDataProcessors(this.dataProcessingRegistrationId, query, pageSize) .then(results => this.mapDataProcessingSearchResults(results)), null, - this.formatDataProcessorChoice + Helpers.Select2OptionsFormatHelper.formatOrganizationWithCvr ); } + private bindSubDataProcessors() { const pageSize = 100; this.bindingService.bindMultiSelectConfiguration( @@ -258,7 +249,7 @@ .getApplicableSubDataProcessors(this.dataProcessingRegistrationId, query, pageSize) .then(results => this.mapDataProcessingSearchResults(results)), null, - this.formatDataProcessorChoice + Helpers.Select2OptionsFormatHelper.formatOrganizationWithCvr ); } diff --git a/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts index acfbddf66e..35d1386477 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-local-admins.controller.ts @@ -99,7 +99,7 @@ }); }; - $scope.organizationSelectOptions = selectLazyLoading('api/organization', Kitos.Helpers.FormatHelper.formatOrganizationWithCvr, null); + $scope.organizationSelectOptions = selectLazyLoading('api/organization', Kitos.Helpers.Select2OptionsFormatHelper.formatOrganizationWithCvr, null); function selectLazyLoading(url, format, paramAry) { return { diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index 7d344efa7b..e11cf1c743 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -71,7 +71,7 @@ }); }; - $scope.userOptions = getAvailableUsers(); + $scope.userOptions = getAvailableUserOptions(); getKleStatus(); function getKleStatus() { @@ -160,11 +160,8 @@ }); $scope.removeUser = (id: number) => { - const name = $scope.selectedUser.text; - const email = $scope.selectedUser.email; - - //$state.go("global-admin-misc-user-delete", { id: id}); const nameAndEmail = `${$scope.selectedUser.text}, ${$scope.selectedUser.email}`; + if (confirm(`Er du sikker på, at du vil slette ${nameAndEmail}`)) { notify.addInfoMessage(`Sletter ${nameAndEmail}`); userService.deleteUser(id) @@ -176,7 +173,6 @@ ).catch(ex => { console.log(ex); notify.addErrorMessage(`Fejl ifm. sletning af brugeren Sletter ${nameAndEmail}`); - $scope.reload(); }); $state.reload(); } @@ -187,7 +183,7 @@ $scope.KleApplyUpdateButtonInteraction = updateButton; } - function getAvailableUsers() { + function getAvailableUserOptions() { return select2LoadingService.loadSelect2WithDataSource( (query: string) => userService.searchUsers(query) @@ -203,7 +199,7 @@ }) ) , false - , Kitos.Helpers.FormatHelper.formatUserWithEmail); + , Kitos.Helpers.Select2OptionsFormatHelper.formatUserWithEmail); } }]); })(angular, app); \ No newline at end of file diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index 2cf230dffe..96b069bbed 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -27,7 +27,7 @@

Nedlæg bruger

placeholder="Vælg bruger" ng-model="selectedUser"> @@ -36,7 +36,7 @@

Nedlæg bruger

{{selectedUser.text}} {{selectedUser.email}} Brugeren er stadig medlem af følgende organisationer + ng-if="selectedUser"> @@ -44,7 +44,7 @@

Nedlæg bruger

- + diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 7e4ce5bec3..8582ce0a6d 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -207,7 +207,7 @@ }; } - $scope.suppliersSelectOptions = selectLazyLoading('api/organization', false, Kitos.Helpers.FormatHelper.formatOrganizationWithCvr, ['take=100','orgId=' + user.currentOrganizationId]); + $scope.suppliersSelectOptions = selectLazyLoading('api/organization', false, Kitos.Helpers.Select2OptionsFormatHelper.formatOrganizationWithCvr, ['take=100','orgId=' + user.currentOrganizationId]); function selectLazyLoading(url, excludeSelf, format, paramAry) { return { diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts index f630f66b7b..4dcf1a00c1 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-archiving.controller.ts @@ -170,7 +170,7 @@ text: item.name ? item.name : 'Unavngiven', cvr: item.cvr }); - }, "q", Kitos.Helpers.FormatHelper.formatOrganizationWithCvr); + }, "q", Kitos.Helpers.Select2OptionsFormatHelper.formatOrganizationWithCvr); $scope.patchDatePeriode = (field, value, id) => { var formatDateString = "YYYY-MM-DD"; diff --git a/Presentation.Web/app/helpers/FormatHelper.ts b/Presentation.Web/app/helpers/select2-option-format-helper.ts similarity index 73% rename from Presentation.Web/app/helpers/FormatHelper.ts rename to Presentation.Web/app/helpers/select2-option-format-helper.ts index 92c7ea0ae8..797b01b8b5 100644 --- a/Presentation.Web/app/helpers/FormatHelper.ts +++ b/Presentation.Web/app/helpers/select2-option-format-helper.ts @@ -1,5 +1,5 @@ module Kitos.Helpers { - export class FormatHelper { + export class Select2OptionsFormatHelper { public static formatUserWithEmail(user: any): string { var result = '
' + user.text + '
'; if (user.email) { @@ -13,6 +13,9 @@ if (org.cvr) { result += '
' + org.cvr + '
'; } + if (org.optionalObjectContext?.cvrNumber) { + result += '
' + org.optionalObjectContext.cvrNumber + '
'; + } return result; } } From 7166d2f676182987716be4421b3101c5d1344b45 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 11:25:49 +0200 Subject: [PATCH 076/432] fix --- .../app/components/it-contract/it-contract-edit.controller.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts index ef071fac53..eed3f6d1b6 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts @@ -41,8 +41,8 @@ const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; $scope.isFrontPageEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage); - $scope.isItSystemsEnabled = user.currentConfig.ShowItSystemModule && uiState.isBluePrintNodeAvailable(blueprint.children.itSystems); - $scope.isDataProcessingEnabled = user.currentConfig.ShowDataProcessing && uiState.isBluePrintNodeAvailable(blueprint.children.dataProcessing); + $scope.isItSystemsEnabled = user.currentConfig.showItSystemModule && uiState.isBluePrintNodeAvailable(blueprint.children.itSystems); + $scope.isDataProcessingEnabled = user.currentConfig.showDataProcessing && uiState.isBluePrintNodeAvailable(blueprint.children.dataProcessing); $scope.isDeadlinesEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.deadlines); $scope.isPaymentModelEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.paymentModel); $scope.isEconomyEnabled = uiState.isBluePrintNodeAvailable(blueprint.children.economy); From 7628750e08e4ab50d8b4064abe77b0545d140f64 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 12:05:58 +0200 Subject: [PATCH 077/432] changed select2 otpions format helper --- ...essing-registration-tab-main.controller.ts | 4 +-- .../helpers/select2-option-format-helper.ts | 27 ++++++++++--------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts b/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts index c91fd2d06a..c6ed7067be 100644 --- a/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts +++ b/Presentation.Web/app/components/data-processing/tabs/data-processing-registration-tab-main.controller.ts @@ -231,7 +231,7 @@ (query) => this.dataProcessingRegistrationService.getApplicableDataProcessors(this.dataProcessingRegistrationId, query, pageSize) .then(results => this.mapDataProcessingSearchResults(results)), null, - Helpers.Select2OptionsFormatHelper.formatOrganizationWithCvr + Helpers.Select2OptionsFormatHelper.formatOrganizationWithOptionalObjectContext ); } @@ -249,7 +249,7 @@ .getApplicableSubDataProcessors(this.dataProcessingRegistrationId, query, pageSize) .then(results => this.mapDataProcessingSearchResults(results)), null, - Helpers.Select2OptionsFormatHelper.formatOrganizationWithCvr + Helpers.Select2OptionsFormatHelper.formatOrganizationWithOptionalObjectContext ); } diff --git a/Presentation.Web/app/helpers/select2-option-format-helper.ts b/Presentation.Web/app/helpers/select2-option-format-helper.ts index 797b01b8b5..4bb930e67b 100644 --- a/Presentation.Web/app/helpers/select2-option-format-helper.ts +++ b/Presentation.Web/app/helpers/select2-option-format-helper.ts @@ -1,20 +1,21 @@ module Kitos.Helpers { export class Select2OptionsFormatHelper { - public static formatUserWithEmail(user: any): string { - var result = '
' + user.text + '
'; - if (user.email) { - result += '
' + user.email + '
'; - } - return result; + public static formatUserWithEmail(user: {text:string, email?: string}): string { + return Select2OptionsFormatHelper.formatText(user.text, user.email);; } - public static formatOrganizationWithCvr(org: any): string { - var result = '
' + org.text + '
'; - if (org.cvr) { - result += '
' + org.cvr + '
'; - } - if (org.optionalObjectContext?.cvrNumber) { - result += '
' + org.optionalObjectContext.cvrNumber + '
'; + public static formatOrganizationWithCvr(org: {text: string, cvr?: string}): string { + return Select2OptionsFormatHelper.formatText(org.text, org.cvr);; + } + + public static formatOrganizationWithOptionalObjectContext(org: { text: string, optionalObjectContext?: { cvrNumber: string } }): string { + return Select2OptionsFormatHelper.formatText(org.text, org.optionalObjectContext?.cvrNumber);; + } + + private static formatText(text: string, subText?: string): string { + let result = `
${text}
`; + if (subText) { + result += `
${subText}
`; } return result; } From 30cc52e4ad1d18e52d62e4becd2949c0f715731d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 7 Jun 2022 12:26:32 +0200 Subject: [PATCH 078/432] added ability to resolve org uuid by cvr --- Core.Abstractions/Core.Abstractions.csproj | 1 + .../Types/DetailedOperationError.cs | 13 +++ .../Core.DomainServices.csproj | 2 + .../IStsOrganizationCompanyLookupService.cs | 11 +++ .../Organizations/IStsOrganizationService.cs | 3 +- .../ResolveOrganizationUuidError.cs | 11 +++ .../SSO/ISsoOrganizationIdentityRepository.cs | 1 + .../SSO/StsBrugerInfoService.cs | 13 +-- .../Infrastructure.STS.Common.csproj | 9 +- Infrastructure.STS.Common/Model/StsError.cs | 9 ++ .../Model/StsErrorParser.cs | 23 +++++ .../StsOrganizationCompanyLookupService.cs | 95 +++++++++++++++++++ .../Infrastructure.STS.Company.csproj | 19 ++++ .../DomainServices/StsOrganizationService.cs | 51 +++++++--- .../Infrastructure.STS.Organization.csproj | 7 ++ .../packages.config | 1 + Presentation.Web/Ninject/KernelBuilder.cs | 2 + Presentation.Web/Presentation.Web.csproj | 4 + 18 files changed, 255 insertions(+), 20 deletions(-) create mode 100644 Core.Abstractions/Types/DetailedOperationError.cs create mode 100644 Core.DomainServices/Organizations/IStsOrganizationCompanyLookupService.cs create mode 100644 Core.DomainServices/Organizations/ResolveOrganizationUuidError.cs create mode 100644 Infrastructure.STS.Common/Model/StsError.cs create mode 100644 Infrastructure.STS.Common/Model/StsErrorParser.cs create mode 100644 Infrastructure.STS.Company/DomainServices/StsOrganizationCompanyLookupService.cs diff --git a/Core.Abstractions/Core.Abstractions.csproj b/Core.Abstractions/Core.Abstractions.csproj index 0ac860d89e..064d970b75 100644 --- a/Core.Abstractions/Core.Abstractions.csproj +++ b/Core.Abstractions/Core.Abstractions.csproj @@ -49,6 +49,7 @@ + diff --git a/Core.Abstractions/Types/DetailedOperationError.cs b/Core.Abstractions/Types/DetailedOperationError.cs new file mode 100644 index 0000000000..e321d85c36 --- /dev/null +++ b/Core.Abstractions/Types/DetailedOperationError.cs @@ -0,0 +1,13 @@ +namespace Core.Abstractions.Types +{ + public class DetailedOperationError : OperationError + { + public DetailedOperationError(OperationFailure failureType, TDetail detail, string message = null) + : base(message, failureType) + { + Detail = detail; + } + + public TDetail Detail { get; } + } +} diff --git a/Core.DomainServices/Core.DomainServices.csproj b/Core.DomainServices/Core.DomainServices.csproj index 0ef8b8f743..afbbf55120 100644 --- a/Core.DomainServices/Core.DomainServices.csproj +++ b/Core.DomainServices/Core.DomainServices.csproj @@ -90,8 +90,10 @@ + + diff --git a/Core.DomainServices/Organizations/IStsOrganizationCompanyLookupService.cs b/Core.DomainServices/Organizations/IStsOrganizationCompanyLookupService.cs new file mode 100644 index 0000000000..4e7f476e33 --- /dev/null +++ b/Core.DomainServices/Organizations/IStsOrganizationCompanyLookupService.cs @@ -0,0 +1,11 @@ +using System; +using Core.Abstractions.Types; +using Core.DomainModel.Organization; + +namespace Core.DomainServices.Organizations +{ + public interface IStsOrganizationCompanyLookupService + { + Result ResolveStsOrganizationCompanyUuid(Organization organization); + } +} diff --git a/Core.DomainServices/Organizations/IStsOrganizationService.cs b/Core.DomainServices/Organizations/IStsOrganizationService.cs index 290382e7ba..3e508bc391 100644 --- a/Core.DomainServices/Organizations/IStsOrganizationService.cs +++ b/Core.DomainServices/Organizations/IStsOrganizationService.cs @@ -6,7 +6,6 @@ namespace Core.DomainServices.Organizations { public interface IStsOrganizationService { - //TODO: Consider specific enum for this error - Result ResolveStsOrganizationUuid(Organization organization); + Result> ResolveStsOrganizationUuid(Organization organization); } } diff --git a/Core.DomainServices/Organizations/ResolveOrganizationUuidError.cs b/Core.DomainServices/Organizations/ResolveOrganizationUuidError.cs new file mode 100644 index 0000000000..1db42a2c80 --- /dev/null +++ b/Core.DomainServices/Organizations/ResolveOrganizationUuidError.cs @@ -0,0 +1,11 @@ +namespace Core.DomainServices.Organizations +{ + public enum ResolveOrganizationUuidError + { + InvalidCvrOnOrganization, + FailedToLookupOrganizationCompany, + FailedToSearchForOrganizationByCompanyUuid, + DuplicateOrganizationResults, + FailedToSaveUuidOnKitosOrganization + } +} diff --git a/Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs index d411bdd7e7..eab414cc3e 100644 --- a/Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs +++ b/Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs @@ -5,6 +5,7 @@ namespace Core.DomainServices.Repositories.SSO { + //TODO: Renaming - it's the FK/STS UUID public interface ISsoOrganizationIdentityRepository { Maybe GetByExternalUuid(Guid externalId); diff --git a/Core.DomainServices/SSO/StsBrugerInfoService.cs b/Core.DomainServices/SSO/StsBrugerInfoService.cs index 9ecc27733f..16146f3b29 100644 --- a/Core.DomainServices/SSO/StsBrugerInfoService.cs +++ b/Core.DomainServices/SSO/StsBrugerInfoService.cs @@ -5,6 +5,7 @@ using Infrastructure.Soap.STSBruger; using Infrastructure.STS.Common.Factories; +using Infrastructure.STS.Common.Model; using Serilog; namespace Core.DomainServices.SSO @@ -13,7 +14,6 @@ public class StsBrugerInfoService : IStsBrugerInfoService { private readonly ILogger _logger; private const string EmailTypeIdentifier = StsOrganisationConstants.UserProperties.Email; - private const string StsStandardNotFoundResultCode = "44"; private readonly string _urlServicePlatformBrugerService; private readonly string _urlServicePlatformAdresseService; @@ -78,8 +78,8 @@ public Maybe GetStsBrugerInfo(Guid uuid, string cvrNumber) var stdOutput = laesResponseResult.LaesResponse1?.LaesOutput?.StandardRetur; var returnCode = stdOutput?.StatusKode ?? "unknown"; var errorCode = stdOutput?.FejlbeskedTekst ?? string.Empty; - - if (returnCode == StsStandardNotFoundResultCode) + var stsError = stdOutput?.StatusKode.ParseStsError() ?? Maybe.None; + if (stsError.Select(error => error == StsError.NotFound).GetValueOrDefault()) return $"Requested user '{uuid}' from cvr '{cvrNumber}' was not found. STS Bruger endpoint returned '{returnCode}:{errorCode}'"; var registrations = @@ -179,8 +179,8 @@ private Result, string> GetStsAdresseEmailFromUuid(string em var stdOutput = laesResponse.LaesResponse1?.LaesOutput?.StandardRetur; var returnCode = stdOutput?.StatusKode ?? "unknown"; var errorCode = stdOutput?.FejlbeskedTekst ?? string.Empty; - - if (returnCode == StsStandardNotFoundResultCode) + var stsError = stdOutput?.StatusKode.ParseStsError() ?? Maybe.None; + if (stsError.Select(error => error == StsError.NotFound).GetValueOrDefault()) return $"Requested email address '{emailAdresseUuid}' from cvr '{cvrNumber}' was not found. STS Adresse endpoint returned '{returnCode}:{errorCode}'"; var registreringType1s = @@ -237,7 +237,8 @@ private Result GetStsPersonFromUuid(string personUuid, st var returnCode = stdOutput?.StatusKode ?? "unknown"; var errorCode = stdOutput?.FejlbeskedTekst ?? string.Empty; - if (returnCode == StsStandardNotFoundResultCode) + var stsError = stdOutput?.StatusKode.ParseStsError() ?? Maybe.None; + if (stsError.Select(error => error == StsError.NotFound).GetValueOrDefault()) return $"Requested person '{personUuid}' from cvr '{cvrNumber}' was not found. STS Person endpoint returned '{returnCode}:{errorCode}'"; var registreringType1s = diff --git a/Infrastructure.STS.Common/Infrastructure.STS.Common.csproj b/Infrastructure.STS.Common/Infrastructure.STS.Common.csproj index bc58944030..76993849ab 100644 --- a/Infrastructure.STS.Common/Infrastructure.STS.Common.csproj +++ b/Infrastructure.STS.Common/Infrastructure.STS.Common.csproj @@ -45,8 +45,15 @@ + + - + + + {BD8C90E7-52C7-4AD0-935D-98A2AA89E449} + Core.Abstractions + + \ No newline at end of file diff --git a/Infrastructure.STS.Common/Model/StsError.cs b/Infrastructure.STS.Common/Model/StsError.cs new file mode 100644 index 0000000000..1ffd86e2bc --- /dev/null +++ b/Infrastructure.STS.Common/Model/StsError.cs @@ -0,0 +1,9 @@ +namespace Infrastructure.STS.Common.Model +{ + public enum StsError + { + NotFound, + BadInput, + Unknown + } +} diff --git a/Infrastructure.STS.Common/Model/StsErrorParser.cs b/Infrastructure.STS.Common/Model/StsErrorParser.cs new file mode 100644 index 0000000000..b01380d06e --- /dev/null +++ b/Infrastructure.STS.Common/Model/StsErrorParser.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using Core.Abstractions.Types; + +namespace Infrastructure.STS.Common.Model +{ + public static class StsErrorParser + { + private static readonly IReadOnlyDictionary KnownErrors = new Dictionary + { + { "44", StsError.NotFound }, + { "40", StsError.BadInput } + }; + public static Maybe ParseStsError(this string resultCode) + { + if (resultCode == "20") + { + return Maybe.None; + } + + return KnownErrors.TryGetValue(resultCode, out var knownError) ? knownError : StsError.Unknown; + } + } +} diff --git a/Infrastructure.STS.Company/DomainServices/StsOrganizationCompanyLookupService.cs b/Infrastructure.STS.Company/DomainServices/StsOrganizationCompanyLookupService.cs new file mode 100644 index 0000000000..7dbc92e70c --- /dev/null +++ b/Infrastructure.STS.Company/DomainServices/StsOrganizationCompanyLookupService.cs @@ -0,0 +1,95 @@ +using System; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; +using Core.Abstractions.Types; +using Core.DomainModel.Organization; +using Core.DomainServices.Organizations; +using Core.DomainServices.SSO; +using Infrastructure.STS.Common.Factories; +using Infrastructure.STS.Common.Model; +using Infrastructure.STS.Company.ServiceReference; + +namespace Infrastructure.STS.Company.DomainServices +{ + public class StsOrganizationCompanyLookupService : IStsOrganizationCompanyLookupService + { + private readonly string _certificateThumbprint; + private readonly string _serviceRoot; + + public StsOrganizationCompanyLookupService(StsOrganisationIntegrationConfiguration configuration) + { + _certificateThumbprint = configuration.CertificateThumbprint; + _serviceRoot = $"https://{configuration.EndpointHost}/service/Organisation/Virksomhed/5"; + } + + public Result ResolveStsOrganizationCompanyUuid(Organization organization) + { + if (organization == null) + { + throw new ArgumentNullException(nameof(organization)); + } + using var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint); + using var organizationPortTypeClient = CreateClient(BasicHttpBindingFactory.CreateHttpBinding(), _serviceRoot, clientCertificate); + + var channel = organizationPortTypeClient.ChannelFactory.CreateChannel(); + var request = CreateSearchByCvrRequest(organization); + var response = channel.soeg(request); + + var statusResult = response.SoegResponse1.SoegOutput.StandardRetur; + var stsError = statusResult.StatusKode.ParseStsError(); + if (stsError.HasValue) + { + return new OperationError($"Error resolving the organization company from STS:{statusResult.StatusKode}:{statusResult.FejlbeskedTekst}", OperationFailure.UnknownError); + } + + var ids = response.SoegResponse1.SoegOutput.IdListe; + if (ids.Length != 1) + { + return new OperationError($"Error resolving the organization company from STS. Expected a single UUID but got:{string.Join(",", ids)}", OperationFailure.UnknownError); + } + + return new Guid(ids.Single()); + } + + private static soegRequest CreateSearchByCvrRequest(Organization organization) + { + return new soegRequest + { + SoegRequest1 = new SoegRequestType + { + AuthorityContext = new AuthorityContextType + { + MunicipalityCVR = organization.Cvr + }, + SoegInput = new SoegInputType1() + { + RelationListe = new RelationListeType(), + FoersteResultatReference = "0", + MaksimalAntalKvantitet = "2", + SoegRegistrering = new SoegRegistreringType(), + TilstandListe = new TilstandListeType(), + AttributListe = new[]{new EgenskabType + { + CVRNummerTekst = organization.Cvr + }} + } + } + }; + } + + private static VirksomhedPortTypeClient CreateClient(BasicHttpBinding binding, string urlServicePlatformService, X509Certificate2 certificate) + { + return new VirksomhedPortTypeClient(binding, new EndpointAddress(urlServicePlatformService)) + { + ClientCredentials = + { + ClientCertificate = + { + Certificate = certificate + } + } + }; + } + } +} diff --git a/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj b/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj index caa64f6dd7..9f2058d75b 100644 --- a/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj +++ b/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj @@ -49,6 +49,7 @@ True Reference.svcmap + @@ -202,5 +203,23 @@ Reference.cs + + + {BD8C90E7-52C7-4AD0-935D-98A2AA89E449} + Core.Abstractions + + + {A76A8E41-74F7-4443-A5F3-059B5414D83B} + Core.DomainModel + + + {ADCACC1D-F538-464C-9102-F4C1D6FA35D3} + Core.DomainServices + + + {423D7522-4882-4438-94F4-7B3F5778C83F} + Infrastructure.STS.Common + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs index 771f6b5df2..263dc922e7 100644 --- a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs +++ b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs @@ -5,25 +5,37 @@ using Core.Abstractions.Types; using Core.DomainServices.Extensions; using Core.DomainServices.Organizations; +using Core.DomainServices.Repositories.SSO; using Core.DomainServices.SSO; using Infrastructure.STS.Common.Factories; +using Infrastructure.STS.Common.Model; using Infrastructure.STS.Organization.ServiceReference; -using Newtonsoft.Json; +using Serilog; namespace Infrastructure.STS.Organization.DomainServices { public class StsOrganizationService : IStsOrganizationService { + private readonly IStsOrganizationCompanyLookupService _companyLookupService; + private readonly ISsoOrganizationIdentityRepository _ssoOrganizationIdentityRepository; + private readonly ILogger _logger; private readonly string _certificateThumbprint; private readonly string _serviceRoot; - public StsOrganizationService(StsOrganisationIntegrationConfiguration configuration) + public StsOrganizationService( + StsOrganisationIntegrationConfiguration configuration, + IStsOrganizationCompanyLookupService companyLookupService, + ISsoOrganizationIdentityRepository ssoOrganizationIdentityRepository, + ILogger logger) { + _companyLookupService = companyLookupService; + _ssoOrganizationIdentityRepository = ssoOrganizationIdentityRepository; + _logger = logger; _certificateThumbprint = configuration.CertificateThumbprint; _serviceRoot = $"https://{configuration.EndpointHost}/service/Organisation/Organisation/5"; } - public Result ResolveStsOrganizationUuid(Core.DomainModel.Organization.Organization organization) + public Result> ResolveStsOrganizationUuid(Core.DomainModel.Organization.Organization organization) { if (organization == null) { @@ -38,33 +50,50 @@ public Result ResolveStsOrganizationUuid(Core.DomainModel. if (organization.IsCvrInvalid()) { - return new OperationError("Organization is missing CVR or has an invalid CVR", OperationFailure.BadInput); + return new DetailedOperationError(OperationFailure.BadState, ResolveOrganizationUuidError.InvalidCvrOnOrganization); + } + + var companyUuid = _companyLookupService.ResolveStsOrganizationCompanyUuid(organization); + if (companyUuid.Failed) + { + _logger.Error("Error {error} while resolving company uuid for organization with id {id}", companyUuid.Error.ToString(), organization.Id); + return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationUuidError.FailedToLookupOrganizationCompany); } - //TODO: Get the company by cvr first and then filter by virksomhed uuid using var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint); using var organizationPortTypeClient = CreateOrganizationPortTypeClient(BasicHttpBindingFactory.CreateHttpBinding(), _serviceRoot, clientCertificate); - var searchRequest = CreateSearchForOrganizationRequest(organization, new Guid("7302f1a5-bbec-4439-a1ec-ea605bdf5ab3")); //TODO: Get the company uuid from a different service "Virksomhed" + var searchRequest = CreateSearchForOrganizationRequest(organization, companyUuid.Value); var channel = organizationPortTypeClient.ChannelFactory.CreateChannel(); var response = channel.soeg(searchRequest); var statusResult = response.SoegResponse1.SoegOutput.StandardRetur; - if (statusResult.StatusKode != "20") //TODO: Create helper + var stsError = statusResult.StatusKode.ParseStsError(); + if (stsError.HasValue) { - return new OperationError($"Error resolving the organization from STS:{statusResult.StatusKode}:{statusResult.FejlbeskedTekst}", OperationFailure.UnknownError); + _logger.Error("Failed to search for organization ({id}) by company uuid {uuid}. Failed with {stsError} {code} and {message}", organization.Id, companyUuid.Value, stsError.Value, statusResult.StatusKode, statusResult.FejlbeskedTekst); + return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationUuidError.FailedToSearchForOrganizationByCompanyUuid); } var ids = response.SoegResponse1.SoegOutput.IdListe; if (ids.Length != 1) { - return new OperationError($"Error resolving the organization from STS. Expected a single UUID but got:{string.Join(",", ids)}", OperationFailure.UnknownError); + _logger.Error("Failed to search for organization ({id}) by company uuid {uuid}. Expected 1 result but got {resultsCsv}", organization.Id, companyUuid.Value, string.Join(",", ids)); + return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationUuidError.DuplicateOrganizationResults); + } + + var uuid = new Guid(ids.Single()); + + var result = _ssoOrganizationIdentityRepository.AddNew(organization, uuid); + if (result.Failed) + { + _logger.Error("Failed save uuid for organization ({id}) with uuid {uuid}. Repository responded with {error}", organization.Id, companyUuid.Value, result.Error.ToString()); + return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationUuidError.FailedToSaveUuidOnKitosOrganization); } - //TODO: Remember to save the uuid on the organization!-> need a databasecontrol thing for that - return new Guid(ids.Single()); + return uuid; } private static soegRequest CreateSearchForOrganizationRequest(Core.DomainModel.Organization.Organization organization, Guid companyUuid) diff --git a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj index 707456ba07..a483c2b323 100644 --- a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj +++ b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj @@ -35,6 +35,9 @@ ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Serilog.2.9.0\lib\net46\Serilog.dll + @@ -220,6 +223,10 @@ {adcacc1d-f538-464c-9102-f4c1d6fa35d3} Core.DomainServices + + {0326CAE6-87A1-4D66-84AE-EB8CE0340E9F} + Infrastructure.Services + {423D7522-4882-4438-94F4-7B3F5778C83F} Infrastructure.STS.Common diff --git a/Infrastructure.STS.Organization/packages.config b/Infrastructure.STS.Organization/packages.config index 281c145594..40950cfede 100644 --- a/Infrastructure.STS.Organization/packages.config +++ b/Infrastructure.STS.Organization/packages.config @@ -1,4 +1,5 @@  + \ No newline at end of file diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index b604b551cf..6a4fccb134 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -114,6 +114,7 @@ using Core.ApplicationServices.UIConfiguration.Handlers; using Core.DomainServices.Repositories.UICustomization; using Core.DomainServices.Tracking; +using Infrastructure.STS.Company.DomainServices; using Infrastructure.STS.Organization.DomainServices; using Presentation.Web.Controllers.API.V2.External.ItSystems.Mapping; using Presentation.Web.Controllers.API.V2.External.ItInterfaces.Mapping; @@ -278,6 +279,7 @@ public void RegisterServices(IKernel kernel) //STS Organization kernel.Bind().To().InCommandScope(Mode); + kernel.Bind().To().InCommandScope(Mode); } private void RegisterMappers(IKernel kernel) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 221a2efa53..41bff8bd4d 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1733,6 +1733,10 @@ {0326cae6-87a1-4d66-84ae-eb8ce0340e9f} Infrastructure.Services + + {09A799FA-3781-419B-AB54-3C76219FD2DE} + Infrastructure.STS.Company + {3DC91665-93BB-442D-B186-7E90C7CD6E32} Infrastructure.STS.Organization From f271e0e32893b962a9b34a78ba9ff1d570c6acb0 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 12:35:08 +0200 Subject: [PATCH 079/432] removed unnecessary semicolons --- .../app/helpers/select2-option-format-helper.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Presentation.Web/app/helpers/select2-option-format-helper.ts b/Presentation.Web/app/helpers/select2-option-format-helper.ts index 4bb930e67b..ced22edbd2 100644 --- a/Presentation.Web/app/helpers/select2-option-format-helper.ts +++ b/Presentation.Web/app/helpers/select2-option-format-helper.ts @@ -1,15 +1,15 @@ module Kitos.Helpers { export class Select2OptionsFormatHelper { public static formatUserWithEmail(user: {text:string, email?: string}): string { - return Select2OptionsFormatHelper.formatText(user.text, user.email);; + return Select2OptionsFormatHelper.formatText(user.text, user.email); } public static formatOrganizationWithCvr(org: {text: string, cvr?: string}): string { - return Select2OptionsFormatHelper.formatText(org.text, org.cvr);; + return Select2OptionsFormatHelper.formatText(org.text, org.cvr); } public static formatOrganizationWithOptionalObjectContext(org: { text: string, optionalObjectContext?: { cvrNumber: string } }): string { - return Select2OptionsFormatHelper.formatText(org.text, org.optionalObjectContext?.cvrNumber);; + return Select2OptionsFormatHelper.formatText(org.text, org.optionalObjectContext?.cvrNumber); } private static formatText(text: string, subText?: string): string { From c1472478d6c735e9ec9903a7ae0f63771023f9eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 7 Jun 2022 12:36:04 +0200 Subject: [PATCH 080/432] added orgunit --- .../ServiceReference/AuthorityContext_1.xsd | 14 + .../ServiceReference/CallContext_1.xsd | 29 + ...eReference.ImporterResponseType.datasource | 10 + ...rviceReference.LaesResponseType.datasource | 10 + ...rviceReference.ListResponseType.datasource | 10 + ...viceReference.OpretResponseType.datasource | 10 + ...eReference.PassiverResponseType.datasource | 10 + ...viceReference.RequestHeaderType.datasource | 10 + ...erviceReference.RetResponseType.datasource | 10 + ...rviceReference.SletResponseType.datasource | 10 + ...rviceReference.SoegResponseType.datasource | 10 + ...rviceReference.importerResponse.datasource | 10 + ...t.ServiceReference.laesResponse.datasource | 10 + ...t.ServiceReference.listResponse.datasource | 10 + ....ServiceReference.opretResponse.datasource | 10 + ...rviceReference.passiverResponse.datasource | 10 + ...it.ServiceReference.retResponse.datasource | 10 + ...t.ServiceReference.sletResponse.datasource | 10 + ...t.ServiceReference.soegResponse.datasource | 10 + .../ServiceReference/OrganisationEnhed.xsd | 71 + .../OrganisationEnhedOperationer.xsd | 86 + .../OrganisationEnhedService.wsdl | 238 + .../OrganisationEnhedServiceMsg.xsd | 118 + .../ServiceReference/OrganisationFaelles.xsd | 25 + .../ServiceReference/Part.xsd | 10 + .../ServiceReference/Reference.cs | 4117 +++++++++++++++++ .../ServiceReference/Reference.svcmap | 43 + .../ServiceReference/RequestHeader.xsd | 18 + .../ServiceReference/SagDokObjekt.xsd | 803 ++++ .../ServiceplatformFaultMessage.wsdl | 11 + .../ServiceplatformFault_1.xsd | 20 + .../ServiceReference/configuration.svcinfo | 11 + .../ServiceReference/configuration91.svcinfo | 310 ++ .../ServiceReference/policies.wsdl | 34 + ...Infrastructure.STS.OrganizationUnit.csproj | 206 + .../Properties/AssemblyInfo.cs | 36 + Infrastructure.STS.OrganizationUnit/Readme.md | 3 + .../OrganisationEnhedServiceMsg.xsd | 150 + .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 + .../xsd/1.1.STS-3/OrganisationEnhed.xsd | 87 + .../xsd/1.1.STS-3/OrganisationEnhedBesked.xsd | 21 + .../OrganisationEnhedOperationer.xsd | 111 + .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 + .../SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd | 20 + .../xsd/common/RequestHeader.xsd | 26 + .../SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd | 1059 +++++ .../ServiceContract/sp/AuthorityContext_1.xsd | 22 + .../ServiceContract/sp/CallContext_1.xsd | 38 + .../sp/InvocationContext_1.xsd | 67 + .../sp/ServiceplatformFaultMessage_1.wsdl | 18 + .../sp/ServiceplatformFault_1.xsd | 27 + .../ServiceContract/sp/service.properties | 6 + .../context/OrganisationEnhedService.wsdl | 261 ++ .../wsdl/context/policies.wsdl | 40 + .../wsdl/token/OrganisationEnhedService.wsdl | 261 ++ .../ServiceContract/wsdl/token/policies.wsdl | 83 + .../app.config | 18 + KITOS.sln | 14 +- 58 files changed, 8801 insertions(+), 2 deletions(-) create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/AuthorityContext_1.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/CallContext_1.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse.datasource create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhed.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedOperationer.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedService.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedServiceMsg.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationFaelles.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Part.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.cs create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.svcmap create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/RequestHeader.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/SagDokObjekt.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFault_1.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration.svcinfo create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration91.svcinfo create mode 100644 Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/policies.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj create mode 100644 Infrastructure.STS.OrganizationUnit/Properties/AssemblyInfo.cs create mode 100644 Infrastructure.STS.OrganizationUnit/Readme.md create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl create mode 100644 Infrastructure.STS.OrganizationUnit/app.config diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/AuthorityContext_1.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/AuthorityContext_1.xsd new file mode 100644 index 0000000000..c4b7c49243 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/AuthorityContext_1.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/CallContext_1.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/CallContext_1.xsd new file mode 100644 index 0000000000..b8fe8f6901 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/CallContext_1.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType.datasource new file mode 100644 index 0000000000..9b3ed45bdb --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType.datasource new file mode 100644 index 0000000000..268a983f30 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType.datasource new file mode 100644 index 0000000000..86f7822b7f --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType.datasource new file mode 100644 index 0000000000..1c9feaeac5 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType.datasource new file mode 100644 index 0000000000..74b72b890e --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType.datasource new file mode 100644 index 0000000000..55a7b35c84 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType.datasource new file mode 100644 index 0000000000..c8fb4f6382 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType.datasource new file mode 100644 index 0000000000..0e3f656404 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType.datasource new file mode 100644 index 0000000000..5a8c1de245 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse.datasource new file mode 100644 index 0000000000..4c040d29e4 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse.datasource new file mode 100644 index 0000000000..9c600b2cd5 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse.datasource new file mode 100644 index 0000000000..dc209e910f --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse.datasource new file mode 100644 index 0000000000..d446654cc8 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse.datasource new file mode 100644 index 0000000000..d23cbc6b88 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse.datasource new file mode 100644 index 0000000000..b26ea6cb67 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse.datasource new file mode 100644 index 0000000000..e0c4841e75 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse.datasource b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse.datasource new file mode 100644 index 0000000000..d9ded74760 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse.datasource @@ -0,0 +1,10 @@ + + + + Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse, Connected Services.ServiceReference.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhed.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhed.xsd new file mode 100644 index 0000000000..36ceef0286 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhed.xsd @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedOperationer.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedOperationer.xsd new file mode 100644 index 0000000000..46274a48a9 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedOperationer.xsd @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedService.wsdl b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedService.wsdl new file mode 100644 index 0000000000..8a5857716a --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedService.wsdl @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedServiceMsg.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedServiceMsg.xsd new file mode 100644 index 0000000000..b5f266cfae --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationEnhedServiceMsg.xsd @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationFaelles.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationFaelles.xsd new file mode 100644 index 0000000000..18c70764b2 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/OrganisationFaelles.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Part.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Part.xsd new file mode 100644 index 0000000000..2ce9ea4273 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Part.xsd @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.cs b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.cs new file mode 100644 index 0000000000..dd174fe100 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.cs @@ -0,0 +1,4117 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Infrastructure.STS.OrganizationUnit.ServiceReference { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + public partial class ServiceplatformFaultType : object, System.ComponentModel.INotifyPropertyChanged { + + private ErrorType[] errorListField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Error", IsNullable=false)] + public ErrorType[] ErrorList { + get { + return this.errorListField; + } + set { + this.errorListField = value; + this.RaisePropertyChanged("ErrorList"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + public partial class ErrorType : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string errorTextField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ErrorText { + get { + return this.errorTextField; + } + set { + this.errorTextField = value; + this.RaisePropertyChanged("ErrorText"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RegistreringType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RegistreringType : object, System.ComponentModel.INotifyPropertyChanged { + + private string noteTekstField; + + private System.DateTime tidspunktField; + + private bool tidspunktFieldSpecified; + + private LivscyklusKodeType livscyklusKodeField; + + private bool livscyklusKodeFieldSpecified; + + private UnikIdType brugerRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime Tidspunkt { + get { + return this.tidspunktField; + } + set { + this.tidspunktField = value; + this.RaisePropertyChanged("Tidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TidspunktSpecified { + get { + return this.tidspunktFieldSpecified; + } + set { + this.tidspunktFieldSpecified = value; + this.RaisePropertyChanged("TidspunktSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public LivscyklusKodeType LivscyklusKode { + get { + return this.livscyklusKodeField; + } + set { + this.livscyklusKodeField = value; + this.RaisePropertyChanged("LivscyklusKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LivscyklusKodeSpecified { + get { + return this.livscyklusKodeFieldSpecified; + } + set { + this.livscyklusKodeFieldSpecified = value; + this.RaisePropertyChanged("LivscyklusKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public UnikIdType BrugerRef { + get { + return this.brugerRefField; + } + set { + this.brugerRefField = value; + this.RaisePropertyChanged("BrugerRef"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public enum LivscyklusKodeType { + + /// + Opstaaet, + + /// + Importeret, + + /// + Passiveret, + + /// + Slettet, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UnikIdType : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("URNIdentifikator", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("UUIDIdentifikator", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0", IncludeInSchema=false)] + public enum ItemChoiceType { + + /// + URNIdentifikator, + + /// + UUIDIdentifikator, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="RegistreringType", Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class RegistreringType1 : RegistreringType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class AttributListeType : object, System.ComponentModel.INotifyPropertyChanged { + + private EgenskabType[] egenskabField; + + private LokalUdvidelseType lokalUdvidelseField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Egenskab", Order=0)] + public EgenskabType[] Egenskab { + get { + return this.egenskabField; + } + set { + this.egenskabField = value; + this.RaisePropertyChanged("Egenskab"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public LokalUdvidelseType LokalUdvidelse { + get { + return this.lokalUdvidelseField; + } + set { + this.lokalUdvidelseField = value; + this.RaisePropertyChanged("LokalUdvidelse"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class EgenskabType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private string brugervendtNoegleTekstField; + + private string enhedNavnField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public string BrugervendtNoegleTekst { + get { + return this.brugervendtNoegleTekstField; + } + set { + this.brugervendtNoegleTekstField = value; + this.RaisePropertyChanged("BrugervendtNoegleTekst"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=2)] + public string EnhedNavn { + get { + return this.enhedNavnField; + } + set { + this.enhedNavnField = value; + this.RaisePropertyChanged("EnhedNavn"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class VirkningType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private UnikIdType aktoerRefField; + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public UnikIdType AktoerRef { + get { + return this.aktoerRefField; + } + set { + this.aktoerRefField = value; + this.RaisePropertyChanged("AktoerRef"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class TidspunktType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("GraenseIndikator", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("TidsstempelDatoTid", typeof(System.DateTime), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public enum AktoerTypeKodeType { + + /// + Organisation, + + /// + OrganisationEnhed, + + /// + OrganisationFunktion, + + /// + Bruger, + + /// + ItSystem, + + /// + Interessefaellesskab, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LokalUdvidelseType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class TilstandListeType : object, System.ComponentModel.INotifyPropertyChanged { + + private GyldighedType[] gyldighedField; + + private LokalUdvidelseType lokalUdvidelseField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Gyldighed", Namespace="urn:oio:sts:organisation:1.1.3.0", Order=0)] + public GyldighedType[] Gyldighed { + get { + return this.gyldighedField; + } + set { + this.gyldighedField = value; + this.RaisePropertyChanged("Gyldighed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public LokalUdvidelseType LokalUdvidelse { + get { + return this.lokalUdvidelseField; + } + set { + this.lokalUdvidelseField = value; + this.RaisePropertyChanged("LokalUdvidelse"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:1.1.3.0")] + public partial class GyldighedType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private GyldighedStatusKodeType gyldighedStatusKodeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public GyldighedStatusKodeType GyldighedStatusKode { + get { + return this.gyldighedStatusKodeField; + } + set { + this.gyldighedStatusKodeField = value; + this.RaisePropertyChanged("GyldighedStatusKode"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:1.1.3.0")] + public enum GyldighedStatusKodeType { + + /// + Aktiv, + + /// + Inaktiv, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class RelationListeType : object, System.ComponentModel.INotifyPropertyChanged { + + private AdresseFlerRelationType[] adresserField; + + private PersonFlerRelationType[] ansatteField; + + private KlasseRelationType brancheField; + + private KlasseRelationType enhedstypeField; + + private KlasseFlerRelationType[] opgaverField; + + private OrganisationEnhedRelationType overordnetField; + + private VirksomhedRelationType produktionsenhedField; + + private VirksomhedRelationType skatteenhedField; + + private OrganisationRelationType tilhoererField; + + private BrugerFlerRelationType[] tilknyttedeBrugereField; + + private OrganisationEnhedFlerRelationType[] tilknyttedeEnhederField; + + private OrganisationFunktionFlerRelationType[] tilknyttedeFunktionerField; + + private InteressefaellesskabFlerRelationType[] tilknyttedeInteressefaellesskaberField; + + private OrganisationFlerRelationType[] tilknyttedeOrganisationerField; + + private PersonFlerRelationType[] tilknyttedePersonerField; + + private ItSystemFlerRelationType[] tilknyttedeItSystemerField; + + private LokalUdvidelseType lokalUdvidelseField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Adresser", Namespace="urn:oio:sagdok:3.0.0", Order=0)] + public AdresseFlerRelationType[] Adresser { + get { + return this.adresserField; + } + set { + this.adresserField = value; + this.RaisePropertyChanged("Adresser"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Ansatte", Namespace="urn:oio:sagdok:3.0.0", Order=1)] + public PersonFlerRelationType[] Ansatte { + get { + return this.ansatteField; + } + set { + this.ansatteField = value; + this.RaisePropertyChanged("Ansatte"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=2)] + public KlasseRelationType Branche { + get { + return this.brancheField; + } + set { + this.brancheField = value; + this.RaisePropertyChanged("Branche"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=3)] + public KlasseRelationType Enhedstype { + get { + return this.enhedstypeField; + } + set { + this.enhedstypeField = value; + this.RaisePropertyChanged("Enhedstype"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Opgaver", Namespace="urn:oio:sagdok:3.0.0", Order=4)] + public KlasseFlerRelationType[] Opgaver { + get { + return this.opgaverField; + } + set { + this.opgaverField = value; + this.RaisePropertyChanged("Opgaver"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=5)] + public OrganisationEnhedRelationType Overordnet { + get { + return this.overordnetField; + } + set { + this.overordnetField = value; + this.RaisePropertyChanged("Overordnet"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=6)] + public VirksomhedRelationType Produktionsenhed { + get { + return this.produktionsenhedField; + } + set { + this.produktionsenhedField = value; + this.RaisePropertyChanged("Produktionsenhed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=7)] + public VirksomhedRelationType Skatteenhed { + get { + return this.skatteenhedField; + } + set { + this.skatteenhedField = value; + this.RaisePropertyChanged("Skatteenhed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=8)] + public OrganisationRelationType Tilhoerer { + get { + return this.tilhoererField; + } + set { + this.tilhoererField = value; + this.RaisePropertyChanged("Tilhoerer"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeBrugere", Namespace="urn:oio:sagdok:3.0.0", Order=9)] + public BrugerFlerRelationType[] TilknyttedeBrugere { + get { + return this.tilknyttedeBrugereField; + } + set { + this.tilknyttedeBrugereField = value; + this.RaisePropertyChanged("TilknyttedeBrugere"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeEnheder", Namespace="urn:oio:sagdok:3.0.0", Order=10)] + public OrganisationEnhedFlerRelationType[] TilknyttedeEnheder { + get { + return this.tilknyttedeEnhederField; + } + set { + this.tilknyttedeEnhederField = value; + this.RaisePropertyChanged("TilknyttedeEnheder"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeFunktioner", Namespace="urn:oio:sagdok:3.0.0", Order=11)] + public OrganisationFunktionFlerRelationType[] TilknyttedeFunktioner { + get { + return this.tilknyttedeFunktionerField; + } + set { + this.tilknyttedeFunktionerField = value; + this.RaisePropertyChanged("TilknyttedeFunktioner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeInteressefaellesskaber", Namespace="urn:oio:sagdok:3.0.0", Order=12)] + public InteressefaellesskabFlerRelationType[] TilknyttedeInteressefaellesskaber { + get { + return this.tilknyttedeInteressefaellesskaberField; + } + set { + this.tilknyttedeInteressefaellesskaberField = value; + this.RaisePropertyChanged("TilknyttedeInteressefaellesskaber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeOrganisationer", Namespace="urn:oio:sagdok:3.0.0", Order=13)] + public OrganisationFlerRelationType[] TilknyttedeOrganisationer { + get { + return this.tilknyttedeOrganisationerField; + } + set { + this.tilknyttedeOrganisationerField = value; + this.RaisePropertyChanged("TilknyttedeOrganisationer"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedePersoner", Namespace="urn:oio:sagdok:3.0.0", Order=14)] + public PersonFlerRelationType[] TilknyttedePersoner { + get { + return this.tilknyttedePersonerField; + } + set { + this.tilknyttedePersonerField = value; + this.RaisePropertyChanged("TilknyttedePersoner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TilknyttedeItSystemer", Namespace="urn:oio:sagdok:3.0.0", Order=15)] + public ItSystemFlerRelationType[] TilknyttedeItSystemer { + get { + return this.tilknyttedeItSystemerField; + } + set { + this.tilknyttedeItSystemerField = value; + this.RaisePropertyChanged("TilknyttedeItSystemer"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sagdok:3.0.0", Order=16)] + public LokalUdvidelseType LokalUdvidelse { + get { + return this.lokalUdvidelseField; + } + set { + this.lokalUdvidelseField = value; + this.RaisePropertyChanged("LokalUdvidelse"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class AdresseFlerRelationType : FlerRelationType { + + private UnikIdType rolleField; + + private UnikIdType typeField; + + private string indeksField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public UnikIdType Rolle { + get { + return this.rolleField; + } + set { + this.rolleField = value; + this.RaisePropertyChanged("Rolle"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public UnikIdType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Indeks { + get { + return this.indeksField; + } + set { + this.indeksField = value; + this.RaisePropertyChanged("Indeks"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ArkivFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(DokumentFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PartFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(SagFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ItSystemFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(InteressefaellesskabFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationFunktionFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationEnhedFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BrugerFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(KlasseFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PersonFlerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AdresseFlerRelationType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class FlerRelationType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private UnikIdType referenceIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public UnikIdType ReferenceID { + get { + return this.referenceIDField; + } + set { + this.referenceIDField = value; + this.RaisePropertyChanged("ReferenceID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ArkivFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class DokumentFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class PartFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SagFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class AktoerFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ItSystemFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class InteressefaellesskabFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationFunktionFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationEnhedFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class BrugerFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class KlasseFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class PersonFlerRelationType : FlerRelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class KlasseRelationType : RelationType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(KlassifikationRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(FacetRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(DokumentRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(SagRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ArkivRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VirksomhedRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationEnhedRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MyndighedRelationType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(KlasseRelationType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RelationType : object, System.ComponentModel.INotifyPropertyChanged { + + private VirkningType virkningField; + + private UnikIdType referenceIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VirkningType Virkning { + get { + return this.virkningField; + } + set { + this.virkningField = value; + this.RaisePropertyChanged("Virkning"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public UnikIdType ReferenceID { + get { + return this.referenceIDField; + } + set { + this.referenceIDField = value; + this.RaisePropertyChanged("ReferenceID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class KlassifikationRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class FacetRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class DokumentRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SagRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ArkivRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class AktoerRelationType : RelationType { + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class VirksomhedRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OrganisationEnhedRelationType : RelationType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class MyndighedRelationType : RelationType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PartType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationEnhedType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(LaesFiltreretOutputType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SagDokObjektType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AktoerType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationEnhedType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:part:1.1.3.0")] + public partial class PartType : SagDokObjektType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrganisationEnhedType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:1.1.3.0")] + public partial class AktoerType : PartType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class OrganisationEnhedType : AktoerType { + + private RegistreringType1[] registreringField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Registrering", Order=0)] + public RegistreringType1[] Registrering { + get { + return this.registreringField; + } + set { + this.registreringField = value; + this.RaisePropertyChanged("Registrering"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LaesFiltreretOutputType : SagDokObjektType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class FiltreretOejebliksbilledeType : object, System.ComponentModel.INotifyPropertyChanged { + + private SagDokObjektType objektTypeField; + + private RegistreringType1[] registreringField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SagDokObjektType ObjektType { + get { + return this.objektTypeField; + } + set { + this.objektTypeField = value; + this.RaisePropertyChanged("ObjektType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Registrering", Order=1)] + public RegistreringType1[] Registrering { + get { + return this.registreringField; + } + set { + this.registreringField = value; + this.RaisePropertyChanged("Registrering"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(UnikReturType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class StandardReturType : object, System.ComponentModel.INotifyPropertyChanged { + + private string statusKodeField; + + private string fejlbeskedTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string StatusKode { + get { + return this.statusKodeField; + } + set { + this.statusKodeField = value; + this.RaisePropertyChanged("StatusKode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FejlbeskedTekst { + get { + return this.fejlbeskedTekstField; + } + set { + this.fejlbeskedTekstField = value; + this.RaisePropertyChanged("FejlbeskedTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UnikReturType : StandardReturType { + + private string typeField; + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(LaesOutputType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpretOutputType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class BasicOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class LaesOutputType : BasicOutputType { + + private FiltreretOejebliksbilledeType filtreretOejebliksbilledeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public FiltreretOejebliksbilledeType FiltreretOejebliksbillede { + get { + return this.filtreretOejebliksbilledeField; + } + set { + this.filtreretOejebliksbilledeField = value; + this.RaisePropertyChanged("FiltreretOejebliksbillede"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OpretOutputType : BasicOutputType { + + private string uUIDIdentifikatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class OpretResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private OpretOutputType opretOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public OpretOutputType OpretOutput { + get { + return this.opretOutputField; + } + set { + this.opretOutputField = value; + this.RaisePropertyChanged("OpretOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OpretInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class OpretInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="OpretInputType", Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class OpretInputType1 : OpretInputType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/")] + public partial class AuthorityContextType : object, System.ComponentModel.INotifyPropertyChanged { + + private string municipalityCVRField; + + /// + public string MunicipalityCVR { + get { + return this.municipalityCVRField; + } + set { + this.municipalityCVRField = value; + this.RaisePropertyChanged("MunicipalityCVR"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/")] + public partial class CallContextType : object, System.ComponentModel.INotifyPropertyChanged { + + private string onBehalfOfUserField; + + private string callersServiceCallIdentifierField; + + private string accountingInfoField; + + /// + public string OnBehalfOfUser { + get { + return this.onBehalfOfUserField; + } + set { + this.onBehalfOfUserField = value; + this.RaisePropertyChanged("OnBehalfOfUser"); + } + } + + /// + public string CallersServiceCallIdentifier { + get { + return this.callersServiceCallIdentifierField; + } + set { + this.callersServiceCallIdentifierField = value; + this.RaisePropertyChanged("CallersServiceCallIdentifier"); + } + } + + /// + public string AccountingInfo { + get { + return this.accountingInfoField; + } + set { + this.accountingInfoField = value; + this.RaisePropertyChanged("AccountingInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class OpretRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private OpretInputType1 opretInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public OpretInputType1 OpretInput { + get { + return this.opretInputField; + } + set { + this.opretInputField = value; + this.RaisePropertyChanged("OpretInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", ConfigurationName="ServiceReference.OrganisationEnhedPortType")] + public interface OrganisationEnhedPortType { + + // CODEGEN: Generating message contract since the operation opret is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/opre" + + "t", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/opre" + + "t", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse opret(Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/opre" + + "t", ReplyAction="*")] + System.Threading.Tasks.Task opretAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest request); + + // CODEGEN: Generating message contract since the operation importer is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/impo" + + "rter", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/impo" + + "rter", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse importer(Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/impo" + + "rter", ReplyAction="*")] + System.Threading.Tasks.Task importerAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest request); + + // CODEGEN: Generating message contract since the operation passiver is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/pass" + + "iver", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/pass" + + "iver", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse passiver(Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/pass" + + "iver", ReplyAction="*")] + System.Threading.Tasks.Task passiverAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest request); + + // CODEGEN: Generating message contract since the operation laes is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/laes" + + "", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/laes" + + "", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse laes(Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/laes" + + "", ReplyAction="*")] + System.Threading.Tasks.Task laesAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest request); + + // CODEGEN: Generating message contract since the operation ret is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/ret", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/ret", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse ret(Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/ret", ReplyAction="*")] + System.Threading.Tasks.Task retAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest request); + + // CODEGEN: Generating message contract since the operation slet is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/slet" + + "", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/slet" + + "", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse slet(Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/slet" + + "", ReplyAction="*")] + System.Threading.Tasks.Task sletAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest request); + + // CODEGEN: Generating message contract since the operation soeg is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/soeg" + + "", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/soeg" + + "", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse soeg(Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/soeg" + + "", ReplyAction="*")] + System.Threading.Tasks.Task soegAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest request); + + // CODEGEN: Generating message contract since the operation list is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/list" + + "", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Infrastructure.STS.OrganizationUnit.ServiceReference.ServiceplatformFaultType), Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/list" + + "", Name="ServiceplatformFault", Namespace="http://serviceplatformen.dk/xml/schemas/ServiceplatformFault/1/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RegistreringType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BasicOutputType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(RelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(FlerRelationType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(OpretInputType))] + Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse list(Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/list" + + "", ReplyAction="*")] + System.Threading.Tasks.Task listAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public partial class RequestHeaderType : object, System.ComponentModel.INotifyPropertyChanged { + + private string transactionUUIDField; + + /// + public string TransactionUUID { + get { + return this.transactionUUIDField; + } + set { + this.transactionUUIDField = value; + this.RaisePropertyChanged("TransactionUUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class opretRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="OpretRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.OpretRequestType OpretRequest1; + + public opretRequest() { + } + + public opretRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.OpretRequestType OpretRequest1) { + this.RequestHeader = RequestHeader; + this.OpretRequest1 = OpretRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class opretResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="OpretResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType OpretResponse1; + + public opretResponse() { + } + + public opretResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType OpretResponse1) { + this.RequestHeader = RequestHeader; + this.OpretResponse1 = OpretResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class ImporterRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private ImportInputType importInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public ImportInputType ImportInput { + get { + return this.importInputField; + } + set { + this.importInputField = value; + this.RaisePropertyChanged("ImportInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class ImportInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private OrganisationEnhedType organisationEnhedField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public OrganisationEnhedType OrganisationEnhed { + get { + return this.organisationEnhedField; + } + set { + this.organisationEnhedField = value; + this.RaisePropertyChanged("OrganisationEnhed"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class ImporterResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType importOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public BasicOutputType ImportOutput { + get { + return this.importOutputField; + } + set { + this.importOutputField = value; + this.RaisePropertyChanged("ImportOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importerRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ImporterRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterRequestType ImporterRequest1; + + public importerRequest() { + } + + public importerRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterRequestType ImporterRequest1) { + this.RequestHeader = RequestHeader; + this.ImporterRequest1 = ImporterRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importerResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ImporterResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType ImporterResponse1; + + public importerResponse() { + } + + public importerResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType ImporterResponse1) { + this.RequestHeader = RequestHeader; + this.ImporterResponse1 = ImporterResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class PassiverRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private UuidNoteInputType passiverInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public UuidNoteInputType PassiverInput { + get { + return this.passiverInputField; + } + set { + this.passiverInputField = value; + this.RaisePropertyChanged("PassiverInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class UuidNoteInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class PassiverResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType passiverOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public BasicOutputType PassiverOutput { + get { + return this.passiverOutputField; + } + set { + this.passiverOutputField = value; + this.RaisePropertyChanged("PassiverOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class passiverRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="PassiverRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverRequestType PassiverRequest1; + + public passiverRequest() { + } + + public passiverRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverRequestType PassiverRequest1) { + this.RequestHeader = RequestHeader; + this.PassiverRequest1 = PassiverRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class passiverResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="PassiverResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType PassiverResponse1; + + public passiverResponse() { + } + + public passiverResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType PassiverResponse1) { + this.RequestHeader = RequestHeader; + this.PassiverResponse1 = PassiverResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class LaesRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private LaesInputType laesInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public LaesInputType LaesInput { + get { + return this.laesInputField; + } + set { + this.laesInputField = value; + this.RaisePropertyChanged("LaesInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class LaesInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private TidspunktType virkningFraFilterField; + + private TidspunktType virkningTilFilterField; + + private TidspunktType registreringFraFilterField; + + private TidspunktType registreringTilFilterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType VirkningFraFilter { + get { + return this.virkningFraFilterField; + } + set { + this.virkningFraFilterField = value; + this.RaisePropertyChanged("VirkningFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public TidspunktType VirkningTilFilter { + get { + return this.virkningTilFilterField; + } + set { + this.virkningTilFilterField = value; + this.RaisePropertyChanged("VirkningTilFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public TidspunktType RegistreringFraFilter { + get { + return this.registreringFraFilterField; + } + set { + this.registreringFraFilterField = value; + this.RaisePropertyChanged("RegistreringFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public TidspunktType RegistreringTilFilter { + get { + return this.registreringTilFilterField; + } + set { + this.registreringTilFilterField = value; + this.RaisePropertyChanged("RegistreringTilFilter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class LaesResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private LaesOutputType laesOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public LaesOutputType LaesOutput { + get { + return this.laesOutputField; + } + set { + this.laesOutputField = value; + this.RaisePropertyChanged("LaesOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class laesRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="LaesRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.LaesRequestType LaesRequest1; + + public laesRequest() { + } + + public laesRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.LaesRequestType LaesRequest1) { + this.RequestHeader = RequestHeader; + this.LaesRequest1 = LaesRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class laesResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="LaesResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType LaesResponse1; + + public laesResponse() { + } + + public laesResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType LaesResponse1) { + this.RequestHeader = RequestHeader; + this.LaesResponse1 = LaesResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class RetRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private RetInputType1 retInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public RetInputType1 RetInput { + get { + return this.retInputField; + } + set { + this.retInputField = value; + this.RaisePropertyChanged("RetInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="RetInputType", Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class RetInputType1 : RetInputType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RetInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class RetInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string uUIDIdentifikatorField; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class RetResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType retOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public BasicOutputType RetOutput { + get { + return this.retOutputField; + } + set { + this.retOutputField = value; + this.RaisePropertyChanged("RetOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class retRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="RetRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RetRequestType RetRequest1; + + public retRequest() { + } + + public retRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.RetRequestType RetRequest1) { + this.RequestHeader = RequestHeader; + this.RetRequest1 = RetRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class retResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="RetResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType RetResponse1; + + public retResponse() { + } + + public retResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType RetResponse1) { + this.RequestHeader = RequestHeader; + this.RetResponse1 = RetResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class SletRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private UuidNoteInputType sletInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public UuidNoteInputType SletInput { + get { + return this.sletInputField; + } + set { + this.sletInputField = value; + this.RaisePropertyChanged("SletInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class SletResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BasicOutputType sletOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public BasicOutputType SletOutput { + get { + return this.sletOutputField; + } + set { + this.sletOutputField = value; + this.RaisePropertyChanged("SletOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class sletRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SletRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.SletRequestType SletRequest1; + + public sletRequest() { + } + + public sletRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SletRequestType SletRequest1) { + this.RequestHeader = RequestHeader; + this.SletRequest1 = SletRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class sletResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SletResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType SletResponse1; + + public sletResponse() { + } + + public sletResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType SletResponse1) { + this.RequestHeader = RequestHeader; + this.SletResponse1 = SletResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class SoegRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private SoegInputType1 soegInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public SoegInputType1 SoegInput { + get { + return this.soegInputField; + } + set { + this.soegInputField = value; + this.RaisePropertyChanged("SoegInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="SoegInputType", Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class SoegInputType1 : SoegInputType { + + private AttributListeType attributListeField; + + private TilstandListeType tilstandListeField; + + private RelationListeType relationListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AttributListeType AttributListe { + get { + return this.attributListeField; + } + set { + this.attributListeField = value; + this.RaisePropertyChanged("AttributListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TilstandListeType TilstandListe { + get { + return this.tilstandListeField; + } + set { + this.tilstandListeField = value; + this.RaisePropertyChanged("TilstandListe"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public RelationListeType RelationListe { + get { + return this.relationListeField; + } + set { + this.relationListeField = value; + this.RaisePropertyChanged("RelationListe"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(SoegInputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string foersteResultatReferenceField; + + private string maksimalAntalKvantitetField; + + private SoegRegistreringType soegRegistreringField; + + private SoegVirkningType soegVirkningField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string FoersteResultatReference { + get { + return this.foersteResultatReferenceField; + } + set { + this.foersteResultatReferenceField = value; + this.RaisePropertyChanged("FoersteResultatReference"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string MaksimalAntalKvantitet { + get { + return this.maksimalAntalKvantitetField; + } + set { + this.maksimalAntalKvantitetField = value; + this.RaisePropertyChanged("MaksimalAntalKvantitet"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public SoegRegistreringType SoegRegistrering { + get { + return this.soegRegistreringField; + } + set { + this.soegRegistreringField = value; + this.RaisePropertyChanged("SoegRegistrering"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public SoegVirkningType SoegVirkning { + get { + return this.soegVirkningField; + } + set { + this.soegVirkningField = value; + this.RaisePropertyChanged("SoegVirkning"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegRegistreringType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private LivscyklusKodeType livscyklusKodeField; + + private bool livscyklusKodeFieldSpecified; + + private UnikIdType brugerRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public LivscyklusKodeType LivscyklusKode { + get { + return this.livscyklusKodeField; + } + set { + this.livscyklusKodeField = value; + this.RaisePropertyChanged("LivscyklusKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LivscyklusKodeSpecified { + get { + return this.livscyklusKodeFieldSpecified; + } + set { + this.livscyklusKodeFieldSpecified = value; + this.RaisePropertyChanged("LivscyklusKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public UnikIdType BrugerRef { + get { + return this.brugerRefField; + } + set { + this.brugerRefField = value; + this.RaisePropertyChanged("BrugerRef"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegVirkningType : object, System.ComponentModel.INotifyPropertyChanged { + + private TidspunktType fraTidspunktField; + + private TidspunktType tilTidspunktField; + + private UnikIdType aktoerRefField; + + private AktoerTypeKodeType aktoerTypeKodeField; + + private bool aktoerTypeKodeFieldSpecified; + + private string noteTekstField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public TidspunktType FraTidspunkt { + get { + return this.fraTidspunktField; + } + set { + this.fraTidspunktField = value; + this.RaisePropertyChanged("FraTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType TilTidspunkt { + get { + return this.tilTidspunktField; + } + set { + this.tilTidspunktField = value; + this.RaisePropertyChanged("TilTidspunkt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public UnikIdType AktoerRef { + get { + return this.aktoerRefField; + } + set { + this.aktoerRefField = value; + this.RaisePropertyChanged("AktoerRef"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AktoerTypeKodeType AktoerTypeKode { + get { + return this.aktoerTypeKodeField; + } + set { + this.aktoerTypeKodeField = value; + this.RaisePropertyChanged("AktoerTypeKode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AktoerTypeKodeSpecified { + get { + return this.aktoerTypeKodeFieldSpecified; + } + set { + this.aktoerTypeKodeFieldSpecified = value; + this.RaisePropertyChanged("AktoerTypeKodeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string NoteTekst { + get { + return this.noteTekstField; + } + set { + this.noteTekstField = value; + this.RaisePropertyChanged("NoteTekst"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class SoegResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private SoegOutputType soegOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public SoegOutputType SoegOutput { + get { + return this.soegOutputField; + } + set { + this.soegOutputField = value; + this.RaisePropertyChanged("SoegOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class SoegOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + private string[] idListeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=1)] + [System.Xml.Serialization.XmlArrayItemAttribute("UUIDIdentifikator", IsNullable=false)] + public string[] IdListe { + get { + return this.idListeField; + } + set { + this.idListeField = value; + this.RaisePropertyChanged("IdListe"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class soegRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SoegRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.SoegRequestType SoegRequest1; + + public soegRequest() { + } + + public soegRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SoegRequestType SoegRequest1) { + this.RequestHeader = RequestHeader; + this.SoegRequest1 = SoegRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class soegResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="SoegResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType SoegResponse1; + + public soegResponse() { + } + + public soegResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType SoegResponse1) { + this.RequestHeader = RequestHeader; + this.SoegResponse1 = SoegResponse1; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class ListRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private CallContextType callContextField; + + private AuthorityContextType authorityContextField; + + private ListInputType listInputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/CallContext/1/", Order=0)] + public CallContextType CallContext { + get { + return this.callContextField; + } + set { + this.callContextField = value; + this.RaisePropertyChanged("CallContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://serviceplatformen.dk/xml/schemas/AuthorityContext/1/", Order=1)] + public AuthorityContextType AuthorityContext { + get { + return this.authorityContextField; + } + set { + this.authorityContextField = value; + this.RaisePropertyChanged("AuthorityContext"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=2)] + public ListInputType ListInput { + get { + return this.listInputField; + } + set { + this.listInputField = value; + this.RaisePropertyChanged("ListInput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ListInputType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] uUIDIdentifikatorField; + + private TidspunktType virkningFraFilterField; + + private TidspunktType virkningTilFilterField; + + private TidspunktType registreringFraFilterField; + + private TidspunktType registreringTilFilterField; + + /// + [System.Xml.Serialization.XmlElementAttribute("UUIDIdentifikator", Order=0)] + public string[] UUIDIdentifikator { + get { + return this.uUIDIdentifikatorField; + } + set { + this.uUIDIdentifikatorField = value; + this.RaisePropertyChanged("UUIDIdentifikator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public TidspunktType VirkningFraFilter { + get { + return this.virkningFraFilterField; + } + set { + this.virkningFraFilterField = value; + this.RaisePropertyChanged("VirkningFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public TidspunktType VirkningTilFilter { + get { + return this.virkningTilFilterField; + } + set { + this.virkningTilFilterField = value; + this.RaisePropertyChanged("VirkningTilFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public TidspunktType RegistreringFraFilter { + get { + return this.registreringFraFilterField; + } + set { + this.registreringFraFilterField = value; + this.RaisePropertyChanged("RegistreringFraFilter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public TidspunktType RegistreringTilFilter { + get { + return this.registreringTilFilterField; + } + set { + this.registreringTilFilterField = value; + this.RaisePropertyChanged("RegistreringTilFilter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/")] + public partial class ListResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private ListOutputType1 listOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0", Order=0)] + public ListOutputType1 ListOutput { + get { + return this.listOutputField; + } + set { + this.listOutputField = value; + this.RaisePropertyChanged("ListOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="ListOutputType", Namespace="urn:oio:sts:organisation:organisationenhed:1.1.3.0")] + public partial class ListOutputType1 : ListOutputType { + + private FiltreretOejebliksbilledeType[] filtreretOejebliksbilledeField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FiltreretOejebliksbillede", Order=0)] + public FiltreretOejebliksbilledeType[] FiltreretOejebliksbillede { + get { + return this.filtreretOejebliksbilledeField; + } + set { + this.filtreretOejebliksbilledeField = value; + this.RaisePropertyChanged("FiltreretOejebliksbillede"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ListOutputType1))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:oio:sagdok:3.0.0")] + public partial class ListOutputType : object, System.ComponentModel.INotifyPropertyChanged { + + private StandardReturType standardReturField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public StandardReturType StandardRetur { + get { + return this.standardReturField; + } + set { + this.standardReturField = value; + this.RaisePropertyChanged("StandardRetur"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class listRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ListRequest", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.ListRequestType ListRequest1; + + public listRequest() { + } + + public listRequest(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ListRequestType ListRequest1) { + this.RequestHeader = RequestHeader; + this.ListRequest1 = ListRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class listResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://kombit.dk/xml/schemas/RequestHeader/1/")] + public Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="ListResponse", Namespace="http://serviceplatformen.dk/xml/wsdl/soap11/Organisation/OrganisationEnhed/5/", Order=0)] + public Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType ListResponse1; + + public listResponse() { + } + + public listResponse(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType ListResponse1) { + this.RequestHeader = RequestHeader; + this.ListResponse1 = ListResponse1; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface OrganisationEnhedPortTypeChannel : Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class OrganisationEnhedPortTypeClient : System.ServiceModel.ClientBase, Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType { + + public OrganisationEnhedPortTypeClient() { + } + + public OrganisationEnhedPortTypeClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public OrganisationEnhedPortTypeClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public OrganisationEnhedPortTypeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public OrganisationEnhedPortTypeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.opret(Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest request) { + return base.Channel.opret(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.OpretResponseType opret(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.OpretRequestType OpretRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest(); + inValue.RequestHeader = RequestHeader; + inValue.OpretRequest1 = OpretRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.opretResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).opret(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.OpretResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.opretAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest request) { + return base.Channel.opretAsync(request); + } + + public System.Threading.Tasks.Task opretAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.OpretRequestType OpretRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.opretRequest(); + inValue.RequestHeader = RequestHeader; + inValue.OpretRequest1 = OpretRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).opretAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.importer(Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest request) { + return base.Channel.importer(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterResponseType importer(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterRequestType ImporterRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ImporterRequest1 = ImporterRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.importerResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).importer(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.ImporterResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.importerAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest request) { + return base.Channel.importerAsync(request); + } + + public System.Threading.Tasks.Task importerAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ImporterRequestType ImporterRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.importerRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ImporterRequest1 = ImporterRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).importerAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.passiver(Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest request) { + return base.Channel.passiver(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverResponseType passiver(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverRequestType PassiverRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest(); + inValue.RequestHeader = RequestHeader; + inValue.PassiverRequest1 = PassiverRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.passiverResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).passiver(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.PassiverResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.passiverAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest request) { + return base.Channel.passiverAsync(request); + } + + public System.Threading.Tasks.Task passiverAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.PassiverRequestType PassiverRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.passiverRequest(); + inValue.RequestHeader = RequestHeader; + inValue.PassiverRequest1 = PassiverRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).passiverAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.laes(Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest request) { + return base.Channel.laes(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.LaesResponseType laes(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.LaesRequestType LaesRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.LaesRequest1 = LaesRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.laesResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).laes(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.LaesResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.laesAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest request) { + return base.Channel.laesAsync(request); + } + + public System.Threading.Tasks.Task laesAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.LaesRequestType LaesRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.laesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.LaesRequest1 = LaesRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).laesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.ret(Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest request) { + return base.Channel.ret(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.RetResponseType ret(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.RetRequestType RetRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest(); + inValue.RequestHeader = RequestHeader; + inValue.RetRequest1 = RetRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.retResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).ret(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.RetResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.retAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest request) { + return base.Channel.retAsync(request); + } + + public System.Threading.Tasks.Task retAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.RetRequestType RetRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.retRequest(); + inValue.RequestHeader = RequestHeader; + inValue.RetRequest1 = RetRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).retAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.slet(Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest request) { + return base.Channel.slet(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.SletResponseType slet(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SletRequestType SletRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SletRequest1 = SletRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.sletResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).slet(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.SletResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.sletAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest request) { + return base.Channel.sletAsync(request); + } + + public System.Threading.Tasks.Task sletAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SletRequestType SletRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.sletRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SletRequest1 = SletRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).sletAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.soeg(Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest request) { + return base.Channel.soeg(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.SoegResponseType soeg(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SoegRequestType SoegRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SoegRequest1 = SoegRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.soegResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).soeg(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.SoegResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.soegAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest request) { + return base.Channel.soegAsync(request); + } + + public System.Threading.Tasks.Task soegAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.SoegRequestType SoegRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.soegRequest(); + inValue.RequestHeader = RequestHeader; + inValue.SoegRequest1 = SoegRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).soegAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.list(Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest request) { + return base.Channel.list(request); + } + + public Infrastructure.STS.OrganizationUnit.ServiceReference.ListResponseType list(ref Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ListRequestType ListRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ListRequest1 = ListRequest1; + Infrastructure.STS.OrganizationUnit.ServiceReference.listResponse retVal = ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).list(inValue); + RequestHeader = retVal.RequestHeader; + return retVal.ListResponse1; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType.listAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest request) { + return base.Channel.listAsync(request); + } + + public System.Threading.Tasks.Task listAsync(Infrastructure.STS.OrganizationUnit.ServiceReference.RequestHeaderType RequestHeader, Infrastructure.STS.OrganizationUnit.ServiceReference.ListRequestType ListRequest1) { + Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest inValue = new Infrastructure.STS.OrganizationUnit.ServiceReference.listRequest(); + inValue.RequestHeader = RequestHeader; + inValue.ListRequest1 = ListRequest1; + return ((Infrastructure.STS.OrganizationUnit.ServiceReference.OrganisationEnhedPortType)(this)).listAsync(inValue); + } + } +} diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.svcmap b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.svcmap new file mode 100644 index 0000000000..b1681cf0a3 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/Reference.svcmap @@ -0,0 +1,43 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/RequestHeader.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/RequestHeader.xsd new file mode 100644 index 0000000000..86cc4c8882 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/RequestHeader.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/SagDokObjekt.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/SagDokObjekt.xsd new file mode 100644 index 0000000000..7d028a840d --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/SagDokObjekt.xsd @@ -0,0 +1,803 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl new file mode 100644 index 0000000000..7b2666e388 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFaultMessage.wsdl @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFault_1.xsd b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFault_1.xsd new file mode 100644 index 0000000000..b0b7ce41e9 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/ServiceplatformFault_1.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration.svcinfo b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration.svcinfo new file mode 100644 index 0000000000..b20b0d4b49 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration91.svcinfo b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration91.svcinfo new file mode 100644 index 0000000000..9af0f9a02b --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/configuration91.svcinfo @@ -0,0 +1,310 @@ + + + + + + + OrganisationEnhedBinding + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + OrganisationEnhedBinding1 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + https://localhost:8080/service/Organisation/OrganisationEnhed/5 + + + + + + basicHttpBinding + + + OrganisationEnhedBinding + + + ServiceReference.OrganisationEnhedPortType + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + OrganisationEnhedPort + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/policies.wsdl b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/policies.wsdl new file mode 100644 index 0000000000..ff60ad349b --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Connected Services/ServiceReference/policies.wsdl @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj new file mode 100644 index 0000000000..a165978f15 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj @@ -0,0 +1,206 @@ + + + + + Debug + AnyCPU + {77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8} + Library + Properties + Infrastructure.STS.OrganizationUnit + Infrastructure.STS.OrganizationUnit + v4.8 + 512 + true + latest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + True + True + Reference.svcmap + + + + + + + + + + Designer + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Designer + + + Designer + + + + Designer + + + Designer + + + Designer + + + + Designer + + + Designer + + + + Designer + + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + + + Designer + + + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Properties/AssemblyInfo.cs b/Infrastructure.STS.OrganizationUnit/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..d7cf0f8cfc --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Infrastructure.STS.OrganizationUnit")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Infrastructure.STS.OrganizationUnit")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("77c5bedb-cc7f-4d6f-bf34-ec72b57c03c8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Infrastructure.STS.OrganizationUnit/Readme.md b/Infrastructure.STS.OrganizationUnit/Readme.md new file mode 100644 index 0000000000..45e30b1c40 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/Readme.md @@ -0,0 +1,3 @@ +Contents of "ServiceContract" are based on this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=38edf5ee-2702-4205-ba6f-ac94f576b606 + +Web service proxy is generated based on `ServiceContract\wsdl\context\OrganisationEnhedService.wsdl` \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd new file mode 100644 index 0000000000..b1fa03f960 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd new file mode 100644 index 0000000000..ef7604df82 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd new file mode 100644 index 0000000000..84fedd4468 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd new file mode 100644 index 0000000000..84ddbc9419 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd new file mode 100644 index 0000000000..7b11b4e7ab --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd new file mode 100644 index 0000000000..e8e1d1b218 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd new file mode 100644 index 0000000000..a6b994566c --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd new file mode 100644 index 0000000000..6b8579c4b9 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd new file mode 100644 index 0000000000..6962705066 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd @@ -0,0 +1,1059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd new file mode 100644 index 0000000000..5346245539 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd new file mode 100644 index 0000000000..545b0beffc --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd new file mode 100644 index 0000000000..e7ab223045 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl new file mode 100644 index 0000000000..d0d0592848 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd new file mode 100644 index 0000000000..92b85d4711 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties new file mode 100644 index 0000000000..cce66ab3f1 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties @@ -0,0 +1,6 @@ +service.uuid=38edf5ee-2702-4205-ba6f-ac94f576b606 +service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 +service.token.wsdl.path= +service.context.wsdl.path= +service.class= +service.endpoint= \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl new file mode 100644 index 0000000000..522df59e24 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl new file mode 100644 index 0000000000..fb482aab5a --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl new file mode 100644 index 0000000000..522df59e24 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl new file mode 100644 index 0000000000..635b7af405 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/app.config b/Infrastructure.STS.OrganizationUnit/app.config new file mode 100644 index 0000000000..f6e7fff023 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/app.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/KITOS.sln b/KITOS.sln index 13a8615872..d90f1d79e3 100644 --- a/KITOS.sln +++ b/KITOS.sln @@ -119,6 +119,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "STS", "STS", "{3F0ABEAA-2F6 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure.STS.Company", "Infrastructure.STS.Company\Infrastructure.STS.Company.csproj", "{09A799FA-3781-419B-AB54-3C76219FD2DE}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Organization", "Organization", "{EF9D5FB5-3C0D-45C0-88D4-6619D2905EFB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure.STS.OrganizationUnit", "Infrastructure.STS.OrganizationUnit\Infrastructure.STS.OrganizationUnit.csproj", "{77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -209,6 +213,10 @@ Global {09A799FA-3781-419B-AB54-3C76219FD2DE}.Debug|Any CPU.Build.0 = Debug|Any CPU {09A799FA-3781-419B-AB54-3C76219FD2DE}.Release|Any CPU.ActiveCfg = Release|Any CPU {09A799FA-3781-419B-AB54-3C76219FD2DE}.Release|Any CPU.Build.0 = Release|Any CPU + {77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -237,10 +245,12 @@ Global {7F765808-5258-4E41-8B27-6E7D4667AA24} = {2AC4CFA8-D99E-4DF2-9E2D-202E3A7BD29E} {C01C5F9E-6904-4B4C-94B1-12D7C83F8070} = {500B4C1D-B871-49A0-94E7-BD0623101EF6} {BD8C90E7-52C7-4AD0-935D-98A2AA89E449} = {2AC4CFA8-D99E-4DF2-9E2D-202E3A7BD29E} - {3DC91665-93BB-442D-B186-7E90C7CD6E32} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} + {3DC91665-93BB-442D-B186-7E90C7CD6E32} = {EF9D5FB5-3C0D-45C0-88D4-6619D2905EFB} {423D7522-4882-4438-94F4-7B3F5778C83F} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} = {500B4C1D-B871-49A0-94E7-BD0623101EF6} - {09A799FA-3781-419B-AB54-3C76219FD2DE} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} + {09A799FA-3781-419B-AB54-3C76219FD2DE} = {EF9D5FB5-3C0D-45C0-88D4-6619D2905EFB} + {EF9D5FB5-3C0D-45C0-88D4-6619D2905EFB} = {3F0ABEAA-2F6E-4385-8BB1-71695E633E0A} + {77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8} = {EF9D5FB5-3C0D-45C0-88D4-6619D2905EFB} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4890FA32-C82F-4C98-AC7A-2F4EE7F21687} From ba55f6f24f1a63a37a837c0fb3d3390f85c1db9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 7 Jun 2022 12:42:16 +0200 Subject: [PATCH 081/432] removed the reference contract files since they are also inside the generated contracts --- .../Infrastructure.STS.Company.csproj | 45 - Infrastructure.STS.Company/Readme.md | 2 +- .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 - .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 - .../SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd | 20 - .../xsd/1.1.STS-3/Virksomhed.xsd | 74 -- .../xsd/1.1.STS-3/VirksomhedBesked.xsd | 22 - .../xsd/1.1.STS-3/VirksomhedOperationer.xsd | 110 -- .../xsd/common/RequestHeader.xsd | 26 - .../xsd/common/SagDokObjekt.xsd | 1059 ----------------- .../ServiceContract/VirksomhedServiceMsg.xsd | 149 --- .../ServiceContract/sp/AuthorityContext_1.xsd | 22 - .../ServiceContract/sp/CallContext_1.xsd | 38 - .../sp/InvocationContext_1.xsd | 67 -- .../sp/ServiceplatformFaultMessage_1.wsdl | 18 - .../sp/ServiceplatformFault_1.xsd | 27 - .../ServiceContract/sp/service.properties | 6 - .../wsdl/context/VirksomhedService.wsdl | 262 ---- .../wsdl/context/policies.wsdl | 40 - .../wsdl/token/VirksomhedService.wsdl | 262 ---- .../ServiceContract/wsdl/token/policies.wsdl | 83 -- .../Infrastructure.STS.Organization.csproj | 45 - Infrastructure.STS.Organization/Readme.md | 2 +- .../OrganisationServiceMsg.xsd | 150 --- .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 - .../xsd/1.1.STS-3/Organisation.xsd | 91 -- .../xsd/1.1.STS-3/OrganisationBesked.xsd | 24 - .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 - .../xsd/1.1.STS-3/OrganisationOperationer.xsd | 113 -- .../SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd | 20 - .../xsd/common/RequestHeader.xsd | 26 - .../SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd | 1059 ----------------- .../ServiceContract/sp/AuthorityContext_1.xsd | 22 - .../ServiceContract/sp/CallContext_1.xsd | 38 - .../sp/InvocationContext_1.xsd | 67 -- .../sp/ServiceplatformFaultMessage_1.wsdl | 18 - .../sp/ServiceplatformFault_1.xsd | 27 - .../ServiceContract/sp/service.properties | 6 - .../wsdl/context/OrganisationService.wsdl | 245 ---- .../wsdl/context/policies.wsdl | 40 - .../wsdl/token/OrganisationService.wsdl | 245 ---- .../ServiceContract/wsdl/token/policies.wsdl | 83 -- ...Infrastructure.STS.OrganizationUnit.csproj | 45 - Infrastructure.STS.OrganizationUnit/Readme.md | 2 +- .../OrganisationEnhedServiceMsg.xsd | 150 --- .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 - .../xsd/1.1.STS-3/OrganisationEnhed.xsd | 87 -- .../xsd/1.1.STS-3/OrganisationEnhedBesked.xsd | 21 - .../OrganisationEnhedOperationer.xsd | 111 -- .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 - .../SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd | 20 - .../xsd/common/RequestHeader.xsd | 26 - .../SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd | 1059 ----------------- .../ServiceContract/sp/AuthorityContext_1.xsd | 22 - .../ServiceContract/sp/CallContext_1.xsd | 38 - .../sp/InvocationContext_1.xsd | 67 -- .../sp/ServiceplatformFaultMessage_1.wsdl | 18 - .../sp/ServiceplatformFault_1.xsd | 27 - .../ServiceContract/sp/service.properties | 6 - .../context/OrganisationEnhedService.wsdl | 261 ---- .../wsdl/context/policies.wsdl | 40 - .../wsdl/token/OrganisationEnhedService.wsdl | 261 ---- .../ServiceContract/wsdl/token/policies.wsdl | 83 -- .../Adresse/AdresseServiceMsg.xsd | 149 --- .../SF1500_EP_FS1/xsd/1.1.STS-3/Adresse.xsd | 68 -- .../xsd/1.1.STS-3/AdresseBesked.xsd | 22 - .../xsd/1.1.STS-3/AdresseOperationer.xsd | 112 -- .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 - .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 - .../SF1500_EP_FS1/xsd/1.1.STS-3/Part.xsd | 20 - .../xsd/common/RequestHeader.xsd | 26 - .../SF1500_EP_FS1/xsd/common/SagDokObjekt.xsd | 1059 ----------------- .../Adresse/sp/AuthorityContext_1.xsd | 22 - .../Adresse/sp/CallContext_1.xsd | 38 - .../Adresse/sp/InvocationContext_1.xsd | 67 -- .../sp/ServiceplatformFaultMessage_1.wsdl | 18 - .../Adresse/sp/ServiceplatformFault_1.xsd | 27 - .../Adresse/sp/service.properties | 6 - .../Adresse/wsdl/context/AdresseService.wsdl | 244 ---- .../Adresse/wsdl/context/policies.wsdl | 40 - .../Adresse/wsdl/token/AdresseService.wsdl | 244 ---- .../Adresse/wsdl/token/policies.wsdl | 83 -- .../Bruger/BrugerServiceMsg.xsd | 149 --- .../SF1500_EP_FS2/xsd/1.1.STS-3/Bruger.xsd | 82 -- .../xsd/1.1.STS-3/BrugerBesked.xsd | 21 - .../xsd/1.1.STS-3/BrugerOperationer.xsd | 111 -- .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 - .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 - .../SF1500_EP_FS2/xsd/1.1.STS-3/Part.xsd | 20 - .../xsd/common/RequestHeader.xsd | 26 - .../SF1500_EP_FS2/xsd/common/SagDokObjekt.xsd | 1059 ----------------- .../Bruger/sp/AuthorityContext_1.xsd | 22 - .../Bruger/sp/CallContext_1.xsd | 38 - .../Bruger/sp/InvocationContext_1.xsd | 67 -- .../sp/ServiceplatformFaultMessage_1.wsdl | 18 - .../Bruger/sp/ServiceplatformFault_1.xsd | 27 - .../Bruger/sp/service.properties | 6 - .../Bruger/wsdl/context/BrugerService.wsdl | 262 ---- .../Bruger/wsdl/context/policies.wsdl | 40 - .../Bruger/wsdl/token/BrugerService.wsdl | 262 ---- .../Bruger/wsdl/token/policies.wsdl | 83 -- .../STSVriksomhed/AuthorityContext_1.xsd | 14 - .../STSVriksomhed/CallContext_1.xsd | 29 - .../STSVriksomhed/GenerelleDefinitioner.xsd | 57 - .../Connected Services/STSVriksomhed/Part.xsd | 10 - .../STSVriksomhed/Reference.svcmap | 43 - .../STSVriksomhed/RequestHeader.xsd | 18 - .../STSVriksomhed/SagDokObjekt.xsd | 803 ------------- .../ServiceplatformFaultMessage.wsdl | 11 - .../STSVriksomhed/ServiceplatformFault_1.xsd | 20 - .../STSVriksomhed/Virksomhed.xsd | 53 - .../STSVriksomhed/VirksomhedOperationer.xsd | 84 -- .../STSVriksomhed/VirksomhedService.wsdl | 238 ---- .../STSVriksomhed/VirksomhedServiceMsg.xsd | 118 -- .../STSVriksomhed/configuration.svcinfo | 11 - .../STSVriksomhed/configuration91.svcinfo | 310 ----- .../STSVriksomhed/policies.wsdl | 34 - .../Infrastructure.Soap.csproj | 137 +-- .../Person/PersonServiceMsg.xsd | 149 --- .../xsd/1.1.STS-3/GenerelleDefinitioner.xsd | 63 - .../xsd/1.1.STS-3/OrganisationFaelles.xsd | 38 - .../SF1500_EP_FS10/xsd/1.1.STS-3/Part.xsd | 20 - .../SF1500_EP_FS10/xsd/1.1.STS-3/Person.xsd | 74 -- .../xsd/1.1.STS-3/PersonBesked.xsd | 22 - .../xsd/1.1.STS-3/PersonOperationer.xsd | 112 -- .../xsd/common/RequestHeader.xsd | 26 - .../xsd/common/SagDokObjekt.xsd | 1059 ----------------- .../Person/sp/AuthorityContext_1.xsd | 22 - .../Person/sp/CallContext_1.xsd | 38 - .../Person/sp/InvocationContext_1.xsd | 67 -- .../sp/ServiceplatformFaultMessage_1.wsdl | 18 - .../Person/sp/ServiceplatformFault_1.xsd | 27 - .../Person/sp/service.properties | 6 - .../Person/wsdl/context/PersonService.wsdl | 245 ---- .../Person/wsdl/context/policies.wsdl | 40 - .../Person/wsdl/token/PersonService.wsdl | 245 ---- .../Person/wsdl/token/policies.wsdl | 83 -- 137 files changed, 4 insertions(+), 16380 deletions(-) delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl delete mode 100644 Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd delete mode 100644 Infrastructure.STS.Company/ServiceContract/sp/service.properties delete mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl delete mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl delete mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl delete mode 100644 Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl delete mode 100644 Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl delete mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd delete mode 100644 Infrastructure.STS.Organization/ServiceContract/sp/service.properties delete mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl delete mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl delete mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl delete mode 100644 Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl delete mode 100644 Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl delete mode 100644 Infrastructure.Soap/Adresse/AdresseServiceMsg.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Adresse.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseBesked.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseOperationer.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/GenerelleDefinitioner.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/OrganisationFaelles.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Part.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/RequestHeader.xsd delete mode 100644 Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/SagDokObjekt.xsd delete mode 100644 Infrastructure.Soap/Adresse/sp/AuthorityContext_1.xsd delete mode 100644 Infrastructure.Soap/Adresse/sp/CallContext_1.xsd delete mode 100644 Infrastructure.Soap/Adresse/sp/InvocationContext_1.xsd delete mode 100644 Infrastructure.Soap/Adresse/sp/ServiceplatformFaultMessage_1.wsdl delete mode 100644 Infrastructure.Soap/Adresse/sp/ServiceplatformFault_1.xsd delete mode 100644 Infrastructure.Soap/Adresse/sp/service.properties delete mode 100644 Infrastructure.Soap/Adresse/wsdl/context/AdresseService.wsdl delete mode 100644 Infrastructure.Soap/Adresse/wsdl/context/policies.wsdl delete mode 100644 Infrastructure.Soap/Adresse/wsdl/token/AdresseService.wsdl delete mode 100644 Infrastructure.Soap/Adresse/wsdl/token/policies.wsdl delete mode 100644 Infrastructure.Soap/Bruger/BrugerServiceMsg.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Bruger.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerBesked.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerOperationer.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/GenerelleDefinitioner.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/OrganisationFaelles.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Part.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/RequestHeader.xsd delete mode 100644 Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/SagDokObjekt.xsd delete mode 100644 Infrastructure.Soap/Bruger/sp/AuthorityContext_1.xsd delete mode 100644 Infrastructure.Soap/Bruger/sp/CallContext_1.xsd delete mode 100644 Infrastructure.Soap/Bruger/sp/InvocationContext_1.xsd delete mode 100644 Infrastructure.Soap/Bruger/sp/ServiceplatformFaultMessage_1.wsdl delete mode 100644 Infrastructure.Soap/Bruger/sp/ServiceplatformFault_1.xsd delete mode 100644 Infrastructure.Soap/Bruger/sp/service.properties delete mode 100644 Infrastructure.Soap/Bruger/wsdl/context/BrugerService.wsdl delete mode 100644 Infrastructure.Soap/Bruger/wsdl/context/policies.wsdl delete mode 100644 Infrastructure.Soap/Bruger/wsdl/token/BrugerService.wsdl delete mode 100644 Infrastructure.Soap/Bruger/wsdl/token/policies.wsdl delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/AuthorityContext_1.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/CallContext_1.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/GenerelleDefinitioner.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/Part.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/Reference.svcmap delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/RequestHeader.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/SagDokObjekt.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFaultMessage.wsdl delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFault_1.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/Virksomhed.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedOperationer.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedService.wsdl delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedServiceMsg.xsd delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/configuration.svcinfo delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/configuration91.svcinfo delete mode 100644 Infrastructure.Soap/Connected Services/STSVriksomhed/policies.wsdl delete mode 100644 Infrastructure.Soap/Person/PersonServiceMsg.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/GenerelleDefinitioner.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/OrganisationFaelles.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Part.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Person.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonBesked.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonOperationer.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/RequestHeader.xsd delete mode 100644 Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/SagDokObjekt.xsd delete mode 100644 Infrastructure.Soap/Person/sp/AuthorityContext_1.xsd delete mode 100644 Infrastructure.Soap/Person/sp/CallContext_1.xsd delete mode 100644 Infrastructure.Soap/Person/sp/InvocationContext_1.xsd delete mode 100644 Infrastructure.Soap/Person/sp/ServiceplatformFaultMessage_1.wsdl delete mode 100644 Infrastructure.Soap/Person/sp/ServiceplatformFault_1.xsd delete mode 100644 Infrastructure.Soap/Person/sp/service.properties delete mode 100644 Infrastructure.Soap/Person/wsdl/context/PersonService.wsdl delete mode 100644 Infrastructure.Soap/Person/wsdl/context/policies.wsdl delete mode 100644 Infrastructure.Soap/Person/wsdl/token/PersonService.wsdl delete mode 100644 Infrastructure.Soap/Person/wsdl/token/policies.wsdl diff --git a/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj b/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj index 9f2058d75b..4fb2ba0d04 100644 --- a/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj +++ b/Infrastructure.STS.Company/Infrastructure.STS.Company.csproj @@ -139,51 +139,6 @@ Designer - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - - - Designer - - - Designer - - - - - diff --git a/Infrastructure.STS.Company/Readme.md b/Infrastructure.STS.Company/Readme.md index 1c141b86d4..c259f8b94d 100644 --- a/Infrastructure.STS.Company/Readme.md +++ b/Infrastructure.STS.Company/Readme.md @@ -1,3 +1,3 @@ -Contents of "ServiceContract" are based on this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=9fdac538-fae1-494d-b326-23898eeb182c +"ServiceContract" is generated based on service contract downloaded from this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=9fdac538-fae1-494d-b326-23898eeb182c Web service proxy is generated based on `ServiceContract\wsdl\context\VirksomhedService.wsdl` \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd deleted file mode 100644 index ef7604df82..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/GenerelleDefinitioner.xsd +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd deleted file mode 100644 index e8e1d1b218..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/OrganisationFaelles.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd deleted file mode 100644 index a6b994566c..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Part.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd deleted file mode 100644 index 4b4a20a6c9..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/Virksomhed.xsd +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd deleted file mode 100644 index 951454e3c5..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedBesked.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd deleted file mode 100644 index 453a73a435..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/1.1.STS-3/VirksomhedOperationer.xsd +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd deleted file mode 100644 index 6b8579c4b9..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/RequestHeader.xsd +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd b/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd deleted file mode 100644 index 6962705066..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/SF1500_EP_FS11/xsd/common/SagDokObjekt.xsd +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd b/Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd deleted file mode 100644 index 484dacf8ca..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/VirksomhedServiceMsg.xsd +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd deleted file mode 100644 index 5346245539..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/sp/AuthorityContext_1.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd deleted file mode 100644 index 545b0beffc..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/sp/CallContext_1.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd deleted file mode 100644 index e7ab223045..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/sp/InvocationContext_1.xsd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl deleted file mode 100644 index d0d0592848..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd b/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd deleted file mode 100644 index 92b85d4711..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/sp/ServiceplatformFault_1.xsd +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/sp/service.properties b/Infrastructure.STS.Company/ServiceContract/sp/service.properties deleted file mode 100644 index 43d7bbdb80..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/sp/service.properties +++ /dev/null @@ -1,6 +0,0 @@ -service.uuid=9fdac538-fae1-494d-b326-23898eeb182c -service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 -service.token.wsdl.path= -service.context.wsdl.path= -service.class= -service.endpoint= \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl deleted file mode 100644 index 924d8319f0..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/wsdl/context/VirksomhedService.wsdl +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl deleted file mode 100644 index fb482aab5a..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/wsdl/context/policies.wsdl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl deleted file mode 100644 index 924d8319f0..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/wsdl/token/VirksomhedService.wsdl +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl b/Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl deleted file mode 100644 index 635b7af405..0000000000 --- a/Infrastructure.STS.Company/ServiceContract/wsdl/token/policies.wsdl +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj index a483c2b323..b2323e5bf1 100644 --- a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj +++ b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj @@ -146,51 +146,6 @@ - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - - - Designer - - - - - diff --git a/Infrastructure.STS.Organization/Readme.md b/Infrastructure.STS.Organization/Readme.md index 032273d767..757663da05 100644 --- a/Infrastructure.STS.Organization/Readme.md +++ b/Infrastructure.STS.Organization/Readme.md @@ -1,3 +1,3 @@ -Contents of "ServiceContract" are based on this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=4afb35be-7b7a-45b3-ab01-bd5017a8b182 +"ServiceContract" is generated based on service contract downloaded from this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=4afb35be-7b7a-45b3-ab01-bd5017a8b182 Web service proxy is generated based on `ServiceContract\wsdl\context\OrganisationService.wsdl` \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd b/Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd deleted file mode 100644 index dffc5dadb5..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/OrganisationServiceMsg.xsd +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd deleted file mode 100644 index ef7604df82..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/GenerelleDefinitioner.xsd +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd deleted file mode 100644 index 6697e76bd2..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Organisation.xsd +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd deleted file mode 100644 index b9e7066a5b..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationBesked.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd deleted file mode 100644 index e8e1d1b218..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationFaelles.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd deleted file mode 100644 index 0090b101b3..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/OrganisationOperationer.xsd +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd deleted file mode 100644 index a6b994566c..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/1.1.STS-3/Part.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd deleted file mode 100644 index 6b8579c4b9..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/RequestHeader.xsd +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd b/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd deleted file mode 100644 index 6962705066..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/SF1500_EP_FS8/xsd/common/SagDokObjekt.xsd +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd deleted file mode 100644 index 5346245539..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/sp/AuthorityContext_1.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd deleted file mode 100644 index 545b0beffc..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/sp/CallContext_1.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd deleted file mode 100644 index e7ab223045..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/sp/InvocationContext_1.xsd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl deleted file mode 100644 index d0d0592848..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd b/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd deleted file mode 100644 index 92b85d4711..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/sp/ServiceplatformFault_1.xsd +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/sp/service.properties b/Infrastructure.STS.Organization/ServiceContract/sp/service.properties deleted file mode 100644 index 6249fd70f6..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/sp/service.properties +++ /dev/null @@ -1,6 +0,0 @@ -service.uuid=4afb35be-7b7a-45b3-ab01-bd5017a8b182 -service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 -service.token.wsdl.path= -service.context.wsdl.path= -service.class= -service.endpoint= \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl deleted file mode 100644 index c7710a1b1e..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/wsdl/context/OrganisationService.wsdl +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl deleted file mode 100644 index fb482aab5a..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/wsdl/context/policies.wsdl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl deleted file mode 100644 index c7710a1b1e..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/wsdl/token/OrganisationService.wsdl +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl b/Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl deleted file mode 100644 index 635b7af405..0000000000 --- a/Infrastructure.STS.Organization/ServiceContract/wsdl/token/policies.wsdl +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj index a165978f15..222e427475 100644 --- a/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj +++ b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj @@ -141,51 +141,6 @@ Designer - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - - - Designer - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/Readme.md b/Infrastructure.STS.OrganizationUnit/Readme.md index 45e30b1c40..4b7381bafe 100644 --- a/Infrastructure.STS.OrganizationUnit/Readme.md +++ b/Infrastructure.STS.OrganizationUnit/Readme.md @@ -1,3 +1,3 @@ -Contents of "ServiceContract" are based on this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=38edf5ee-2702-4205-ba6f-ac94f576b606 +"ServiceContract" is generated based on service contract downloaded from this: https://www.serviceplatformen.dk/administration/serviceOverview/show?uuid=38edf5ee-2702-4205-ba6f-ac94f576b606 Web service proxy is generated based on `ServiceContract\wsdl\context\OrganisationEnhedService.wsdl` \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd deleted file mode 100644 index b1fa03f960..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/OrganisationEnhedServiceMsg.xsd +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd deleted file mode 100644 index ef7604df82..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/GenerelleDefinitioner.xsd +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd deleted file mode 100644 index 84fedd4468..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhed.xsd +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd deleted file mode 100644 index 84ddbc9419..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedBesked.xsd +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd deleted file mode 100644 index 7b11b4e7ab..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationEnhedOperationer.xsd +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd deleted file mode 100644 index e8e1d1b218..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/OrganisationFaelles.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd deleted file mode 100644 index a6b994566c..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/1.1.STS-3/Part.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd deleted file mode 100644 index 6b8579c4b9..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/RequestHeader.xsd +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd deleted file mode 100644 index 6962705066..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/SF1500_EP_FS6/xsd/common/SagDokObjekt.xsd +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd deleted file mode 100644 index 5346245539..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/AuthorityContext_1.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd deleted file mode 100644 index 545b0beffc..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/CallContext_1.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd deleted file mode 100644 index e7ab223045..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/InvocationContext_1.xsd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl deleted file mode 100644 index d0d0592848..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFaultMessage_1.wsdl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd deleted file mode 100644 index 92b85d4711..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/ServiceplatformFault_1.xsd +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties b/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties deleted file mode 100644 index cce66ab3f1..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/sp/service.properties +++ /dev/null @@ -1,6 +0,0 @@ -service.uuid=38edf5ee-2702-4205-ba6f-ac94f576b606 -service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 -service.token.wsdl.path= -service.context.wsdl.path= -service.class= -service.endpoint= \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl deleted file mode 100644 index 522df59e24..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/OrganisationEnhedService.wsdl +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl deleted file mode 100644 index fb482aab5a..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/context/policies.wsdl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl deleted file mode 100644 index 522df59e24..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/OrganisationEnhedService.wsdl +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl b/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl deleted file mode 100644 index 635b7af405..0000000000 --- a/Infrastructure.STS.OrganizationUnit/ServiceContract/wsdl/token/policies.wsdl +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/AdresseServiceMsg.xsd b/Infrastructure.Soap/Adresse/AdresseServiceMsg.xsd deleted file mode 100644 index fa2bb65606..0000000000 --- a/Infrastructure.Soap/Adresse/AdresseServiceMsg.xsd +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Adresse.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Adresse.xsd deleted file mode 100644 index 62a0cf681d..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Adresse.xsd +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseBesked.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseBesked.xsd deleted file mode 100644 index be480e6256..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseBesked.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseOperationer.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseOperationer.xsd deleted file mode 100644 index 168cea8ca0..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/AdresseOperationer.xsd +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/GenerelleDefinitioner.xsd deleted file mode 100644 index ef7604df82..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/GenerelleDefinitioner.xsd +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/OrganisationFaelles.xsd deleted file mode 100644 index e8e1d1b218..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/OrganisationFaelles.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Part.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Part.xsd deleted file mode 100644 index a6b994566c..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/1.1.STS-3/Part.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/RequestHeader.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/RequestHeader.xsd deleted file mode 100644 index 6b8579c4b9..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/RequestHeader.xsd +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/SagDokObjekt.xsd b/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/SagDokObjekt.xsd deleted file mode 100644 index 6962705066..0000000000 --- a/Infrastructure.Soap/Adresse/SF1500_EP_FS1/xsd/common/SagDokObjekt.xsd +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/sp/AuthorityContext_1.xsd b/Infrastructure.Soap/Adresse/sp/AuthorityContext_1.xsd deleted file mode 100644 index 5346245539..0000000000 --- a/Infrastructure.Soap/Adresse/sp/AuthorityContext_1.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/sp/CallContext_1.xsd b/Infrastructure.Soap/Adresse/sp/CallContext_1.xsd deleted file mode 100644 index 545b0beffc..0000000000 --- a/Infrastructure.Soap/Adresse/sp/CallContext_1.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/sp/InvocationContext_1.xsd b/Infrastructure.Soap/Adresse/sp/InvocationContext_1.xsd deleted file mode 100644 index e7ab223045..0000000000 --- a/Infrastructure.Soap/Adresse/sp/InvocationContext_1.xsd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.Soap/Adresse/sp/ServiceplatformFaultMessage_1.wsdl deleted file mode 100644 index d0d0592848..0000000000 --- a/Infrastructure.Soap/Adresse/sp/ServiceplatformFaultMessage_1.wsdl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/sp/ServiceplatformFault_1.xsd b/Infrastructure.Soap/Adresse/sp/ServiceplatformFault_1.xsd deleted file mode 100644 index 92b85d4711..0000000000 --- a/Infrastructure.Soap/Adresse/sp/ServiceplatformFault_1.xsd +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/sp/service.properties b/Infrastructure.Soap/Adresse/sp/service.properties deleted file mode 100644 index 27b992c9c6..0000000000 --- a/Infrastructure.Soap/Adresse/sp/service.properties +++ /dev/null @@ -1,6 +0,0 @@ -service.uuid=266d138d-d314-441f-9bd1-a32ecf95a028 -service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 -service.token.wsdl.path= -service.context.wsdl.path= -service.class= -service.endpoint= \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/wsdl/context/AdresseService.wsdl b/Infrastructure.Soap/Adresse/wsdl/context/AdresseService.wsdl deleted file mode 100644 index 13171c70ae..0000000000 --- a/Infrastructure.Soap/Adresse/wsdl/context/AdresseService.wsdl +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/wsdl/context/policies.wsdl b/Infrastructure.Soap/Adresse/wsdl/context/policies.wsdl deleted file mode 100644 index fb482aab5a..0000000000 --- a/Infrastructure.Soap/Adresse/wsdl/context/policies.wsdl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Adresse/wsdl/token/AdresseService.wsdl b/Infrastructure.Soap/Adresse/wsdl/token/AdresseService.wsdl deleted file mode 100644 index 13171c70ae..0000000000 --- a/Infrastructure.Soap/Adresse/wsdl/token/AdresseService.wsdl +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Adresse/wsdl/token/policies.wsdl b/Infrastructure.Soap/Adresse/wsdl/token/policies.wsdl deleted file mode 100644 index 635b7af405..0000000000 --- a/Infrastructure.Soap/Adresse/wsdl/token/policies.wsdl +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/BrugerServiceMsg.xsd b/Infrastructure.Soap/Bruger/BrugerServiceMsg.xsd deleted file mode 100644 index d9ffb380dd..0000000000 --- a/Infrastructure.Soap/Bruger/BrugerServiceMsg.xsd +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Bruger.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Bruger.xsd deleted file mode 100644 index 7b32dcd1d4..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Bruger.xsd +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerBesked.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerBesked.xsd deleted file mode 100644 index 02ccb31652..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerBesked.xsd +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerOperationer.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerOperationer.xsd deleted file mode 100644 index 7643f32fef..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/BrugerOperationer.xsd +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/GenerelleDefinitioner.xsd deleted file mode 100644 index ef7604df82..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/GenerelleDefinitioner.xsd +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/OrganisationFaelles.xsd deleted file mode 100644 index e8e1d1b218..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/OrganisationFaelles.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Part.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Part.xsd deleted file mode 100644 index a6b994566c..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/1.1.STS-3/Part.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/RequestHeader.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/RequestHeader.xsd deleted file mode 100644 index 6b8579c4b9..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/RequestHeader.xsd +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/SagDokObjekt.xsd b/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/SagDokObjekt.xsd deleted file mode 100644 index 6962705066..0000000000 --- a/Infrastructure.Soap/Bruger/SF1500_EP_FS2/xsd/common/SagDokObjekt.xsd +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/sp/AuthorityContext_1.xsd b/Infrastructure.Soap/Bruger/sp/AuthorityContext_1.xsd deleted file mode 100644 index 5346245539..0000000000 --- a/Infrastructure.Soap/Bruger/sp/AuthorityContext_1.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/sp/CallContext_1.xsd b/Infrastructure.Soap/Bruger/sp/CallContext_1.xsd deleted file mode 100644 index 545b0beffc..0000000000 --- a/Infrastructure.Soap/Bruger/sp/CallContext_1.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/sp/InvocationContext_1.xsd b/Infrastructure.Soap/Bruger/sp/InvocationContext_1.xsd deleted file mode 100644 index e7ab223045..0000000000 --- a/Infrastructure.Soap/Bruger/sp/InvocationContext_1.xsd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.Soap/Bruger/sp/ServiceplatformFaultMessage_1.wsdl deleted file mode 100644 index d0d0592848..0000000000 --- a/Infrastructure.Soap/Bruger/sp/ServiceplatformFaultMessage_1.wsdl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/sp/ServiceplatformFault_1.xsd b/Infrastructure.Soap/Bruger/sp/ServiceplatformFault_1.xsd deleted file mode 100644 index 92b85d4711..0000000000 --- a/Infrastructure.Soap/Bruger/sp/ServiceplatformFault_1.xsd +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/sp/service.properties b/Infrastructure.Soap/Bruger/sp/service.properties deleted file mode 100644 index 580be206d9..0000000000 --- a/Infrastructure.Soap/Bruger/sp/service.properties +++ /dev/null @@ -1,6 +0,0 @@ -service.uuid=6db357f7-9ea9-4cdd-8645-326ba94d6dff -service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 -service.token.wsdl.path= -service.context.wsdl.path= -service.class= -service.endpoint= \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/wsdl/context/BrugerService.wsdl b/Infrastructure.Soap/Bruger/wsdl/context/BrugerService.wsdl deleted file mode 100644 index ef030ad473..0000000000 --- a/Infrastructure.Soap/Bruger/wsdl/context/BrugerService.wsdl +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/wsdl/context/policies.wsdl b/Infrastructure.Soap/Bruger/wsdl/context/policies.wsdl deleted file mode 100644 index fb482aab5a..0000000000 --- a/Infrastructure.Soap/Bruger/wsdl/context/policies.wsdl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Bruger/wsdl/token/BrugerService.wsdl b/Infrastructure.Soap/Bruger/wsdl/token/BrugerService.wsdl deleted file mode 100644 index ef030ad473..0000000000 --- a/Infrastructure.Soap/Bruger/wsdl/token/BrugerService.wsdl +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Bruger/wsdl/token/policies.wsdl b/Infrastructure.Soap/Bruger/wsdl/token/policies.wsdl deleted file mode 100644 index 635b7af405..0000000000 --- a/Infrastructure.Soap/Bruger/wsdl/token/policies.wsdl +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/AuthorityContext_1.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/AuthorityContext_1.xsd deleted file mode 100644 index c4b7c49243..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/AuthorityContext_1.xsd +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/CallContext_1.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/CallContext_1.xsd deleted file mode 100644 index b8fe8f6901..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/CallContext_1.xsd +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/GenerelleDefinitioner.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/GenerelleDefinitioner.xsd deleted file mode 100644 index 1cd19da05d..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/GenerelleDefinitioner.xsd +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/Part.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/Part.xsd deleted file mode 100644 index 2ce9ea4273..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/Part.xsd +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/Reference.svcmap b/Infrastructure.Soap/Connected Services/STSVriksomhed/Reference.svcmap deleted file mode 100644 index 45ab8226e3..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/Reference.svcmap +++ /dev/null @@ -1,43 +0,0 @@ - - - - false - true - true - - false - false - false - - - true - Auto - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/RequestHeader.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/RequestHeader.xsd deleted file mode 100644 index 86cc4c8882..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/RequestHeader.xsd +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/SagDokObjekt.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/SagDokObjekt.xsd deleted file mode 100644 index 7d028a840d..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/SagDokObjekt.xsd +++ /dev/null @@ -1,803 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFaultMessage.wsdl b/Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFaultMessage.wsdl deleted file mode 100644 index 7b2666e388..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFaultMessage.wsdl +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFault_1.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFault_1.xsd deleted file mode 100644 index b0b7ce41e9..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/ServiceplatformFault_1.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/Virksomhed.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/Virksomhed.xsd deleted file mode 100644 index b5dc4877a5..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/Virksomhed.xsd +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedOperationer.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedOperationer.xsd deleted file mode 100644 index 3d1801d70c..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedOperationer.xsd +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedService.wsdl b/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedService.wsdl deleted file mode 100644 index 2283191a62..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedService.wsdl +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedServiceMsg.xsd b/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedServiceMsg.xsd deleted file mode 100644 index 7de9d0ee7a..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/VirksomhedServiceMsg.xsd +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/configuration.svcinfo b/Infrastructure.Soap/Connected Services/STSVriksomhed/configuration.svcinfo deleted file mode 100644 index 559c06c5d4..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/configuration.svcinfo +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/configuration91.svcinfo b/Infrastructure.Soap/Connected Services/STSVriksomhed/configuration91.svcinfo deleted file mode 100644 index 2e0e1dc6d3..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/configuration91.svcinfo +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - VirksomhedBinding - - - - - - - - - - - - - - - - - - - - - StrongWildcard - - - - - - 65536 - - - - - - - - - System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - System.Text.UTF8Encoding - - - Buffered - - - - - - Text - - - System.ServiceModel.Configuration.BasicHttpSecurityElement - - - Transport - - - System.ServiceModel.Configuration.HttpTransportSecurityElement - - - None - - - None - - - System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - - - Never - - - TransportSelected - - - (Collection) - - - - - - System.ServiceModel.Configuration.BasicHttpMessageSecurityElement - - - UserName - - - Default - - - - - - - VirksomhedBinding1 - - - - - - - - - - - - - - - - - - - - - StrongWildcard - - - - - - 65536 - - - - - - - - - System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - System.Text.UTF8Encoding - - - Buffered - - - - - - Text - - - System.ServiceModel.Configuration.BasicHttpSecurityElement - - - None - - - System.ServiceModel.Configuration.HttpTransportSecurityElement - - - None - - - None - - - System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - - - Never - - - TransportSelected - - - (Collection) - - - - - - System.ServiceModel.Configuration.BasicHttpMessageSecurityElement - - - UserName - - - Default - - - - - - - - - https://localhost:8080/service/Organisation/Virksomhed/5 - - - - - - basicHttpBinding - - - VirksomhedBinding - - - STSVriksomhed.VirksomhedPortType - - - System.ServiceModel.Configuration.AddressHeaderCollectionElement - - - <Header /> - - - System.ServiceModel.Configuration.IdentityElement - - - System.ServiceModel.Configuration.UserPrincipalNameElement - - - - - - System.ServiceModel.Configuration.ServicePrincipalNameElement - - - - - - System.ServiceModel.Configuration.DnsElement - - - - - - System.ServiceModel.Configuration.RsaElement - - - - - - System.ServiceModel.Configuration.CertificateElement - - - - - - System.ServiceModel.Configuration.CertificateReferenceElement - - - My - - - LocalMachine - - - FindBySubjectDistinguishedName - - - - - - False - - - VirksomhedPort - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Connected Services/STSVriksomhed/policies.wsdl b/Infrastructure.Soap/Connected Services/STSVriksomhed/policies.wsdl deleted file mode 100644 index ff60ad349b..0000000000 --- a/Infrastructure.Soap/Connected Services/STSVriksomhed/policies.wsdl +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Infrastructure.Soap.csproj b/Infrastructure.Soap/Infrastructure.Soap.csproj index e355cd4abb..f39279b343 100644 --- a/Infrastructure.Soap/Infrastructure.Soap.csproj +++ b/Infrastructure.Soap/Infrastructure.Soap.csproj @@ -13,7 +13,7 @@ {3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} /client:"WcfTestClient.exe" v4.8 - latest + latest True False XmlSerializer @@ -75,97 +75,7 @@ - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - - - Designer - - - - - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - - - Designer - - - - - Designer @@ -415,51 +325,6 @@ Designer - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - - - Designer - - - - - diff --git a/Infrastructure.Soap/Person/PersonServiceMsg.xsd b/Infrastructure.Soap/Person/PersonServiceMsg.xsd deleted file mode 100644 index b3354cb4c3..0000000000 --- a/Infrastructure.Soap/Person/PersonServiceMsg.xsd +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/GenerelleDefinitioner.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/GenerelleDefinitioner.xsd deleted file mode 100644 index ef7604df82..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/GenerelleDefinitioner.xsd +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/OrganisationFaelles.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/OrganisationFaelles.xsd deleted file mode 100644 index e8e1d1b218..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/OrganisationFaelles.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Part.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Part.xsd deleted file mode 100644 index a6b994566c..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Part.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Person.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Person.xsd deleted file mode 100644 index 76ba258700..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/Person.xsd +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonBesked.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonBesked.xsd deleted file mode 100644 index 8bc2805e72..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonBesked.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonOperationer.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonOperationer.xsd deleted file mode 100644 index ac37385fbb..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/1.1.STS-3/PersonOperationer.xsd +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/RequestHeader.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/RequestHeader.xsd deleted file mode 100644 index 6b8579c4b9..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/RequestHeader.xsd +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/SagDokObjekt.xsd b/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/SagDokObjekt.xsd deleted file mode 100644 index 6962705066..0000000000 --- a/Infrastructure.Soap/Person/SF1500_EP_FS10/xsd/common/SagDokObjekt.xsd +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/sp/AuthorityContext_1.xsd b/Infrastructure.Soap/Person/sp/AuthorityContext_1.xsd deleted file mode 100644 index 5346245539..0000000000 --- a/Infrastructure.Soap/Person/sp/AuthorityContext_1.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/sp/CallContext_1.xsd b/Infrastructure.Soap/Person/sp/CallContext_1.xsd deleted file mode 100644 index 545b0beffc..0000000000 --- a/Infrastructure.Soap/Person/sp/CallContext_1.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/sp/InvocationContext_1.xsd b/Infrastructure.Soap/Person/sp/InvocationContext_1.xsd deleted file mode 100644 index e7ab223045..0000000000 --- a/Infrastructure.Soap/Person/sp/InvocationContext_1.xsd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/sp/ServiceplatformFaultMessage_1.wsdl b/Infrastructure.Soap/Person/sp/ServiceplatformFaultMessage_1.wsdl deleted file mode 100644 index d0d0592848..0000000000 --- a/Infrastructure.Soap/Person/sp/ServiceplatformFaultMessage_1.wsdl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/sp/ServiceplatformFault_1.xsd b/Infrastructure.Soap/Person/sp/ServiceplatformFault_1.xsd deleted file mode 100644 index 92b85d4711..0000000000 --- a/Infrastructure.Soap/Person/sp/ServiceplatformFault_1.xsd +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/sp/service.properties b/Infrastructure.Soap/Person/sp/service.properties deleted file mode 100644 index d08a959d53..0000000000 --- a/Infrastructure.Soap/Person/sp/service.properties +++ /dev/null @@ -1,6 +0,0 @@ -service.uuid=826ecc17-2dfa-4959-b564-3a70bb470344 -service.entityID=http://organisation.serviceplatformen.dk/service/organisation/5 -service.token.wsdl.path= -service.context.wsdl.path= -service.class= -service.endpoint= \ No newline at end of file diff --git a/Infrastructure.Soap/Person/wsdl/context/PersonService.wsdl b/Infrastructure.Soap/Person/wsdl/context/PersonService.wsdl deleted file mode 100644 index 572c64e01a..0000000000 --- a/Infrastructure.Soap/Person/wsdl/context/PersonService.wsdl +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/wsdl/context/policies.wsdl b/Infrastructure.Soap/Person/wsdl/context/policies.wsdl deleted file mode 100644 index fb482aab5a..0000000000 --- a/Infrastructure.Soap/Person/wsdl/context/policies.wsdl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Infrastructure.Soap/Person/wsdl/token/PersonService.wsdl b/Infrastructure.Soap/Person/wsdl/token/PersonService.wsdl deleted file mode 100644 index 572c64e01a..0000000000 --- a/Infrastructure.Soap/Person/wsdl/token/PersonService.wsdl +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Infrastructure.Soap/Person/wsdl/token/policies.wsdl b/Infrastructure.Soap/Person/wsdl/token/policies.wsdl deleted file mode 100644 index 635b7af405..0000000000 --- a/Infrastructure.Soap/Person/wsdl/token/policies.wsdl +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 02e1966eee36aa16bb820f1f76acb7d136ed8785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 7 Jun 2022 13:13:43 +0200 Subject: [PATCH 082/432] added org unit service --- .../Core.DomainServices.csproj | 4 +- .../ResolveOrganizationUuidError.cs | 2 +- .../StsOrganization/StsOrganizationUnit.cs | 27 ++++ .../Organizations/IStsOrganizationService.cs | 1 + .../IStsOrganizationUnitService.cs | 12 ++ .../DomainServices/StsOrganizationService.cs | 1 + .../StsOrganizationUnitService.cs | 141 ++++++++++++++++++ ...Infrastructure.STS.OrganizationUnit.csproj | 19 +++ .../API/V1/HealthCheckController.cs | 6 +- Presentation.Web/Ninject/KernelBuilder.cs | 2 + Presentation.Web/Presentation.Web.csproj | 4 + 11 files changed, 214 insertions(+), 5 deletions(-) rename Core.DomainServices/{Organizations => Model/StsOrganization}/ResolveOrganizationUuidError.cs (83%) create mode 100644 Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs create mode 100644 Core.DomainServices/Organizations/IStsOrganizationUnitService.cs create mode 100644 Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs diff --git a/Core.DomainServices/Core.DomainServices.csproj b/Core.DomainServices/Core.DomainServices.csproj index afbbf55120..32d4aa0c58 100644 --- a/Core.DomainServices/Core.DomainServices.csproj +++ b/Core.DomainServices/Core.DomainServices.csproj @@ -88,12 +88,14 @@ + + - + diff --git a/Core.DomainServices/Organizations/ResolveOrganizationUuidError.cs b/Core.DomainServices/Model/StsOrganization/ResolveOrganizationUuidError.cs similarity index 83% rename from Core.DomainServices/Organizations/ResolveOrganizationUuidError.cs rename to Core.DomainServices/Model/StsOrganization/ResolveOrganizationUuidError.cs index 1db42a2c80..6ba86f118f 100644 --- a/Core.DomainServices/Organizations/ResolveOrganizationUuidError.cs +++ b/Core.DomainServices/Model/StsOrganization/ResolveOrganizationUuidError.cs @@ -1,4 +1,4 @@ -namespace Core.DomainServices.Organizations +namespace Core.DomainServices.Model.StsOrganization { public enum ResolveOrganizationUuidError { diff --git a/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs b/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs new file mode 100644 index 0000000000..0f17c88076 --- /dev/null +++ b/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Core.DomainServices.Model.StsOrganization +{ + public class StsOrganizationUnit + { + public Guid Uuid { get; } + public string Name { get; } + public StsOrganizationUnit Parent { get; } + public IEnumerable Children { get; } + public bool IsRoot() => Parent == null; + + public StsOrganizationUnit( + Guid uuid, + string name, + StsOrganizationUnit parent, + IEnumerable children) + { + Uuid = uuid; + Name = name; + Parent = parent; + Children = children?.ToList().AsReadOnly(); + } + } +} diff --git a/Core.DomainServices/Organizations/IStsOrganizationService.cs b/Core.DomainServices/Organizations/IStsOrganizationService.cs index 3e508bc391..0d705c69a3 100644 --- a/Core.DomainServices/Organizations/IStsOrganizationService.cs +++ b/Core.DomainServices/Organizations/IStsOrganizationService.cs @@ -1,6 +1,7 @@ using System; using Core.Abstractions.Types; using Core.DomainModel.Organization; +using Core.DomainServices.Model.StsOrganization; namespace Core.DomainServices.Organizations { diff --git a/Core.DomainServices/Organizations/IStsOrganizationUnitService.cs b/Core.DomainServices/Organizations/IStsOrganizationUnitService.cs new file mode 100644 index 0000000000..a62661b786 --- /dev/null +++ b/Core.DomainServices/Organizations/IStsOrganizationUnitService.cs @@ -0,0 +1,12 @@ +using Core.Abstractions.Types; +using Core.DomainModel.Organization; +using Core.DomainServices.Model.StsOrganization; + +namespace Core.DomainServices.Organizations +{ + public interface IStsOrganizationUnitService + { + //TODO: Detailed error + Result ResolveOrganizationTree(Organization organization); + } +} diff --git a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs index 263dc922e7..86d4515b01 100644 --- a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs +++ b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs @@ -4,6 +4,7 @@ using System.ServiceModel; using Core.Abstractions.Types; using Core.DomainServices.Extensions; +using Core.DomainServices.Model.StsOrganization; using Core.DomainServices.Organizations; using Core.DomainServices.Repositories.SSO; using Core.DomainServices.SSO; diff --git a/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs b/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs new file mode 100644 index 0000000000..1320f78527 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; +using Core.Abstractions.Types; +using Core.DomainModel.Organization; +using Core.DomainServices.Model.StsOrganization; +using Core.DomainServices.Organizations; +using Core.DomainServices.SSO; +using Infrastructure.STS.Common.Factories; +using Infrastructure.STS.OrganizationUnit.ServiceReference; + +namespace Infrastructure.STS.OrganizationUnit.DomainServices +{ + + public class StsOrganizationUnitService : IStsOrganizationUnitService + { + private readonly IStsOrganizationService _organizationService; + private readonly string _certificateThumbprint; + private readonly string _serviceRoot; + + public StsOrganizationUnitService(IStsOrganizationService organizationService, StsOrganisationIntegrationConfiguration configuration) + { + _organizationService = organizationService; + _certificateThumbprint = configuration.CertificateThumbprint; + _serviceRoot = $"https://{configuration.EndpointHost}/service/Organisation/OrganisationEnhed/5"; + } + + public Result ResolveOrganizationTree(Organization organization) + { + //Resolve the org uuid + var uuid = _organizationService.ResolveStsOrganizationUuid(organization); + if (uuid.Failed) + { + //TODO: Correct error and logging + return uuid.Error; + } + + //Search for org units by org uuid + using var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint); + using var client = CreateClient(BasicHttpBindingFactory.CreateHttpBinding(), _serviceRoot, clientCertificate); + + + var channel = client.ChannelFactory.CreateChannel(); + + const int pageSize = 100; + var totalIds = new List(); + var totalResults = new List(); + var currentPage = new List(); + do + { + currentPage.Clear(); + var searchRequest = CreateSearchOrgUnitsByOrgUuidRequest(organization.Cvr, uuid.Value, pageSize, totalIds.Count); + var searchResponse = channel.soeg(searchRequest); + + //TODO: check errors + + currentPage = searchResponse.SoegResponse1.SoegOutput.IdListe.ToList(); + totalIds.AddRange(currentPage); + + var listRequest = CreateListOrgUnitsRequest(organization.Cvr, currentPage.ToArray()); + var listResponse = channel.list(listRequest); + + //TODO: check errors + + var units = listResponse.ListResponse1.ListOutput.FiltreretOejebliksbillede.SelectMany(filtreretOejebliksbilledeType => filtreretOejebliksbilledeType.Registrering); + totalResults.AddRange(units); + } while (currentPage.Count == pageSize); + + + throw new NotImplementedException("TODO: convert to result model"); + + } + + public static listRequest CreateListOrgUnitsRequest(string municipalityCvr, params string[] currentUnitUuids) + { + var listRequest = new listRequest + { + ListRequest1 = new ListRequestType + { + AuthorityContext = new AuthorityContextType + { + MunicipalityCVR = municipalityCvr + }, + ListInput = new ListInputType + { + UUIDIdentifikator = currentUnitUuids + } + } + }; + return listRequest; + } + + public static soegRequest CreateSearchOrgUnitsByOrgUuidRequest(string municipalityCvr, Guid organizationUuid, int pageSize, int skip = 0) + { + return new soegRequest + { + SoegRequest1 = new SoegRequestType + { + AuthorityContext = new AuthorityContextType + { + MunicipalityCVR = municipalityCvr + }, + SoegInput = new SoegInputType1 + { + AttributListe = new AttributListeType(), //Required by schema validation + TilstandListe = new TilstandListeType(), //Required by schema validation + RelationListe = new RelationListeType + { + Tilhoerer = new OrganisationRelationType + { + ReferenceID = new UnikIdType + { + Item = organizationUuid.ToString("D"), + ItemElementName = ItemChoiceType.UUIDIdentifikator + } + } + }, + MaksimalAntalKvantitet = pageSize.ToString("D"), + FoersteResultatReference = skip.ToString("D") + } + } + }; + } + + private static OrganisationEnhedPortTypeClient CreateClient(BasicHttpBinding binding, string urlServicePlatformService, X509Certificate2 certificate) + { + return new OrganisationEnhedPortTypeClient(binding, new EndpointAddress(urlServicePlatformService)) + { + ClientCredentials = + { + ClientCertificate = + { + Certificate = certificate + } + } + }; + } + } +} diff --git a/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj index 222e427475..3ebe3c1df1 100644 --- a/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj +++ b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj @@ -49,6 +49,7 @@ True Reference.svcmap + @@ -157,5 +158,23 @@ Reference.cs + + + {BD8C90E7-52C7-4AD0-935D-98A2AA89E449} + Core.Abstractions + + + {A76A8E41-74F7-4443-A5F3-059B5414D83B} + Core.DomainModel + + + {ADCACC1D-F538-464C-9102-F4C1D6FA35D3} + Core.DomainServices + + + {423D7522-4882-4438-94F4-7B3F5778C83F} + Infrastructure.STS.Common + + \ No newline at end of file diff --git a/Presentation.Web/Controllers/API/V1/HealthCheckController.cs b/Presentation.Web/Controllers/API/V1/HealthCheckController.cs index e99d6f25a7..42e0ab6edb 100644 --- a/Presentation.Web/Controllers/API/V1/HealthCheckController.cs +++ b/Presentation.Web/Controllers/API/V1/HealthCheckController.cs @@ -12,11 +12,11 @@ namespace Presentation.Web.Controllers.API.V1 public class HealthCheckController : ApiController { private readonly IOrganizationRepository _organizationRepository; - private readonly IStsOrganizationService _stsOrganizationService; + private readonly IStsOrganizationUnitService _stsOrganizationService; private static readonly string DeploymentVersion = Settings.Default.DeploymentVersion; //TODO: Revert changes in this file - public HealthCheckController(IOrganizationRepository organizationRepository, IStsOrganizationService stsOrganizationService) + public HealthCheckController(IOrganizationRepository organizationRepository, IStsOrganizationUnitService stsOrganizationService) { _organizationRepository = organizationRepository; _stsOrganizationService = stsOrganizationService; @@ -27,7 +27,7 @@ public IHttpActionResult Get() { var organization = _organizationRepository.GetAll().First(); organization.Cvr = "58271713"; //ballerup - var result = _stsOrganizationService.ResolveStsOrganizationUuid(organization); + var result = _stsOrganizationService.ResolveOrganizationTree(organization); return Ok(DeploymentVersion); } } diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index 6a4fccb134..6377aef35e 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -116,6 +116,7 @@ using Core.DomainServices.Tracking; using Infrastructure.STS.Company.DomainServices; using Infrastructure.STS.Organization.DomainServices; +using Infrastructure.STS.OrganizationUnit.DomainServices; using Presentation.Web.Controllers.API.V2.External.ItSystems.Mapping; using Presentation.Web.Controllers.API.V2.External.ItInterfaces.Mapping; @@ -280,6 +281,7 @@ public void RegisterServices(IKernel kernel) //STS Organization kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); + kernel.Bind().To().InCommandScope(Mode); } private void RegisterMappers(IKernel kernel) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 41bff8bd4d..23b564a0ae 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1737,6 +1737,10 @@ {09A799FA-3781-419B-AB54-3C76219FD2DE} Infrastructure.STS.Company + + {77C5BEDB-CC7F-4D6F-BF34-EC72B57C03C8} + Infrastructure.STS.OrganizationUnit + {3DC91665-93BB-442D-B186-7E90C7CD6E32} Infrastructure.STS.Organization From 807b15172325d0b50b728caa948d9618b8a84234 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 13:36:41 +0200 Subject: [PATCH 083/432] added filtering --- .../it-contract-overview.controller.ts | 64 +++++++++++++++---- .../it-contract-plan.controller.ts | 57 ++++++++++++++--- 2 files changed, 102 insertions(+), 19 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 296af4a11b..f43d8c94c8 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -162,15 +162,20 @@ // replaces "anything({roleName},'foo')" with "Rights/any(c: anything(concat(concat(c/User/Name, ' '), c/User/LastName),'foo') and c/RoleId eq {roleId})" private fixRoleFilter(filterUrl, roleName, roleId) { - var pattern = new RegExp(`(\\w+\\()${roleName}(.*?\\))`, "i"); + const pattern = new RegExp(`(\\w+\\()${roleName}(.*?\\))`, "i"); return filterUrl.replace(pattern, `Rights/any(c: $1concat(concat(c/User/Name, ' '), c/User/LastName)$2 and c/RoleId eq ${roleId})`); } private fixSystemFilter(filterUrl, column) { - var pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); + const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); return filterUrl.replace(pattern, "AssociatedSystemUsages/any(c: $1c/ItSystemUsage/ItSystem/Name$2)"); } + private fixUserFilter(filterUrl, column) { + const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); + return filterUrl.replace(pattern, "contains(LastChangedByUser/Name$2 or contains(LastChangedByUser/LastName$2"); + } + // loads kendo grid options from localstorage private loadGridOptions() { this.gridState.loadGridOptions(this.mainGrid); @@ -281,6 +286,9 @@ parameterMap.$filter = self .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); + + parameterMap.$filter = self + .fixUserFilter(parameterMap.$filter, "LastChangedByUser/Name"); } return parameterMap; @@ -621,20 +629,54 @@ filterable: false }, { - field: "LastChangedName", title: "Sidst redigeret: Bruger", width: 150, + field: "LastChangedByUser.Name", + title: "Sidst redigeret: Bruger", + width: 150, persistId: "lastchangedname", template: dataItem => `${dataItem.LastChangedByUser.Name} ${dataItem.LastChangedByUser.LastName}`, hidden: true, - sortable: false, - filterable: false + sortable: true, + filterable: { + cell: { + template: customFilter, + dataSource: [], + showOperators: false, + operator: "contains" + } + } }, { - field: "LastChanged", title: "Sidste redigeret: Dato", width: 150, - persistId: "lastchanged", - template: dataItem => dataItem?.LastChanged ? dataItem.LastChanged.toLocaleDateString() : "", - hidden: true, + field: "LastChanged", + title: "Sidste redigeret: Dato", + format: "{0:dd-MM-yyyy}", + width: 130, + persistId: "lastchangeddate", + template: dataItem => { + // handles null cases + if (!dataItem || + !dataItem.LastChanged || + this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { + return ""; + } + return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); + }, + excelTemplate: dataItem => { + // handles null cases + if (!dataItem || + !dataItem.LastChanged || + this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { + return ""; + } + return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); + }, + attributes: { "class": "text-center" }, sortable: true, - filterable: false + filterable: { + cell: { + showOperators: false, + operator: "gte" + } + } }, { field: "DataProcessingRegistrationsConcluded", title: "Databehandleraftale", width: 150, @@ -738,7 +780,7 @@ function customFilter(args) { args.element.kendoAutoComplete({ - noDataTemplate: '' + noDataTemplate: "" }); } // find the index of column where the role columns should be inserted diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 6a81934a61..9f47029b6f 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -155,6 +155,11 @@ private fixProcurmentFilter(filterUrl) { return filterUrl.replace(/ProcurementPlanYear/i, "cast($&, Edm.String)"); } + + private fixUserFilter(filterUrl, column) { + const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); + return filterUrl.replace(pattern, "contains(LastChangedByUser/Name$2 or contains(LastChangedByUser/LastName$2"); + } public saveGridProfile() { Utility.KendoFilterProfileHelper.saveProfileLocalStorageData(this.$window, this.orgUnitStorageKey); @@ -269,6 +274,8 @@ }); parameterMap.$filter = this.fixProcurmentFilter(parameterMap.$filter); + + parameterMap.$filter = this.fixUserFilter(parameterMap.$filter, "LastChangedByUser/Name"); } return parameterMap; @@ -826,20 +833,54 @@ } }, { - field: "LastChangedName", title: "Sidst redigeret: Bruger", width: 150, + field: "LastChangedByUser.Name", + title: "Sidst redigeret: Bruger", + width: 150, persistId: "lastchangedname", template: dataItem => `${dataItem.LastChangedByUser.Name} ${dataItem.LastChangedByUser.LastName}`, hidden: true, - sortable: false, - filterable: false + sortable: true, + filterable: { + cell: { + template: customFilter, + dataSource: [], + showOperators: false, + operator: "contains" + } + } }, { - field: "LastChanged", title: "Sidste redigeret: Dato", width: 150, - persistId: "lastchanged", - template: dataItem => dataItem?.LastChanged ? dataItem.LastChanged.toLocaleDateString() : "", - hidden: true, + field: "LastChanged", + title: "Sidste redigeret: Dato", + format: "{0:dd-MM-yyyy}", + width: 130, + persistId: "lastchangeddate", + template: dataItem => { + // handles null cases + if (!dataItem || + !dataItem.LastChanged || + this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { + return ""; + } + return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); + }, + excelTemplate: dataItem => { + // handles null cases + if (!dataItem || + !dataItem.LastChanged || + this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { + return ""; + } + return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); + }, + attributes: { "class": "text-center" }, sortable: true, - filterable: false + filterable: { + cell: { + showOperators: false, + operator: "gte" + } + } }, ] }; From bdd533a44c6ba5b1fdd3d06e1ae7bbe5b561e22b Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 14:58:52 +0200 Subject: [PATCH 084/432] changes after review --- .../app/components/it-contract/it-contract-plan.controller.ts | 2 +- .../Contract/V2/ItContractsApiV2Test.cs | 2 +- .../ApplicationServices/Contract/ItContractWriteServiceTest.cs | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index d13aae8888..f9d2a95925 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -806,7 +806,7 @@ }, { field: "ProcurementPlanYear", - title: "Genanskaffelses plan", + title: "Genanskaffelsesplan", width: 90, persistId: "procurementPlan", // DON'T YOU DARE RENAME! attributes: { "class": "text-center" }, diff --git a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs index ec97d9354b..5044253692 100644 --- a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs +++ b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs @@ -2303,7 +2303,7 @@ private static void AssertProcurement(ContractProcurementDataWriteRequestDTO exp PurchaseTypeUuid = purchaseType.Uuid, ProcurementPlan = new ProcurementPlanDTO() { - QuarterOfYear = Convert.ToByte((A() % 1) + 1), + QuarterOfYear = Convert.ToByte((A() % 4) + 1), Year = A() } }; diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs index 4bf7e58b91..de887f55bb 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Contract/ItContractWriteServiceTest.cs @@ -545,7 +545,6 @@ public void Cannot_Create_With_Procurement_If_UpdateIndependentOptionTypeAssignm [Theory] [InlineData(0)] [InlineData(5)] - [InlineData(10)] public void Cannot_Create_With_Procurement_If_Quarter_Of_Year_Is_Other_Than_1_To_4(int halfOfYear) { //Arrange From 928839dd0be428f2ec0f45a0cecfa80350b2225b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 7 Jun 2022 15:19:31 +0200 Subject: [PATCH 085/432] added draft conversion implementation --- .../StsOrganization/StsOrganizationUnit.cs | 13 +-- .../StsOrganizationUnitService.cs | 110 ++++++++++++++++-- 2 files changed, 107 insertions(+), 16 deletions(-) diff --git a/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs b/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs index 0f17c88076..64d1b3020a 100644 --- a/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs +++ b/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs @@ -8,20 +8,15 @@ public class StsOrganizationUnit { public Guid Uuid { get; } public string Name { get; } - public StsOrganizationUnit Parent { get; } + public string UserFacingKey { get; } public IEnumerable Children { get; } - public bool IsRoot() => Parent == null; - public StsOrganizationUnit( - Guid uuid, - string name, - StsOrganizationUnit parent, - IEnumerable children) + public StsOrganizationUnit(Guid uuid, string name, string userFacingKey, IEnumerable children) { Uuid = uuid; Name = name; - Parent = parent; - Children = children?.ToList().AsReadOnly(); + UserFacingKey = userFacingKey; + Children = children.ToList().AsReadOnly(); } } } diff --git a/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs b/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs index 1320f78527..19c094bc1a 100644 --- a/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs +++ b/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs @@ -46,33 +46,120 @@ public Result ResolveOrganizationTree(Organ const int pageSize = 100; var totalIds = new List(); - var totalResults = new List(); + var totalResults = new List<(Guid, RegistreringType1)>(); var currentPage = new List(); do { currentPage.Clear(); var searchRequest = CreateSearchOrgUnitsByOrgUuidRequest(organization.Cvr, uuid.Value, pageSize, totalIds.Count); var searchResponse = channel.soeg(searchRequest); - + //TODO: check errors - + currentPage = searchResponse.SoegResponse1.SoegOutput.IdListe.ToList(); totalIds.AddRange(currentPage); var listRequest = CreateListOrgUnitsRequest(organization.Cvr, currentPage.ToArray()); var listResponse = channel.list(listRequest); - + //TODO: check errors - var units = listResponse.ListResponse1.ListOutput.FiltreretOejebliksbillede.SelectMany(filtreretOejebliksbilledeType => filtreretOejebliksbilledeType.Registrering); + var units = listResponse + .ListResponse1 + .ListOutput + .FiltreretOejebliksbillede + .Select(snapshot => (new Guid(snapshot.ObjektType.UUIDIdentifikator), snapshot.Registrering.OrderByDescending(x => x.Tidspunkt).FirstOrDefault())) + .Where(x => x.Item2 != null); + totalResults.AddRange(units); + } while (currentPage.Count == pageSize); + // Prepare conversion to import tree + var unitsByUuid = totalResults.ToDictionary(unit => unit.Item1); + var unitsByParent = totalResults + .Where(x => x.Item2.RelationListe.Overordnet != null) // exclude the root + .GroupBy(unit => new Guid(unit.Item2.RelationListe.Overordnet.ReferenceID.Item)) + .ToDictionary(grouping => grouping.Key, grouping => grouping.ToList()); + var roots = totalResults.Where(x => x.Item2.RelationListe.Overordnet == null).ToList(); + if (roots.Count != 1) + { + //TODO: error + } + + // Process the tree info from sts org in order to generate the import tree + var parentIdToConvertedChildren = new Dictionary>(); + var idToConvertedChildren = new Dictionary(); + var root = roots.Single(); + + var processingStack = CreateOrgUnitConversionStack(root, unitsByParent); + + while (processingStack.Any()) + { + var currentUnitUuid = processingStack.Pop(); + (Guid, RegistreringType1) unit = unitsByUuid[currentUnitUuid]; + + var egenskabType = unit.Item2.AttributListe.Egenskab[0];//TODO: Check if we can always depend on this to be there + var unitUuid = unit.Item1; + var organizationUnit = new StsOrganizationUnit(unitUuid, egenskabType.EnhedNavn, egenskabType.BrugervendtNoegleTekst, parentIdToConvertedChildren.ContainsKey(unitUuid) ? parentIdToConvertedChildren[unitUuid] : new List(0)); + idToConvertedChildren[organizationUnit.Uuid] = organizationUnit; + var parentUnit = unit.Item2.RelationListe.Overordnet; + if (parentUnit != null) + { + var parentId = new Guid(parentUnit.ReferenceID.Item); + if (!parentIdToConvertedChildren.TryGetValue(parentId, out var parentToChildrenList)) + { + parentToChildrenList = new List(); + parentIdToConvertedChildren[parentId] = parentToChildrenList; + } + parentToChildrenList.Add(organizationUnit); + } + } - throw new NotImplementedException("TODO: convert to result model"); + return idToConvertedChildren[root.Item1]; } + private static Stack CreateOrgUnitConversionStack((Guid, RegistreringType1) root, Dictionary> unitsByParent) + { + var processingStack = new Stack(); + processingStack.Push(root.Item1); + + //Flatten the tree and have the leafs at the top of the stack + var currentChildren = unitsByParent[processingStack.Peek()]; + foreach (var currentChild in currentChildren) + { + foreach (var unitId in GetSubTree(currentChild, unitsByParent)) + { + processingStack.Push(unitId); + } + } + + return processingStack; + } + + private static IEnumerable GetSubTree((Guid, RegistreringType1) currentChild, Dictionary> unitsByParent) + { + var id = currentChild.Item1; + + //Current level + yield return id; + + //Append the sub tree + if (unitsByParent.TryGetValue(id, out var children)) + { + foreach (var child in children) + { + foreach (var uuid in GetSubTree(child, unitsByParent)) + { + yield return uuid; + } + + } + } + } + + public static listRequest CreateListOrgUnitsRequest(string municipalityCvr, params string[] currentUnitUuids) { var listRequest = new listRequest @@ -105,7 +192,16 @@ public static soegRequest CreateSearchOrgUnitsByOrgUuidRequest(string municipali SoegInput = new SoegInputType1 { AttributListe = new AttributListeType(), //Required by schema validation - TilstandListe = new TilstandListeType(), //Required by schema validation + TilstandListe = new TilstandListeType() + { + Gyldighed = new GyldighedType[] + { + new() + { + GyldighedStatusKode = GyldighedStatusKodeType.Aktiv + } + } + }, //Required by schema validation RelationListe = new RelationListeType { Tilhoerer = new OrganisationRelationType From 22e5c0a51c6bb7085fc4fffe6335da9fe1995047 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 7 Jun 2022 15:36:13 +0200 Subject: [PATCH 086/432] fixed last changed display --- .../Controllers/API/V1/ItSystemUsageController.cs | 2 +- Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs | 2 +- .../usage/tabs/it-system-usage-tab-main.view.html | 4 ++-- .../ViewModel/it-system-usage/system-usage-view-model.ts | 7 ++++++- .../app/models/ViewModel/it-system/system-view-models.ts | 6 ------ 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs index a50755f385..0b2db10560 100644 --- a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs +++ b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs @@ -89,7 +89,7 @@ public override HttpResponseMessage GetSingle(int id) } var dto = Map(item); - dto.ItSystem.LastChangedByName = item.LastChangedByUser.GetFullName(); + dto.LastChangedByName = item.LastChangedByUser.GetFullName(); if (GetOrganizationReadAccessLevel(item.OrganizationId) < OrganizationDataReadAccessLevel.All) { diff --git a/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs b/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs index 546a27f4b0..e24e6208dd 100644 --- a/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs +++ b/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs @@ -11,6 +11,7 @@ public class ItSystemUsageDTO public Guid Uuid { get; set; } public int Id { get; set; } public DateTime LastChanged { get; set; } + public string LastChangedByName { get; set; } public string Note { get; set; } public string LocalSystemId { get; set; } public string Version { get; set; } @@ -69,7 +70,6 @@ public string ObjectOwnerFullName public int? ArchiveFreq { get; set; } public bool? Registertype { get; set; } public bool? ArchiveFromSystem { get; set; } - #region GDPR public string GeneralPurpose { get; set; } public DataOptions? IsBusinessCritical { get; set; } diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html index 3ade6e08b0..b5f7c14ea1 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html @@ -121,7 +121,7 @@

{{systemUsageName}}

data-ng-disabled="true" data-autosave="{{ ::autosaveUrl }}" data-field="lastChangedbyName" - data-ng-model="system.lastChangedByName"> + data-ng-model="usage.lastChangedByName">
@@ -129,7 +129,7 @@

{{systemUsageName}}

data-ng-disabled="true" data-autosave="{{ ::autosaveUrl }}" data-field="lastChanged" - data-ng-model="system.lastChanged"> + data-ng-model="usage.lastChanged">
diff --git a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts index 34c0ca0bd8..fd9eed3667 100644 --- a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts +++ b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts @@ -119,6 +119,8 @@ DPIA: DataOption; answeringDataDPIA: DataOption; hostedAt: HostedAt; + lastChanged: string, + lastChangedByName: string, } export class SystemUsageViewModel implements ISystemUsageViewModel { @@ -142,6 +144,8 @@ answeringDataDPIA: DataOption; hostedAt: HostedAt; userCount: string; + lastChanged: string; + lastChangedByName: string; constructor(itSystemUsage: any) { this.id = itSystemUsage.id; @@ -151,6 +155,8 @@ this.expirationDate = itSystemUsage.expirationDate; this.isActive = itSystemUsage.isActive; this.active = itSystemUsage.active; + this.lastChangedByName = itSystemUsage.LastChangedByName; + this.lastChanged = itSystemUsage.LastChanged; const sensitiveDataLevels = _.map(itSystemUsage.sensitiveDataLevels, this.mapDataLevels); this.noDataSelected = _.some(sensitiveDataLevels, x => x === SensitiveDataLevelViewModel.levels.none.value); @@ -167,7 +173,6 @@ this.answeringDataDPIA = this.mapDataOption(itSystemUsage.answeringDataDPIA); this.hostedAt = this.mapHostedAtOption(itSystemUsage.hostedAt); this.userCount = itSystemUsage.userCount.toString(); - } mapHostedAtOption(hostedAtOption: number) { diff --git a/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts b/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts index 1965a31948..cba27fd9e2 100644 --- a/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts +++ b/Presentation.Web/app/models/ViewModel/it-system/system-view-models.ts @@ -19,8 +19,6 @@ readonly businessTypeName: string, readonly archiveDuty: IArchiveDuty, readonly uuid: string, - readonly lastChanged: string, - readonly lastChangedByName: string, } export class SystemViewModel implements ISystemViewModel { @@ -36,8 +34,6 @@ readonly businessTypeName: string; readonly archiveDuty: IArchiveDuty; readonly uuid: string; - readonly lastChanged: string; - readonly lastChangedByName: string; constructor(itSystem: any) { this.name = Helpers.SystemNameFormat.apply(itSystem.name, itSystem.disabled); @@ -54,8 +50,6 @@ this.disabled = itSystem.disabled; this.archiveDuty = this.mapArchiveDuty(itSystem); this.accessModifier = Mappers.AccessModifierMapper.mapAccessModifier(itSystem.accessModifier); - this.lastChanged = itSystem.lastChanged; - this.lastChangedByName = itSystem.lastChangedByName; } private mapArchiveDuty(system): IArchiveDuty { From 73a1b4e5fb41063d6dd09290d3f5002952d78e36 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 08:21:00 +0200 Subject: [PATCH 087/432] fixed mapping --- Presentation.Web/App_Start/MappingConfig.cs | 1 + Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index a852684a39..457ba1327d 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -281,6 +281,7 @@ public MappingProfile() .ForMember(dest => dest.MainContractId, opt => opt.MapFrom(src => src.MainContract.ItContractId)) .ForMember(dest => dest.MainContractIsActive, opt => opt.MapFrom(src => src.MainContract.ItContract.IsActive)) .ForMember(dest => dest.InterfaceExhibitCount, opt => opt.MapFrom(src => src.ItSystem.ItInterfaceExhibits.Count)) + .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser.GetFullName())) .ReverseMap() .ForMember(dest => dest.TaskRefs, opt => opt.Ignore()) .ForMember(dest => dest.ItProjects, opt => opt.Ignore()) diff --git a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs index 0b2db10560..0e01563eda 100644 --- a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs +++ b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs @@ -89,7 +89,6 @@ public override HttpResponseMessage GetSingle(int id) } var dto = Map(item); - dto.LastChangedByName = item.LastChangedByUser.GetFullName(); if (GetOrganizationReadAccessLevel(item.OrganizationId) < OrganizationDataReadAccessLevel.All) { From 672ba14e3d63e6d0169f1358b576acd49770f4ec Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 08:30:29 +0200 Subject: [PATCH 088/432] changes after review #2 --- .../app/components/global-admin/global-admin-misc.controller.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index e11cf1c743..3457a76521 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -155,7 +155,6 @@ $scope.userOrganizations = []; userService.getUserOrganizations(newVal).then(res => { $scope.userOrganizations.pushArray(res); - $scope.userSelected = true; }); }); @@ -167,7 +166,6 @@ userService.deleteUser(id) .then(() => { notify.addSuccessMessage(`Sletter ${nameAndEmail}`); - $scope.userSelected = false; $scope.selectedUser = null; } ).catch(ex => { From f91643114f66b8a26836203a1a1d8bd80c706765 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 08:54:26 +0200 Subject: [PATCH 089/432] Extended RenderDate Helper --- .../it-contract-overview.controller.ts | 34 +++++-------------- .../it-contract-plan.controller.ts | 20 ++--------- .../it-interface-catalog.controller.ts | 9 +---- .../it-system/it-system-catalog.controller.ts | 20 ++--------- .../app/helpers/RenderFieldsHelper.ts | 3 +- 5 files changed, 16 insertions(+), 70 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index f43d8c94c8..7e561577dc 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -651,24 +651,8 @@ format: "{0:dd-MM-yyyy}", width: 130, persistId: "lastchangeddate", - template: dataItem => { - // handles null cases - if (!dataItem || - !dataItem.LastChanged || - this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { - return ""; - } - return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); - }, - excelTemplate: dataItem => { - // handles null cases - if (!dataItem || - !dataItem.LastChanged || - this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { - return ""; - } - return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); - }, + template: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.LastChanged), + excelTemplate: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.LastChanged), attributes: { "class": "text-center" }, sortable: true, filterable: { @@ -709,7 +693,7 @@ return ""; } - return self.moment(dataItem.OperationRemunerationBegun).format(Constants.DateFormat.DanishDateFormat); + return self.moment(dataItem.OperationRemunerationBegun).format(Kitos.Constants.DateFormat.DanishDateFormat); }, hidden: true, filterable: { @@ -755,7 +739,7 @@ return ""; } - return self.moment(dataItem.AuditDate).format(Constants.DateFormat.DanishDateFormat); + return self.moment(dataItem.AuditDate).format(Kitos.Constants.DateFormat.DanishDateFormat); }, sortable: false, filterable: false @@ -808,7 +792,7 @@ // add a role column for each of the roles // note iterating in reverse so we don't have to update the insert index this._.forEachRight(this.itContractRoles, role => { - var roleColumn: IKendoGridColumn = { + var roleColumn: Kitos.IKendoGridColumn = { field: `role${role.Id}`, title: role.Name, persistId: `role${role.Id}`, @@ -851,16 +835,16 @@ // assign the generated grid options to the scope value, kendo will do the rest this.mainGridOptions = mainGridOptions; - Helpers.ExcelExportHelper.setupExcelExportDropdown(() => this.excelConfig, + Kitos.Helpers.ExcelExportHelper.setupExcelExportDropdown(() => this.excelConfig, () => this.mainGrid, this.$scope, this.mainGridOptions.toolbar); } - private readonly excelConfig: Models.IExcelConfig = { + private readonly excelConfig: Kitos.Models.IExcelConfig = { }; - private exportToExcel = (e: IKendoGridExcelExportEvent) => { + private exportToExcel = (e: Kitos.IKendoGridExcelExportEvent) => { this.exportGridToExcelService.getExcel(e, this._, this.$timeout, this.mainGrid, this.excelConfig); } @@ -980,7 +964,7 @@ user: [ "userService", userService => userService.getUser() ], - userAccessRights: ["authorizationServiceFactory", (authorizationServiceFactory: Services.Authorization.IAuthorizationServiceFactory) => + userAccessRights: ["authorizationServiceFactory", (authorizationServiceFactory: Kitos.Services.Authorization.IAuthorizationServiceFactory) => authorizationServiceFactory .createContractAuthorization() .getOverviewAuthorization() diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 9f47029b6f..2a7b4ffbcb 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -855,24 +855,8 @@ format: "{0:dd-MM-yyyy}", width: 130, persistId: "lastchangeddate", - template: dataItem => { - // handles null cases - if (!dataItem || - !dataItem.LastChanged || - this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { - return ""; - } - return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); - }, - excelTemplate: dataItem => { - // handles null cases - if (!dataItem || - !dataItem.LastChanged || - this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { - return ""; - } - return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); - }, + template: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.LastChanged), + excelTemplate: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.LastChanged), attributes: { "class": "text-center" }, sortable: true, filterable: { diff --git a/Presentation.Web/app/components/it-system/it-interface/it-interface-catalog.controller.ts b/Presentation.Web/app/components/it-system/it-interface/it-interface-catalog.controller.ts index 033bd363e9..2c868f8671 100644 --- a/Presentation.Web/app/components/it-system/it-interface/it-interface-catalog.controller.ts +++ b/Presentation.Web/app/components/it-system/it-interface/it-interface-catalog.controller.ts @@ -430,14 +430,7 @@ { field: "LastChanged", title: "Sidst redigeret: Dato", format: "{0:dd-MM-yyyy}", width: 130, persistId: "lastchangeddate", // DON'T YOU DARE RENAME! - excelTemplate: dataItem => { - // handles null cases - if (!dataItem || !dataItem.LastChanged) { - return ""; - } - - return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); - }, + excelTemplate: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.LastChanged), attributes: { "class": "text-center" }, filterable: { cell: { diff --git a/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts b/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts index f552ec0a48..95f9c42b1a 100644 --- a/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts +++ b/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts @@ -601,24 +601,8 @@ format: "{0:dd-MM-yyyy}", width: 130, persistId: "lastchangeddate", // DON'T YOU DARE RENAME! - template: dataItem => { - // handles null cases - if (!dataItem || - !dataItem.LastChanged || - this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { - return ""; - } - return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); - }, - excelTemplate: dataItem => { - // handles null cases - if (!dataItem || - !dataItem.LastChanged || - this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat) === "01-01-0001") { - return ""; - } - return this.moment(dataItem.LastChanged).format(Constants.DateFormat.DanishDateFormat); - }, + template: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.LastChanged), + excelTemplate: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.LastChanged), attributes: { "class": "text-center" }, filterable: { cell: { diff --git a/Presentation.Web/app/helpers/RenderFieldsHelper.ts b/Presentation.Web/app/helpers/RenderFieldsHelper.ts index 90530a8961..dcab43397b 100644 --- a/Presentation.Web/app/helpers/RenderFieldsHelper.ts +++ b/Presentation.Web/app/helpers/RenderFieldsHelper.ts @@ -65,7 +65,8 @@ } static renderDate(date: Date | undefined | null) { - if (!!date) { + if (!!date || + moment(date).format(Constants.DateFormat.DanishDateFormat) !== "01-01-0001") { return moment(date).format(Constants.DateFormat.DanishDateFormat); } return RenderFieldsHelper.noValueFallback; From b6bc954e8eec780b22ceec3bf0d1ce30fe518c18 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 09:47:52 +0200 Subject: [PATCH 090/432] fixed ItContract UiCustomization test --- .../LocalAdmin.ItContract.UiCustomization.e2e.spec.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts index ac3e2b4b78..c40dac2411 100644 --- a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -3,6 +3,8 @@ import TestFixtureWrapper = require("../../Utility/TestFixtureWrapper"); import ContractHelper = require("../../Helpers/ContractHelper"); import NavigationHelper = require("../../Utility/NavigationHelper"); import ContractNavigationSrefs = require("../../Helpers/SideNavigation/ContractNavigationSrefs"); +import OrgHelper = require("../../Helpers/OrgHelper"); +import Select2Helper = require("../../Helpers/Select2Helper"); describe("Local admin is able customize the IT-Contract UI", () => { @@ -23,11 +25,15 @@ describe("Local admin is able customize the IT-Contract UI", () => { it("Disabling Tabs/fields will hide the tabs/fields on the IT-Contract details page", () => { var contractName = createName("contractName"); + var orgName = createName("orgName"); return loginHelper.loginAsGlobalAdmin() + .then(() => OrgHelper.createOrg(orgName)) + .then(() => OrgHelper.changeOrg(orgName)) .then(() => ContractHelper.createContract(contractName)) - .then(() => loginHelper.logout()) - .then(() => loginHelper.loginAsLocalAdmin()) + .then(() => navigation.getPage("/#/global-admin/local-admins")) + .then(() => Select2Helper.select(orgName, "s2id_selectOrg")) + .then(() => Select2Helper.select(loginHelper.getGlobalAdminCredentials().username, "selectUser")) .then(() => testTabCustomization(contractName, "ItContracts.contractRoles", ContractNavigationSrefs.contractRolesSref)) .then(() => testTabCustomization(contractName, "ItContracts.advice", ContractNavigationSrefs.adviceSref)); }); From 807a83a4ac80aedbfd4e5fbd14534e24e71645cf Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 10:25:21 +0200 Subject: [PATCH 091/432] changed mapping --- Presentation.Web/App_Start/MappingConfig.cs | 1 - Presentation.Web/Models/API/V1/ItSystemDTO.cs | 1 - Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs | 3 ++- .../usage/tabs/it-system-usage-tab-main.controller.ts | 1 + .../usage/tabs/it-system-usage-tab-main.view.html | 4 ++-- .../ViewModel/it-system-usage/system-usage-view-model.ts | 9 ++++++--- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index 457ba1327d..a852684a39 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -281,7 +281,6 @@ public MappingProfile() .ForMember(dest => dest.MainContractId, opt => opt.MapFrom(src => src.MainContract.ItContractId)) .ForMember(dest => dest.MainContractIsActive, opt => opt.MapFrom(src => src.MainContract.ItContract.IsActive)) .ForMember(dest => dest.InterfaceExhibitCount, opt => opt.MapFrom(src => src.ItSystem.ItInterfaceExhibits.Count)) - .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser.GetFullName())) .ReverseMap() .ForMember(dest => dest.TaskRefs, opt => opt.Ignore()) .ForMember(dest => dest.ItProjects, opt => opt.Ignore()) diff --git a/Presentation.Web/Models/API/V1/ItSystemDTO.cs b/Presentation.Web/Models/API/V1/ItSystemDTO.cs index 20883e17ca..ba0d890626 100644 --- a/Presentation.Web/Models/API/V1/ItSystemDTO.cs +++ b/Presentation.Web/Models/API/V1/ItSystemDTO.cs @@ -65,7 +65,6 @@ public string ObjectOwnerFullName public int? InterfaceId { get; set; } public DateTime LastChanged { get; set; } - public string LastChangedByName { get; set; } public int LastChangedByUserId { get; set; } /// diff --git a/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs b/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs index e24e6208dd..ce46a99ce8 100644 --- a/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs +++ b/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs @@ -11,7 +11,8 @@ public class ItSystemUsageDTO public Guid Uuid { get; set; } public int Id { get; set; } public DateTime LastChanged { get; set; } - public string LastChangedByName { get; set; } + public string LastChangedByUserName { get; set; } + public string LastChangedByUserLastName { get; set; } public string Note { get; set; } public string LocalSystemId { get; set; } public string Version { get; set; } diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts index 6f79bb3c75..cfcd5fd3a0 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts @@ -22,6 +22,7 @@ $scope.systemCategories = systemCategories; $scope.shouldShowCategories = systemCategories.length > 0; $scope.system = itSystemUsage.itSystem; + $scope.LastChangedBy = `${itSystemUsage.lastChangedByUserName} ${itSystemUsage.lastChangedByUserLastName}`; autofocus(); $scope.isValidUrl = (url: string) => Kitos.Utility.Validation.isValidExternalReference(url); diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html index b5f7c14ea1..0a1307d03c 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html @@ -120,8 +120,8 @@

{{systemUsageName}}

+ data-field="LastChangedBy" + data-ng-model="LastChangedBy">
diff --git a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts index fd9eed3667..da47f0ab29 100644 --- a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts +++ b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts @@ -120,7 +120,8 @@ answeringDataDPIA: DataOption; hostedAt: HostedAt; lastChanged: string, - lastChangedByName: string, + lastChangedByUserName: string, + lastChangedByUserLastName: string, } export class SystemUsageViewModel implements ISystemUsageViewModel { @@ -145,7 +146,8 @@ hostedAt: HostedAt; userCount: string; lastChanged: string; - lastChangedByName: string; + lastChangedByUserName: string; + lastChangedByUserLastName: string; constructor(itSystemUsage: any) { this.id = itSystemUsage.id; @@ -155,8 +157,9 @@ this.expirationDate = itSystemUsage.expirationDate; this.isActive = itSystemUsage.isActive; this.active = itSystemUsage.active; - this.lastChangedByName = itSystemUsage.LastChangedByName; this.lastChanged = itSystemUsage.LastChanged; + this.lastChangedByUserName = itSystemUsage.lastChangedByUserName; + this.lastChangedByUserLastName = itSystemUsage.lastChangedByUserLastName; const sensitiveDataLevels = _.map(itSystemUsage.sensitiveDataLevels, this.mapDataLevels); this.noDataSelected = _.some(sensitiveDataLevels, x => x === SensitiveDataLevelViewModel.levels.none.value); From ffa5ad470d5a1719defe4e07ac50a0439b9118f9 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 10:39:31 +0200 Subject: [PATCH 092/432] changed helper after review --- .../it-contract-overview.controller.ts | 16 ++-------------- .../app/helpers/RenderFieldsHelper.ts | 4 ++-- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 7e561577dc..79f98767aa 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -688,13 +688,7 @@ { field: "OperationRemunerationBegun", title: "Driftsvederlag påbegyndt", format: "{0:dd-MM-yyyy}", width: 150, persistId: "opremun", // DON'T YOU DARE RENAME! - excelTemplate: dataItem => { - if (!dataItem || !dataItem.OperationRemunerationBegun) { - return ""; - } - - return self.moment(dataItem.OperationRemunerationBegun).format(Kitos.Constants.DateFormat.DanishDateFormat); - }, + excelTemplate: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.OperationRemunerationBegun), hidden: true, filterable: { cell: { @@ -734,13 +728,7 @@ { field: "AuditDate", title: "Audit dato", width: 90, persistId: "auditdate", // DON'T YOU DARE RENAME! - template: dataItem => { - if (!dataItem.AuditDate) { - return ""; - } - - return self.moment(dataItem.AuditDate).format(Kitos.Constants.DateFormat.DanishDateFormat); - }, + template: dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem?.AuditDate), sortable: false, filterable: false }, diff --git a/Presentation.Web/app/helpers/RenderFieldsHelper.ts b/Presentation.Web/app/helpers/RenderFieldsHelper.ts index dcab43397b..67e4c29575 100644 --- a/Presentation.Web/app/helpers/RenderFieldsHelper.ts +++ b/Presentation.Web/app/helpers/RenderFieldsHelper.ts @@ -64,8 +64,8 @@ return RenderFieldsHelper.noValueFallback; } - static renderDate(date: Date | undefined | null) { - if (!!date || + static renderDate(date: Date | string | undefined | null) { + if (!!date && moment(date).format(Constants.DateFormat.DanishDateFormat) !== "01-01-0001") { return moment(date).format(Constants.DateFormat.DanishDateFormat); } From 160ca794bbe7d5f9b3296a073956cbeeab9dc5e6 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 10:45:18 +0200 Subject: [PATCH 093/432] check itemsWithMatchingName length before getting the first item --- Presentation.Web/app/helpers/UiCustomizationHelper.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/app/helpers/UiCustomizationHelper.ts b/Presentation.Web/app/helpers/UiCustomizationHelper.ts index 5368f67590..370d370760 100644 --- a/Presentation.Web/app/helpers/UiCustomizationHelper.ts +++ b/Presentation.Web/app/helpers/UiCustomizationHelper.ts @@ -13,10 +13,12 @@ } public static removeItemFromToolbarByName(name: string, items: IKendoGridToolbarItem[]) { - const item = items.filter(x => x.name === name)[0]; - if (item === undefined) + + const itemsWithMatchingName = items.filter(x => x.name === name); + if (itemsWithMatchingName.length < 1) return; + const item = itemsWithMatchingName[0]; const index = items.indexOf(item); items.splice(index); } From b5429d8bb8494f69df3ab2df56f583abcf4d929e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 11:19:46 +0200 Subject: [PATCH 094/432] DPR Overview add LastChanged columns --- .../Infrastructure.DataAccess.csproj | 7 ------ ...essing-registration-overview.controller.ts | 22 +++++++++++++++++-- .../data-processing-registration-readmodel.ts | 2 ++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 9ffdfcdf4c..6ffc19e233 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -865,10 +865,6 @@ 202205190801320_UserDelete.cs - - - 202206031302349_AddDPRReadModelLastChanged.cs - @@ -1432,9 +1428,6 @@ 202205190801320_UserDelete.cs - - 202206031302349_AddDPRReadModelLastChanged.cs - diff --git a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts index 8b5946a13c..883c3817e2 100644 --- a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts +++ b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts @@ -453,8 +453,26 @@ .withStandardWidth(160) .withFilteringOperation(Utility.KendoGrid.KendoGridColumnFiltering.Date) .withRendering(dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem.LatestOversightDate)) - .withExcelOutput( - dataItem => Helpers.ExcelExportHelper.renderDate(dataItem.LatestOversightDate))) + .withExcelOutput(dataItem => Helpers.ExcelExportHelper.renderDate(dataItem.LatestOversightDate))) + .withColumn(builder => + builder + .withDataSourceName("LastChangedByName") + .withTitle("Sidst redigeret: Bruger") + .withId("lastchangedname") + .withFilteringOperation(Utility.KendoGrid.KendoGridColumnFiltering.Contains) + .withInitialVisibility(false) + .withSourceValueEchoRendering() + .withSourceValueEchoExcelOutput()) + .withColumn(builder => + builder + .withDataSourceName("LastChanged") + .withTitle("Sidste redigeret: Dato") + .withId("changed") + .withFilteringOperation(Utility.KendoGrid.KendoGridColumnFiltering.Date) + .withDataSourceType(Utility.KendoGrid.KendoGridColumnDataSourceType.Date) + .withInitialVisibility(false) + .withRendering(dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem.LastChanged)) + .withExcelOutput(dataItem => Helpers.ExcelExportHelper.renderDate(dataItem.LastChanged))) .withStandardSorting("Name"); dataProcessingRegistrationOptions.roles.forEach(role => diff --git a/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts b/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts index 1fb496fcbe..9bce4d2470 100644 --- a/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts +++ b/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts @@ -26,5 +26,7 @@ OversightOptionNamesAsCsv: string; IsOversightCompleted?: Models.Api.Shared.YesNoUndecidedOption; ContractNamesAsCsv: string; + LastChanged: Date; + LastChangedByName: string; } } \ No newline at end of file From 586aa43c8e5b4e1c25ee529a27cba37273810d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 8 Jun 2022 12:04:26 +0200 Subject: [PATCH 095/432] renaming --- .../SSO/Factories/SsoStateFactory.cs | 8 ++--- .../SSO/State/UserIdentifiedState.cs | 10 +++---- Core.DomainModel/Core.DomainModel.csproj | 2 +- Core.DomainModel/Organization/Organization.cs | 2 +- .../Organization/StsOrganizationIdentity.cs | 22 ++++++++++++++ .../SSO/SsoOrganizationIdentity.cs | 22 -------------- .../Core.DomainServices.csproj | 4 +-- .../IStsOrganizationIdentityRepository.cs | 12 ++++++++ .../StsOrganizationIdentityRepository.cs} | 17 +++++------ .../SSO/ISsoOrganizationIdentityRepository.cs | 14 --------- .../Infrastructure.DataAccess.csproj | 2 +- Infrastructure.DataAccess/KitosContext.cs | 4 +-- .../Mapping/SsoUserIdentityMap.cs | 8 ++--- ...tyMap.cs => StsOrganizationIdentityMap.cs} | 10 +++---- .../DomainServices/StsOrganizationService.cs | 9 +++--- Presentation.Web/Ninject/KernelBuilder.cs | 2 +- .../StsOrganizationIdentityRepositoryTest.cs} | 29 +++++++++---------- .../Tests.Unit.Core.csproj | 2 +- 18 files changed, 88 insertions(+), 91 deletions(-) create mode 100644 Core.DomainModel/Organization/StsOrganizationIdentity.cs delete mode 100644 Core.DomainModel/SSO/SsoOrganizationIdentity.cs create mode 100644 Core.DomainServices/Repositories/Organization/IStsOrganizationIdentityRepository.cs rename Core.DomainServices/Repositories/{SSO/SsoOrganizationIdentityRepository.cs => Organization/StsOrganizationIdentityRepository.cs} (66%) delete mode 100644 Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs rename Infrastructure.DataAccess/Mapping/{SsoOrganizationIdentityMap.cs => StsOrganizationIdentityMap.cs} (50%) rename Tests.Unit.Core.ApplicationServices/DomainServices/{SSO/SsoOrganizationIdentityRepositoryTest.cs => Organizations/StsOrganizationIdentityRepositoryTest.cs} (73%) diff --git a/Core.ApplicationServices/SSO/Factories/SsoStateFactory.cs b/Core.ApplicationServices/SSO/Factories/SsoStateFactory.cs index f8c05ed83e..7ef88c852d 100644 --- a/Core.ApplicationServices/SSO/Factories/SsoStateFactory.cs +++ b/Core.ApplicationServices/SSO/Factories/SsoStateFactory.cs @@ -20,7 +20,7 @@ public class SsoStateFactory : ISsoStateFactory { private readonly IStsBrugerInfoService _infoService; private readonly ISsoUserIdentityRepository _ssoUserIdentityRepository; - private readonly ISsoOrganizationIdentityRepository _ssoOrganizationIdentityRepository; + private readonly IStsOrganizationIdentityRepository _stsOrganizationIdentityRepository; private readonly Maybe _samlState; private readonly IUserRepository _userRepository; private readonly SsoFlowConfiguration _configuration; @@ -33,7 +33,7 @@ public class SsoStateFactory : ISsoStateFactory public SsoStateFactory( IStsBrugerInfoService infoService, ISsoUserIdentityRepository ssoUserIdentityRepository, - ISsoOrganizationIdentityRepository ssoOrganizationIdentityRepository, + IStsOrganizationIdentityRepository stsOrganizationIdentityRepository, Maybe samlState, IUserRepository userRepository, SsoFlowConfiguration configuration, @@ -44,7 +44,7 @@ public SsoStateFactory( { _infoService = infoService; _ssoUserIdentityRepository = ssoUserIdentityRepository; - _ssoOrganizationIdentityRepository = ssoOrganizationIdentityRepository; + _stsOrganizationIdentityRepository = stsOrganizationIdentityRepository; _samlState = samlState; _userRepository = userRepository; _configuration = configuration; @@ -76,7 +76,7 @@ public AbstractState CreateUserLoggedIn(User user) public AbstractState CreateUserIdentifiedState(User user, StsBrugerInfo stsBrugerInfo) { - return new UserIdentifiedState(user, stsBrugerInfo, _ssoUserIdentityRepository, _ssoOrganizationIdentityRepository, _organizationRepository, this, _logger); + return new UserIdentifiedState(user, stsBrugerInfo, _ssoUserIdentityRepository, _stsOrganizationIdentityRepository, _organizationRepository, this, _logger); } public AbstractState CreateAuthorizingUserState(User user, Organization organization) diff --git a/Core.ApplicationServices/SSO/State/UserIdentifiedState.cs b/Core.ApplicationServices/SSO/State/UserIdentifiedState.cs index e262d75a18..da8bf8ecc4 100644 --- a/Core.ApplicationServices/SSO/State/UserIdentifiedState.cs +++ b/Core.ApplicationServices/SSO/State/UserIdentifiedState.cs @@ -12,7 +12,7 @@ public class UserIdentifiedState : AbstractState private readonly User _user; private readonly StsBrugerInfo _externalUser; private readonly ISsoUserIdentityRepository _ssoUserIdentityRepository; - private readonly ISsoOrganizationIdentityRepository _ssoOrganizationIdentityRepository; + private readonly IStsOrganizationIdentityRepository _stsOrganizationIdentityRepository; private readonly IOrganizationRepository _organizationRepository; private readonly ISsoStateFactory _ssoStateFactory; private readonly ILogger _logger; @@ -21,7 +21,7 @@ public UserIdentifiedState( User user, StsBrugerInfo externalUser, ISsoUserIdentityRepository ssoUserIdentityRepository, - ISsoOrganizationIdentityRepository ssoOrganizationIdentityRepository, + IStsOrganizationIdentityRepository stsOrganizationIdentityRepository, IOrganizationRepository organizationRepository, ISsoStateFactory ssoStateFactory, ILogger logger) @@ -29,7 +29,7 @@ public UserIdentifiedState( _user = user; _externalUser = externalUser; _ssoUserIdentityRepository = ssoUserIdentityRepository; - _ssoOrganizationIdentityRepository = ssoOrganizationIdentityRepository; + _stsOrganizationIdentityRepository = stsOrganizationIdentityRepository; _organizationRepository = organizationRepository; _ssoStateFactory = ssoStateFactory; _logger = logger; @@ -64,7 +64,7 @@ private void AssociateUserWithExternalIdentity() private void HandleUserWithSsoIdentity(FlowContext context) { //Transition to authorizing state if organization sso binding already exists - var organizationByExternalIdResult = _ssoOrganizationIdentityRepository.GetByExternalUuid(_externalUser.BelongsToOrganizationUuid); + var organizationByExternalIdResult = _stsOrganizationIdentityRepository.GetByExternalUuid(_externalUser.BelongsToOrganizationUuid); if (organizationByExternalIdResult.HasValue) { context.TransitionTo(_ssoStateFactory.CreateAuthorizingUserState(_user, organizationByExternalIdResult.Value.Organization), @@ -77,7 +77,7 @@ private void HandleUserWithSsoIdentity(FlowContext context) if (organizationByCvrResult.HasValue) { var organization = organizationByCvrResult.Value; - var addOrganizationIdentityResult = _ssoOrganizationIdentityRepository.AddNew(organization, _externalUser.BelongsToOrganizationUuid); + var addOrganizationIdentityResult = _stsOrganizationIdentityRepository.AddNew(organization, _externalUser.BelongsToOrganizationUuid); if (addOrganizationIdentityResult.Failed) { //NOTE: This is not a blocker! - concurrency might be to blame but we log the error.. authentication is still allowed to proceed - it just failed to save the relation between org id and external uuid. diff --git a/Core.DomainModel/Core.DomainModel.csproj b/Core.DomainModel/Core.DomainModel.csproj index 63dd1a17a4..f397d23679 100644 --- a/Core.DomainModel/Core.DomainModel.csproj +++ b/Core.DomainModel/Core.DomainModel.csproj @@ -267,7 +267,7 @@ - + diff --git a/Core.DomainModel/Organization/Organization.cs b/Core.DomainModel/Organization/Organization.cs index ee606c7ed8..8812222eba 100644 --- a/Core.DomainModel/Organization/Organization.cs +++ b/Core.DomainModel/Organization/Organization.cs @@ -114,7 +114,7 @@ public Organization() public virtual ICollection Rights { get; set; } - public virtual ICollection SsoIdentities { get; set; } + public virtual ICollection SsoIdentities { get; set; } public virtual ICollection DataProcessingRegistrations { get; set; } diff --git a/Core.DomainModel/Organization/StsOrganizationIdentity.cs b/Core.DomainModel/Organization/StsOrganizationIdentity.cs new file mode 100644 index 0000000000..089246bba3 --- /dev/null +++ b/Core.DomainModel/Organization/StsOrganizationIdentity.cs @@ -0,0 +1,22 @@ +using System; + +namespace Core.DomainModel.Organization +{ + public class StsOrganizationIdentity + { + //For EF + public StsOrganizationIdentity() + { + } + + public StsOrganizationIdentity(Guid externalUuid, DomainModel.Organization.Organization organization) + { + ExternalUuid = externalUuid; + Organization = organization ?? throw new ArgumentNullException(nameof(organization)); + } + + public int Id { get; set; } + public Guid ExternalUuid { get; set; } + public virtual DomainModel.Organization.Organization Organization { get; set; } + } +} diff --git a/Core.DomainModel/SSO/SsoOrganizationIdentity.cs b/Core.DomainModel/SSO/SsoOrganizationIdentity.cs deleted file mode 100644 index a6ba262b90..0000000000 --- a/Core.DomainModel/SSO/SsoOrganizationIdentity.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; - -namespace Core.DomainModel.SSO -{ - public class SsoOrganizationIdentity - { - //For EF - public SsoOrganizationIdentity() - { - } - - public SsoOrganizationIdentity(Guid externalUuid, Organization.Organization organization) - { - ExternalUuid = externalUuid; - Organization = organization ?? throw new ArgumentNullException(nameof(organization)); - } - - public int Id { get; set; } - public Guid ExternalUuid { get; set; } - public virtual Organization.Organization Organization { get; set; } - } -} diff --git a/Core.DomainServices/Core.DomainServices.csproj b/Core.DomainServices/Core.DomainServices.csproj index 32d4aa0c58..76495a02dc 100644 --- a/Core.DomainServices/Core.DomainServices.csproj +++ b/Core.DomainServices/Core.DomainServices.csproj @@ -199,8 +199,8 @@ - - + + diff --git a/Core.DomainServices/Repositories/Organization/IStsOrganizationIdentityRepository.cs b/Core.DomainServices/Repositories/Organization/IStsOrganizationIdentityRepository.cs new file mode 100644 index 0000000000..741c2db794 --- /dev/null +++ b/Core.DomainServices/Repositories/Organization/IStsOrganizationIdentityRepository.cs @@ -0,0 +1,12 @@ +using System; +using Core.Abstractions.Types; +using Core.DomainModel.Organization; + +namespace Core.DomainServices.Repositories.Organization +{ + public interface IStsOrganizationIdentityRepository + { + Maybe GetByExternalUuid(Guid externalId); + Result AddNew(DomainModel.Organization.Organization organization, Guid externalId); + } +} diff --git a/Core.DomainServices/Repositories/SSO/SsoOrganizationIdentityRepository.cs b/Core.DomainServices/Repositories/Organization/StsOrganizationIdentityRepository.cs similarity index 66% rename from Core.DomainServices/Repositories/SSO/SsoOrganizationIdentityRepository.cs rename to Core.DomainServices/Repositories/Organization/StsOrganizationIdentityRepository.cs index 321b6ddfc2..cb4e4b798a 100644 --- a/Core.DomainServices/Repositories/SSO/SsoOrganizationIdentityRepository.cs +++ b/Core.DomainServices/Repositories/Organization/StsOrganizationIdentityRepository.cs @@ -1,21 +1,20 @@ using System; using System.Linq; using Core.Abstractions.Types; -using Core.DomainModel.SSO; +using Core.DomainModel.Organization; - -namespace Core.DomainServices.Repositories.SSO +namespace Core.DomainServices.Repositories.Organization { - public class SsoOrganizationIdentityRepository : ISsoOrganizationIdentityRepository + public class StsOrganizationIdentityRepository : IStsOrganizationIdentityRepository { - private readonly IGenericRepository _repository; + private readonly IGenericRepository _repository; - public SsoOrganizationIdentityRepository(IGenericRepository repository) + public StsOrganizationIdentityRepository(IGenericRepository repository) { _repository = repository; } - public Maybe GetByExternalUuid(Guid externalId) + public Maybe GetByExternalUuid(Guid externalId) { return _repository @@ -24,7 +23,7 @@ public Maybe GetByExternalUuid(Guid externalId) .FirstOrDefault(); } - public Result AddNew(DomainModel.Organization.Organization organization, Guid externalId) + public Result AddNew(DomainModel.Organization.Organization organization, Guid externalId) { if (organization == null) { @@ -35,7 +34,7 @@ public Result AddNew(DomainModel.Organi { return new OperationError("Existing mapping already exists for UUID:{externalId}", OperationFailure.Conflict); } - var identity = new SsoOrganizationIdentity(externalId, organization); + var identity = new StsOrganizationIdentity(externalId, organization); identity = _repository.Insert(identity); _repository.Save(); return identity; diff --git a/Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs b/Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs deleted file mode 100644 index eab414cc3e..0000000000 --- a/Core.DomainServices/Repositories/SSO/ISsoOrganizationIdentityRepository.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using Core.Abstractions.Types; -using Core.DomainModel.SSO; - - -namespace Core.DomainServices.Repositories.SSO -{ - //TODO: Renaming - it's the FK/STS UUID - public interface ISsoOrganizationIdentityRepository - { - Maybe GetByExternalUuid(Guid externalId); - Result AddNew(DomainModel.Organization.Organization organization, Guid externalId); - } -} diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 3cfe394f05..d9cdee9307 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -89,8 +89,8 @@ + - diff --git a/Infrastructure.DataAccess/KitosContext.cs b/Infrastructure.DataAccess/KitosContext.cs index bfae53878c..c268516afd 100644 --- a/Infrastructure.DataAccess/KitosContext.cs +++ b/Infrastructure.DataAccess/KitosContext.cs @@ -141,7 +141,7 @@ public KitosContext(string nameOrConnectionString) public DbSet BrokenExternalReferencesReports { get; set; } public DbSet ItSystemUsageSensitiveDataLevels { get; set; } public DbSet SsoUserIdentities { get; set; } - public DbSet SsoOrganizationIdentities { get; set; } + public DbSet SsoOrganizationIdentities { get; set; } public DbSet DataProcessingRegistrations { get; set; } public DbSet DataProcessingRegistrationRoles { get; set; } public DbSet LocalDataProcessingRegistrationRoles { get; set; } @@ -255,7 +255,7 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder) modelBuilder.Configurations.Add(new BrokenLinkInInterfaceMap()); modelBuilder.Configurations.Add(new ItSystemUsageSensitiveDataLevelMap()); modelBuilder.Configurations.Add(new SsoUserIdentityMap()); - modelBuilder.Configurations.Add(new SsoOrganizationIdentityMap()); + modelBuilder.Configurations.Add(new StsOrganizationIdentityMap()); modelBuilder.Configurations.Add(new DataProcessingRegistrationMap()); modelBuilder.Configurations.Add(new DataProcessingRegistrationRightMap()); modelBuilder.Configurations.Add(new DataProcessingRegistrationRoleMap()); diff --git a/Infrastructure.DataAccess/Mapping/SsoUserIdentityMap.cs b/Infrastructure.DataAccess/Mapping/SsoUserIdentityMap.cs index 2da32e1ddc..4c48203ea7 100644 --- a/Infrastructure.DataAccess/Mapping/SsoUserIdentityMap.cs +++ b/Infrastructure.DataAccess/Mapping/SsoUserIdentityMap.cs @@ -3,12 +3,12 @@ namespace Infrastructure.DataAccess.Mapping { - public class SsoOrganizationIdentityMap : EntityTypeConfiguration + public class SsoUserIdentityMap : EntityTypeConfiguration { - public SsoOrganizationIdentityMap() + public SsoUserIdentityMap() { - Property(x => x.ExternalUuid).HasUniqueIndexAnnotation("UX_" + nameof(SsoOrganizationIdentity.ExternalUuid), 0); - HasRequired(x => x.Organization) + Property(x => x.ExternalUuid).HasUniqueIndexAnnotation("UX_" + nameof(SsoUserIdentity.ExternalUuid), 0); + HasRequired(x => x.User) .WithMany(x => x.SsoIdentities) .WillCascadeOnDelete(true); } diff --git a/Infrastructure.DataAccess/Mapping/SsoOrganizationIdentityMap.cs b/Infrastructure.DataAccess/Mapping/StsOrganizationIdentityMap.cs similarity index 50% rename from Infrastructure.DataAccess/Mapping/SsoOrganizationIdentityMap.cs rename to Infrastructure.DataAccess/Mapping/StsOrganizationIdentityMap.cs index 4c48203ea7..4c6f629779 100644 --- a/Infrastructure.DataAccess/Mapping/SsoOrganizationIdentityMap.cs +++ b/Infrastructure.DataAccess/Mapping/StsOrganizationIdentityMap.cs @@ -1,14 +1,14 @@ using System.Data.Entity.ModelConfiguration; -using Core.DomainModel.SSO; +using Core.DomainModel.Organization; namespace Infrastructure.DataAccess.Mapping { - public class SsoUserIdentityMap : EntityTypeConfiguration + public class StsOrganizationIdentityMap : EntityTypeConfiguration { - public SsoUserIdentityMap() + public StsOrganizationIdentityMap() { - Property(x => x.ExternalUuid).HasUniqueIndexAnnotation("UX_" + nameof(SsoUserIdentity.ExternalUuid), 0); - HasRequired(x => x.User) + Property(x => x.ExternalUuid).HasUniqueIndexAnnotation("UX_" + nameof(StsOrganizationIdentity.ExternalUuid), 0); + HasRequired(x => x.Organization) .WithMany(x => x.SsoIdentities) .WillCascadeOnDelete(true); } diff --git a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs index 86d4515b01..58cd9aaa39 100644 --- a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs +++ b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs @@ -6,6 +6,7 @@ using Core.DomainServices.Extensions; using Core.DomainServices.Model.StsOrganization; using Core.DomainServices.Organizations; +using Core.DomainServices.Repositories.Organization; using Core.DomainServices.Repositories.SSO; using Core.DomainServices.SSO; using Infrastructure.STS.Common.Factories; @@ -18,7 +19,7 @@ namespace Infrastructure.STS.Organization.DomainServices public class StsOrganizationService : IStsOrganizationService { private readonly IStsOrganizationCompanyLookupService _companyLookupService; - private readonly ISsoOrganizationIdentityRepository _ssoOrganizationIdentityRepository; + private readonly IStsOrganizationIdentityRepository _stsOrganizationIdentityRepository; private readonly ILogger _logger; private readonly string _certificateThumbprint; private readonly string _serviceRoot; @@ -26,11 +27,11 @@ public class StsOrganizationService : IStsOrganizationService public StsOrganizationService( StsOrganisationIntegrationConfiguration configuration, IStsOrganizationCompanyLookupService companyLookupService, - ISsoOrganizationIdentityRepository ssoOrganizationIdentityRepository, + IStsOrganizationIdentityRepository stsOrganizationIdentityRepository, ILogger logger) { _companyLookupService = companyLookupService; - _ssoOrganizationIdentityRepository = ssoOrganizationIdentityRepository; + _stsOrganizationIdentityRepository = stsOrganizationIdentityRepository; _logger = logger; _certificateThumbprint = configuration.CertificateThumbprint; _serviceRoot = $"https://{configuration.EndpointHost}/service/Organisation/Organisation/5"; @@ -87,7 +88,7 @@ public Result> Resolv var uuid = new Guid(ids.Single()); - var result = _ssoOrganizationIdentityRepository.AddNew(organization, uuid); + var result = _stsOrganizationIdentityRepository.AddNew(organization, uuid); if (result.Failed) { _logger.Error("Failed save uuid for organization ({id}) with uuid {uuid}. Repository responded with {error}", organization.Id, companyUuid.Value, result.Error.ToString()); diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index 18d930456a..6d3e01d76d 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -542,7 +542,7 @@ private void RegisterDataAccess(IKernel kernel) kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); - kernel.Bind().To().InCommandScope(Mode); + kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); diff --git a/Tests.Unit.Core.ApplicationServices/DomainServices/SSO/SsoOrganizationIdentityRepositoryTest.cs b/Tests.Unit.Core.ApplicationServices/DomainServices/Organizations/StsOrganizationIdentityRepositoryTest.cs similarity index 73% rename from Tests.Unit.Core.ApplicationServices/DomainServices/SSO/SsoOrganizationIdentityRepositoryTest.cs rename to Tests.Unit.Core.ApplicationServices/DomainServices/Organizations/StsOrganizationIdentityRepositoryTest.cs index 710ba8596c..5c6e13c74d 100644 --- a/Tests.Unit.Core.ApplicationServices/DomainServices/SSO/SsoOrganizationIdentityRepositoryTest.cs +++ b/Tests.Unit.Core.ApplicationServices/DomainServices/Organizations/StsOrganizationIdentityRepositoryTest.cs @@ -2,24 +2,23 @@ using System.Linq; using Core.Abstractions.Types; using Core.DomainModel.Organization; -using Core.DomainModel.SSO; using Core.DomainServices; -using Core.DomainServices.Repositories.SSO; +using Core.DomainServices.Repositories.Organization; using Moq; using Tests.Toolkit.Patterns; using Xunit; -namespace Tests.Unit.Core.DomainServices.SSO +namespace Tests.Unit.Core.DomainServices.Organizations { - public class SsoOrganizationIdentityRepositoryTest : WithAutoFixture + public class StsOrganizationIdentityRepositoryTest : WithAutoFixture { - private readonly Mock> _repository; - private readonly SsoOrganizationIdentityRepository _sut; + private readonly Mock> _repository; + private readonly StsOrganizationIdentityRepository _sut; - public SsoOrganizationIdentityRepositoryTest() + public StsOrganizationIdentityRepositoryTest() { - _repository = new Mock>(); - _sut = new SsoOrganizationIdentityRepository(_repository.Object); + _repository = new Mock>(); + _sut = new StsOrganizationIdentityRepository(_repository.Object); } [Fact] @@ -59,9 +58,9 @@ public void AddNew_Returns_New_Identity() { //Arrange var externalId = A(); - var organization = new Organization(); + var organization = new global::Core.DomainModel.Organization.Organization(); ExpectRepositoryContent(CreateSsoOrganizationIdentity(), CreateSsoOrganizationIdentity()); - _repository.Setup(x => x.Insert(It.IsAny())).Returns((SsoOrganizationIdentity input) => input); + _repository.Setup(x => x.Insert(It.IsAny())).Returns((StsOrganizationIdentity input) => input); //Act var identityResult = _sut.AddNew(organization, externalId); @@ -79,7 +78,7 @@ public void AddNew_Returns_Conflict_If_Existing_Record_Exists() { //Arrange var externalId = A(); - var organization = new Organization(); + var organization = new global::Core.DomainModel.Organization.Organization(); ExpectRepositoryContent(CreateSsoOrganizationIdentity(externalId), CreateSsoOrganizationIdentity()); //Act @@ -90,14 +89,14 @@ public void AddNew_Returns_Conflict_If_Existing_Record_Exists() Assert.Equal(OperationFailure.Conflict, identityResult.Error.FailureType); } - private void ExpectRepositoryContent(params SsoOrganizationIdentity[] response) + private void ExpectRepositoryContent(params StsOrganizationIdentity[] response) { _repository.Setup(x => x.AsQueryable()).Returns(response.AsQueryable()); } - private SsoOrganizationIdentity CreateSsoOrganizationIdentity(Guid? id = null) + private StsOrganizationIdentity CreateSsoOrganizationIdentity(Guid? id = null) { - return new SsoOrganizationIdentity + return new StsOrganizationIdentity { ExternalUuid = id.GetValueOrDefault(A()) }; diff --git a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj index 35fb0ac062..c362cdb336 100644 --- a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj +++ b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj @@ -220,7 +220,7 @@ - + From ed32caf44cbbb742864925aa14ece40dbd914d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 8 Jun 2022 12:17:13 +0200 Subject: [PATCH 096/432] added migratoins --- .../Infrastructure.DataAccess.csproj | 7 + ...81008542_Rename_SsoOrgIdentity.Designer.cs | 29 ++++ .../202206081008542_Rename_SsoOrgIdentity.cs | 18 +++ ...202206081008542_Rename_SsoOrgIdentity.resx | 126 ++++++++++++++++++ 4 files changed, 180 insertions(+) create mode 100644 Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.resx diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index d9cdee9307..a1d04dc1f7 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -869,6 +869,10 @@ 202206010716273_ChangedProcurementPlanHalfToQuarter.cs + + + 202206081008542_Rename_SsoOrgIdentity.cs + @@ -1435,6 +1439,9 @@ 202206010716273_ChangedProcurementPlanHalfToQuarter.cs + + 202206081008542_Rename_SsoOrgIdentity.cs + diff --git a/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.Designer.cs b/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.Designer.cs new file mode 100644 index 0000000000..984bb9e136 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class Rename_SsoOrgIdentity : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(Rename_SsoOrgIdentity)); + + string IMigrationMetadata.Id + { + get { return "202206081008542_Rename_SsoOrgIdentity"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.cs b/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.cs new file mode 100644 index 0000000000..19d8bf9aaa --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.cs @@ -0,0 +1,18 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class Rename_SsoOrgIdentity : DbMigration + { + public override void Up() + { + RenameTable(name: "dbo.SsoOrganizationIdentities", newName: "StsOrganizationIdentities"); + } + + public override void Down() + { + RenameTable(name: "dbo.StsOrganizationIdentities", newName: "SsoOrganizationIdentities"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.resx b/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.resx new file mode 100644 index 0000000000..b1dc995ff0 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081008542_Rename_SsoOrgIdentity.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file From 890285a08062a5147aa2a6cb681d6393cd9f8b83 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 12:45:27 +0200 Subject: [PATCH 097/432] ItSystemUsage GetFullName method --- .../usage/tabs/it-system-usage-tab-main.controller.ts | 2 +- .../it-system/usage/tabs/it-system-usage-tab-main.view.html | 4 ++-- .../ViewModel/it-system-usage/system-usage-view-model.ts | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts index cfcd5fd3a0..a53755f4a4 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts @@ -22,7 +22,7 @@ $scope.systemCategories = systemCategories; $scope.shouldShowCategories = systemCategories.length > 0; $scope.system = itSystemUsage.itSystem; - $scope.LastChangedBy = `${itSystemUsage.lastChangedByUserName} ${itSystemUsage.lastChangedByUserLastName}`; + $scope.lastChangedBy = itSystemUsage.getLastChangedByUserFullName(); autofocus(); $scope.isValidUrl = (url: string) => Kitos.Utility.Validation.isValidExternalReference(url); diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html index 0a1307d03c..124d532f87 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html @@ -120,8 +120,8 @@

{{systemUsageName}}

+ data-field="lastChangedBy" + data-ng-model="lastChangedBy">
diff --git a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts index da47f0ab29..5e8ade068e 100644 --- a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts +++ b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts @@ -231,6 +231,8 @@ } } - + getLastChangedByUserFullName() { + return `${this.lastChangedByUserName} ${this.lastChangedByUserLastName}`; + } } } \ No newline at end of file From 190186aa5f69ca4f74aa34639274826954bbf316 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 12:49:05 +0200 Subject: [PATCH 098/432] Visual changes --- Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs | 1 + Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs | 1 + .../LocalAdmin.ItContract.UiCustomization.e2e.spec.ts | 2 +- .../app/components/it-contract/it-contract-plan.controller.ts | 1 - 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs index 0e01563eda..f4bb34aebd 100644 --- a/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs +++ b/Presentation.Web/Controllers/API/V1/ItSystemUsageController.cs @@ -14,6 +14,7 @@ using Core.DomainServices.Authorization; using Core.DomainServices.Extensions; using Presentation.Web.Infrastructure.Attributes; +using Presentation.Web.Models; using Presentation.Web.Models.API.V1; using Swashbuckle.Swagger.Annotations; diff --git a/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs b/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs index ce46a99ce8..eb95707329 100644 --- a/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs +++ b/Presentation.Web/Models/API/V1/ItSystemUsageDTO.cs @@ -71,6 +71,7 @@ public string ObjectOwnerFullName public int? ArchiveFreq { get; set; } public bool? Registertype { get; set; } public bool? ArchiveFromSystem { get; set; } + #region GDPR public string GeneralPurpose { get; set; } public DataOptions? IsBusinessCritical { get; set; } diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts index 261df9f4fa..0f3f7caf12 100644 --- a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -36,7 +36,7 @@ describe("Local admin is able customize the IT-Contract UI", () => { .then(() => Select2Helper.select(loginHelper.getGlobalAdminCredentials().username, "selectUser")) .then(() => testTabCustomization(contractName, "ItContracts.contractRoles", ContractNavigationSrefs.contractRolesSref)) .then(() => testTabCustomization(contractName, "ItContracts.advice", ContractNavigationSrefs.adviceSref)) - .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.replacementPlan", ContractNavigationSrefs.frontPageSref, /*"replacementPlans"*/ "s2id_contract-plan")); + .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.replacementPlan", ContractNavigationSrefs.frontPageSref, "s2id_contract-plan")); }); function testTabCustomization(name: string, settingId: string, tabSref: string) { diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index ac0189ded9..1984c7b5b1 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -71,7 +71,6 @@ private uiState: Models.UICustomization.ICustomizedModuleUI) { this.$rootScope.page.title = "IT Kontrakt - Tid"; - $scope.$on("kendoWidgetCreated", (event, widget) => { // the event is emitted for every widget; if we have multiple From dad614b12cba466a1fe7d9c2b4702e7d45fff4df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 8 Jun 2022 12:58:48 +0200 Subject: [PATCH 099/432] added import permission and application service --- .../Authorization/IPermissionVisitor.cs | 1 + .../OrganizationAuthorizationContext.cs | 8 ++ ...tHierarchyFromStsOrganizationPermission.cs | 19 +++++ .../Core.ApplicationServices.csproj | 3 + .../IStsOrganizationSynchronizationService.cs | 18 +++++ .../StsOrganizationSynchronizationService.cs | 79 +++++++++++++++++++ .../API/V1/HealthCheckController.cs | 17 +--- Presentation.Web/Ninject/KernelBuilder.cs | 3 +- 8 files changed, 130 insertions(+), 18 deletions(-) create mode 100644 Core.ApplicationServices/Authorization/Permissions/ImportHierarchyFromStsOrganizationPermission.cs create mode 100644 Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs create mode 100644 Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs diff --git a/Core.ApplicationServices/Authorization/IPermissionVisitor.cs b/Core.ApplicationServices/Authorization/IPermissionVisitor.cs index 558b2814ed..cd04912d71 100644 --- a/Core.ApplicationServices/Authorization/IPermissionVisitor.cs +++ b/Core.ApplicationServices/Authorization/IPermissionVisitor.cs @@ -13,5 +13,6 @@ public interface IPermissionVisitor bool Visit(ViewBrokenExternalReferencesReportPermission permission); bool Visit(TriggerBrokenReferencesReportPermission permission); bool Visit(AdministerGlobalPermission permission); + bool Visit(ImportHierarchyFromStsOrganizationPermission permission); } } diff --git a/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs b/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs index 937a7e46c6..54fe1ee84f 100644 --- a/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs +++ b/Core.ApplicationServices/Authorization/OrganizationAuthorizationContext.cs @@ -458,6 +458,14 @@ public bool Visit(AdministerGlobalPermission permission) }; } + public bool Visit(ImportHierarchyFromStsOrganizationPermission permission) + { + var organizationId = permission.Organization.Id; + return IsGlobalAdmin() || + IsLocalAdmin(organizationId) || + IsOrganizationModuleAdmin(organizationId); + } + #endregion PERMISSIONS } } \ No newline at end of file diff --git a/Core.ApplicationServices/Authorization/Permissions/ImportHierarchyFromStsOrganizationPermission.cs b/Core.ApplicationServices/Authorization/Permissions/ImportHierarchyFromStsOrganizationPermission.cs new file mode 100644 index 0000000000..1cce3c4f9a --- /dev/null +++ b/Core.ApplicationServices/Authorization/Permissions/ImportHierarchyFromStsOrganizationPermission.cs @@ -0,0 +1,19 @@ +using Core.DomainModel.Organization; + +namespace Core.ApplicationServices.Authorization.Permissions +{ + public class ImportHierarchyFromStsOrganizationPermission : Permission + { + public Organization Organization { get; } + + public ImportHierarchyFromStsOrganizationPermission(Organization organization) + { + Organization = organization; + } + + public override bool Accept(IPermissionVisitor permissionVisitor) + { + return permissionVisitor.Visit(this); + } + } +} diff --git a/Core.ApplicationServices/Core.ApplicationServices.csproj b/Core.ApplicationServices/Core.ApplicationServices.csproj index f0153de913..eb25d4516d 100644 --- a/Core.ApplicationServices/Core.ApplicationServices.csproj +++ b/Core.ApplicationServices/Core.ApplicationServices.csproj @@ -83,6 +83,7 @@ + @@ -174,6 +175,8 @@ + + diff --git a/Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs b/Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs new file mode 100644 index 0000000000..f1019e3654 --- /dev/null +++ b/Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs @@ -0,0 +1,18 @@ +using System; +using Core.Abstractions.Types; +using Core.DomainServices.Model.StsOrganization; + +namespace Core.ApplicationServices.Organizations +{ + public interface IStsOrganizationSynchronizationService + { + //TODO: Levels to import (under the root) + /// + /// Retrieves a view of the organization as it exists in STS Organization + /// + /// + /// + /// + Result GetStsOrganizationalHierarchy(Guid organizationId, Maybe levelsToInclude); + } +} diff --git a/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs new file mode 100644 index 0000000000..fe2d5de93a --- /dev/null +++ b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using Core.Abstractions.Types; +using Core.ApplicationServices.Authorization; +using Core.ApplicationServices.Authorization.Permissions; +using Core.DomainModel.Organization; +using Core.DomainServices.Model.StsOrganization; +using Core.DomainServices.Organizations; + +namespace Core.ApplicationServices.Organizations +{ + public class StsOrganizationSynchronizationService : IStsOrganizationSynchronizationService + { + private readonly IStsOrganizationUnitService _stsOrganizationUnitService; + private readonly IOrganizationService _organizationService; + private readonly IAuthorizationContext _authorizationContext; + + public StsOrganizationSynchronizationService( + IAuthorizationContext authorizationContext, + IStsOrganizationUnitService stsOrganizationUnitService, + IOrganizationService organizationService) + { + _stsOrganizationUnitService = stsOrganizationUnitService; + _organizationService = organizationService; + _authorizationContext = authorizationContext; + } + + public Result GetStsOrganizationalHierarchy(Guid organizationId, Maybe levelsToInclude) + { + return _organizationService + .GetOrganization(organizationId) + .Bind(WithImportPermission) + .Bind(_stsOrganizationUnitService.ResolveOrganizationTree) + .Bind(root => FilterByRequestedLevels(root, levelsToInclude)); + } + + private Result WithImportPermission(Organization organization) + { + if (_authorizationContext.HasPermission(new ImportHierarchyFromStsOrganizationPermission(organization))) + { + return organization; + } + return new OperationError($"The user does not have permission to use the STS Organization Sync functionality for the organization with uuid:{organization.Uuid}", OperationFailure.Forbidden); + } + + private Result FilterByRequestedLevels(StsOrganizationUnit root, Maybe levelsToInclude) + { + if (levelsToInclude.IsNone) + { + return root; + } + + var levels = levelsToInclude.Value; + if (levels < 1) + { + return new OperationError($"{nameof(levelsToInclude)} must be greater than or equal to 1", OperationFailure.BadInput); + } + + levels--; + return CopyStsOrganizationUnitWithFiltering(root, levels); + } + + private StsOrganizationUnit CopyStsOrganizationUnitWithFiltering(StsOrganizationUnit unit, uint levels) + { + return new StsOrganizationUnit(unit.Uuid, unit.Name, unit.UserFacingKey, GetChildren(unit.Children, levels)); + } + + private IEnumerable GetChildren(IEnumerable currentChildren, uint levelsLeft) + { + if (levelsLeft <= 0) yield break; + + levelsLeft--; + foreach (var currentChild in currentChildren) + { + CopyStsOrganizationUnitWithFiltering(currentChild, levelsLeft); + } + } + } +} diff --git a/Presentation.Web/Controllers/API/V1/HealthCheckController.cs b/Presentation.Web/Controllers/API/V1/HealthCheckController.cs index 42e0ab6edb..0ef7c04a79 100644 --- a/Presentation.Web/Controllers/API/V1/HealthCheckController.cs +++ b/Presentation.Web/Controllers/API/V1/HealthCheckController.cs @@ -1,7 +1,4 @@ -using System.Linq; -using System.Web.Http; -using Core.DomainServices.Organizations; -using Core.DomainServices.Repositories.Organization; +using System.Web.Http; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Properties; @@ -11,23 +8,11 @@ namespace Presentation.Web.Controllers.API.V1 [InternalApi] public class HealthCheckController : ApiController { - private readonly IOrganizationRepository _organizationRepository; - private readonly IStsOrganizationUnitService _stsOrganizationService; private static readonly string DeploymentVersion = Settings.Default.DeploymentVersion; - //TODO: Revert changes in this file - public HealthCheckController(IOrganizationRepository organizationRepository, IStsOrganizationUnitService stsOrganizationService) - { - _organizationRepository = organizationRepository; - _stsOrganizationService = stsOrganizationService; - } - [HttpGet] public IHttpActionResult Get() { - var organization = _organizationRepository.GetAll().First(); - organization.Cvr = "58271713"; //ballerup - var result = _stsOrganizationService.ResolveOrganizationTree(organization); return Ok(DeploymentVersion); } } diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index 6d3e01d76d..cb71495a99 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -282,6 +282,7 @@ public void RegisterServices(IKernel kernel) kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); kernel.Bind().To().InCommandScope(Mode); + kernel.Bind().To().InCommandScope(Mode); } private void RegisterMappers(IKernel kernel) @@ -403,8 +404,6 @@ private void RegisterDomainEventsEngine(IKernel kernel) //Organization RegisterDomainEvent, HandleOrganizationBeingDeleted>(kernel); - //TODO: Read models where it is involved must be scheduled for rebuild.. do it in a different handler (one of the read model handlers) - RegisterDomainEvent, HandleUserBeingDeleted>(kernel); } From d203e61f5bdd2b9cbac910f712a643544e0d0aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 8 Jun 2022 13:16:40 +0200 Subject: [PATCH 100/432] added controller endpoint to show the output --- .../Extensions/ObjectExtensions.cs | 5 +++ ...tsOrganizationSynchronizationController.cs | 45 +++++++++++++++++++ .../StsOrganizationOrgUnitDTO.cs | 13 ++++++ Presentation.Web/Presentation.Web.csproj | 2 + 4 files changed, 65 insertions(+) create mode 100644 Presentation.Web/Controllers/API/V1/StsOrganizationSynchronizationController.cs create mode 100644 Presentation.Web/Models/API/V1/Organizations/StsOrganizationOrgUnitDTO.cs diff --git a/Core.Abstractions/Extensions/ObjectExtensions.cs b/Core.Abstractions/Extensions/ObjectExtensions.cs index 5c7c9e2306..6b33073616 100644 --- a/Core.Abstractions/Extensions/ObjectExtensions.cs +++ b/Core.Abstractions/Extensions/ObjectExtensions.cs @@ -11,6 +11,11 @@ public static Maybe FromNullable(this T src) return src == null ? Maybe.None : Maybe.Some(src); } + public static Maybe FromNullableValueType(this T? src) where T:struct + { + return src == null ? Maybe.None : Maybe.Some(src.Value); + } + public static Maybe FromString(this string src) { return string.IsNullOrEmpty(src) ? Maybe.None : src; diff --git a/Presentation.Web/Controllers/API/V1/StsOrganizationSynchronizationController.cs b/Presentation.Web/Controllers/API/V1/StsOrganizationSynchronizationController.cs new file mode 100644 index 0000000000..0b9a009cad --- /dev/null +++ b/Presentation.Web/Controllers/API/V1/StsOrganizationSynchronizationController.cs @@ -0,0 +1,45 @@ +using System; +using System.Linq; +using System.Net.Http; +using System.Web.Http; +using Core.Abstractions.Extensions; +using Core.ApplicationServices.Organizations; +using Core.DomainServices.Model.StsOrganization; +using Presentation.Web.Infrastructure.Attributes; +using Presentation.Web.Models.API.V1.Organizations; + +namespace Presentation.Web.Controllers.API.V1 +{ + [InternalApi] + [RoutePrefix("api/v1/organizations/{organizationId}/sts-organization-synchronization")] + public class StsOrganizationSynchronizationController : BaseApiController + { + private readonly IStsOrganizationSynchronizationService _stsOrganizationSynchronizationService; + + public StsOrganizationSynchronizationController(IStsOrganizationSynchronizationService stsOrganizationSynchronizationService) + { + _stsOrganizationSynchronizationService = stsOrganizationSynchronizationService; + } + + [HttpGet] + [Route("snapshot")] + public HttpResponseMessage GetSnapshotFromStsOrganization(Guid organizationId, uint? levels = null) + { + return _stsOrganizationSynchronizationService + .GetStsOrganizationalHierarchy(organizationId, levels.FromNullableValueType()) + .Select(MapOrganizationUnitDTO) + .Match(Ok, FromOperationError); + } + + private static StsOrganizationOrgUnitDTO MapOrganizationUnitDTO(StsOrganizationUnit organizationUnit) + { + return new StsOrganizationOrgUnitDTO() + { + Uuid = organizationUnit.Uuid, + Name = organizationUnit.Name, + UserFacingKey = organizationUnit.UserFacingKey, + Children = organizationUnit.Children.Select(MapOrganizationUnitDTO).ToList() + }; + } + } +} \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Organizations/StsOrganizationOrgUnitDTO.cs b/Presentation.Web/Models/API/V1/Organizations/StsOrganizationOrgUnitDTO.cs new file mode 100644 index 0000000000..c83aec1807 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Organizations/StsOrganizationOrgUnitDTO.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; + +namespace Presentation.Web.Models.API.V1.Organizations +{ + public class StsOrganizationOrgUnitDTO + { + public Guid Uuid { get; set; } + public string Name { get; set; } + public string UserFacingKey { get; set; } + public IEnumerable Children { get; set; } + } +} \ No newline at end of file diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 2ab0c084a8..3671b465b4 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -352,6 +352,7 @@ + @@ -437,6 +438,7 @@ + From c3bbe707212e9c5052ce9d3fb8efd383890f69ef Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 12:00:23 +0200 Subject: [PATCH 101/432] migration --- .../Infrastructure.DataAccess.csproj | 7 + ...944563_AddDprLastChangedByUser.Designer.cs | 29 ++++ ...202206080944563_AddDprLastChangedByUser.cs | 24 ++++ ...2206080944563_AddDprLastChangedByUser.resx | 126 ++++++++++++++++++ ...140029_AddDprLastChangedByUser.Designer.cs | 29 ++++ ...202206081140029_AddDprLastChangedByUser.cs | 24 ++++ ...2206081140029_AddDprLastChangedByUser.resx | 126 ++++++++++++++++++ 7 files changed, 365 insertions(+) create mode 100644 Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx create mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 3cfe394f05..f033dc1229 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -869,6 +869,10 @@ 202206010716273_ChangedProcurementPlanHalfToQuarter.cs + + + 202206080944563_AddDprLastChangedByUser.cs + @@ -1435,6 +1439,9 @@ 202206010716273_ChangedProcurementPlanHalfToQuarter.cs + + 202206080944563_AddDprLastChangedByUser.cs + diff --git a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.Designer.cs b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.Designer.cs new file mode 100644 index 0000000000..4c6758cb9b --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddDprLastChangedByUser : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddDprLastChangedByUser)); + + string IMigrationMetadata.Id + { + get { return "202206080944563_AddDprLastChangedByUser"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs new file mode 100644 index 0000000000..95199bf273 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs @@ -0,0 +1,24 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddDprLastChangedByUser : DbMigration + { + public override void Up() + { + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", c => c.Int(nullable: false)); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); + AddForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User", "Id"); + } + + public override void Down() + { + DropForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User"); + DropIndex("dbo.DataProcessingRegistrationReadModels", new[] { "LastChangedByUserId" }); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx new file mode 100644 index 0000000000..d92cd4d2fd --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs new file mode 100644 index 0000000000..f26ec2612f --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddDprLastChangedByUser : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddDprLastChangedByUser)); + + string IMigrationMetadata.Id + { + get { return "202206081140029_AddDprLastChangedByUser"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs new file mode 100644 index 0000000000..95199bf273 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs @@ -0,0 +1,24 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddDprLastChangedByUser : DbMigration + { + public override void Up() + { + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", c => c.Int(nullable: false)); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); + AddForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User", "Id"); + } + + public override void Down() + { + DropForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User"); + DropIndex("dbo.DataProcessingRegistrationReadModels", new[] { "LastChangedByUserId" }); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx new file mode 100644 index 0000000000..576b77d2b7 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file From b21c1d7867aa20bd610a190d661924cabb2ba140 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 13:50:20 +0200 Subject: [PATCH 102/432] changes after review --- .../components/it-contract/it-contract-plan.controller.ts | 5 +---- .../it-contract/tabs/it-contract-tab-main.controller.ts | 2 +- .../it-contract/tabs/it-contract-tab-main.view.html | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index ac0189ded9..7730a0b71f 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -213,7 +213,6 @@ } private activate() { - const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; const selectRoleFilterName = "selectRoleFilter"; var clonedItContractRoles = this._.cloneDeep(this.itContractRoles); @@ -826,7 +825,7 @@ width: 90, persistId: "procurementPlan", // DON'T YOU DARE RENAME! attributes: { "class": "text-center" }, - isAvailable: this.uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.replacementPlan), + isAvailable: this.uiState.isBluePrintNodeAvailable(this.uiBluePrint.children.frontPage.children.replacementPlan), template: dataItem => dataItem.ProcurementPlanQuarter && dataItem.ProcurementPlanYear ? `${dataItem.ProcurementPlanYear} | Q${dataItem.ProcurementPlanQuarter}` @@ -877,8 +876,6 @@ ] }; - Helpers.UiCustomizationHelper.removeUnavailableColumns(mainGridOptions.columns); - function customFilter(args) { args.element.kendoAutoComplete({ noDataTemplate: '' diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 98223010fa..bdca797ad2 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -93,7 +93,7 @@ $scope.procurementStrategies = procurementStrategies; $scope.orgUnits = orgUnits; $scope.allowClear = true; - $scope.isReplacementPlanEnabled = + $scope.showReplacementPlanSelection = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.replacementPlan); var today = new Date(); diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 21eea018d3..4a6f635b99 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -96,7 +96,7 @@

{{contract.name}}

-
+
Date: Wed, 8 Jun 2022 14:02:42 +0200 Subject: [PATCH 103/432] fixed missing return --- .../Organizations/StsOrganizationSynchronizationService.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs index fe2d5de93a..70c6d17c90 100644 --- a/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs +++ b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Core.Abstractions.Types; using Core.ApplicationServices.Authorization; using Core.ApplicationServices.Authorization.Permissions; @@ -62,17 +63,17 @@ private Result FilterByRequestedLevels(StsO private StsOrganizationUnit CopyStsOrganizationUnitWithFiltering(StsOrganizationUnit unit, uint levels) { - return new StsOrganizationUnit(unit.Uuid, unit.Name, unit.UserFacingKey, GetChildren(unit.Children, levels)); + return new StsOrganizationUnit(unit.Uuid, unit.Name, unit.UserFacingKey, GetChildren(unit.Children, levels).ToList()); } private IEnumerable GetChildren(IEnumerable currentChildren, uint levelsLeft) { - if (levelsLeft <= 0) yield break; + if (levelsLeft < 1) yield break; levelsLeft--; foreach (var currentChild in currentChildren) { - CopyStsOrganizationUnitWithFiltering(currentChild, levelsLeft); + yield return CopyStsOrganizationUnitWithFiltering(currentChild, levelsLeft); } } } From 7c0cac71cf4858cb89340b6808949e3b1c70734a Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 14:39:27 +0200 Subject: [PATCH 104/432] revert unneseccary change --- .../app/components/it-contract/it-contract-plan.controller.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index ad7d938ca9..7730a0b71f 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -71,6 +71,7 @@ private uiState: Models.UICustomization.ICustomizedModuleUI) { this.$rootScope.page.title = "IT Kontrakt - Tid"; + $scope.$on("kendoWidgetCreated", (event, widget) => { // the event is emitted for every widget; if we have multiple From a1d1412ba765ace38cf8ff3822c978c0077f682c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 14:37:38 +0200 Subject: [PATCH 105/432] added LastChangedAt --- .../DataProcessingRegistrationReadModel.cs | 6 +- .../Infrastructure.DataAccess.csproj | 10 +- .../DataProcessingRegistrationReadModelMap.cs | 6 - ...202206080944563_AddDprLastChangedByUser.cs | 24 ---- ...2206080944563_AddDprLastChangedByUser.resx | 126 ------------------ ...36312_AddDprLastChangedByUser.Designer.cs} | 2 +- ...202206081236312_AddDprLastChangedByUser.cs | 22 +++ ...2206081236312_AddDprLastChangedByUser.resx | 126 ++++++++++++++++++ ...essing-registration-overview.controller.ts | 3 +- 9 files changed, 158 insertions(+), 167 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx rename Infrastructure.DataAccess/Migrations/{202206080944563_AddDprLastChangedByUser.Designer.cs => 202206081236312_AddDprLastChangedByUser.Designer.cs} (92%) create mode 100644 Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx diff --git a/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs b/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs index f87e88ce40..b088411fcc 100644 --- a/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs +++ b/Core.DomainModel/GDPR/Read/DataProcessingRegistrationReadModel.cs @@ -59,8 +59,8 @@ public DataProcessingRegistrationReadModel() public YesNoUndecidedOption? IsOversightCompleted { get; set; } public string ContractNamesAsCsv { get; set; } - public DateTime LastChanged { get; set; } - public User LastChangedByUser { get; set; } - public int LastChangedByUserId { get; set; } + public int? LastChangedById { get; set; } + public string LastChangedByName { get; set; } + public DateTime LastChangedAt { get; set; } } } diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index f033dc1229..a2be7724a2 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -869,9 +869,9 @@ 202206010716273_ChangedProcurementPlanHalfToQuarter.cs - - - 202206080944563_AddDprLastChangedByUser.cs + + + 202206081236312_AddDprLastChangedByUser.cs @@ -1439,8 +1439,8 @@ 202206010716273_ChangedProcurementPlanHalfToQuarter.cs - - 202206080944563_AddDprLastChangedByUser.cs + + 202206081236312_AddDprLastChangedByUser.cs diff --git a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs index 298216b867..059ee00510 100644 --- a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs +++ b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs @@ -34,12 +34,6 @@ public DataProcessingRegistrationReadModelMap() .WithMany(x => x.ReadModels) .HasForeignKey(x => x.SourceEntityId) .WillCascadeOnDelete(false); - - HasRequired(x => x.LastChangedByUser) - .WithMany() - .HasForeignKey(x => x.LastChangedByUserId) - .WillCascadeOnDelete(false); - //No index bc we don't know how long it might be Property(x => x.DataProcessorNamesAsCsv).IsOptional(); Property(x => x.SubDataProcessorNamesAsCsv).IsOptional(); diff --git a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs deleted file mode 100644 index 95199bf273..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddDprLastChangedByUser : DbMigration - { - public override void Up() - { - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", c => c.Int(nullable: false)); - CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); - AddForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User", "Id"); - } - - public override void Down() - { - DropForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User"); - DropIndex("dbo.DataProcessingRegistrationReadModels", new[] { "LastChangedByUserId" }); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged"); - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx b/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx deleted file mode 100644 index d92cd4d2fd..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.Designer.cs b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.Designer.cs similarity index 92% rename from Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.Designer.cs rename to Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.Designer.cs index 4c6758cb9b..c0e98f6fde 100644 --- a/Infrastructure.DataAccess/Migrations/202206080944563_AddDprLastChangedByUser.Designer.cs +++ b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.Designer.cs @@ -13,7 +13,7 @@ public sealed partial class AddDprLastChangedByUser : IMigrationMetadata string IMigrationMetadata.Id { - get { return "202206080944563_AddDprLastChangedByUser"; } + get { return "202206081236312_AddDprLastChangedByUser"; } } string IMigrationMetadata.Source diff --git a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs new file mode 100644 index 0000000000..f0bdb0e844 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs @@ -0,0 +1,22 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddDprLastChangedByUser : DbMigration + { + public override void Up() + { + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById", c => c.Int()); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", c => c.String()); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); + } + + public override void Down() + { + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx new file mode 100644 index 0000000000..b454f32454 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts index 883c3817e2..cfc3c6ee8f 100644 --- a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts +++ b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts @@ -96,8 +96,7 @@ .withStorageKey("data-processing-registration-overview-options") .withFixedSourceUrl( `/odata/Organizations(${user.currentOrganizationId - })/DataProcessingRegistrationReadModels?$expand=RoleAssignments, - LastChangedByUser($select=Name,LastName)`) + })/DataProcessingRegistrationReadModels?$expand=RoleAssignments`) .withParameterMapping((options, type) => { // get kendo to map parameters to an odata url var parameterMap = kendo.data.transports["odata-v4"].parameterMap(options, type); From 79714f67ea8454c5ca64645b2ec9316836aa21ff Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 15:23:23 +0200 Subject: [PATCH 106/432] changes after review --- .../it-system-usage-tab-main.controller.ts | 1 + .../tabs/it-system-usage-tab-main.view.html | 20 +++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts index a53755f4a4..adaac4400f 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts @@ -23,6 +23,7 @@ $scope.shouldShowCategories = systemCategories.length > 0; $scope.system = itSystemUsage.itSystem; $scope.lastChangedBy = itSystemUsage.getLastChangedByUserFullName(); + $scope.lastChanged = moment(itSystemUsage.lastChanged).format(Kitos.Constants.DateFormat.DanishDateFormat); autofocus(); $scope.isValidUrl = (url: string) => Kitos.Utility.Validation.isValidExternalReference(url); diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html index 124d532f87..07030c7c3a 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.view.html @@ -117,19 +117,19 @@

{{systemUsageName}}

- +
- +
From 6ce2eb14a7d99aa5811337f00b5f0000c1713739 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 8 Jun 2022 15:47:23 +0200 Subject: [PATCH 107/432] Update LastUpdateBy --- .../GDPR/DataProcessingRegistrationReadModelUpdate.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs b/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs index ead6f73a0a..c17a99f982 100644 --- a/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs +++ b/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs @@ -47,6 +47,7 @@ public void Apply(DataProcessingRegistration source, DataProcessingRegistrationR PatchIsOversightCompleted(source, destination); PatchContracts(source, destination); PatchLatestOversightDate(source, destination); + PatchLastUpdateBy(source, destination); } private static void PatchBasicInformation(DataProcessingRegistration source, @@ -202,5 +203,12 @@ private static void PatchLatestOversightDate(DataProcessingRegistration source, destination.LatestOversightDate = null; } } + + private static void PatchLastUpdateBy(DataProcessingRegistration source, DataProcessingRegistrationReadModel destination) + { + destination.LastChangedById = source.LastChangedByUserId; + destination.LastChangedByName = source.LastChangedByUser.GetFullName(); + destination.LastChangedAt = source.LastChanged; + } } } From 197fe54201631cf193dcec2583f98a129458d9f2 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 9 Jun 2022 08:20:50 +0200 Subject: [PATCH 108/432] changes after second review --- .../it-system/usage/tabs/it-system-usage-tab-main.controller.ts | 2 +- .../models/ViewModel/it-system-usage/system-usage-view-model.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts index adaac4400f..c99900f532 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts @@ -23,7 +23,7 @@ $scope.shouldShowCategories = systemCategories.length > 0; $scope.system = itSystemUsage.itSystem; $scope.lastChangedBy = itSystemUsage.getLastChangedByUserFullName(); - $scope.lastChanged = moment(itSystemUsage.lastChanged).format(Kitos.Constants.DateFormat.DanishDateFormat); + $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(itSystemUsage.lastChanged); autofocus(); $scope.isValidUrl = (url: string) => Kitos.Utility.Validation.isValidExternalReference(url); diff --git a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts index 5e8ade068e..c4c2f29377 100644 --- a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts +++ b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts @@ -157,7 +157,7 @@ this.expirationDate = itSystemUsage.expirationDate; this.isActive = itSystemUsage.isActive; this.active = itSystemUsage.active; - this.lastChanged = itSystemUsage.LastChanged; + this.lastChanged = itSystemUsage.lastChanged; this.lastChangedByUserName = itSystemUsage.lastChangedByUserName; this.lastChangedByUserLastName = itSystemUsage.lastChangedByUserLastName; From 30e5bc28d2d1fefc508c7a534c790a2a89db9100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 9 Jun 2022 08:53:11 +0200 Subject: [PATCH 109/432] added unit test of app service for sts org sync --- .../StsOrganizationSynchronizationService.cs | 18 +- .../StsOrganization/StsOrganizationUnit.cs | 16 ++ ...sOrganizationSynchronizationServiceTest.cs | 214 ++++++++++++++++++ .../Tests.Unit.Core.csproj | 1 + 4 files changed, 232 insertions(+), 17 deletions(-) create mode 100644 Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs diff --git a/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs index 70c6d17c90..3a337872d4 100644 --- a/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs +++ b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs @@ -58,23 +58,7 @@ private Result FilterByRequestedLevels(StsO } levels--; - return CopyStsOrganizationUnitWithFiltering(root, levels); - } - - private StsOrganizationUnit CopyStsOrganizationUnitWithFiltering(StsOrganizationUnit unit, uint levels) - { - return new StsOrganizationUnit(unit.Uuid, unit.Name, unit.UserFacingKey, GetChildren(unit.Children, levels).ToList()); - } - - private IEnumerable GetChildren(IEnumerable currentChildren, uint levelsLeft) - { - if (levelsLeft < 1) yield break; - - levelsLeft--; - foreach (var currentChild in currentChildren) - { - yield return CopyStsOrganizationUnitWithFiltering(currentChild, levelsLeft); - } + return root.Copy(levels); } } } diff --git a/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs b/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs index 64d1b3020a..c9f4ff5699 100644 --- a/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs +++ b/Core.DomainServices/Model/StsOrganization/StsOrganizationUnit.cs @@ -18,5 +18,21 @@ public StsOrganizationUnit(Guid uuid, string name, string userFacingKey, IEnumer UserFacingKey = userFacingKey; Children = children.ToList().AsReadOnly(); } + + public StsOrganizationUnit Copy(uint? childLevelsToInclude = null) + { + var children = new List(); + var includeChildren = childLevelsToInclude is > 0 or null; + if (includeChildren) + { + if (childLevelsToInclude.HasValue) + { + childLevelsToInclude--; + } + children = Children.Select(child => child.Copy(childLevelsToInclude)).ToList(); + } + + return new StsOrganizationUnit(Uuid, Name, UserFacingKey, children); + } } } diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs new file mode 100644 index 0000000000..d82f3499a8 --- /dev/null +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs @@ -0,0 +1,214 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using AutoFixture; +using Core.Abstractions.Types; +using Core.ApplicationServices.Authorization; +using Core.ApplicationServices.Authorization.Permissions; +using Core.ApplicationServices.Organizations; +using Core.DomainModel.Organization; +using Core.DomainServices.Model.StsOrganization; +using Core.DomainServices.Organizations; +using Moq; +using Tests.Toolkit.Patterns; +using Xunit; +using Xunit.Abstractions; + +namespace Tests.Unit.Core.ApplicationServices.Organizations +{ + public class StsOrganizationSynchronizationServiceTest : WithAutoFixture + { + private readonly ITestOutputHelper _testOutputHelper; + private readonly Mock _authorizationContextMock; + private readonly Mock _stsOrganizationUnitService; + private readonly Mock _organizationServiceMock; + private readonly StsOrganizationSynchronizationService _sut; + + public StsOrganizationSynchronizationServiceTest(ITestOutputHelper testOutputHelper) + { + _testOutputHelper = testOutputHelper; + _authorizationContextMock = new Mock(); + _stsOrganizationUnitService = new Mock(); + _organizationServiceMock = new Mock(); + _sut = new StsOrganizationSynchronizationService(_authorizationContextMock.Object, _stsOrganizationUnitService.Object, _organizationServiceMock.Object); + } + + protected override void OnFixtureCreated(Fixture fixture) + { + base.OnFixtureCreated(fixture); + fixture.Inject>(Array.Empty()); //prevent endless loop when creating StsOrganizationUnit + } + + [Fact] + public void GetStsOrganizationalHierarchy_Without_Levels_Limit_Returns_Full_Tree() + { + //Arrange + var organizationId = A(); + var organization = new Organization(); + var children = Many(); + var root = new StsOrganizationUnit(A(), A(), A(), children); + SetupGetOrganizationReturns(organizationId, organization); + SetupResolveOrganizationTreeReturns(organization, root); + SetupHasPermissionReturns(organization, true); + + //Act + var result = _sut.GetStsOrganizationalHierarchy(organizationId, Maybe.None); + + //Assert + Assert.True(result.Ok); + Assert.Same(root, result.Value); //If root is unmodified, then no filtering happened + } + + [Theory] + [InlineData(1)] + [InlineData(2)] + public void GetStsOrganizationalHierarchy_With_Level_Limit_Returns_Filtered_Tree(uint levels) + { + //Arrange + var organizationId = A(); + var organization = new Organization(); + var children = Many(); + var root = new StsOrganizationUnit(A(), A(), A(), children); + SetupGetOrganizationReturns(organizationId, organization); + SetupResolveOrganizationTreeReturns(organization, root); + SetupHasPermissionReturns(organization, true); + + //Act + var result = _sut.GetStsOrganizationalHierarchy(organizationId, levels); + + //Assert + Assert.True(result.Ok); + Assert.NotSame(root, result.Value); + Assert.Equal(levels, CountMaxLevels(result.Value)); + Assert.True(Compare(root, result.Value, levels - 1)); + } + + [Fact] + public void GetStsOrganizationalHierarchy_With_Invalid_Limit_Fails() + { + //Arrange + var organizationId = A(); + var organization = new Organization(); + var children = Many(); + var root = new StsOrganizationUnit(A(), A(), A(), children); + SetupGetOrganizationReturns(organizationId, organization); + SetupResolveOrganizationTreeReturns(organization, root); + SetupHasPermissionReturns(organization, true); + + //Act + var result = _sut.GetStsOrganizationalHierarchy(organizationId, 0); + + //Assert + Assert.True(result.Failed); + Assert.Equal(OperationFailure.BadInput, result.Error.FailureType); + } + + [Fact] + public void GetStsOrganizationalHierarchy_Fails_If_Organization_Cannot_Be_Loaded() + { + //Arrange + var organizationId = A(); + var operationError = A(); + SetupGetOrganizationReturns(organizationId, operationError); + + //Act + var result = _sut.GetStsOrganizationalHierarchy(organizationId, Maybe.None); + + //Assert + Assert.True(result.Failed); + Assert.Equal(operationError, result.Error); + } + + [Fact] + public void GetStsOrganizationalHierarchy_Fails_If_User_Lacks_Permission() + { + //Arrange + var organizationId = A(); + var organization = new Organization(); + var children = Many(); + var root = new StsOrganizationUnit(A(), A(), A(), children); + SetupGetOrganizationReturns(organizationId, organization); + SetupResolveOrganizationTreeReturns(organization, root); + SetupHasPermissionReturns(organization, false); + + //Act + var result = _sut.GetStsOrganizationalHierarchy(organizationId, Maybe.None); + + //Assert + Assert.True(result.Failed); + Assert.Equal(OperationFailure.Forbidden, result.Error.FailureType); + } + + [Fact] + public void GetStsOrganizationalHierarchy_Fails_If_LoadHierarchy_Fails() + { + //Arrange + var organizationId = A(); + var organization = new Organization(); + var operationError = A(); + SetupGetOrganizationReturns(organizationId, organization); + SetupHasPermissionReturns(organization, true); + SetupResolveOrganizationTreeReturns(organization, operationError); + + //Act + var result = _sut.GetStsOrganizationalHierarchy(organizationId, Maybe.None); + + //Assert + Assert.True(result.Failed); + Assert.Equal(operationError, result.Error); + } + + private void SetupResolveOrganizationTreeReturns(Organization organization, Result root) + { + _stsOrganizationUnitService.Setup(x => x.ResolveOrganizationTree(organization)).Returns(root); + } + + private void SetupGetOrganizationReturns(Guid organizationId, Result organization) + { + _organizationServiceMock.Setup(x => x.GetOrganization(organizationId, null)).Returns(organization); + } + + private void SetupHasPermissionReturns(Organization organization, bool value) + { + _authorizationContextMock.Setup(x => + x.HasPermission(It.Is(p => p.Organization == organization))) + .Returns(value); + } + + private static uint CountMaxLevels(StsOrganizationUnit unit) + { + const int currentLevelContribution = 1; + return unit + .Children + .Select(CountMaxLevels) + .OrderByDescending(max => max) + .FirstOrDefault() + currentLevelContribution; + } + + private bool Compare(StsOrganizationUnit original, StsOrganizationUnit filtered, uint levelsLeftToCompare) + { + Assert.Equal(original.Uuid, filtered.Uuid); + Assert.Equal(original.Name, filtered.Name); + Assert.Equal(original.UserFacingKey, filtered.UserFacingKey); + if (levelsLeftToCompare > 0) + { + levelsLeftToCompare--; + var originalChildren = original.Children.ToList(); + var filteredChildren = filtered.Children.ToList(); + Assert.Equal(originalChildren.Capacity, filteredChildren.Count); + for (var i = 0; i < originalChildren.Count; i++) + { + var originalChild = originalChildren[i]; + var filteredChild = filteredChildren[i]; + if (!Compare(originalChild, filteredChild, levelsLeftToCompare)) + { + _testOutputHelper.WriteLine("Failed during validation of {original} vs {filtered} with {levels} levels left", originalChild, filteredChild, levelsLeftToCompare); + return false; + } + } + } + + return true; + } + } +} diff --git a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj index c362cdb336..61b9ee9c52 100644 --- a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj +++ b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj @@ -179,6 +179,7 @@ + From ce53276a350869cacd19afea71895ce32d2d0edf Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 9 Jun 2022 08:59:56 +0200 Subject: [PATCH 110/432] added LastUpdateBy to DPRReadModel --- .../GDPR/DataProcessingRegistrationReadModelService.cs | 2 +- .../data-processing-registration-overview.controller.ts | 4 ++-- .../data-processing/data-processing-registration-readmodel.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs index 6391f6b9b3..776c83a8ff 100644 --- a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs +++ b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs @@ -22,7 +22,7 @@ public Result, OperationError> G { if (_authorizationContext.GetOrganizationReadAccessLevel(organizationId) != OrganizationDataReadAccessLevel.All) return new OperationError(OperationFailure.Forbidden); - + return Result, OperationError>.Success(_repository.GetByOrganizationId(organizationId)); } } diff --git a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts index cfc3c6ee8f..cecc604971 100644 --- a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts +++ b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts @@ -470,8 +470,8 @@ .withFilteringOperation(Utility.KendoGrid.KendoGridColumnFiltering.Date) .withDataSourceType(Utility.KendoGrid.KendoGridColumnDataSourceType.Date) .withInitialVisibility(false) - .withRendering(dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem.LastChanged)) - .withExcelOutput(dataItem => Helpers.ExcelExportHelper.renderDate(dataItem.LastChanged))) + .withRendering(dataItem => Helpers.RenderFieldsHelper.renderDate(dataItem.LastChangedAt)) + .withExcelOutput(dataItem => Helpers.ExcelExportHelper.renderDate(dataItem.LastChangedAt))) .withStandardSorting("Name"); dataProcessingRegistrationOptions.roles.forEach(role => diff --git a/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts b/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts index 9bce4d2470..7d423a588f 100644 --- a/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts +++ b/Presentation.Web/app/models/data-processing/data-processing-registration-readmodel.ts @@ -26,7 +26,7 @@ OversightOptionNamesAsCsv: string; IsOversightCompleted?: Models.Api.Shared.YesNoUndecidedOption; ContractNamesAsCsv: string; - LastChanged: Date; + LastChangedAt: Date; LastChangedByName: string; } } \ No newline at end of file From c65a8097ff9af70375dae321b38b850385dafbac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 9 Jun 2022 09:53:02 +0200 Subject: [PATCH 111/432] Refactored error codes --- .../StsOrganizationSynchronizationService.cs | 29 +++++++++---- .../Core.DomainServices.csproj | 1 + .../ResolveOrganizationTreeError.cs | 10 +++++ .../IStsOrganizationUnitService.cs | 3 +- .../DomainServices/StsOrganizationService.cs | 1 - .../Infrastructure.STS.Organization.csproj | 3 -- .../packages.config | 1 - .../StsOrganizationUnitService.cs | 43 +++++++++++++------ ...Infrastructure.STS.OrganizationUnit.csproj | 4 ++ .../packages.config | 4 ++ ...sOrganizationSynchronizationServiceTest.cs | 9 ++-- 11 files changed, 77 insertions(+), 31 deletions(-) create mode 100644 Core.DomainServices/Model/StsOrganization/ResolveOrganizationTreeError.cs create mode 100644 Infrastructure.STS.OrganizationUnit/packages.config diff --git a/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs index 3a337872d4..5ace41bf55 100644 --- a/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs +++ b/Core.ApplicationServices/Organizations/StsOrganizationSynchronizationService.cs @@ -1,12 +1,11 @@ using System; -using System.Collections.Generic; -using System.Linq; using Core.Abstractions.Types; using Core.ApplicationServices.Authorization; using Core.ApplicationServices.Authorization.Permissions; using Core.DomainModel.Organization; using Core.DomainServices.Model.StsOrganization; using Core.DomainServices.Organizations; +using Serilog; namespace Core.ApplicationServices.Organizations { @@ -14,25 +13,39 @@ public class StsOrganizationSynchronizationService : IStsOrganizationSynchroniza { private readonly IStsOrganizationUnitService _stsOrganizationUnitService; private readonly IOrganizationService _organizationService; + private readonly ILogger _logger; private readonly IAuthorizationContext _authorizationContext; public StsOrganizationSynchronizationService( IAuthorizationContext authorizationContext, IStsOrganizationUnitService stsOrganizationUnitService, - IOrganizationService organizationService) + IOrganizationService organizationService, + ILogger logger) { _stsOrganizationUnitService = stsOrganizationUnitService; _organizationService = organizationService; + _logger = logger; _authorizationContext = authorizationContext; } public Result GetStsOrganizationalHierarchy(Guid organizationId, Maybe levelsToInclude) { - return _organizationService + var orgWithPermission = _organizationService .GetOrganization(organizationId) - .Bind(WithImportPermission) - .Bind(_stsOrganizationUnitService.ResolveOrganizationTree) - .Bind(root => FilterByRequestedLevels(root, levelsToInclude)); + .Bind(WithImportPermission); + + if (orgWithPermission.Failed) + return orgWithPermission.Error; + + var organization = orgWithPermission.Value; + var orgTreeResult = _stsOrganizationUnitService.ResolveOrganizationTree(organization); + if (orgTreeResult.Failed) + { + var detailedOperationError = orgTreeResult.Error; + return new OperationError($"Failed to load organization tree:{detailedOperationError.Detail:G}:{detailedOperationError.FailureType:G}:{detailedOperationError.Message}", detailedOperationError.FailureType); + } + + return FilterByRequestedLevels(orgTreeResult.Value, levelsToInclude); } private Result WithImportPermission(Organization organization) @@ -44,7 +57,7 @@ private Result WithImportPermission(Organization o return new OperationError($"The user does not have permission to use the STS Organization Sync functionality for the organization with uuid:{organization.Uuid}", OperationFailure.Forbidden); } - private Result FilterByRequestedLevels(StsOrganizationUnit root, Maybe levelsToInclude) + private static Result FilterByRequestedLevels(StsOrganizationUnit root, Maybe levelsToInclude) { if (levelsToInclude.IsNone) { diff --git a/Core.DomainServices/Core.DomainServices.csproj b/Core.DomainServices/Core.DomainServices.csproj index 76495a02dc..143556ea51 100644 --- a/Core.DomainServices/Core.DomainServices.csproj +++ b/Core.DomainServices/Core.DomainServices.csproj @@ -88,6 +88,7 @@ + diff --git a/Core.DomainServices/Model/StsOrganization/ResolveOrganizationTreeError.cs b/Core.DomainServices/Model/StsOrganization/ResolveOrganizationTreeError.cs new file mode 100644 index 0000000000..c2dd91bf7e --- /dev/null +++ b/Core.DomainServices/Model/StsOrganization/ResolveOrganizationTreeError.cs @@ -0,0 +1,10 @@ +namespace Core.DomainServices.Model.StsOrganization +{ + public enum ResolveOrganizationTreeError + { + FailedResolvingUuid, + FailedSearchingForOrgUnits, + FailedLoadingOrgUnits, + OrgTreeHasMultipleRoots + } +} diff --git a/Core.DomainServices/Organizations/IStsOrganizationUnitService.cs b/Core.DomainServices/Organizations/IStsOrganizationUnitService.cs index a62661b786..78e320f582 100644 --- a/Core.DomainServices/Organizations/IStsOrganizationUnitService.cs +++ b/Core.DomainServices/Organizations/IStsOrganizationUnitService.cs @@ -6,7 +6,6 @@ namespace Core.DomainServices.Organizations { public interface IStsOrganizationUnitService { - //TODO: Detailed error - Result ResolveOrganizationTree(Organization organization); + Result> ResolveOrganizationTree(Organization organization); } } diff --git a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs index 58cd9aaa39..98d954cf97 100644 --- a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs +++ b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs @@ -7,7 +7,6 @@ using Core.DomainServices.Model.StsOrganization; using Core.DomainServices.Organizations; using Core.DomainServices.Repositories.Organization; -using Core.DomainServices.Repositories.SSO; using Core.DomainServices.SSO; using Infrastructure.STS.Common.Factories; using Infrastructure.STS.Common.Model; diff --git a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj index b2323e5bf1..102e896d0e 100644 --- a/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj +++ b/Infrastructure.STS.Organization/Infrastructure.STS.Organization.csproj @@ -32,9 +32,6 @@ 4 - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - ..\packages\Serilog.2.9.0\lib\net46\Serilog.dll diff --git a/Infrastructure.STS.Organization/packages.config b/Infrastructure.STS.Organization/packages.config index 40950cfede..5f94a3bbf7 100644 --- a/Infrastructure.STS.Organization/packages.config +++ b/Infrastructure.STS.Organization/packages.config @@ -1,5 +1,4 @@  - \ No newline at end of file diff --git a/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs b/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs index 19c094bc1a..6165947a6f 100644 --- a/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs +++ b/Infrastructure.STS.OrganizationUnit/DomainServices/StsOrganizationUnitService.cs @@ -9,52 +9,63 @@ using Core.DomainServices.Organizations; using Core.DomainServices.SSO; using Infrastructure.STS.Common.Factories; +using Infrastructure.STS.Common.Model; using Infrastructure.STS.OrganizationUnit.ServiceReference; +using Serilog; namespace Infrastructure.STS.OrganizationUnit.DomainServices { - public class StsOrganizationUnitService : IStsOrganizationUnitService { private readonly IStsOrganizationService _organizationService; + private readonly ILogger _logger; private readonly string _certificateThumbprint; private readonly string _serviceRoot; - public StsOrganizationUnitService(IStsOrganizationService organizationService, StsOrganisationIntegrationConfiguration configuration) + public StsOrganizationUnitService(IStsOrganizationService organizationService, StsOrganisationIntegrationConfiguration configuration, ILogger logger) { _organizationService = organizationService; + _logger = logger; _certificateThumbprint = configuration.CertificateThumbprint; _serviceRoot = $"https://{configuration.EndpointHost}/service/Organisation/OrganisationEnhed/5"; } - public Result ResolveOrganizationTree(Organization organization) + public Result> ResolveOrganizationTree(Organization organization) { //Resolve the org uuid var uuid = _organizationService.ResolveStsOrganizationUuid(organization); if (uuid.Failed) { - //TODO: Correct error and logging - return uuid.Error; + var error = uuid.Error; + _logger.Error("Loading sts organization uuid from org with id: {id} failed with {detailedError} {errorCode} {errorMessage}", organization.Id, error.Detail, error.FailureType, error.Message); + return new DetailedOperationError(error.FailureType, ResolveOrganizationTreeError.FailedResolvingUuid, $"{error.Detail}:{error.Message}"); } //Search for org units by org uuid using var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint); using var client = CreateClient(BasicHttpBindingFactory.CreateHttpBinding(), _serviceRoot, clientCertificate); - var channel = client.ChannelFactory.CreateChannel(); const int pageSize = 100; var totalIds = new List(); var totalResults = new List<(Guid, RegistreringType1)>(); var currentPage = new List(); + var organizationStsUuid = uuid.Value; do { currentPage.Clear(); - var searchRequest = CreateSearchOrgUnitsByOrgUuidRequest(organization.Cvr, uuid.Value, pageSize, totalIds.Count); + var searchRequest = CreateSearchOrgUnitsByOrgUuidRequest(organization.Cvr, organizationStsUuid, pageSize, totalIds.Count); var searchResponse = channel.soeg(searchRequest); - //TODO: check errors + var searchStatusResult = searchResponse.SoegResponse1.SoegOutput.StandardRetur; + var stsError = searchStatusResult.StatusKode.ParseStsError(); + if (stsError.HasValue) + { + _logger.Error("Failed to search for org units for org with sts uuid: {stsuuid} failed with {code} {message}", organizationStsUuid, searchStatusResult.StatusKode, searchStatusResult.FejlbeskedTekst); + return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationTreeError.FailedSearchingForOrgUnits); + + } currentPage = searchResponse.SoegResponse1.SoegOutput.IdListe.ToList(); totalIds.AddRange(currentPage); @@ -62,7 +73,15 @@ public Result ResolveOrganizationTree(Organ var listRequest = CreateListOrgUnitsRequest(organization.Cvr, currentPage.ToArray()); var listResponse = channel.list(listRequest); - //TODO: check errors + + var listStatusResult = listResponse.ListResponse1.ListOutput.StandardRetur; + var listStsError = listStatusResult.StatusKode.ParseStsError(); + if (listStsError.HasValue) + { + _logger.Error("Failed to list units for org units for org with sts uuid: {stsuuid} and unit uuids: {uuids} failed with {code} {message}", organizationStsUuid, string.Join(",", currentPage), listStatusResult.StatusKode, listStatusResult.FejlbeskedTekst); + return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationTreeError.FailedLoadingOrgUnits); + + } var units = listResponse .ListResponse1 @@ -84,7 +103,8 @@ public Result ResolveOrganizationTree(Organ var roots = totalResults.Where(x => x.Item2.RelationListe.Overordnet == null).ToList(); if (roots.Count != 1) { - //TODO: error + _logger.Error("Failed validating units for org with sts uuid: {stsuuid}. Expected one root but found: {roots}", organizationStsUuid, string.Join(",", roots.Select(x => x.Item1.ToString("D")).ToList())); + return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationTreeError.OrgTreeHasMultipleRoots); } // Process the tree info from sts org in order to generate the import tree @@ -99,7 +119,7 @@ public Result ResolveOrganizationTree(Organ var currentUnitUuid = processingStack.Pop(); (Guid, RegistreringType1) unit = unitsByUuid[currentUnitUuid]; - var egenskabType = unit.Item2.AttributListe.Egenskab[0];//TODO: Check if we can always depend on this to be there + var egenskabType = unit.Item2.AttributListe.Egenskab.First(x => string.IsNullOrEmpty(x.EnhedNavn) == false); var unitUuid = unit.Item1; var organizationUnit = new StsOrganizationUnit(unitUuid, egenskabType.EnhedNavn, egenskabType.BrugervendtNoegleTekst, parentIdToConvertedChildren.ContainsKey(unitUuid) ? parentIdToConvertedChildren[unitUuid] : new List(0)); idToConvertedChildren[organizationUnit.Uuid] = organizationUnit; @@ -159,7 +179,6 @@ private static IEnumerable GetSubTree((Guid, RegistreringType1) currentChi } } - public static listRequest CreateListOrgUnitsRequest(string municipalityCvr, params string[] currentUnitUuids) { var listRequest = new listRequest diff --git a/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj index 3ebe3c1df1..e0e024c2da 100644 --- a/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj +++ b/Infrastructure.STS.OrganizationUnit/Infrastructure.STS.OrganizationUnit.csproj @@ -32,6 +32,9 @@ 4 + + ..\packages\Serilog.2.9.0\lib\net46\Serilog.dll + @@ -141,6 +144,7 @@ Designer + diff --git a/Infrastructure.STS.OrganizationUnit/packages.config b/Infrastructure.STS.OrganizationUnit/packages.config new file mode 100644 index 0000000000..5f94a3bbf7 --- /dev/null +++ b/Infrastructure.STS.OrganizationUnit/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs index d82f3499a8..ff2c5735c5 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/Organizations/StsOrganizationSynchronizationServiceTest.cs @@ -10,6 +10,7 @@ using Core.DomainServices.Model.StsOrganization; using Core.DomainServices.Organizations; using Moq; +using Serilog; using Tests.Toolkit.Patterns; using Xunit; using Xunit.Abstractions; @@ -30,7 +31,7 @@ public StsOrganizationSynchronizationServiceTest(ITestOutputHelper testOutputHel _authorizationContextMock = new Mock(); _stsOrganizationUnitService = new Mock(); _organizationServiceMock = new Mock(); - _sut = new StsOrganizationSynchronizationService(_authorizationContextMock.Object, _stsOrganizationUnitService.Object, _organizationServiceMock.Object); + _sut = new StsOrganizationSynchronizationService(_authorizationContextMock.Object, _stsOrganizationUnitService.Object, _organizationServiceMock.Object, Mock.Of()); } protected override void OnFixtureCreated(Fixture fixture) @@ -145,7 +146,7 @@ public void GetStsOrganizationalHierarchy_Fails_If_LoadHierarchy_Fails() //Arrange var organizationId = A(); var organization = new Organization(); - var operationError = A(); + var operationError = A>(); SetupGetOrganizationReturns(organizationId, organization); SetupHasPermissionReturns(organization, true); SetupResolveOrganizationTreeReturns(organization, operationError); @@ -155,10 +156,10 @@ public void GetStsOrganizationalHierarchy_Fails_If_LoadHierarchy_Fails() //Assert Assert.True(result.Failed); - Assert.Equal(operationError, result.Error); + Assert.Equal(operationError.FailureType, result.Error.FailureType); } - private void SetupResolveOrganizationTreeReturns(Organization organization, Result root) + private void SetupResolveOrganizationTreeReturns(Organization organization, Result> root) { _stsOrganizationUnitService.Setup(x => x.ResolveOrganizationTree(organization)).Returns(root); } From 2effe83e45a7485fb72c5e6041f71f87fd8fd8a8 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 9 Jun 2022 10:15:49 +0200 Subject: [PATCH 112/432] LastChangedBy api test --- ...taProcessingRegistrationReadModelUpdate.cs | 2 +- ...ocessingRegistrationReadModelRepository.cs | 2 +- ...ataProcessingRegistrationReadModelsTest.cs | 27 +++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs b/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs index c17a99f982..084ec72a4d 100644 --- a/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs +++ b/Core.DomainServices/GDPR/DataProcessingRegistrationReadModelUpdate.cs @@ -207,7 +207,7 @@ private static void PatchLatestOversightDate(DataProcessingRegistration source, private static void PatchLastUpdateBy(DataProcessingRegistration source, DataProcessingRegistrationReadModel destination) { destination.LastChangedById = source.LastChangedByUserId; - destination.LastChangedByName = source.LastChangedByUser.GetFullName(); + destination.LastChangedByName = source.LastChangedByUser != null ? source.LastChangedByUser.GetFullName() : ""; destination.LastChangedAt = source.LastChanged; } } diff --git a/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationReadModelRepository.cs b/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationReadModelRepository.cs index 59369c86ff..70f61e6ee4 100644 --- a/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationReadModelRepository.cs +++ b/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationReadModelRepository.cs @@ -65,7 +65,7 @@ public IQueryable GetByUserId(int userId) //Gets all read models that have dependencies on the user return _repository .AsQueryable() - .Where(x => x.RoleAssignments.Any(assignment => assignment.UserId == userId)) + .Where(x => x.RoleAssignments.Any(assignment => assignment.UserId == userId || x.LastChangedById == userId)) .Distinct(); } } diff --git a/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs b/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs index e70c26f6d1..416ec0c9f4 100644 --- a/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs +++ b/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs @@ -267,6 +267,33 @@ public async Task ReadModels_Update_When_Child_Entities_Are_Removed() Assert.Empty(readModel.RoleAssignments); } + [Fact] + public async Task ReadModels_LastChangedBy_Updates_OnChange() + { + //Arrange + var name = A(); + var newName = A(); + var email = A(); + var orgRole = OrganizationRole.LocalAdmin; + var organizationId = TestEnvironment.DefaultOrganizationId; + + var registration = await DataProcessingRegistrationHelper.CreateAsync(organizationId, name); + var (userId, _, cookie)= await HttpApi.CreateUserAndLogin(email, orgRole); + using var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(registration.Id, 1, userId); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + await WaitForReadModelQueueDepletion(); + + //Act + var result = (await DataProcessingRegistrationHelper.QueryReadModelByNameContent(organizationId, newName, 1, 0)).ToList(); + + //Assert + var readModel = Assert.Single(result); + Assert.Equal(newName, readModel.Name); + Assert.Equal(registration.Id, readModel.SourceEntityId); + Assert.Equal(userId, readModel.LastChangedById); + } + private static async Task WaitForAsync(Func> check, TimeSpan howLong) { bool conditionMet; From 0357c3deae50083ee20bc65b5bfe140cea9391ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 9 Jun 2022 10:23:02 +0200 Subject: [PATCH 113/432] draft integration test --- .../IStsOrganizationSynchronizationService.cs | 1 - .../StsOrganizationSynchronizationApiTest.cs | 49 +++++++++++++++++++ .../Tests.Integration.Presentation.Web.csproj | 1 + 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs diff --git a/Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs b/Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs index f1019e3654..6733e2ebad 100644 --- a/Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs +++ b/Core.ApplicationServices/Organizations/IStsOrganizationSynchronizationService.cs @@ -6,7 +6,6 @@ namespace Core.ApplicationServices.Organizations { public interface IStsOrganizationSynchronizationService { - //TODO: Levels to import (under the root) /// /// Retrieves a view of the organization as it exists in STS Organization /// diff --git a/Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs b/Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs new file mode 100644 index 0000000000..96361fde5f --- /dev/null +++ b/Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs @@ -0,0 +1,49 @@ +using System; +using System.Linq; +using System.Net; +using System.Threading.Tasks; +using Core.DomainModel; +using Core.DomainModel.Organization; +using Tests.Integration.Presentation.Web.Tools; +using Tests.Integration.Presentation.Web.Tools.External; +using Tests.Toolkit.Patterns; +using Xunit; + +namespace Tests.Integration.Presentation.Web.Organizations +{ + public class StsOrganizationSynchronizationApiTest : WithAutoFixture + { + private const string AuthorizedCvr = "58271713"; //This one is Ballerup and we have a service agreement in both local and integration for that so that's why it is used for test + + [Theory] + [InlineData(1)] + [InlineData(2)] + public async Task Can_GET_Organization_Snapshot_With_Filtered_Depth(int levels) + { + //Arrange + var token = await HttpApi.GetTokenAsync(OrganizationRole.GlobalAdmin); + var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin); + Guid targetOrgUuid = Guid.Empty; + + //Check if we already have the authorized org before we test snapshot (so we dont have to create a new org) + var orgWithCorrectCvr = (await OrganizationV2Helper.GetOrganizationsAsync(token.Token, cvrContent: AuthorizedCvr)).FirstOrDefault(); + if (orgWithCorrectCvr != null) + { + targetOrgUuid = orgWithCorrectCvr.Uuid; + } + else + { + var org = await OrganizationHelper.CreateOrganizationAsync(TestEnvironment.DefaultOrganizationId, $"StsSync_" + A().ToString("N"), AuthorizedCvr, OrganizationTypeKeys.Kommune, AccessModifier.Public); + targetOrgUuid = org.Uuid; + } + var url = TestEnvironment.CreateUrl($"api/v1/organizations/{targetOrgUuid:D}/sts-organization-synchronization/snapshot?levels={levels}"); + + //Act + using var response = await HttpApi.GetWithCookieAsync(url, cookie); + + //Assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + //TODO: Check the contents and verify the levels + } + } +} diff --git a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj index d5a726021c..c916abd8cd 100644 --- a/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj +++ b/Tests.Integration.Presentation.Web/Tests.Integration.Presentation.Web.csproj @@ -117,6 +117,7 @@ + From df7db50ff53d36b071ea93cb16faa6210f3fdeb7 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 9 Jun 2022 10:35:45 +0200 Subject: [PATCH 114/432] change name --- .../GDPR/DataProcessingRegistrationReadModelsTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs b/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs index 416ec0c9f4..cc490675a1 100644 --- a/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs +++ b/Tests.Integration.Presentation.Web/GDPR/DataProcessingRegistrationReadModelsTest.cs @@ -274,12 +274,12 @@ public async Task ReadModels_LastChangedBy_Updates_OnChange() var name = A(); var newName = A(); var email = A(); - var orgRole = OrganizationRole.LocalAdmin; + var orgRole = OrganizationRole.GlobalAdmin; var organizationId = TestEnvironment.DefaultOrganizationId; var registration = await DataProcessingRegistrationHelper.CreateAsync(organizationId, name); var (userId, _, cookie)= await HttpApi.CreateUserAndLogin(email, orgRole); - using var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(registration.Id, 1, userId); + using var response = await DataProcessingRegistrationHelper.SendChangeNameRequestAsync(registration.Id, newName, cookie); Assert.Equal(HttpStatusCode.OK, response.StatusCode); await WaitForReadModelQueueDepletion(); From 56bdcb36ad9447e160c22ec215173a959ec66447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 9 Jun 2022 12:47:48 +0200 Subject: [PATCH 115/432] Added integration test --- .../StsOrganizationSynchronizationApiTest.cs | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs b/Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs index 96361fde5f..4d1d417131 100644 --- a/Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs +++ b/Tests.Integration.Presentation.Web/Organizations/StsOrganizationSynchronizationApiTest.cs @@ -1,9 +1,11 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; using Core.DomainModel; using Core.DomainModel.Organization; +using Presentation.Web.Models.API.V1.Organizations; using Tests.Integration.Presentation.Web.Tools; using Tests.Integration.Presentation.Web.Tools.External; using Tests.Toolkit.Patterns; @@ -18,7 +20,7 @@ public class StsOrganizationSynchronizationApiTest : WithAutoFixture [Theory] [InlineData(1)] [InlineData(2)] - public async Task Can_GET_Organization_Snapshot_With_Filtered_Depth(int levels) + public async Task Can_GET_Organization_Snapshot_With_Filtered_Depth(uint levels) { //Arrange var token = await HttpApi.GetTokenAsync(OrganizationRole.GlobalAdmin); @@ -33,7 +35,7 @@ public async Task Can_GET_Organization_Snapshot_With_Filtered_Depth(int levels) } else { - var org = await OrganizationHelper.CreateOrganizationAsync(TestEnvironment.DefaultOrganizationId, $"StsSync_" + A().ToString("N"), AuthorizedCvr, OrganizationTypeKeys.Kommune, AccessModifier.Public); + var org = await OrganizationHelper.CreateOrganizationAsync(TestEnvironment.DefaultOrganizationId, $"StsSync_{A():N}", AuthorizedCvr, OrganizationTypeKeys.Kommune, AccessModifier.Public); targetOrgUuid = org.Uuid; } var url = TestEnvironment.CreateUrl($"api/v1/organizations/{targetOrgUuid:D}/sts-organization-synchronization/snapshot?levels={levels}"); @@ -43,7 +45,38 @@ public async Task Can_GET_Organization_Snapshot_With_Filtered_Depth(int levels) //Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); - //TODO: Check the contents and verify the levels + var root = await response.ReadResponseBodyAsKitosApiResponseAsync(); + Assert.Equal(levels, CountMaxLevels(root)); + AssertOrgTree(root,new HashSet()); + } + + private static void AssertOrgTree(StsOrganizationOrgUnitDTO unit, HashSet seenUuids) + { + //check for duplicates + Assert.DoesNotContain(seenUuids, id => id == unit.Uuid); + seenUuids.Add(unit.Uuid); + + //Check property validity + Assert.False(string.IsNullOrEmpty(unit.Name)); + Assert.False(string.IsNullOrEmpty(unit.UserFacingKey)); + Assert.NotEqual(Guid.Empty, unit.Uuid); + Assert.NotNull(unit.Children); + + //Check children + foreach (var child in unit.Children) + { + AssertOrgTree(child, seenUuids); + } + } + + private static uint CountMaxLevels(StsOrganizationOrgUnitDTO unit) + { + const int currentLevelContribution = 1; + return unit + .Children + .Select(CountMaxLevels) + .OrderByDescending(max => max) + .FirstOrDefault() + currentLevelContribution; } } } From fc48b0fcba1d78662ded6c4902cdd654dda3fda4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 9 Jun 2022 13:13:56 +0200 Subject: [PATCH 116/432] fix --- Core.DomainModel/Organization/Organization.cs | 2 +- .../Infrastructure.DataAccess.csproj | 7 + .../Mapping/StsOrganizationIdentityMap.cs | 2 +- ...091112061_Rename_SsoIdentities.Designer.cs | 29 ++++ .../202206091112061_Rename_SsoIdentities.cs | 16 +++ .../202206091112061_Rename_SsoIdentities.resx | 126 ++++++++++++++++++ .../DomainServices/StsOrganizationService.cs | 10 +- .../StsOrganizationIdentityRepositoryTest.cs | 4 +- 8 files changed, 187 insertions(+), 9 deletions(-) create mode 100644 Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx diff --git a/Core.DomainModel/Organization/Organization.cs b/Core.DomainModel/Organization/Organization.cs index 8812222eba..64c6b40a4b 100644 --- a/Core.DomainModel/Organization/Organization.cs +++ b/Core.DomainModel/Organization/Organization.cs @@ -114,7 +114,7 @@ public Organization() public virtual ICollection Rights { get; set; } - public virtual ICollection SsoIdentities { get; set; } + public virtual ICollection StsOrganizationIdentities { get; set; } public virtual ICollection DataProcessingRegistrations { get; set; } diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index a1d04dc1f7..1d1ec2d09e 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -873,6 +873,10 @@ 202206081008542_Rename_SsoOrgIdentity.cs + + + 202206091112061_Rename_SsoIdentities.cs + @@ -1442,6 +1446,9 @@ 202206081008542_Rename_SsoOrgIdentity.cs + + 202206091112061_Rename_SsoIdentities.cs + diff --git a/Infrastructure.DataAccess/Mapping/StsOrganizationIdentityMap.cs b/Infrastructure.DataAccess/Mapping/StsOrganizationIdentityMap.cs index 4c6f629779..c1c08c2330 100644 --- a/Infrastructure.DataAccess/Mapping/StsOrganizationIdentityMap.cs +++ b/Infrastructure.DataAccess/Mapping/StsOrganizationIdentityMap.cs @@ -9,7 +9,7 @@ public StsOrganizationIdentityMap() { Property(x => x.ExternalUuid).HasUniqueIndexAnnotation("UX_" + nameof(StsOrganizationIdentity.ExternalUuid), 0); HasRequired(x => x.Organization) - .WithMany(x => x.SsoIdentities) + .WithMany(x => x.StsOrganizationIdentities) .WillCascadeOnDelete(true); } } diff --git a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs new file mode 100644 index 0000000000..f7ed6d4fd6 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class Rename_SsoIdentities : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(Rename_SsoIdentities)); + + string IMigrationMetadata.Id + { + get { return "202206091112061_Rename_SsoIdentities"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs new file mode 100644 index 0000000000..609d33ed43 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs @@ -0,0 +1,16 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class Rename_SsoIdentities : DbMigration + { + public override void Up() + { + } + + public override void Down() + { + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx new file mode 100644 index 0000000000..27e20f8d6f --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs index 98d954cf97..eee0b7998f 100644 --- a/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs +++ b/Infrastructure.STS.Organization/DomainServices/StsOrganizationService.cs @@ -22,7 +22,7 @@ public class StsOrganizationService : IStsOrganizationService private readonly ILogger _logger; private readonly string _certificateThumbprint; private readonly string _serviceRoot; - + public StsOrganizationService( StsOrganisationIntegrationConfiguration configuration, IStsOrganizationCompanyLookupService companyLookupService, @@ -43,7 +43,8 @@ public Result> Resolv throw new ArgumentNullException(nameof(organization)); } - var fkOrgIdentity = organization.SsoIdentities.FirstOrDefault(); + //If an FK identity already exists, reuse it + var fkOrgIdentity = organization.StsOrganizationIdentities.FirstOrDefault(); if (fkOrgIdentity != null) { return fkOrgIdentity.ExternalUuid; @@ -54,6 +55,7 @@ public Result> Resolv return new DetailedOperationError(OperationFailure.BadState, ResolveOrganizationUuidError.InvalidCvrOnOrganization); } + //Resolve the associated company uuid var companyUuid = _companyLookupService.ResolveStsOrganizationCompanyUuid(organization); if (companyUuid.Failed) { @@ -61,14 +63,12 @@ public Result> Resolv return new DetailedOperationError(OperationFailure.UnknownError, ResolveOrganizationUuidError.FailedToLookupOrganizationCompany); } - + //Search for the organization based on the resolved company (all organizations are tied to a company) using var clientCertificate = X509CertificateClientCertificateFactory.GetClientCertificate(_certificateThumbprint); using var organizationPortTypeClient = CreateOrganizationPortTypeClient(BasicHttpBindingFactory.CreateHttpBinding(), _serviceRoot, clientCertificate); var searchRequest = CreateSearchForOrganizationRequest(organization, companyUuid.Value); var channel = organizationPortTypeClient.ChannelFactory.CreateChannel(); - - var response = channel.soeg(searchRequest); var statusResult = response.SoegResponse1.SoegOutput.StandardRetur; var stsError = statusResult.StatusKode.ParseStsError(); diff --git a/Tests.Unit.Core.ApplicationServices/DomainServices/Organizations/StsOrganizationIdentityRepositoryTest.cs b/Tests.Unit.Core.ApplicationServices/DomainServices/Organizations/StsOrganizationIdentityRepositoryTest.cs index 5c6e13c74d..7dce820903 100644 --- a/Tests.Unit.Core.ApplicationServices/DomainServices/Organizations/StsOrganizationIdentityRepositoryTest.cs +++ b/Tests.Unit.Core.ApplicationServices/DomainServices/Organizations/StsOrganizationIdentityRepositoryTest.cs @@ -58,7 +58,7 @@ public void AddNew_Returns_New_Identity() { //Arrange var externalId = A(); - var organization = new global::Core.DomainModel.Organization.Organization(); + var organization = new Organization(); ExpectRepositoryContent(CreateSsoOrganizationIdentity(), CreateSsoOrganizationIdentity()); _repository.Setup(x => x.Insert(It.IsAny())).Returns((StsOrganizationIdentity input) => input); @@ -78,7 +78,7 @@ public void AddNew_Returns_Conflict_If_Existing_Record_Exists() { //Arrange var externalId = A(); - var organization = new global::Core.DomainModel.Organization.Organization(); + var organization = new Organization(); ExpectRepositoryContent(CreateSsoOrganizationIdentity(externalId), CreateSsoOrganizationIdentity()); //Act From 43393c7a1a7c1e062916214485b5de3470221545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 9 Jun 2022 13:16:42 +0200 Subject: [PATCH 117/432] cleanup --- .../Infrastructure.DataAccess.csproj | 7 - ...091112061_Rename_SsoIdentities.Designer.cs | 29 ---- .../202206091112061_Rename_SsoIdentities.cs | 16 --- .../202206091112061_Rename_SsoIdentities.resx | 126 ------------------ 4 files changed, 178 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 1d1ec2d09e..a1d04dc1f7 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -873,10 +873,6 @@ 202206081008542_Rename_SsoOrgIdentity.cs - - - 202206091112061_Rename_SsoIdentities.cs - @@ -1446,9 +1442,6 @@ 202206081008542_Rename_SsoOrgIdentity.cs - - 202206091112061_Rename_SsoIdentities.cs - diff --git a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs deleted file mode 100644 index f7ed6d4fd6..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -namespace Infrastructure.DataAccess.Migrations -{ - using System.CodeDom.Compiler; - using System.Data.Entity.Migrations; - using System.Data.Entity.Migrations.Infrastructure; - using System.Resources; - - [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class Rename_SsoIdentities : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(Rename_SsoIdentities)); - - string IMigrationMetadata.Id - { - get { return "202206091112061_Rename_SsoIdentities"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs deleted file mode 100644 index 609d33ed43..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class Rename_SsoIdentities : DbMigration - { - public override void Up() - { - } - - public override void Down() - { - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx b/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx deleted file mode 100644 index 27e20f8d6f..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206091112061_Rename_SsoIdentities.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file From 23c166fa7ca3f08662d34053529496863dc1408c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 12:30:45 +0200 Subject: [PATCH 118/432] fixed error in lastUpdatedBy --- .../Interceptors/EFEntityInterceptor.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs index 44a64febbd..8d2f674039 100644 --- a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs +++ b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs @@ -5,10 +5,12 @@ using System.Data.Entity.Core.Metadata.Edm; using System.Data.Entity.Infrastructure.Interception; using System.Linq; +using System.Runtime.InteropServices; using Core.Abstractions.Types; using Core.DomainModel; using Core.DomainServices.Context; using Core.DomainServices.Time; +using EntityType = System.Data.Entity.Core.Metadata.Edm.EntityType; namespace Infrastructure.DataAccess.Interceptors @@ -93,6 +95,15 @@ private DbCommandTree HandleUpdateCommand(DbUpdateCommandTree updateCommand) .Select(clause => ApplyUpdates(clause, updates)) .ToList(); + var edmType = updateCommand.Target.VariableType.EdmType; + if (edmType is EntityType entityType) + { + if (entityType.Properties.Contains(LastChangedByUserIdColumnName)) + { + setClauses.Add(GetUpdateSetClause(LastChangedByUserIdColumnName, userId, updateCommand)); + } + } + return new DbUpdateCommandTree( updateCommand.MetadataWorkspace, updateCommand.DataSpace, @@ -146,5 +157,18 @@ public static DbModificationClause ApplyUpdates(DbModificationClause clause, Lis //Return original return clause; } + + private static DbSetClause GetUpdateSetClause(string column, DbExpression newValueToSetToDb, DbUpdateCommandTree updateCommand) + { + // Create the variable reference in order to create the property + var variableReference = updateCommand.Target.VariableType.Variable(updateCommand.Target.VariableName); + + // Create the property to which will assign the correct value + var tenantProperty = variableReference.Property(column); + + // Create the set clause, object representation of sql insert command + var newSetClause = DbExpressionBuilder.SetClause(tenantProperty, newValueToSetToDb); + return newSetClause; + } } } From af624fea56eabb98b81e07f95fd664ef6c5dbdbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 10 Jun 2022 12:40:20 +0200 Subject: [PATCH 119/432] changes from sprint review --- .../DataProcessingRegistrationRepository.cs | 1 + .../global-admin-misc.controller.ts | 40 +++++++++---------- .../global-admin/global-admin-misc.view.html | 10 +++-- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs b/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs index c7b4f3d2d8..e7998cf796 100644 --- a/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs +++ b/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs @@ -51,6 +51,7 @@ public bool DeleteById(int id) public void Update(DataProcessingRegistration dataProcessingRegistration) { + _repository.Update(dataProcessingRegistration); Notify(dataProcessingRegistration, LifeCycleEventType.Updated); _repository.Save(); } diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts index 3457a76521..7a719cff77 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.controller.ts @@ -18,11 +18,10 @@ } }); }]); - + app.controller("globalAdminMisc", [ "$rootScope", "$scope", - "$http", "_", "notify", "kleService", @@ -36,7 +35,6 @@ ( $rootScope, $scope, - $http, _, notify, kleService, @@ -47,7 +45,7 @@ userService: Kitos.Services.IUserService, select2LoadingService: Kitos.Services.ISelect2LoadingService, $state) => { - + $rootScope.page.title = "Andet"; $scope.brokenLinksVm = Kitos.Models.ViewModel.GlobalAdmin.BrokenLinks.BrokenLinksViewModelMapper.mapFromApiResponse(brokenLinkStatus); $scope.usersWithRightsholderAccess = usersWithRightsholderAccess; @@ -162,17 +160,17 @@ const nameAndEmail = `${$scope.selectedUser.text}, ${$scope.selectedUser.email}`; if (confirm(`Er du sikker på, at du vil slette ${nameAndEmail}`)) { - notify.addInfoMessage(`Sletter ${nameAndEmail}`); + const message = notify.addInfoMessage(`Sletter ${nameAndEmail}`); userService.deleteUser(id) .then(() => { - notify.addSuccessMessage(`Sletter ${nameAndEmail}`); - $scope.selectedUser = null; - } + message.toSuccessMessage(`Sletter ${nameAndEmail}`); + $scope.selectedUser = null; + $state.reload(); + } ).catch(ex => { console.log(ex); - notify.addErrorMessage(`Fejl ifm. sletning af brugeren Sletter ${nameAndEmail}`); + message.toErrorMessage(`Fejl ifm. sletning af brugeren Sletter ${nameAndEmail}`); }); - $state.reload(); } }; @@ -185,17 +183,17 @@ return select2LoadingService.loadSelect2WithDataSource( (query: string) => userService.searchUsers(query) - .then( - results => - results.map(result => - > - { - id: result.id, - text: result.name, - email: result.email, - optionalObjectContext: result - }) - ) + .then( + results => + results.map(result => + > + { + id: result.id, + text: result.name, + email: result.email, + optionalObjectContext: result + }) + ) , false , Kitos.Helpers.Select2OptionsFormatHelper.formatUserWithEmail); } diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index 96b069bbed..4792e1d275 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -29,12 +29,16 @@

Nedlæg bruger

- {{selectedUser.text}} {{selectedUser.email}} - Brugeren er stadig medlem af følgende organisationer +
+ {{selectedUser.text}} ({{selectedUser.email}}) +
+
+ Brugeren er stadig medlem af følgende organisationer +
Organisation
{{ org.name }}
From 3f0828e90eec8eca8ba21b8dd7c603941fa8759a Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 12:42:10 +0200 Subject: [PATCH 120/432] removed unnecessary changes --- .../GDPR/DataProcessingRegistrationReadModelService.cs | 1 + .../Mapping/DataProcessingRegistrationReadModelMap.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs index 776c83a8ff..18720f9bb4 100644 --- a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs +++ b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs @@ -23,6 +23,7 @@ public Result, OperationError> G if (_authorizationContext.GetOrganizationReadAccessLevel(organizationId) != OrganizationDataReadAccessLevel.All) return new OperationError(OperationFailure.Forbidden); + return Result, OperationError>.Success(_repository.GetByOrganizationId(organizationId)); } } diff --git a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs index 059ee00510..de6a95e18c 100644 --- a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs +++ b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs @@ -34,6 +34,7 @@ public DataProcessingRegistrationReadModelMap() .WithMany(x => x.ReadModels) .HasForeignKey(x => x.SourceEntityId) .WillCascadeOnDelete(false); + //No index bc we don't know how long it might be Property(x => x.DataProcessorNamesAsCsv).IsOptional(); Property(x => x.SubDataProcessorNamesAsCsv).IsOptional(); From 6eb2c1651f7bdcc7d3671a53113e0190a9f679e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 10 Jun 2022 12:42:52 +0200 Subject: [PATCH 121/432] adjustments --- .../app/components/global-admin/global-admin-misc.view.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html index 4792e1d275..9b2e392263 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-misc.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-misc.view.html @@ -33,9 +33,6 @@

Nedlæg bruger

-
- {{selectedUser.text}} ({{selectedUser.email}}) -
Brugeren er stadig medlem af følgende organisationer
From bd5e79385f146a195bdc794efaa4e7655ed6c110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 10 Jun 2022 12:44:09 +0200 Subject: [PATCH 122/432] revert change --- .../Repositories/GDPR/DataProcessingRegistrationRepository.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs b/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs index e7998cf796..c7b4f3d2d8 100644 --- a/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs +++ b/Core.DomainServices/Repositories/GDPR/DataProcessingRegistrationRepository.cs @@ -51,7 +51,6 @@ public bool DeleteById(int id) public void Update(DataProcessingRegistration dataProcessingRegistration) { - _repository.Update(dataProcessingRegistration); Notify(dataProcessingRegistration, LifeCycleEventType.Updated); _repository.Save(); } From 41f9506949859bd0fbd0e93837ffb7a3fbe824cd Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 13:10:08 +0200 Subject: [PATCH 123/432] Removed extra migration --- ...236312_AddDprLastChangedByUser.Designer.cs | 29 ---- ...202206081236312_AddDprLastChangedByUser.cs | 22 --- ...2206081236312_AddDprLastChangedByUser.resx | 126 ------------------ 3 files changed, 177 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.Designer.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx diff --git a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.Designer.cs b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.Designer.cs deleted file mode 100644 index c0e98f6fde..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -namespace Infrastructure.DataAccess.Migrations -{ - using System.CodeDom.Compiler; - using System.Data.Entity.Migrations; - using System.Data.Entity.Migrations.Infrastructure; - using System.Resources; - - [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddDprLastChangedByUser : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddDprLastChangedByUser)); - - string IMigrationMetadata.Id - { - get { return "202206081236312_AddDprLastChangedByUser"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs deleted file mode 100644 index f0bdb0e844..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddDprLastChangedByUser : DbMigration - { - public override void Up() - { - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById", c => c.Int()); - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", c => c.String()); - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); - } - - public override void Down() - { - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt"); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName"); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById"); - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx b/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx deleted file mode 100644 index b454f32454..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081236312_AddDprLastChangedByUser.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file From 43b47fb0dd59f52ed0e07fcd201e73cc7da2cb58 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret <101557040+a-naskret@users.noreply.github.com> Date: Fri, 10 Jun 2022 14:06:55 +0200 Subject: [PATCH 124/432] Delete 202206081140029_AddDprLastChangedByUser.cs --- ...202206081140029_AddDprLastChangedByUser.cs | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs deleted file mode 100644 index 95199bf273..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddDprLastChangedByUser : DbMigration - { - public override void Up() - { - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", c => c.Int(nullable: false)); - CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); - AddForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User", "Id"); - } - - public override void Down() - { - DropForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User"); - DropIndex("dbo.DataProcessingRegistrationReadModels", new[] { "LastChangedByUserId" }); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged"); - } - } -} From 369df0a965dede1529f2534162300994a278dcad Mon Sep 17 00:00:00 2001 From: Aleksander Naskret <101557040+a-naskret@users.noreply.github.com> Date: Fri, 10 Jun 2022 14:07:05 +0200 Subject: [PATCH 125/432] Delete 202206081140029_AddDprLastChangedByUser.Designer.cs --- ...140029_AddDprLastChangedByUser.Designer.cs | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs deleted file mode 100644 index f26ec2612f..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -namespace Infrastructure.DataAccess.Migrations -{ - using System.CodeDom.Compiler; - using System.Data.Entity.Migrations; - using System.Data.Entity.Migrations.Infrastructure; - using System.Resources; - - [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddDprLastChangedByUser : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddDprLastChangedByUser)); - - string IMigrationMetadata.Id - { - get { return "202206081140029_AddDprLastChangedByUser"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} From a515821460b5f2eac50bc9945191dcdf2e727aff Mon Sep 17 00:00:00 2001 From: Aleksander Naskret <101557040+a-naskret@users.noreply.github.com> Date: Fri, 10 Jun 2022 14:07:13 +0200 Subject: [PATCH 126/432] Delete 202206081140029_AddDprLastChangedByUser.resx --- ...2206081140029_AddDprLastChangedByUser.resx | 126 ------------------ 1 file changed, 126 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx deleted file mode 100644 index 576b77d2b7..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file From 190ac8f5e6d18576195c3c3110119af40cf0783b Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 14:11:41 +0200 Subject: [PATCH 127/432] added property check --- ...aProcessingRegistrationReadModelService.cs | 1 - .../Interceptors/EFEntityInterceptor.cs | 35 +++-- ...140029_AddDprLastChangedByUser.Designer.cs | 29 ---- ...202206081140029_AddDprLastChangedByUser.cs | 24 ---- ...2206081140029_AddDprLastChangedByUser.resx | 126 ------------------ 5 files changed, 21 insertions(+), 194 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx diff --git a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs index 18720f9bb4..776c83a8ff 100644 --- a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs +++ b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs @@ -23,7 +23,6 @@ public Result, OperationError> G if (_authorizationContext.GetOrganizationReadAccessLevel(organizationId) != OrganizationDataReadAccessLevel.All) return new OperationError(OperationFailure.Forbidden); - return Result, OperationError>.Success(_repository.GetByOrganizationId(organizationId)); } } diff --git a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs index 8d2f674039..bd737952a0 100644 --- a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs +++ b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs @@ -5,12 +5,10 @@ using System.Data.Entity.Core.Metadata.Edm; using System.Data.Entity.Infrastructure.Interception; using System.Linq; -using System.Runtime.InteropServices; using Core.Abstractions.Types; using Core.DomainModel; using Core.DomainServices.Context; using Core.DomainServices.Time; -using EntityType = System.Data.Entity.Core.Metadata.Edm.EntityType; namespace Infrastructure.DataAccess.Interceptors @@ -84,26 +82,24 @@ private DbCommandTree HandleUpdateCommand(DbUpdateCommandTree updateCommand) var userId = GetActiveUserId(); var now = _operationClock().Now; - var updates = new List, DbExpression>> + var updates = new List<(string propertyName, KeyValuePair, DbExpression> condition)> { - new(clause=>MatchPropertyName(clause,ObjectOwnerIdColumnName) && MatchNull(clause), userId), //Some EF updates end up in this e.g. changing an owned child on a parent - new(clause=>MatchPropertyName(clause,LastChangedByUserIdColumnName), userId), - new(clause=>MatchPropertyName(clause,LastChangedColumnName), DbExpression.FromDateTime(now)) + new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, ObjectOwnerIdColumnName) && MatchNull(clause), userId)), //Some EF updates end up in this e.g. changing an owned child on a parent + new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId)), + new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) }; + var updateConditions = updates.Select(x => x.condition).ToList(); var setClauses = updateCommand.SetClauses - .Select(clause => ApplyUpdates(clause, updates)) + .Select(clause => ApplyUpdates(clause, updateConditions)) .ToList(); - - var edmType = updateCommand.Target.VariableType.EdmType; - if (edmType is EntityType entityType) + + foreach (var updateDescriptor in updates) { - if (entityType.Properties.Contains(LastChangedByUserIdColumnName)) - { - setClauses.Add(GetUpdateSetClause(LastChangedByUserIdColumnName, userId, updateCommand)); - } + ApplyUnusedUpdates(updateCommand, updateDescriptor, setClauses); } + return new DbUpdateCommandTree( updateCommand.MetadataWorkspace, updateCommand.DataSpace, @@ -170,5 +166,16 @@ private static DbSetClause GetUpdateSetClause(string column, DbExpression newVal var newSetClause = DbExpressionBuilder.SetClause(tenantProperty, newValueToSetToDb); return newSetClause; } + + private static void ApplyUnusedUpdates(DbUpdateCommandTree updateCommand, (string propertyName, KeyValuePair, DbExpression> condition) updateDescriptor, ICollection setClauses) + { + var edmType = updateCommand.Target.VariableType.EdmType; + if (edmType is not System.Data.Entity.Core.Metadata.Edm.EntityType entityType) + return; + + var propertyName = updateDescriptor.propertyName; + if (entityType.Properties.Contains(propertyName)) + setClauses.Add(GetUpdateSetClause(propertyName, updateDescriptor.condition.Value, updateCommand)); + } } } diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs deleted file mode 100644 index f26ec2612f..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -namespace Infrastructure.DataAccess.Migrations -{ - using System.CodeDom.Compiler; - using System.Data.Entity.Migrations; - using System.Data.Entity.Migrations.Infrastructure; - using System.Resources; - - [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddDprLastChangedByUser : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddDprLastChangedByUser)); - - string IMigrationMetadata.Id - { - get { return "202206081140029_AddDprLastChangedByUser"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs deleted file mode 100644 index 95199bf273..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddDprLastChangedByUser : DbMigration - { - public override void Up() - { - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", c => c.Int(nullable: false)); - CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); - AddForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User", "Id"); - } - - public override void Down() - { - DropForeignKey("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId", "dbo.User"); - DropIndex("dbo.DataProcessingRegistrationReadModels", new[] { "LastChangedByUserId" }); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByUserId"); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChanged"); - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx b/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx deleted file mode 100644 index 576b77d2b7..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206081140029_AddDprLastChangedByUser.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file From 6a58eb80af21f97d0d76d4623d07e8b5b76d7545 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 14:12:39 +0200 Subject: [PATCH 128/432] added migration --- .../Infrastructure.DataAccess.csproj | 7 + ...AddedDrpReadModelLastChangedBy.Designer.cs | 29 ++++ ...01212019_AddedDrpReadModelLastChangedBy.cs | 22 +++ ...212019_AddedDrpReadModelLastChangedBy.resx | 126 ++++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index a1d04dc1f7..682f486718 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -873,6 +873,10 @@ 202206081008542_Rename_SsoOrgIdentity.cs + + + 202206101212019_AddedDrpReadModelLastChangedBy.cs + @@ -1442,6 +1446,9 @@ 202206081008542_Rename_SsoOrgIdentity.cs + + 202206101212019_AddedDrpReadModelLastChangedBy.cs + diff --git a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs new file mode 100644 index 0000000000..9c48a5fc80 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddedDrpReadModelLastChangedBy : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddedDrpReadModelLastChangedBy)); + + string IMigrationMetadata.Id + { + get { return "202206101212019_AddedDrpReadModelLastChangedBy"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs new file mode 100644 index 0000000000..5c0386285f --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs @@ -0,0 +1,22 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddedDrpReadModelLastChangedBy : DbMigration + { + public override void Up() + { + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById", c => c.Int()); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", c => c.String()); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); + } + + public override void Down() + { + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx new file mode 100644 index 0000000000..14b560fac6 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + H4sIAAAAAAAEAOy963LcSLIm+H/N9h1k9XNtVtXVPWcux07vGEVRJZ6WRB6S6t76RYMygyRWmQAbyGQV59Xmxz7SvsLikpcAwsPDPRAXIAVrsy4x4e7hHvGFu8f9//tf/++//Y8/1qs3L6Io0zz760+/vP3TT29EtsiXafb415+2m4f/87/99D/+r//9f/u3i+X6jzd/39P9paarOLPyrz89bTbP//rzz+XiSayT8u06XRR5mT9s3i7y9c/JMv/5z3/603//+ZdffhaViJ8qWW/e/NvNNtuka9H8Uf15nmcL8bzZJqvP+VKsyt3v1ZfbRuqbL8lalM/JQvz1p8vsoUjKTbFdbLaFePs+2SRni4Uoy5/enK3SpFLoVqwefnqTZFm+STaVuv/6tRS3myLPHm+fqx+S1d3rs6joHpJVKXZm/OuRnGrRn/5cW/TzkXEvarEtN/maKfCXv+yq6Oc+u1VF/3SowqZ6188r8UdtdlOTVSVurov8/xGLzfVTUtdBv8x/PV8VNflffzrP60quvqVZ0zZvD6xvu0L+05s+6X864OVPb5v/VSTbVd1qf83EdlMkFcX19tsqXfxNvN7l30X212y7WsmqV8pXZTyLYvO607z+/5/etLpVjVrB9Kc3n5M/PonscfP015+qf/705kP6h1juf9m18tcsrVBdMVXIqf78GS3kdpMUmwpZh5Lqf9+layPjRbY0s/3bz1KDyL9fVJ1i8yo109nyJV3wmqdl2f3HV5tU3zo/SBVxIx72GFsqtfVzn7FffzVPa9hltvnLn39686UqPPm2Eod2lCrhdlMZ96vIRFFV8/I62WxEkdUyRFOPpra6EatGjlImzlaTHgBYeZq3jRyxPDaeEV1VB15uVw10JTnyz7iAy/JssUlfDmq8y/OVSDKgtnA5QfrS2Sop1jZ9qWreZyu+qvlt+G7EQlSVWjDxcJ4U3/LsPH9+tRTwLl+++vdo22+1p/Zezr/n347m+8NU492Unij/zOwKV031XP2eAc3HFPWpyk7On5LsUSxVCNrLevdapTF85b4kL+lj4+fAOqw7y09v9q6wfEqfO3V5L1N9KPL1Tb468Eof72/zbVFHqrtcR3GXFI9iQ9dPMR1TEyBWtFVodEqrhFzdJTRhWnfIFH2lrzpNZRKujpW3SsVzWjVNienYIVN0lL7qdJRJIB3/7edj5CQkQy0UbROimntOioyeVR9Cmf6rFTfUo2LOeUy+mOd6XbjdfYfSu919r/ThdpsCCK4XptM4DA2xHxfcFIa64T4FprXJHZNdXVuNDCdXM8x+zX6o88uf/kRKSy1chqOS8YKun/JMfNmuv9W48Zx8X1T4WoWvy+ukLH/PCxeDC2bJt8nKxcDJAju1bymt5qHqNnonHqo+816sRDuN6BkXTUGCMP+lZR06n/FePCSVf6udYTODd12IB1GIbOF/luNjUp49p/uJ6J4ZRtZK2+/iY75aikIjgguefPFdLK+2VhMhHyrsiOVZ5WHXz5tyWOp2Wf66yr8lq7PlOs2GWvV1mx4w8mvz7x88kawXP6qfasRUsL4Rj2lZRfWa8CZ9fNIM7AxM9/0cjkKvJKIkJm5u+jHJlvmLKK6rvp0u0udEN3bdE953KY82gQSKETAVV+vLzXmeVcYvNkij9IiURoC+K/qCRHx1d6s6qLYyDaCs8hnQVaWxVrXyn5ttKQzKtlT3Z2WZL9I6i9TqDVLqTYDJ+dbcvpaVz0XrXSIBqr3/FVBZIfEzQGxEo0NDmEIZXmnI2LOJ6YM4f12sxF3VPb5XLuniRTvzBdMq1Y2QKfWO0XIbwDSybYRqxrT9b3B1D5lWvCoekyz9n6YgpJAp1QtTKDWrIWNXqiSmSvww5weSoup3qVATeqRcM/aDpBtRis2N+OdWlBorIErFCC2RYoOekmtCJeG50jSt8qkPeXGer9fbKhFv1Qct6ZDcS+x9a1BCxSKcephVN2n5HTam/oLZAH1XVAeJuBrflvluciXVBNaKos1e2ykYBT3Qd0VXkAjSlTx5Zkg9WfNqv76/vjElzPO8GzZks1mz7PedCihulhB8LkSc5ioxLdszjfbQRJDNrCQtfAl2qwlWtu9Z6Qa3HGwrd2yuF0poxSqZJoPN0lLLZe+qBCs7W0a6gTUV27KGiWuSdbe0munhmqTtbw4CustYPodxnzOvhlWwP/tZM5JHVkMDdj1Nv/0m4ScvDnPjTW/7TZRf8q/ZUizSpVhePbcANWwmLZKsfBDFXX6ZlWJRQevuKS2W5/k2qypJDC+g1lcaCdwzp7177DdinRTfvS+mXDXnESrn0doYqNSb/WIRs44uy7PHQoh11ZPqcwyr7fKY0h3b7bIoxEq8JNmG1nCqzLONmihyZQSqyndJmZbVOHcPb2aNHtq/ohbFS7LqVWdSfM6zzdP+K61CFaGB6uKyPJTcbvvfQPBgdmtVZKiueWIraMc5+/3SiWl95l6fQpTwig3GgazhoGzc2Zx+j2Tmi/cqPyVtVNgY2aPKy82L+7GaZ3Gfm2Rvl4ljbY/TxlYpUNsY22EnWysnF0xzZVauvRd/1Als7cR3QZvdvpAEktUqI8dwgJtr+z5VPGSJu8Mdd3ldrm0Pp0ol1RFNGKfeiBL9nDJA9LKc2ho0qxVgeyxSOHvCx3Kux9kyJNvADi/NQomFZaLMx7ZxnwTWeRTX/3WY6w0uvb3mPE7G/h+Qnb1c2x0hsp2/yk9r5h4bq6n7vPwDO8myPR7PnezbM+7UvdhN+ZAm/kBeznYvWAB//fSwk5PX0hIjqYkP9Jy2PTKxG9V+n571wgJ3r15vPYK8gKzOlvGaDhBAakKFj9OUKjO3SdsdVl/L5JGflHZ5adZKLCxDZT6bJYcv+SZ9QHdm9KmQEW1/kxKRTcEyh3fQLoPjOJ15e8aeTfrnvPTgc+nBdl43zpKFo5sd8g2mu6OZzQOAAxz5v90+P69SUeyLvE0fswCHnZpVn7bkpsTBZ1S60myOZwSugcvSkeHWBkvzRP2tktyFBYfrgfuGZKpQx6LKjderMrd1IBKPr/YSrldJ9h/bpNgccWAjol5R4d15soPgnVg/15ffcK9M2bNXLFzjq5Bd3zb1IS/WXNZmqMlXtbuiRz7Stm2zjLpu+2eoaJzNGpcd61X2mEvXC9l22XrN8iVf1Bx3OfsI4h/PaauNTZ+/E8U6zZINv+L3nHXB1dhzlWZcjLUD9HqiNlsyWVumz1WqljbOYeDGx22W9W+JqvF0Kx7rrktbKnz3epEtB0u5ehb78fx6m+3+/U48bjNu+1wnr3WxHwrxzyopYzu/lrtJktl+M12IagCwtbr263QXPg+7BC5WzX9qccZFUCM7uBBq4FKGrwxW7gj2KG93ImpvLrzVvUNzr64ad/a9m4jVTfBGDu7kS988ZDoCrGTdRISRmNaGgyYfzp/S1bKK5SZr1Elt5SO2/G45Nd3PjUxaqvSgvn0yrJ4VWnYNSwkaWf+GFte9IiHpXdMNWO1Xt2WE3NGBGEjZCOJ4BVwqHV/xRgkxoxysaLciLhZ5lq9fq2GRSNawNR2SXcn7hCLvLEfilEq/N5DbnlS/K9JEs17TIbmXpxPVY+p9Gu1JdYWQfQg5s2qJlo3SEn1KQ0so5H6OK0s1hi7oY3RYH/G/YC8VplmghykwrQctwEuDKPgYrUTQOHzYLSFk6kFahHbIgWBjhWs2DGhI0CofsiFgn/AMT4sQDXuJE123zrBPcya5Q4OgAqcETiej5PxT1u0gNF2JcpNnmsjbp9L4eIRMZwdIa2tEPZJG9a8JzE0BkWn1h2jZ+neH87AJXRrMCpRSNQQn59uiTAobezHEAndplRLt3wA5u7NLs7RGQzq0sAUSCaq6TMffXoPtMJFKAXeUQN8xVQfsGNGvhpg1R1g1tmg5cOv0bA53yPTvO1J3xMAUxouTrHe8PO9mffF2ONKBlb7/jNXwgYZbncD0OKguQIe4TzO1UucEFm79W+5KgeMyQmbedWKIyxa7TDTTrEO3noBio+5HgTS6VzepwHtZjtVus61FW/SgGxC7Orm5lgHSFL7mGDIJ7sMGUvWuaQO9/T15cRYfkKlg6rqFVR+H29KuY0Oy5t1l9pu8fvkXL5u8LstP+SJZrV7PXpK0YRy8VF9eVe1V9au8eB0q670oF0W6Wxb2vrvoIqtVG7y9qBqR5UXT4EOctdcbZn/kG4LAYIE/HUDiUK/jp7E5f04AKlb3sICBlmbTsLdf0DUjh0kDyRTDyhE5knaX0ZkxVFqS7i33zwHUp8essSTV/VCveZc7FHZ4IrBehXpI2FvIQ0ZSaVrKc0lN1dZz6VuLDVzq3haHG7FOM8JCu43871Hqe276riaqXb2eTzFKYdFa1KM0mdMn93OOvFcomv+YaE0W+c95egVqsh09lcmCYRlOz3NTLACYtHYotCZrVAb21G3O7C09Bq0tHTqTHV1i/sFBOXZQjOhzaK3oEprM6FEPyjs7yeOAtLPz15x1ej8lZ324Y9jZhiCH85oJphZO6Ok86jFGvLQdMLGZNCflNFadJ6uVad7OSWkuj4vt+/ZQOWfF4qmCvsXRqVuRlWndbZoLc/j8tudodxq/3x4n59pZhuPvu2l7kpy695Teu8+usDpA2Bh7XOH1Puqr9xDXPzyr7tDLAcadhXVPBPsFDb6i3FhK2Hek83prSl7fBMUUUOfCzS1SHTRKvzJ7ZBvFVtfb4jkv/Tv2tHy3LdNMlOV5UXXnRe92zLpzHy61MTjTNPt+l79PiyrLzovXrwX2qqOjqKQU6WgBBi/2uSov2e4qxa6yJBE7jotsUbx25nZs8xBV9nUptst6H3RawdLBSU61hPadwWbsnq/ci/+UP2YO9L4Ti6f6DZZV5axE8ZLWScb7fLGtp47bLUVGBLkBLkWRABNvopDKt4VyT4xNCtsXEaNJDDp4L79Iy+9nZVn1orXoBRNGYxyk1EJsmqLqe4gm9VNAn8RLvcXXkEhUhPYt6sZNG3Tw3qLV6FTsnmbyXNL768szW8TUvDU4mmM2PKzUrLG7rUEH7+UnWfl7E1PrKh/aDsvm4WKbbps1j3XL5Vs+S5CXG/lu+PZs2eFH4ihnP/nNHELM2yX4iznd4RP6zGc7xapwqC9+goTA9mGMmn2AvuW/rvpSvtTsI5BJ7nuzpNIeAj2ZuukQoWWfkVfHovTm6HIZmkQmpjVLh8OyabSbQuESX/vntzVERANeLc5wHxcVuae5Pd6pSL8uE76LkXvoHn/6t61kiVbXYgcSQ3sd6bydQJeLMx1Cx2kNtri4XH3/qLPhMemu7+kZAdPoH5DuE9o+HU2o/yOprtb3fxnq+kDGr+H+BB5DbZnJZMCRlmiKxOBn/b9brOGkOUpqsGj44v/nJM0M+/HlArvkOjNkKoMFHVL3h+XlorTn5TVEBs29XlvfK0p78FxHZdJ96H30L6n43XBReadEhUd7RzmDTfvsPYXX7c3k3erVHB0FSQwt5eQAqX4nSb+wPote/S6l0YoeudPTobstH9qzoep3LXKGnQuVV16b2ThKyAO5dPUOEBuqHuJgX3XeX1LmmoUPOhRSjklWA5C7pPxe9Sy4eXYfkcwPplCPvsJkXFjtlb163lxt4SANl7RnMCne0hHV3xHzz+xWzKzL9+z3gBqu3dNtGWUcP66yLUIX2BPqcN9+N4B9R2Rxc3/Fxqpwu22EhsqG9xx6P+mtsQSnpJz3NllDPw7an+6z2E74tidk3kuIbccLseoxn/j8EU98jmnFwvF5zt7qAX6U00SsHhM0cjg/wNkrUXd2U09mNMLjiU1HK0bouFm7vjQkzLULOYOCXCtiDnHYVs9NUmg2lzD9zEWmecKD63az9J9bsWvBAM/HdJA8eA/283ORvwyPYD/e6ncvAfezZqzxw+j6spfouCuREht1pAZjgsXFXXl4VFSJDOqbIiI3mnQX5QfEFFnQHFnmwdM8eAKlzIOnIeGhs8eHEiRwBp2vNXB5ChidUvGwoSMlGRR6UGW/74s0uAJ3ig0Kia/s2+R6ofB1vkJuSAicr5CbY+I8KnzjLmq+Gm+Owwi1QQWm9hUdX5Hr4WASVPHgUZC8WZgW9eS1fatoJ71FPOAyDuCC5BHdydF5bvlnCkNvzosdRYEHnofdfmA3/eb0ymD9rl3qO3X0l+1s9/FS92WxtoHjPVHdLm7VD5Ud2KweqHDPiSfaqQ7bx7lXKCy0V5Iz+rEtM5cPOXDBlHSXblZYru4mIVVQHGB94+vNJ+9lnBcCfpD5B5/0eVfUbqa+2uJGPOeFZjvqkeoyUxBy3349/H1VpI9pZ37Bgl3x+DYyuCFM31m557bwk0IsRs4ZLuTQkfu0ZMiTnEg64sSGXXAxHIMyWaCnQ45DOdGfcCSKeBqNprye1ncaOPBMHZ4YOrCHNr5XPRI6yieQK0NmCo/rEb9apmbcjxISTHG2mIqGCVY+/x/J2yNs8Ag4Z/pIWX9PVltx9XD+JBbfxTLELRnnyVa6y6ybv+y+cXcOFUVe7M77iPNKEVbmd8BJne9dPXyq/r/cNMo0nZefDRqyOSUTG0dG1/cCQ7JCaoW0D762qS1SD2qcaFnudZ/VumCL0GS4fDmD5jzwQgc7TJ3g2WP6GKsa/ALxzoOIXQJ2EfZdi1c/h9vNa580oG76cpj10mW3q5OeDGcplXS7vJNU6iBvdghzCjXhFOr4MAIrdTKwoSmTiTdOquTW91mlSBr/abk0a+fxDhuRJAGzi8PWAAI4NfNF/392cROo1OTo4gn1nn/ucrXle19BXnZ4n5ZOtjuZ9q35qdrB26NCbi1rL8mu/Ez6IF/m32zk6X3iroE5fFpCO9aZ95n1mrO3S4N1C8Kwx6EMtyHoX5PytwjpKd/CFh2puRpnsfEm/11/JWT18b6Tf3QXEHufwWXCPg1Xx4s/ntJv6Qa5GuQge0eq0xinBJZxUHL2ohT6kpos2aT8vaoEoPO9apnb9Sa5LMNVfAghaoL/1SW5NO09diAJqrjnO+ykgrQ32ME0uNam2+vIY5Zdx7cbr+yY57EKN8G3Sz4sn7Oq2bwnkD9ejoXeBLePp9DVb/1vSk9XCPgXz+IxzCJh0OkIxWW30WtfEhq5tERaxf1HrH1JmmgFfNYq62zHwxGPtv5+PiU3n5Ib9VTGfEpOK2oikZUeF8xH5PRUoLMNdDjuUBQSG4zH4kAix2fiWHmMblJBSXSGrq7sRvmDF1l2ck4wnNHOpwyV8+O5JlNm7WyOCxn9Y1NibjeNq4XCu8YBOv22cYjYzz5roM6o019aekrDBJ0M2xdqnhMDKCnWOBt7HDFn57bbf5ygs3Y39ngnVnn2WN7llgcWA5zfuy7ES5pvS8MwyVFhzTYVZmXsX522mWpztGLt8QX6G7HI12uRLRvA1TTU9+hr7vOGd+O94eYl+3nJ/sfKLA+uG0/JJDIgETt81T6pIJGw9z1LftGgZIcS0lMiQFSVqbjanj+lq2XlQ3FN2wAB6th+0uexu+/8VXLSvnoHBze19erk8UBgZOBrKKE1BBt3uB5K7IokPWXHeMUuyGBhV5Th+TfSy29hHn0zvvdGe+pt2Ctve98wzH9odev5F/aEHa4Y+gAb4e21Ac+usZ6WQl+VMj8oxZ862N+H5PL9UPxc+YFs0PRnt0cwRtAyY+ePeSTtfwBiGJ4+5Zn/QfBZlQaVpf/LgCoY+d+WDw7KuWOSlwJtWgdqfqjAlz5meEljHwcOHg7X17Qki8115VSAkaRpGfe9eEgq79N1fL15lXkUCY0iK6AdoquLwaR2DKSON8nDszx7SB9B9dpP2hQQ+KwoCNHYvFJ/AC+oaEd8j/yor55KSb4QUm4Spr/3yfBoMYFR2zRcXsZtVRoB7i7t4taGRSXY2u7M5Lyo4pLDKuiIpl5a1mXiVEOP07IiNlVIqD6eLV/SVmtTz9bxabo4TI73dQ2PTaeXHpom2tblQKySCc32dKj580vSja/4zXL6qQKQBLtNblA/kyajdDoPOA2AnHkZqvZ1exedTundZ0RliAK5826guqTMhjd/pM1vnKjazAJcvYjiJRW/G6IvzmM0i8CGT1YYeAdVAWXShWQgw55h6tPmhjtFoPPDOCXuUofPE39KH8T562Il7ipn970KrhcvItN0e5j2/qpZ2kxWsmbgTKMNv9KSVkLYbQzXyj+eKnmdhdDyJn182pQf89VSAwSDvjK/DueWIrhVp5XDrT3T2kNHuGb9QUeD94eB6xBfM92SlVxKTaX1SSih0iI4Nbfe2wY06t+QkQxQKVELAHKuCbebsrvRoJmYTTVhAqZ+1dpGoVfPqlOY2HZuv3kcgvWlU0dhCh9nIKYy8yvl+XmVahcsDxn5kQ5M7PefsaT+QMPVUbvPoYuh3h4H5SPuxqz2Nny9rHKz7UqcN6tAO1EwdEBSba8xUys1TWDhL9GJ4ku+SR/SBWZZj0pvFEao2oNSD1rC2895MhbvWpYTXKnDZ8hvn/LfDwPGFl9Dt1S2ItuhgUuJez/jTmbX8brRcleV14V4SP9wWZUuJe6r0o3MSsPK8+fFrmXqHx2cm2lF1qth/hdu61q5S77tx+QuKvk8X23X2Z1YPGX5Kn8cfLDzKHN3hf8wcT/egh1timG3noVOLuholPxDS+h649l+FQ4e9qlfdZp63XJmsdqoU9PZpSy9tURevnDkPMG0YWLvudd9LMxBl3on0Zft+pvwv+EkzEYf9BCCfRQZU9BwHiOk/QKmUIGRQg4OpfcQOKTy9PEDJjKo7zWaDN4Sgk26aXaPWIUYwk4LVuD59f31zdualbKBZA5M9oHpz36Ovrk889UCs4XcUFmfK4QcFndqZ3NWweoxE8sAR1W7ZQe4c7pToOkJTzdbkNtRfP3v8qw8L1+829iZOA5Ybn/OOmDRl+XZYyFEfXC28uCL1XZ5TC+aqPGbKL/kl0UhVuIlyTZXuwOkhp3QRZKVFVbu8susFIvKVd49pcXyPN9mlSGiVEv4mi3FIq0KpxWgKn22UbMiUxJUv71Qz2CU9YpRzcYV8S4p0/JDXuzt9d4lDto2O2xeklWvJpPicxWHn/ZfaZXZ2xEVzohWvaBoP5R9nq+fV2IDoZ2Jxf3UYEA7Ommu/Tji3WuwkeauRKiXWs9PGTPeoPuFoSuwrDYck9fZq2LajGOt3SuDKNHhPqqknhq0lcHZQY0LYq/gSkmeNTC6QnjAkHmtgNERMPhWTValux9aweXMAy2krLrOhg5PrBYDABkfKhZHRw65t1zCV+RYBwzk1HRUR8nwEDSPO8RTdDf62x/nBcXNnT72tH+AA6bz0eGxrCj8yOvSoP8xX8hLYNH5ayOfj6t61XKRe3tRYqJZ4dYo3BxuQ1ctDAfirONoZzplSASVBM2xc46dc+ycY2eg2Cl5HsL7Jhgx/HQIyuHlvROpROzdE5jMaETYuGh3MNoYC8Fj1FZR8LCvl3ml8o7r+K857GHzM0Ovwbksm7WrelXkuJhk/yzLbWXWtvw1T1Z/TzuLSUNE1lXz+OpM4E1afncm7GNatVyxeHKn3sUiz/K1O3lVk3wXT81xSmcy66uWt9nuFIq7ukyyZf7iUM09dIZK+vc8zTafa4PT52S180vMVKOussrvN27JTsLBIwbYXvIuWXx/LPJt5r+oIM91m+av/Tx8FfZpqd1V6IMveL8ol0/+h1Lr5TfvhXzYnYf3vcHZ5ib/Q2+uebjDFocb4myv8++/QNa9keX4le2096yf8sV3dw+lXT84VrTNdGw2DbWcQdze9VNSil80ltff+PVZc/3ZucS/OJf4n51L/BeXEs+3Re00dsxDOvCPN4dhuD5/1y7g/dfdb8hFUJY7T4Asz6AlyAGpDBACN2Rj1OxnClQZpou4Blmjbw3Mdo41hzELbEeH5F6awZBPdoAkwC2fMB37SYZ2NFjv7DTVfZcUqnSZAsFOh4wLGvIbEofSDI9I6OkwE4Y/I1FPYrShGjTg+BkGCvRdQQlIxIXIftgMqrn/CCupflVUBEisr/FrTTUhYlchZ2WZL9J6VgxUnUCudygIz0Djvj4v623lBszrmCDcw7QI9jUM/GsupQEK1Z6WFjWjJqFo39DZvh2JXup3LKpLDKst06B6dwi5ioNTTAb9NTyQGSApYg1M78QoU6sMtkqfRuC14HYJ7Viq4VkeLRnSPCEe5tmXpX2ZByBAVPb8Ns+hGN5NsIi+3p7nYYxP9Op5eqFnL17zRI/yGdHQ/pEeaRFyd3OLQdc+OaxylwrVvEfKNkB/A+KhlN0thd+03k0m0Pu0DhX/psbyu8kd72jAKq0/YfXYfOdWnrReZdKtSwqpKFMgmnbInL4pJSejezJI0f1XRMkDCftKvrIOE+jFosdS+sSQsl0aROUeoYXiNpftgeMFPZX5mj18dMC4OkeaE7DcFtGRMW+NQMpqW/Vsu0yTJo75nmrfFs956b+cz6KUbzPzWE5Vcf5P3G+FzRJKJ0Kzb9IBFtLnqXfmpIDr+VP1Xhx8ntXtYK1bmuF+IpTUYEiI+4nk8rT3E2mIDOoPGcT1+ixBeYVDZ0CP0GBEn3rQoTlprtwyoksS5niOlFVXUPcWOduLUh15//MKRFVbJNnm3XbZJpBOpN2IZJioi+W2hboLvQ7CBqt1tXkSxf7d9Is/nkVWitKFiqDgwepeZotCJPUAxoPKWuGD1f6YFMvfk0K40HIva7BSt/nDxpVSe1lu8Hi5cY7Eo0h3GHSrJiB2eBMnq6R4ddLAjSS37ua2ykqyR/feZid3sLKf0kXdDA7V7Eoc3rzt5fRVXrIRWT2gdqiqTrarHu668Q8Shys4DyDdbGbRr/mBe17cjh6lIvCxI0qojFpwatfjRrk0zahRQ4Iqbhoxkgda8nYcq3HWUcAJDrMoO44721fviuThIV18qpePTnPv84/nW2uE6zer3cs9qLtPTfoEblGTv1vvj3K3i67vb9Ctdm5dvVQU6ukxOkx//35eKkzj5mEKTGunTn6Aez9Bx+5u/uzjtqrS+sawWn6AI4SGI3eO1o8CnrALErU+V+PybZE4OP7qOujXHczirNrRTQzOYrbfamF15P2FnXccef88gPcvlry/eMfNrqA/hyroL6EKqjxWsNqrygpWgVVZ/uvwx8yBDac2iIkwlO9AiTJHM+1W+oPw/gb6zge9Tlab5ekprznZJaa5gRJcLLU1JrVu09m2Qa1T2ppoTmvt00xPNztclp/yRbJavZ69JOnKRbp2WV5V7VUhPi8G31cS9t6Ji6xWzdlJ/WFhavCFSD9eyKSHgSbKGEMBTAW6Wg2pj5DQFIWEhf53vb7DNkGhp2KJaYB2jq6TJFiFrONhUquQtWc/wZA1Hpf7WYhNJdlq/n27XifHADMPPAItbLKPYfe9D3JS262fPxSE+nk9lV5z/37+UJTGz0Pf9foO8fPXSbFpTpnqHuY5lNKlBHSVCfTKdqgGDVp6x8eHXt/pesn1zdm3snlua+eIRhMf5pn60QTIIDP1dQC6KDfpWgrDdhHueA2FxWEW4A6LoRH3KLK5nurLds3S6MeL/eBVJWGuONGevSRci8I3z3zbgVKs9sIDkJJhj1UGwby7gbLUbyQ22hTwNgd85R8hMxrhbNL0+LyVZepxFOAw63hXOUJpJbWfJJlWYgur52UvsqX9Jqvr+gGxbCOdFaW4OXIzfU5XomqczHZy+8A/kkayr2jbJXbbjLy90MlNXt7KOsHZGnfZOCXBMk2Rn+frb2k2fI48WGLrevPIf2yTVVXXrsXeiLIJS6VrwfsGcy63EMnGQTLr8gboy/JDmg1//AFL+8eU5XtL6l3c6qc/x2C4BtBrAtwWxkqDdSymPFLL5zkl3pVLS4xVYqJZYS5B6xZpuhBNS021yXRRGj/PGbBnoiNjzmvmjROjXcWbN05oRU1k2o8ZS827JwykeoccaB9FtzxTrDTuqNBTOt5WMeCiYkJCNnzTxUHU7qa83TWWwwKgLCtuIJSHzT+b6eWEorbAKpA6u+ILUCbEhoFBFzLqQau5udEmB60lGN+qrImqQqsIetBB+1wlRIu+WAkysO9APd4GRW0Rywtn9a2ivZvWypuojWT7AHVf0pxPY4lGndeiq/W//MnFC9FBVusvkkyquf/yn405qM0TaC4nseb01e0zSoqfVW8r15CYXbbl20rvxUNS+Za6EuA0Ty6ovRd7x7KLdzrlIVrUCpCBb85KPNaexvhihVKBGlakaUAOJSEnsrGfBGrvA6mclUjWsIkdkns1gimXkGgolWYzkPuZPlWKQUd9ZmpzQ/kf+ylFaoZ/GJ3ZjmCPqLelaeZGUUKCEUOejqhtX9ZXvcMdZXcJ/H1D1mTy2p5iIFW6iome21eQRzAGRBdj7Vu/jHHIwT/kxeXmPM+abaa6GYX9dzl5x1qDxgEMEkhs/JcftC9U9GXrHqrA6Iw5wKBnK2qgIuHy8PkeiPvKR7AbdCm4+jVDUsbQ2DwgNqO+JeM/sNAbmfseztPsAMb/g0fCN+16vYuhcCNqHgtjozGbgUrfReXHtSE1vW8+Rtw00U3+uQPfH26s2R+I+R69YX4GHe75Gwi0xZJHAhpygmVhxwJyJEcHAwohwZRgw4FdcYTxgEpJsWPIiICBLjOgiBhy9jBCO/BmrmXtU97utMAccbEJ2+bB4+vktd73Xg9gmFtUs0HsxlUywxbbxT+3aZm23W7Qat1zXX3DxdS3PA88Q7VY5NusPqZd9YwAB67rd642rnerNkJtNsYH2adcVbEoy8oRpA/psbkaq/uf5rWAVqDh1fZj/ydM0qosuknaPqXuwmgdOfsR6IxtjMqiM6ZPaTBGIfeTaHYLpVxCriM12BPsIvL9jD16FblKZFDfVUKpHcU4W8gw2KGbN7TK1XYzv/azIzsBc4bmc4W63bLm+/BP1ZJVraEbg4PdBkDdg2zKEzbpi6g7HjeNaTnvci6f3W4IeNllfqPS6b6G/SKXuuDU/aJdHbPcvGCYZGc/E63fTKa8JE1XsV3lxxceJSq17g4flfClUrCzuo1xo0S/EHVjBExh1NZy40OX/ep5c7WFswa4vD2DSf2WjmjEjthPGrovEk1AtURaC/wnnYe1bzjdBD5rlR2UYupW9f3uBNCaYtg54GAnANkf63S0XO4nrR8f8mJo/XivgH79eE8xaDfvQdyw7HwExwBGnp/vWsvBgQEXaZtVCllfNFIMP1B2JxZPWb7KH52f129Q6OGsfntbjOeh0ZxJa9wk7Lvlb4iTtMyn6flIW4wxI9GQgXFHR+sjK9ltRdLnJQoBovLA6S80F2FsuUIUtFyON2QYZJzqNbPMMw4pxPBEQ69bPxVxcmzI4Yapg7g5AQmwacrNjNE87+TnODi8E5Z1QMBmaxDGZxe2/G0eptnR22ns65wDeX8TSMyyxfLse7MVkmxJS24yof5G1L0h9bKn6VgGrUcwOsHw/U2K3KZenUXLStocLJGyPib16+vLdqPH0AFvJewfRboRbqQZDujOF+vMF+vMmdQbD5lUHYh4iRTIYQ4hMJv3TKQulpqI9GhpNnm8gmdwMkI7UdbJW6zieme17Mr+Ph5JylutzMj38khaBb2bp1fuWO/nkdTULNpLFLurdbrL9up3YOEeIAp4Lw/h8CHtDp5hN+/w6hq/gQejNNS/25t4Dpsy+HNpwIVe8wzaPIM2530PvQ5BvFGROmdmZHA4WdYrS50lAwlMKnuaFwNL0V/+aJ4JQ0idTYH1yuinm8Bnk5puZ7t6wg3opQB2+MTWUSB3RguKWfM81jyPNc9jzfNYcz5DCALGCSwDKRIcwkxZdcsz5gimSSo9pa8Loul5gnYDvquJqJu0/G4ZfmvWOeqiU1DXbq6HNsRIVwedg8Sb6s9vybd0NThSnFd9S/xzW3e3gWNxeTaG/azQjxdvyBdYp831guCt1fUn7Krq5ruf3Zq1bDz+wRRK3NCQuY52TTGaINf/Bus4LKR1OodeQ4Wwp2XvO6xpn2jQEPN2k3wXT/lqWWtjFeEkCXOgO5lA1+Zdngt5n/9e4XgpSu8lvaua7aF5s8FzQbfpY5Y+pItkcMT9mP9+l39MsmWAhpjjsy4+S95NE6ZlCiRad8j8BG2pCDx2o4RK0MGpXUdyuTRNQNeQoIo7exO7NvpLvmn6eDsWYERNmfFtX9IcPf0HPf4jv4fm+SzKUnrBO44SnYtH6u6ifhwg/UYs0ucUOux4Cm/rHp8LY17It1ns7/1mc8obGpjMVaUl1/XD8WW9peNGPKblpr1Rjyvpx4vu+roDY07fE99j/Mc4xGBTYhOHl3/Xxf7WTpq1Mj1inXT/vdEaiZavPZaZASUdyFHdD3mYWfU96aA7Rqjad1hQC2RfQrBCJvdzxYhSKJp0mqnNVg1PP8FwR7NOw4pYCHKYrYTZXCfaSrGabBujM9vi9dpotTTNrdEoIcEI053RlluaX0Txkorf610HTb4/YF9zLeMtLn0eXwTKNFs8tW0/WFbToKb9H8TXDNkZc1v6+7R0svnhsmxv8Ru8iaK9kGXjtG44RTLz7y6ztjZxIbue6t3SZsvPebJaBanXprR+pQKl/dlJaQf/KO2fAQpzctUl8kQUEz6IpCBttK+1d9tqZFINT+riLAfCsghHe9poBbePbH1s5gItdZdFBK33v326uFyWZ+V5+eJ/o9uxzPqHQKU2XuCwL+h9vtiuO5NQgQr+WqwCl3iXbtDVHTdAwuZ/yJxhwoE8vmPq2uENre3Z4c4z6+mw8zxbrLZLaGINZ/xcpfP72RZmncmst9vn51XKhggkIkjtd8zWZZbGTdqylKF56a3I6pdTXkQ9l/dJvIhVMK+9m7IK6LPPisVTber2uEWtfe/j+Hv9a2keFNQhtdJx7/aHtkK9R6YCYj34rRPmvdgmZwqSc2AKBAkxafb9Ln+fFhUg8sLoCp3Y3CszhJn6CfPy4ErDdAW9JgH7Yzv1sbreFs95iTW4m6HUx7xKE6Ww1/T944/ssxzPIluWV1nzRstDUlVlwKq7zBb5umm5VT131L2kO6AeV9vNYx5DD+0M7M6ZX4sizZe6/frAnGOH7zABCdz6yOfGT43TRHC33yCuhl4neiHsCqKLotUWQx676tSeTa+yAw+7hrSctArRs7NfcsB8C70m2ssopA/sGjFKoNWMWYzz5zig9jmc8GEDQ8dJBIaW3faJj+MjI1Tjdxxs0zV8NMN1zEOuR6GbfCxWt8LHYAPOttF52WuYWEzn9P9KxrDujwug9n6DFPbFM1VZZ1XUeczqIRKjQrqM7OrA2WmVYZDBrQpg9oBeHSozu0rMImjVQpDDrhppQdXGaXT5yU5DZuM6jQ6v+y0DcH7rZf8AXNS8mQCbCNwkheaxXubA+CJbOpGjecPEeoMlcsl/8AEhqWfSxpTuOihhSOWltxLKnbuu1Vze0J08+Cyhgwk7/m6cx0KIOndRlp6ajvybKL/kl0UhVuIlyTZXu6tWxu1o4syykFyQxayNO3+kzmh4cT9qMbO3QWeed9U1+HDLXlCcnYKxe72PiUJSnzbPM7rrwvqpNy9dWV/c3KWpZ76Gn1mThP2YXTvEzDepq9Mn0B1GbWW62U/UVoqZuzhlu42zI6mO9mhMrGv7WMWhRW3jIpC7LtxfOPHSgfuFzN0XKavZT432Ngd7OXYbqL1vvIrdh10vRpL6r2kl02XOrVnw8pRya0qb+/OccQfMuH2vNRPzbeKKtcODuPCKrp9juXBZc0/HdlY7eBDExcMktYwPW2dHJLlrghU0sO3VTk+8RvNCfjd40FbzaZtE3PkfZOuEFx+ElDf7IcJBn4r0UHOdpTO1YieXBYTZUUTqh4ydSVZ98VP6IM5fFytxVySL75U7vXhpzGP0uD3nW1jW3JuweFbXUF1Ypws19VeFsH19SlTcS+QWi21R1OdSvm4WDnbk1DYNfoHjCELIavkr19pmmT5ZybtWD+eNucd/d7LaR2wq3KYPaX05kHzcr/eJJlA+S4/evGKRy5F35mIVBfpJuG/fGwQdnaQNv+IhrYSwdy0b2smmevSyyDWkE8GtJK0cZ6+JaRTo34mGkFFtcnEFfNntg3u3zYh/soC3GoFzEMTiwR81fbLiBxb7oxaadtKesaDQA5cwE5gG4VeW1IZMW+D2Jc2IRcoyTH54ugz5vNL1UXo9TnlO+UjgpOOYn1C/bzEHP93cfERfbW4pBj1P9fWywuZ2Jc4b2B86LqMXfL08z7OH9HHb7kd8C0qcewOW2Tq8P7Ct+/A7gu3vCQp7LTS1HxNvsYWwbrjKlsaiXixK5ONfarvUHCbclySWXy9rqvuvKegrjrbROBSXRmRjHxc1XWIL1qjuJlsTMbHB/N5pCxepu9jWSE21yVk61kfCoEDUFzbHIGPcGBp9KovCp3WOntf9MSOY4nvR4GWmVlwGgcX17eRKkRqfjtGZ7RjiyTWRNGQQNtqHx24r9y5f4Wq1KPlWljD7c/sR9vzqu+97weZX33WiJvIOEC1+yg4Jj504peKPDeSuY2anOE281NHgunt9770NC/fdwKJuLegQaK8i6VINmlY7nO2zD3UdEXOsm2PdHOvmWBc11nU8Eh7sDKTq3i0Dvetw1y1PE++0RAb1vUa8Q1H3h391Ix5AAEQ8iGpYxNvFrd0aWlobYBX2FDlz7PO/kjqHujnU/TiTnqqPMUQzAr12OzLK5DyuqYXqghtKSbEmwMBu9/gxEFo028cBWvzmSYjBSRxs9gkOC4GNiDn6cTfxct/8cHAwrO0KbqTM4w6dN2j6A81Ta0i1bk1Hb+efCVbsCXWqt98N+u6IfAURuRBt/FCISDpbRo18Be+u7xbRkulUrX8z6NiQONvP3ZWNI5YA0uGbtg/ymnoaFKEqCXOAQsr6mJT1ebP2pMvQMUMl7B/VmEG4kTbPms5DyXnWNGD2UgcVWvICUurDAkzuLSuoizMlBT0aXPcAA0lyYqAbLAK5w/Cz+9BRb+uj+r++v755axA/x2qkLC8n841v+DQtRZgEAZ/40M2CAMSGaRCIYxDQOwLtV8EVMTOE55xuzunmnC5qTqd4JTyxI5CrZ18JPK5TPLVMTZ6HEhJMCbZ0AEQhUsxE94np6AfFy70pHwrxz21l3qt9zARFzXFzjptz3JzjZtS4CXomPHYSWZSgQ+VzHUPhcjVx1EhMNMtjPN1Nf+w+3Dex71B4JyfACJVYilMPnGI5z7MqfC02d2L9XD+dahFK9yLewtLmaDpH0zmaztE08soC5JpMaww0HmDGnsjoft0BLFi7AmGiplrmdYy6L/G+XzRsi0IGjE31tK6iqZsoOkfPOXrO0XOOniOKnpyoyY6WwaMkLToyomKEaKjM1IIkpCg4eGb2Y5It8xdR3BVpwl2gPwTAjpA5/iFlXfzxXCEN8jA439nzc1HVMJvv2EhD3WOnjWtB3CuzfzhPrdQY6CAUqnvZoxy9BEanuAqUmHvV3BFDZgPuZWKN8hKN4pi1hFy3TAuT3eLQKGkgNVjiP0Z2y9OESC2RQX1TgLQLN0PGXIqgOezMw6552DUPu6IOu9S4S48pxMEXhcdrbMGGYCghwRSPAzEneZbZAiApswqU7Ysc9eMH2XJInOzLmcPkHCbnMDmHyahhsu+U8Chpplb8MoHFdYxUitSESIzObIfHAKmUBcdHhMysvqvoeJ281i+P1ntqLHeTHgIkIGqOkXOMnGPkHCOjxkjAL+FhksSguGgal+tgCZWqiZcGUpJBHqMmVBwcOHFKkh2Ow+fndCWqkJkNjZ0HOXPgRMq6Szfo21VuwsN0FxhP7bY+w7JZv+9oVs4QMp3LAGn9rJ8pJVIiFEJtNilYbDoWiQcmkM5sh7MVtb3k2ts6GAcd5My+fB4EzYOgeRA0hkHQwSnR4oueWuuXERZf8eVQpCG+QHRmO/wPeY5loeMdiMysvrORTpEuxI143LZWDAqQqqg5Rs4xco6Rc4yMGyNVv2QIkxQG1UWTuJwHS6BUXbzESUkG+YyaQHGawIlSkuxwFz7zRRW76thc+an6Evlha22wuDmMzmF0DqNzGI0cRkHfZAqlRCbAa1M53YdUuGRtWDWSk40Lc84OKF1z3A6gxE7dQeSDDt9dV7xPSSk+5MV6UFztyZkD6hxQ54A6B9S4AbXnlAyR1EitRhkzi/PY2S9SFzQROrMdgcKkVKwuPkokaGCU6RxdyGLzxBhwI8v8zJjRAc7PjP0A3rjXI6g3gtCfGjNxOH1srFsY9NwYRGHU2tuTY1AxyP0llGfH9LQOHx7rFqK+MKJ+N2rq+vmxrnQTkkngdfEI2UFizn6GDIpi+fwUGVrW/BTZPN7U6j2PNzWiTjXDyc2PkeG0WIiAGTzmDDn2JJmOymRBkDEmI23Qjy5dPU52J4p1mjXKvq9CxSrNBl2drRE3R+k5FM6hcA6FUUOhxjfhMZHMpIQWOqfrKKkrWRMuCeRk4zwGUF2R8HYhMzXZJlfbhupHo+rF0mr0VDmyd0mZlh/y4q5IsrIq4Grn7Bhxt3n+kyJ1Dr9z+J3D7xx+o4ZfiqPCY7GdBMXPW4pxHaVJamhCNpfXrg48BvNu+TfiMS3rvUN1qX1l9HajbMrYmcM7aEjdLaj+60aUz5X5adW53IR5UOgc5ecoP0f5OcqPKMqDfooT5IkCDPGNKsVviIe1IEV4I6tVBcSJ7z1diOG9x8WJ7n1Wh8H9PN9mm+LVTVDvCJuD+RzM52A+B/MRBfOOf+IEcQOjIXaZuP0G7W7ppGCtZWEZGic4X2alqE/ztLqkorzdNnrc5TUTc0hOE8YJ5USJDiO8XPzVSx2AH58275tXO4dFe63gOfJjnrrbBAMd7EHajVgnxXfvcfM6qXolfzO3tp+38ph9vFOF93sRlA4NcRp8mpHd4YraQb6bdLwnbu6Wc0I+J+RzQj6ihLznoTgpuZHV4NfN/H7T8n75pMQcYWKaGyc572lREtPwPhsn4VZ4PaXW7AMhhox6PhoyHw2Zk4k5mZiTCWoy0feenGzCzMsYJgY6SmJQgJRQYFxci6OkFPBRFAo9I4lwdVTlOinL3/NieSNKsbkR/9yKkncVAiRgThLwuP7kPdy0znOgM3VxXcMcJ3RXc6vdxnTlOIUDuO+axOb+6nGgWO314zgtzaYhvp7XTKSWoTfG8DsAbsu8xfDeAzH89+3t1dse/+y+kbLqJyaLLFnxM2g++nrtogAP+q5gDiQaBLez5Uu6ELWcvc4sxLXsb1UpM+7sB/Bu0oYbsUhF/ch4c1p5V1iNxO4H7pVNYvGcVla6ldriZ34KDKoV0Ju0n+6bSm/aozPXqX5VRiMACTT2GJ4cqa4BT40o9IpfJDG5TouAQjVJEU5JscbZu19nm02yeBJLiyXgLuvs4I2eyI0/UzztsU35EpumG6xXI0XRS/75B/fcRNfY6VAGt2igVZ2IicG5O+wWqHOFWiqTBc5c4Eexer4Tf/CmxvZMs9tDZ6pCvFVbWey9jJDLST+m89t3KNzt6akUd4GQunZ1h6I0Tg76rtfXmWP7m8iW+VXxmGTp/2xUTlbnefaQPm4L/si+EdayvzUJnp2iYQ/tSyp+V/Olzgdmd91VrwPnxE3VJBjMA3Ybz2fqTbhH5HMrnsdChGsPalRB41k5fHy7hyw7yHItTe5I4NgsfbMwWubmWv33tDkyep6vtusMXlw3KtCXwbC8y8q3vcc/PPq2kgZHXUXIHGGxbVR1RZTSdIu/nV/ZUvwxLOaZMOlu8dqcDsbtrf0padvebtdbP118fV5WcPtYIScvXi83Ys3rqZ8u3kJC5p5Kz1rtz6X9mIkjADdDskjiUOMmjc15UggVq0sEDbQ0m5wNvZut0WePhWie+btYNf9pB3YMn9JI2R0keKsVOXuYsUzcuRwKO1mZuSzPFpv0ZfDO/B/Tv2p7HO5kGWyKV+Lwuna3+rI1PpfEwDDR63AbKVYzzqZxcOwzjayZ4aVYPFV9u/43e1wJRJautDmozEFlDiregkq3s1HiiYlD44eMbH6iSK9YNIDoaWk2BQgb/RLRiIEQEw3yEifuRLlxGytkiXO8mOPFHC88xwu5w9FjBs6FuiQDq8/Y0SmaED909HT7gsWRbqmEWKJlYBjnJ6Y4mNE6SppjyBxD5hjiO4YQ568watzthJytkoqkxAja3JSG2G9MMM9EaQgJRrj1/e+2ZZqJsnTg/GVRs/efvf/s/X15f7mnEdw/Tg67HAOPlwDQKROLADpCgin+Y0C3OCwIaCkpdrgNA85fZ1TDw/xU4xw25rARM2wMf4NwgBjYp43kNUK6LlhYGvwuoZ0UP2GMpgYW3tgShtSHz3Bo/86RKQrOjx7NwW8OfhGCH+M1Hz43xY+FftfHqAI9sNFf+GExhwhjvdLp0UvPaGG0z1g1/MFdU8yaX9+dY9ccuyLGLotnZe2lUNxbrAdmyarQYxv/qVkrISFinUYLeswzCxhQGT5j4JCnsEzRb34Xa457c9yLEvdYDz7Z8FPcWfinnwhK0OMb5xEoJnuImKaUT49mGKuV6T4j2KDHoUwhbH4pao5hcwyLE8N47wxZCaA4swgvDlG0oMcx1ttDXP4QkUxVgB7KUF47690HMwcbCvdi5gA1B6g5QPkMUMSNhHpSvdcJuYHwUJ4pkNA2DoKU/oKDecMgSGXS3a1r/zVPVg5c+17M7Npn1z67dl+ufd/LCK5dTwr7F4Tei2s/lIe5dojIoL5/134sCnPtIJVJd7eu/WOSLfP6kacideLjFXmzs5+d/ezsfTl7pbsRvD6BB/ZBFEYvcUAtGAsIKDXVMv8hAigTixU4Odkst9GjArYoHpKFi2sEOrLmqDFHjTlq+Ioana5GiBgGetj5mJi8RIpuoViU0FJSrPEfHXrlYZFBT0oyxXFE2JznWeWNFxsHS9hdYXNMmGPCHBO8xYROX6MEBQODxvmYuPyEhW6paFzQkpIMChAZegWioUFPS7PGV3C4E+vnVd0/HIwbQKFzsJiDxRws/AcLuc+xggbOaPJOBm7PQaRTOi2Y6FhYhoYMLt2CaUFGy8Oz0lvQcRps5iAzB5k5yIQJMuzgYhdU4gQTRhDhBo/gQYMTLNhBwktwqCyu68fJbJUkaw4Nc2iYQ4O/0CB1NVJkQOl1ngdn8hQX5ELxsKChpFgTIih0ysNjgo6UZIqniOBktCDJmiPCHBHmiOA9IpDHCii9wfGEHSnIhZIiAnWcoCP3HBEoowQdKckU1xHh9rXciPV51SEe8yIV5eCw0Bc4x4Y5NsyxwV9s6Pc3UoAwM+mcEYHTU6hQSsbjBUZONi5E5FALxcMHSk+3zE8gcTLXdBQ1B485eMzBw3fwIM80YeS45wk7zySVSQkS1FkmDbXfwECZY9JQUuxwGwbarn3xx0ZkSweTTH1xcziYw8EcDnyFg35vI4QEMwvsgwh8XkKDUi4WHjBioln+w4RaJBYqUGqqTY5DhiSu8kEuVqshkXPomEPHHDq8hQ6gx1HCB4lN45dovH7CCFQ2GkoMDAwTA4QUsFg0rJg4OPa5DS/Xyeu6coIfCvFPkS1eHQxKAIlzcJmDyxxcfAUXoMMRYguJC/ZLNFYvkQUqGgssBnq6ff7DClgqFlVMDAzjvMSUxtG7CygHcXM0maPJHE08R5NDb6OHEoQFdUUYn88gciyXEEFAYqJZwWKHVCQhcMDUVJsch4wiXYgb8bht7XMRNVSJc+CYA8ccOLwFDrXDUWIHhUvjk0isfiIIUDQaRHB6un0BQglUKhpNDAwM41zHlHxRefI6bt3Wj1+IRyfTW7DUObbMsWWOLf5iC9jpSPGFyKlzU1R2T3EGLh6PNUYenq0hYo6mZDzumJmYhjqOP1XRT0kpPuTF2kXg6YmbI84cceaI4y3i9HobJdQYWTTuyMznJ7j0y0WjCkJMNCtAHFGKRAMIRk21yW3IaB/qE4WDcCGLmkPFHCrmUOErVMg9jRAmcHLY7xh4vISHTplYaNAREkzxHxK6xWHhQEtJscN1GGiNqRfpt462ZYEy58AwB4Y5MPgLDECXI0UIEp/OL9GYPcUMqHA8eBg4OFaGCCdguXhcMbGwTHQbaW5FVqZ1N3f0hLcib44wc4SZI4yvCKN0N0J0IfDADonC6CWqqAVjEQWlplrmP5IAZWJRBCcnm+UpelxXHj3Pjq+Qs6LI/sD9W1zmHEnmSDJHEu+RpN/tOBHFzGtwVAQBfiOMogAp0mBcXIsDRh61bFIEQtnY5rqNSHeiWKdZI+29SJarNHPxzpRG6hyR5og0RyRfEUnT6QjxiMwJOys6u5dYpCsei0QEHp6t/qOQtmQsBlGYmIY6iz/XIltW7u2mkt7Egq/Py6q/sSLPu2Tx/bHIt9ny3/Nv5VtY4hx1kLLath/qvc8LUZd+thnsOXc3ir4eQmCNf7hdW9WPDGhJZFRa7yjZj8q/lsmjeDvvJiECsP5/7/nOZdn4tNXr2UuSNpYMzTMuy6uqeSp3LmHVVlbIzO+yvMhq1ZZDlb4u0rxo2neI4/i6TQ+a/Nr8e873CPkefQcNc/NM4H0zlC0z5N0yzjbKVM5TFCJb1I8XmJSWaTU6H0lwlSW6QXmV40nmeX55DmtzWJvDWoCwZjmnPmQ6PeZMOnsS3W7+3M/UuSFI6guFIyaFnmGZq1h6J/7YsMJmzTAHRqSsvyerrf/IiPlPeycYwKGaBA70sDU8cWcKUyhdT0Pm2kU2xWi8Yf8brKPJx+ldwXbdmRZa1XA/0v705rL8sEoey0NLMbzE7VNSiOVbRag7z1F1l6UoVq9V95Lx1W2Wz2L9TRQ7C9PD49E/vWk66V9/+pPSkD0OacbrwPSLiem6fX7uwKCmET2GSnVRPCSLYxl/wVmWVRiozyyLsmymDetBVrGbIN9J+M8qCtr2RjBwu3gSy+2q8VgDGv9s+ZIuxNujtJitfrlei2XazLvTGv1j1cmobf0+eaW28j+E+E5t3s8VTp90Ldkn/k0kR33/Baf9j21SbMSR/L/g5LdinVYtvk1WB47/agGrFg+DfcoOVkdpk4LVjXgWyUYHLFI9/ibKL3mt6SJdiuXVbuA53EtDcmPW7W915kyr1S85tase7NN1WHoTXBaFWImXJNs4boO+4JiN8OWK2ga/XdxSG+Hy5ubi08Xfz77cUd3m1y/vL84v31+81/lOYrMlReNUm0j7st/M46bhQNExm+5jsnq4f630Wr2S27BLbWjGixdRvN6XYpFny6YgamtebZ6k6GOIgmqPtclpastuxWN9tYuDRr885JBvFcExm/wiW149nCcrkS2TopMRGBq+YeynBabmr3m6OYqNLz0rFk/1VvRtOzQohyUHPWExG0MFrqER3lFr/m9kt5l9z/Lfs0FOsx7vnufbbDOwx+yWWfZTV+Xbg+CYjfTu4tPVP+4uvlDbqCK9u/pw+eHuN2pjNcR3Vx+rEHYjxS9Dy+3Irz99vR3UenV177asum4/SfTJZSjvr77c/e3L1T/C5ic3afn9k3gRK9dNdRAcs6E+SdVpaKnPl+/ff7qgNtbHy18/hm2oj3m52wbmtp32cqOGLaWGDI119eX65uLz5S25vS7+77uLmy9nnwalDe+K2shPafb9PNmWw6YU/iN5e1xIeduTHHV6IatGEunya7GiNsb7rPyU59+3zx+SdCWlHqYmKYq8uBHlc+XMBbUvnefr9TZLF031NhIGdaqzRT2RWdVw+pDWWeiQNLAjKqrTqzcuUBuvLXLQ5JCUAN9UA7P1uh4K1LXlNLcGRP/gmfaXvFsng3rC5X7t4LhLY1Cc2Ul7q8iNmrflGXnW9FP+O7XFPqfaqT0lb0gfnwa1012RPDyki0+VnGGpgCwoZpv84ynlTGWTw8tvYrWSmtDQLr8WQgzrQPLhjfZd3AGNIwt725cc1e2VgjzB08Shs+U6zahtJltaGbZdiS67oRF3ngbiNEz4tVkxxGhYAtvPyUGshhWxX1f5t379/FcD/OvOWn7MV1WrtfnGgfO/WUD2S76pkpXFIaAOgqws7G1fckzItqt2OtDSVqflyyvcjZbb4yy/vr++eauWEHd+48sFOYG8uLm9qkZW78/uzqj9/Pbiy+3l3eXfLzpMht796eLXXimW8XPxXSw/pQ/i/HWxEhcvItsMBn8jtarft1rxMZvzvViJjT5T5dSbo006/foaxzadfb+kQv/SZpPOJbDnxoD8S3X7kCGevWfv0lHL7O8l+peBSdHxNKGPxGgvPSZ+umuMpvnGehojfU5WzVhrwPC7GgSmVcAoXO1ykeXFrM2bq0/kIPT19uKG2gHPz6n97ubi/PLi75Jkm4DjyGOOxEPe3f52e3fx+evt2a/auVeaZ3h2knUexcSslkM+Y5MM3Vz8elnV6c3db9doPkSr1qrjvqTi9+EVKwkaQ0zuxlibDIZ20n1AlZFuTOiWFzUrNOcIpol/rYT7zjyBcSurVoySkRk8NiKqe5fH0DTq/l1SpuWHvKgS2Kx8kIw15FWIyPrTbj0kbc4b0uYRMJtfaiw9Ph32H9E236INoqSihjkLuAP/NwaTioL/zuHuQpGT0ncw8zVLpT20xiRfJ+Yowpj0yyLebaumqNqj9et7EQb4dkXcJeX3G/Fw5DaOAGRupdl/McCyy94fTPxigGCXm+CqfuHA8B4ahP1CmkI7K8t8kTZlG3tLM10HHAnqqnmRLd+0h2rYko7Hcl4PF7oYhPz05nMVTtLnKoBU+eRff/o/lGobos/+FJCkT9v9uoWqvWe3Fr5Jk1WFtLqYNNt0SN7UJ77SrBkyDdWvJ/gN7bBfDYmDCv0v78VzFe8rC4a2JUU38KybquxBp25d/2yq7H/7WUI5Dv6zx0I0jxderJr/1A3PQDyNHYI5xMnBNrHksIDmKRUAxbz2OQHoyuchWdABD0t6hit0/jIiUAF1YkEUaA2KKr2jzeOBpXSwn4UQ6IA/D5QqYOhFApg8jh8g5tLcJdzBVa2bWGhVq4yiCSgqGmyPDXu//yiWcBvr4EQXAYFZHpn2IdyvkKusXRJ7U1+Mm2f11YjlIlmqVwJUQ4ClA3VH0xH4VRygT/ArkqTUUWq0TtEOOfd3L0jWHaCqA5eRE+oCXSZOemEuDoVwv6g/vX3rKNEgKxYAp+Q2IXlvhTtextFusq23azWGMYZvJk4w6+gysbJgY3nENNgdQMkqhUguqM0xsYFazyzSGE3P4xmTFoMyf2iMNCQzV/5URmPdaeM+TPSpIcIFJ6+dRRI6+vCSAPwZkO4OiiTNgmSXhLYgRewua2x3eC2KNF/ed5FjcFIQD+IOW3ILZwiWA2aQCOydDtuGeFPMmnDeFGs72nhIYhwJeNmZpo7PI4ijrwnQtAkOxNNKLndGMVJLlcMjCCPO9Jv0CA68CWeTO0PuRLmxH23j3AgIZUYLKBrKjTXWoakVDqW05pmkk+yYxnCVOr5AWB3DiNykUCR8TtiXguO6DmxYY+ZOtXgfoXdK04/SsV7geaQOaRhrtA61DWPELrNHd6HM/VEYF+Y+udtL0HKiZJzx9z5R6n6acZy80wmm9wS86IOcmLuY8JqedlCuMcELj3U1+A/CdSlI8AWg7DvoShpFC7ZS3XOCbMU2EtjtF9SxnUYgPRty2OY4XRnoRgomwB0gTzE+OO6UqpnObPbx2r7L7OKP+rGeZHXYzHfffj38fVWkj6l+VGIhC8IrKobjMm30AbBt1EE5PMysfaWA8kY858XmXvfZ0AJsefpW0IkKtEHR1h6gFYegitGiyJt0OiMp79F1D0dxU1TCq3XhjjtFHxWZ63taQyLwXUAjFAyDoUEwizcMwlQICa0JD4CaM9z57/cHBGDNLRPqYHRT32HIQ1FHLIAgHTrdDW50WgQCEVSvlKL3PNHRIx9PNrW0ROsYQ7JkcNQinaH25o80igREElDBtBHKgS06nnjpFMjhGFtjyKVQPQIC7IQyqdocaiLVo3UMsLhZlEaDgKCacA4lec6LP57Sb+mGFBBxNnhur89BSonIRXKDpsNZAMuZQYo5QSYIKU1pr0gAEFf8D+kjI/LqGCDgtrQct6iVHtY3mtQIgC1TPU8r6O6socRcldQptOIFXL0C4eA04XC7t0C+pMzU1hItHUSGYArJBoDUvUxtbCEUMSIgGIHmGXuw3CSLzbUoStaOaAOfBppHFqabQ8sKvrOUqFAY2FGaYXKRVTKKGGBhDo84jLq32ahKcOxNOAx3nHYXHToo6FkgLKCIa0DhMHiSlAS6BRbdVeAyZ6c09zHuL2impUBcQcw7OvcyHN3TCavETqucTYzZqBlo1symUUnOReKLOjmrMbCqgIo+fczqa5aO5l4nddE23QAVyOwOsCxHnQNXVLNyyuy38YckQysgbvcjgYmiYssxxg54MKq15qJ56WNQ/JEFjST+dFRida2I0QhSeiTRCGpiimoyX+zOsBGNB6zfHSrzgn9RuokfgX6X1QLsxrKjXIVO1SociKltNK3JAdg46so3yhkQtHHXyEn6RAPqqcwkgNbp98ATeK2G7f6nFjTK6lMNbm+yAjqjPgNAnVFhkxrZSq8mcfe6YZzaLUnyI03MrUloeRE2KlH0CeSESW0xvTxBNou8Nw7m8QzIyHvmcE0igPCUcgDJLkb0l7lGHPc7amoiPquPuIn1UO3FiPJQ9Uwmvh8eor4/z9frPGsfv9y/J6eDCMoF7wXdi2RdK4CVAm7/1JTi8mIBgk4BUEhqAYoeAHvETQHrdf1ud9u3jq2pA4iGHt4QIJHyNgTAZXDgF3+VwmBFAMAa2oqkwWZcAOXspEL5PAI29iiIqE1wAJ7ICKhrFG0blYbDIwhjbl426BEceBMe9XQNkdJehu/rcXkEXb+kCPv3COoEx5+mASh69Fij4fBikWf5+vU3kXBWNVEuCIcSAweFeDlh3R9JlwAQJNX9tCKvbBIl7mroPQEvXsQ1aBEYbBOOtschkmQQdukeRM6ai/H2kieoGXSbGQf4A6dvoFoKOm8DVcY0RsGSDfTr3zAmFkr9TXyjKtpcvucetNqqCwtdbfWwABzv5dhf82R1X//f7SbZbPWg7dFBOK2/cqJ0XySAK0mx0U0katQPAD9NW1BKPnJFRRzz7kU9iw6H3EvxkBLCJo1mRQIB7JTuXjzYQxmeQMTOYRZvVIKpEBJaEx6PHPwvevFih8ppvNTdt6hDpLuJPFCFkBGPe9PinicuVniRjh7l2OgZQ3SLHtlOKaqRIxolmrHhFDeKRYxgU49eu4GDeV8JRKyDDzxQM1zGAxYwrR0lmAmB8KhrIvviwwKRFyB1TDxgmrybtpTwns6kSliUnVD43FlEDaIquRfIxQ2reiXCwmzCIfZjki3zl0pvc4BVSSFI7amYwRUQPq3QqjcgABb1TTPqsHpQmx5U9SwcMGLeDSkhrIczKxISWScSSg/2UAIpROwcZvFCKKZCSGidQvi8TopNWpudIW8sgtTOAdURTkSU/ftkh4izy4X2FGJpzigIvOguA37qSilxWnkHw6IAfZrRohRtAPb4G2gU09CEBWcLBu84u6lp+kTFJTeV6XKOBo30DNrI6RmTsdNqsj4RYHkiSXbfLEqujfB4BmS8BJygSQQQTjgd75ny9XlZOWp736jjJwCyZR0AS23ZsYO4SbHwiDU106Sd5844CxeqcgbEbdRL+MkqRcPqyflY0j3xZtaQCJ30ozp0m+JhfMqXw0vnHSDjKEdmYMbRHZvRqInNgvE64sDjM3g1hkS3oaomO6HFPOJg4EMBzt2Fbior0ngt+rEHYhtMNPMlH4DQcngE4QimCyIeijDW+OTS2PsuLhgBU3daYuC9eV35WBz2e4LCoFGcyMs9VdFhHAXYbl/LjVh/LZNHYhYpM3iBW6cAEG8ShYeV4/t/z6ua/Vxfd1OjgrxqDPN5qCK4nNh3WaJaBe2daDtQNAEFjKC3WiTFzITYDpCjSYTHkQSfXALMS37Jia8d2EaQ8MZOdk8j0eXN0dLnZS1hFf/1TVyZsAA7jclSwwuZfUIPsNK/VBk0OQv+XqSuailFR34H8qj68VImc0MfaD2A6Cjb5gYpH3hSNAoKKaWuKaUfmEbx4sdN+vi0uX8vHpKqraoPX7NU76dMjKZ3PxoeDvSMBRoCZGONNxhStQuASWrLUFTpco4IpfRhJ4E3AFZjD0cZGkWB6IkMT1XDKMNUlCsAOOMNX0m6RAHkhIezgDGUYS3OFgKGk95uRLMnDpanPHJWzWGG+0ARnhfUx4fW6CkAN+qPJtA3SXXdfI/1riXS4iWN3YRa8pCGXXC4Jc7ddeG3m0Ik690NzNfJ67pqpg+58dkBDRvy+kDLYfH+gK4osKoqeFXo8jmPRtMqQEemtQRFkT5v7DcwdiZdZlaY7LN5xKRS1CgwqdMqOCZ1LUFSJBslJtnPA+n4PKIy9pQHUZvgcDyRqY6uUYynglQOjyCM/mCQXo/gwJvwlEbPkH4OTMRCP/f1CLt+UVEXJ2i6hcejpj24UxOjWZpojLBbmYBZbQaA1FkLTYnx5n9xhQJPSeDtMa1IrdjFXZPoM3mH5TgWJHSqxIDihGO3agt3NULh8g/Ak1mK0JoTBcVTXoi4S8rvlbjDaRD97K5CCeF1R8SBqSoXmad1N0XbL9Ywtw2Te6qC4PPVsAJXz5urrX4cgjF5rZhdEeGrh54FazkcV0zsVNeoRwCHbKzraSW2e3Mo+SxA6xhg8ZJWRIOAoJpwinowodKiAjV5fsnA5xpgmlIs5pbi56hEo0LiF29EEpZhEdFxbThz0iVzjFr9aRONUHfznrAKASE1uXMmteJNRshM4DQ8OihRkk5yGeFjrUGTQAAz1Pn0UrnWIGoyp1B7AFvclE6rQ1CATTyt2xlhOM2kUPoAk/05JfegCn4qSVvDxPm/6HlUqzwhk5IJPcAIz6dAwW4zKkiNoACacFa1T3nNzbxPId0DaC+ZnpGPY7QIah8UeL02oZS9YxnP4pvBgWnovS+46b1anDO8gFIBoGao/Qm4ur4FQ07rIvwUPA4604OVHXdHwrhO7xLaaFoDUdi4djTDRG3LFBCquwInOR9MsSgatrstSR/+jhLFvH1f7PPozvE8hm1gYzmbjrbIVKZlFIMqM4ekCCA7CaYV5yCUwiVHhiqqVAy8ou0z8eygts3KrfYYg8F1RD5Vo04siJ6SR21CRIMXXsRtKiJcgG+KI6SrEPLHmrLKNkXLDuR2pChR048MvRbTBIFnBqZ74wdsQzS0Tvvmj69lmj3SJ1Qbcpv5VNa1Hm0ppn2/u3U14mKCm0nVjv0x5lQ7VUOK8GPZzgWbcriDlHHdTI/RDo4OPRpDVeza4mh4VqsyGrLVqpoUxuUbdcvnSlj6bSXaBtVBRs/Cf0lQ72KRUmwhqZZoU1HcJRYTI1pp7NTJWFqk9xLiL6NQ22FaMyQ9qwwLJyC1VwDq10i0jiF+7o7aEB6qk1sOAfUnPh1DWgBxDM+oL8nEXOsw1/pUpuSOlvBWNwx8OPiYE8SmsmIBMPYKBrENphqYqWsWWg6PIByD/4u3LmGs8el5P/NKBEDrNcTqFh1QBI8uBwy8zIA00ujXF3q6cwbH3sfD01pDQJQPj8FJrRrcpOV3RhYIk0NIrCk5+NNIDhtrcSUCQAmv32kldo0tlHyuT+gMTvGSNl3xoSA04RSt0b8zlW2CTo/YGXz6cokQcnfwA9MiFJI0lUtKrrqs8fOs+9oi/Wpkj461SONp1bGvEgBBGrSHpVXdCgmZUnXtJpW8Z42Gt9tN8l085atl1V3oqRXKBWFRYuC4NrycsGGSpEsAuJHqflrZl2wSJQnT0HsCXrzMzKBFYLBNOE87umjJIEpwlcnHFWM7mgGwZAF/YMSFailo4IUqYxrx92jD7pQ7BZV7Ug9Pkh9E0282sL/o9Fhs5UTbO9/qfT6UKugyjKtr9nSLvNnOVGdBOypcNdPoqnWg/5Jv0od00fx8/z7ZJJVSC1HWewZvxGNay68/aQHMkAFhus/O6eOcogHIIsZ6m1OwUDkAmi3akKIVImU8kJdewCPj7MjjHdJSUZGe7yOoFAOiahvQfO5izzUmCO7jOgMWh0TROwCPiRR9c6RX+PUUioO+Xv2zAv6osCdf+M9AhcQWAINyadxnC7xiEVAsDh6B9qBhUmYcDy7pM7dmVu/4jD2RS1coBjZPZEpXsUv+40ZUdZNiV+jR2L1DFS51MluNePbEQDvarBSFQAHjQT1lNQNj8o7weIsbFFViQHLCyxyqLZRXAlEu/wCc9CuBJHOioHjKrwR271d4EcVLKn4/KxZP6Yu4FkWaL29EsvycL8XKdBcvXxS8lkCWwlt2YStnvI1iJ0WrT/w+Y291kKUKW7xQlIt8sTBonH7eeVgno8sl9ziCyMHdj6H2qfZFfhXE6ph8jE21l15mG1E8JAsxrFNqxZD7oCphcJfTK3WqPcxocawOZcTHVPtPu/FA+jCsHxnFkfuTXtLgfmVW8lT7F9nyWP2MjJ+p9rfjOcNh8Uonhh6vFAnD45VWqVPtT0aLo8UrEz6m2n92ey2H9R6NEHLf6fMP7jk6hU613xjsjdVrDLiYap852kOa92bIIPcYd11Fowh7htzRHmK2hrGwjTfgtKfAm7tJHY5hcGmMIYxGkIMRjEHFUw0cVMPjjV9o2JlsKKlMr0jTx2xdlTKsn+Gy6KEFFjM80ODqnWoPo5kdLYqRMDPV3nUrsjLdpC+inr//JF7EalgPM8sj9zJE1OCeRlDzVHsb3fRYPY6Ooan2uqM9rSEXVVGbV9vhkSwj6vCoowh3t3uY8RGkYvzxEdSCFK1kvlE842H57iH/vUPb546ib3mnKRMAkrT6pygynq3un9IHcf66WIm7Ill8r8ZFFy91tLh6rmmSlWzyrtS+iRJsbIRBsIXlcABspQlzesrdYaMh2gbA/ZBmJc1ZYYLG2jOaK0jLj821HaQZW0t5UfqHVpmxdhGTwvF7ial9OR1FJ2tsfQXNZhCeoJiPc+MkQZl4mJ3UxcqdzsR9iZnzArN1Aj2OF5dH8NLylI8n3W7KrqsV7diTFPspzPAFgCAf7zJAQtHRji7Z9vNaUVoHrym99exGuKHyGlUDdG9Zl9D9Wq5kStk1fbyDhpef8+V2Jc635SZf86dhiPzg4UOIlXUCkVh28HyGqVgAgDKbaVrTNnujxPLr5Zd8yXlfzMwKIbfPxQEtocTgeKXrFACq9CaZOEop6TnG5B2ZFqm6R0zGydgpDTCVrF2x5WsKRWAyPkB276iES4XwSckv4q+y8wyMAXm0nSkKtewjy3FJF7qYOAPmtVG9MVmlaLnshP2yxiDSjS9G1pAIHcUsimOIR7oFhtyuJJCPYVlkv4fl/p1Y5dljeZcbNywdSbF9STY7kCTJ0Vbx9LoEAJi+iimFH5iioendtkwzUZbNZBt9vI+zQSiTOThIM5QUdumDpkwA2NHqf1oD+45NlKxSx+ANfvHW3ExqhIbchLPEo8eWIWEOdLL5zqOoLBxAFoZeH4EUUCdoLAXqmhROJb74+Lr4YyOKemPNftcZ9oqPloeDNRAKtFIA0ClU3p7jMRofEnz6yiFpsRcTH3+Xm8PdRRd/PKXf8Gek9EwcBHp7SQpRDzzh0CfzjV2k3kKCF6kfDnrjg5c+FNGzOA/TsYcfZkVCYu1Ehh0HeyhDDojYOcziDTMwFUJC6xSGF6wbV8h3q9gBajz3pcS+GeVE5n6JZ8IJZ72tAGU+mx1glBrtlPR0Tz/fm4/bqaTO0YMejjOOOj0gKcb5N309UwqPf5JNHWmwcnYzMww7/riOWWrohIuuUhBQ0ttlalm+Yhkt38fYgkA05miAokwcWE55hLC3hbnmauADwSizsHBoKCswEGnahEAirQ0m5hs7RpHcoo7DIwgj+kGTHsGBN2Xvd/Tl94d/UeLvkdoQdi3jrSQfGtdiIHY5JEH0CRtp1fomlb9nGgXArEYk7KGILeCih1WKLoFBdyohVTKJOc5gDDBsgTeKIUX8scSphFHiSgPM4AtiY1hywNUJDbYpLzy8K/LvIvuUZt8vs6NJ7a+HucirIn1M9QhkyAB3cELsrK2cjPLxPSUGwLLrVd1ydCOe82KzU+5Qbq27fg+PhSx9PevEBNrwY2MLtG/SAjOM1lP0YyScBF6odSw25fHKDH4kjqFUAI/NaJZpZaSqYZS8FOUKgM+ohzVJ6kTB5KQTV+kKZps90jpG45XbIFC8RC+jqiPYbW2qxiDZMa2aSKp0ZI0E3YddEjSgHLYEcJFMviv+WARj6078I8W4DcGR2m8nDj6jI/M82YjHvEir7sXfY40xY6g98tlAFy01eFbA0SogNClNM62MFbCMs0UbZguC0qhZK02fOMg8mbwVgAwvAEuV4j/aS4UhcV8Pf/fgNOkXLaar7cKJ7kfukeCUH+I1fB5RGn8ZlKRNcEieWBhvjfpcCaokVgIXxCftOix2g3wqEjslgZ5y/5VZpnV1cRIehcNjn41/RE2rR/B+ejJJDf+NcN6T4APgNukb0cy2hMfslBeju6bQjzT16D3idWwnnDRaBYfdZM86dY0onyuB6beVaGFCxUSXzW8qo5RmfEe3ePyapRt/CU3zvpTFgETDh1Vfw2LTe3VlxUlxDNoE7L2GNpjmgKQ1qk3DiChsiT1Cb1cA/9HeseQ4kBnBgdptJnoyPipI0gZ9Cod3cMYc9Gn1iASxSQ/6arNs4jHIhsKu4rBCHVxSJOihyoTEH1r/Ew3FtU0st9dj8Aa/Efg8jRqhIXcKHq9x3Q0eaBGvMdxfQG3EI7kehNyxpXqyDcGjsNw+pKmEPOLzKV3VGWNfz8NdXlAdF/qijocn9aJxd3roVmRluklfxPtkk3wSL2JF3cAAcLJnsoJsu4UUNY2rVR53h0U6splXfxB4wZd++2ysN34JZYbNiBgaBfAFjDaZVlKuGkbJzFGuAOCMl6iTdIkCyBNI2QFfTnqvQcPncc1PLQuAoRH0vtb+tNoFzJoMbULRRGEeCUAr91K5bSIqW2KLrIkKxV0BQ5b8vJw26hoeHHndaiEVL/PHC8jtmEOs2u0aH4p8LcNEGyNRNjAkdzhY8Rgva3rrWTSDQkR1UitSFOmxjgXOjFGQgdErpKMPfojqhIfkqQx7ulaRxjxaFq9QjDjUMSoSHn4THuT0LNn/w3wtoonRK/zU0ni35bgb4lAVCw9KbYuQVin6zGMB6F1ukXd2mLwCs1sSP+f0gUlQp/B4BBuBokaHMRoO93Z8KMQ/tyJbvDLnz4n8EDpBVg5IqWWHjeRMrQIgltlG00ouYeMoOaaRMyBo4yWeZH2iAfV00tDG1R+Mo4b5LpfXON8rCkAiCf/e8lBYv/BBH24Sih5dzohz7IfTuPuPYinlI9ieBQMnPPt+OJkcasOCSUv7Q8jOJvCJFRlkNp9YXbSp/UM1xof3nVg/V52W/SIMUQAOdpmXt/xJLD30vlmeWkGBS2unaeW2Guto27lNrEGhG3OzN1WheHCdcIYrRY6+aZQUos/DSx5oQFQLQWM/hnyXe0iM6oWN+7qWoGjR5x0BGu3jvU2ct3eSI4vrI4rnpxnHLeI3L24Pg+Io4vQo4vMJxmV8dydI7zcea7Zy4mj2G4ND799Ea50Ve+Nu2TzYUW8frbRciLJMs8cb8ZjWkmta0pwSwu4Fi1h5ADT15O6Os0jasS7xR7h4Vefz+n5Myah39xNqL6xDGHpr/2IvKJpX+Jhky/xFFHdFJYyZkBN4IVArbBy3QCkzbFLE0CgAOBltMq38XDWMkqKjXAHAGS9XJ+kSBZATzthVYwhRH2OygqDhKjy0PACEHXpPsZtSB1HAaBe5FTnjQOS9lC+S0CExGJFo7QjlQtCR5PjOwZjsCA1ZoL1oiWb01d6uGZY5pkV+aY/aUeWV48kpTzKf5OeSrDzSHoQjyR/HkDtOOW+U3LbNehd3rctynm0Uz4uZtQk7xXMi7k6yiLe0RV/WskRd5OfCMD3CIm3C/u3quf6jng3NlsxJRDMrhLo+Fwd7hBLDhlq6QgEASW+PaTlAxS6KG8SYvMMyXu5HUSUGFE/JQxImDhEeG/AZpg2x0ljTNo6mDAnWx8Cg3YShLGYUOSDtsSuQ3k8WOOiNK+e5YKxXqtAKJwFtHE9UHey4TmqZFIi1lF7AtRPN8mJexhhdRcIiqlu/lLJbjmgouk5e15Wk+iCexaF3EjeENoCRAztauWHzOZZOAVDJaptpDTMg0ygjDQNfIKDGG3IQtYkEzgkPPCBzCGMPnM0SjoYRiKHMGIMQWjVEQqXdUKQnKTYwP6crUW7yTFA2LyA8CCQP5BbuESxqYrsYCKaEQzDWdiQt4u9lUCxhZ6UIq3ccj2CVj65TDFyeViZ6tIuRhoJM3pEZdSWQok0MNE4/9fycLwX3aIGZFUPjnssGjUiJUUZEBIUCwtLcHtN0kge7OE4SYvIOy+hDdFSVGFA8JQ9JH5lDPDbgo43JwdIiDsgx62NgcNBQvBETD4NFuhA34nHb3pvHDdQUbhCXKiPLL5LKDewgOTqFQCmnbSYWtwHTSKEb5wsE1IgxnKZNJHBOOZID5lCCOcpmCUdTSMfLjBLVSdUQCZWWsb0rKSIw88W2EHWecVtfgyEe2SvpVAkwXEFmngellh/alzL1CoJfZltNLezD5tFCv5E3MIBjpgFkjSKCdsLpgLzvSrWOtB1OZfOzNw4oBwAjsRv42TWnVzEAOmltQksJFPZ4nrTS+ikpxYe8WHPzASMr6Ed7XCwHai4xsP8kKxTCfZLbY2LBvm8XKcojTN5hGTGgE1SJAcUTCeGSWaTYLdH7CdpyAVC0NqDaT5gGlAocn4F6JwVmiW8MeDvMOFDAdiD2grSjdJubH73gTFEpLMiU+qYUf2AaB7zK50pa+m0l5ONCX7OUdFAHYfcEQX15hpNijUlhMGnUMTRKjY1Ew61WzAiQfJM+PtndqKLhxPHbMNmBWFderPvbDfoExaqhLaY1aOmb1WayZES25J5huCtkYrvYcSsiILbbVvRhzciwSb0ISOEJgtK4z1xoNYkGt4kPpWvT7AI2yGiAYMVjiUC4tGgwRNUJi0W0HSYbq2urmO6wx+IViqPwhRpFwsPvNDxh49QbXFAjYmO836DbFIEmhhCSx5ccynZEiNVyS5GG2RX9aDDJGkIHGDXzQu/YkBh5WM2NziMJyPe32+eqUWk3lO5pvcw+HoQzL6XyMs3YVybsnGK/niml73miYepOFOs0a355L5LlKs2474yTJUD40zBzwEgvP2xqyNYrAFrZbTWtEYvOPMrQhcAbGMDxRjUMjSKCdsLjHJ1JhCMRZtYBMDUcjSCUHeN4BL1KIqLV7pgEIC0aaLsPh75LyrT8kBd3RZKVVRntFa6MvMFOHARuiiSOQ7bULKyPHqZkgI4wrH2nlXiQbKVkIVxBo+kO8ZIVW/XG0gUmnMbon5K+7xtLRDwqwwx2xmvW1koYn9Sm9Th3EyAWygfHPqldKVr1eceIfelTXugzebKEKLjvqcCc3rN/Or6rUv2XvMluWJJJlGaub1CQfcVT9YoZWJk6BvcwzLadcn4Jm8pPL41yRtIRxpJbkrUbCfhPM7Ps2WobXiUR0eKrrIMxrSR1tSBZpUb1uEmlpk0pSvVZx4h65SyRVV6pShmG/QZu/ZoasKXA1gibw1eOJp+tajtuV9FXILW3aASPpOOc59tsU7wOHCwYpJg7TkeAfdQw6REzIyLqFhzuxLab8iCgayI/+dfyRwL2WJJ8o1aRwXyaSf1lVor68pfW1lSUt9tG4bu8ZhoyiUyTHGUIQFTNODLg9Ec3zWUbU3EhURphBO992GgXN4M8yYjasZAfUHXsUVAd9a0Qnl5xkXya4ZT0fjGRPw5+4793zNQuMoyn/B6y3q6rF1GU9UGNikSYHkvmieHBuiPBDcZBpYy5HtbX4p/usbM2atfBsEFRLPIr0F3DDsYMnPsyyjH3np4I+z5j1iXmdAFZu+AgJ7fhlHP2vpH8tB2REBHkY5kNI+gVHdgnmsJ3rbRa7uvLiJPK95Uw5ji8XuWmuo/LhBYmKnceBq1g5cLHSHdQclSMO1pS2ouizoFpjN7idvtt+K5TRUgUOKtaRNp72tXqtdyI9dcyebTbeSHzx6lWWQHwlJ5EEaJKSRcA0th5Fcq+cYOoxMmO3SNdKMhre3rKN0L/Tb9wkCFjFL0i/hCGpNlo4Hxiwxj4PjwbdKMX6xEhzrxljq3NaGCOqhcX62g7TnkqSrFyoDvXXOUXBeqj9OUaxeLD+zQ9uflCRgpz5KSkUYGVqEM9afzJumznCHIbueVJcy15xAsfTcbYZjDohZAB+8C0LozkWDMCpE/qQslGWXp2DpNDaIaghEFWIzn4zjVcjwDwwqt4WulxozklCe4TOkNU1F2QOg1CoWjCWeh1Upa/58XyRpRicyP+uRUl5x0jGjv43CXAyXryklZy4McvWUoFgCevfabl9EDbSC+zGhiDwTXiK61EdWJB9NQ8Kt+JBvWb0xqnGE2IhdpJjUhuy7wtvxa3ecUhChFD6OzRcYAJFhEck4wKPFu+pAtxW29ipidMGBNUoUd6Tl2ipQRPzynaBOiylKqfVgYkWUTJe2ByL6iLOhzE9QiLtAknMq0V9xIW8IaXKPWY8ppNYBoBKOSgfAAQgXoJhkGgBihlt1yxkceNqpyIyvdr0ScXTGqEA9VJhU9G6KSFTQtoxZsI0CsQDk6Tj5F1+9yIVcI8CEhh1sNM5uNDzlBqpJyNplUwZNKaZopOr2MZ3QHq2IKgdARjCpM+cZA5ef95fyMWqXhOK5n6Ex8q6VhGGbJK2mEGryMMieVADYWL5UBdTGHAsdkkiyexZJ/lNzGCEO3wsJyiqbTwbpGoUQgAEptiYuG6axUpVGtZvKIxbng26hIegRMOyx/F6vlO/MFZ2NCzQKjbU3PwhpQQHG9mXQLgzVzl0/J1B3soXg4ido60qD4N0yIkuibsx/5WFZDLB9gbkQ/p45Z9uypfFIRGkxQOSi00Co5hex0DINy+SaflV412UvwtR0h05Ef12zbajQHtp+znSbe0sqTEx/ige1sdzod56iRxLn61wgCpm4zh+lejdX9Pm3eZzvPVdo1chMaU46KveJrC5VoCdLRGRPud2dv99By47sfQd+C6pGhmEh2vR326+Pq8TDbiY1pu8uL1ciPWnFEFiR3sPwAnK77QSg6fPbH0CoFqVhNNbGQA2UYaDRgYgyE2bqZP1CgWSiec0X/KF8nq7LEQYl0JvFg1/6kbluFcGTIgvGrZOaDl6BAcvxbKBYCyRbNNy+vqDaS4XhJ3BDxH9cQstaJi+CR9Mml6hcYeA7mTnknh2RUX+1OeO2nNKhZP6Yuo/81cP6Kx69Hf5eQD31hyJJ9N1SsYcKlNNMWco2cbPd3QMwZD7AjyC7NGsVA6+ayibw89oUA4w2HzBDIIgknR0H0qecOdKDcDcwdchAnxMrct6g0aRPXNNN0C45jWZNPNJzr2cXMKHXNwJI8mvzBpFRO9J5JndG3i5hpa7vCYPZm8w2hWVNSfTP5hs4CCsRoRbzVJh5YY1zePY3GE0iQTzid4SyEwk3dkjidfiL3MgTfAJPMD5qKGhss/Bk8n/kdfsDC04bTi/bttmWaiLG0CPs6rxbTMxga1ocw4/pWmVCiA0pplglG/Yxg57Ou4AuAzfuQ3qRMFk1OP/V1jyMFfyxYCidOP/0Z74mB58hlA9/Wcd0mZlh/y4q5IsrIqiH3RyQCZ2n5AEcfuH5Y6xvHjw5QN1TOGNfsEMxKSweRMhStthP0lfsZjq+ao+sjUMySakeTMiS1ujD1j+hmYtZ3j6lsnlrGd59tsU7y6SNQMooi9qiNlYGcyaTSGGEPUMU4nIDbp5HOvrp2WKZdWSHTkjy2vMmo3BrSfVhbVs80yedJLiY/xU8uQzOaNopecWD5U/3UjyudKcn2HhIu8iCiS2INAaQN7ElXDMcQOpq5x+gizySefP8H2WuZRRmGj6yljy6/IWo6pd5xWvqWx0TLvMksbX584tXyMbuaoetWJ5WdXL6Io08enjYvMzCiM2Kt6cgb2J7NWY4gxZC3j9AZy004+9+pbapl1IWJG0QvGlmMR9BsH8k8rr1Kss8yoMDnjwPup5U8UA0fSY04sZ7oRj2kts6aqK2FY0mSWRuw/fUEDOxBBrzHEDbqacToDvXknnzkpplqmTpickfSFsWVPFAVHgv/Typ9U8ywTKFTQWFB/ajkUycKx9JuTyKJsTrbp+dB+YXVOAykrnp8fx0k2czNMNIPhnWCDODzicByZRuwTa1ilTy57YJ5UA1l8Iu40onz0k2lou00rcv+aJyubyK3n0+J3z8LGL1JWHL9pVigUEs3NMMHIfTCKHLkhDo84jB+5MVWCY2/qkftoCDlygyw+ETf9yI3aEh6zk4/cH5Nsmb+I4q5I7UI4QYAW0QovG9qU0uP4VoZmoWDLaKoJxnvVOnLgR1mDojd+TkDSKR5ip54lABaR0wWcNyxOp59J0IyKiPTJ5xaX2UYUD8nC6n5aA7MW7R0+NtJNpcbxyUStQmGV2DQTzCG6lpHzBy1bEJTGzxmM+sRB5tRzhZ415DxBzxcGj9PPDcwGRUL09HOCTSWmkrLY2OyMNHHr8d1h5APcVG4kv0tUKxhYic0zxcygaxo9NdDyBcLqCLIDo0KR8Dn5/KBnDj1B0DOGQuUJ5Ahmi2Lh+oSyhDuxfl4lG7spBKIUAuZlAQOwb9Ajtn+mqRce1bTmm3RW0THRIrvQ8UfC9piyDpNikfF8OllI1yyLbEQrIBaKTylLMVoWux+cUtYyLFuxzlIGYn+kWcnYspETzkJssw+LrMMBVkeVZYwnuzixrMI6m7DJIlyg8qSyhhFlC6eSJVTa1b3MbgEEZUYQLvFZABwvNZbvJWkVDqikpplkfiBbxkgPNGxBUDqG3MCgTxxkTj8z6FjDSAx0fGHweApZgcmgSIg+nZzAbuIAZTaj2zLpxUuN7HPHMmlAapop5wTcKQMNWxCUjigniD9dYGiIaeYE7MkCHV8YPJ5QTjCCiQJTW04tJ7h9LTdifZ5sxGNepKLkJwZmCQjO+8wWYCeUH8sP01ULB2B6c00yY1DMY6QNGG9gDI8hi6AoFRG3088nVJMYSQXKHBqtp5BjkKyKifeTyTbsFiUwXiPeLSfX0DLj+uWxLEhQmmXCmQR3OQLmCoDP8WQM8Zci8EaYZJbAXojQsIVA4ulkAyNYhDC047QygPYxjos/NlVpNssQZn4tvvusbIwTyo7jd+mKhUItvZkmmBkoxpGzA4wzIG7jZwoUlaJhdeoZg2oQOWtAWUMidPoZBMmmeBiffiYhafI1S602OtJk6HEPsPOxT9Mhkp9mKRcMzaxmm2KGARlIzzIM3BHwPIKMg6hWVAxPPvMAjaJnHyb2GMg9gUyEaldc7E8+I7lOXteVuA+F+KfIFq820xskEdpeAHCzOwFNgzg+nKVbKDCzmmyCuQhkHzkVMTAHR3L8PISoVUz0Tj0LAW0iJyEm7vCYnX4GQjUrKupPJf/4nC+F1SMbZn4T9g+stsDHyo7qrwmKBQYvoZmmm20cjeOmGiBnQNyOJsNAVYqG1RPJLSSDuIkFzBoSoSeTT+A2xcP49DOJIl2IG/G4XTWfrJIJigg96lVuPvBJGkTy0RzdggGZ02RTzC0A++jpBc4cHMkjyDNoWsVE7+SzDcgmesJh4A6P2RPIPIhmRUX9CeQf+WJbiDqtuq2EbcSj3WoKVQzSE0AJFr2BqkksX87ULxy+mU04ybwEtpGRmxgFREP4GPIUsmaxUT39fEVjFyNnMUuIh+VTyF/opkXvDdPPYyqdn5JSfMiLtVUCY+TX94UeK78TmMuO5M/JigUDMLmZppid9I2jpyUIZ0DcjiADIagUDauTzzkUg+jJBsYaEqEnkFdQbIqH8clnEjfiMS03orDJInBeLc5lNjbGDWXG8cM0pUKhlNYsE8wYOoaRswUdVwB8xs8QTOpEweTUM4OuMeSsQMsWAonTzwSM9sTB8glkAO0ST71pdWt7voQoBEE6wG8BeZoWsXwxS7twcGY13STzBshCRgJhYI+C6jHkFkS94iJ5+tkGaBUj7TDxx8HvKWQkVMMi94DJ5yi3IivTTfoi3iebxCY/IQjQ9gKFl90DKKXH8eEMzUJhmNFUE8xFVOvIeQjKGhS98XMPkk7xEDv1nAOwiJxv4LxhcTr9HINmVESkn05ucS2KMs+S1eAcwyzI3Av6Mux7A0GbyD6crmFwnNObcsq5iGIlPyfBRERF+4hyFYpu8RF+MrmLahk/h0FlxMX1CeU2JONG0DMmn+vciWKdZs3P70WyXKWZsMl0yGK0PUQjgd0/6JrE8f1s/UKhnN2EE8xvdDaSsxuCgGgIj5/XMDSLjeqp5zRau8gZDUVCPCxPP5fhmBa9N0w5j7HcsMrfq2q7+WpsO1RHszn1FPelsrekcnajOkFg1DxhBNtPT2XnaceOndyFKGlAO9JzcQZiwVwKgLT9g2Nfy+TRBGdGvbiYvh84c+9kumfU8/XjnKo/+Vn6YRP01nPznvEcNSKNbTL+JOfh9UYRAheFeRBqDSGNVD4S39yFtjvxx4YRxWByqKpqSk5f1kgmdl5HPRdXIkBXxet3WpGlsYUSRPqEzuBkEQVcAimOt9fV5jgd+0XFs3mteDYVhyh2evwt3eRl/WPT6ottucnXSZblm4b/X6uGO18144Hyrz9tiq1QoFULvRWbnbiz5Utah4M37QcJAu0XAEeQgMprb7Qy2o8GOTXiIDVaJBqY6xhRXzcjyjLNHttRUdFUyE36+LSB5BpYBhTJK81Y0OWmbu0iWYBmHL8yBJ09FqK5l+di1fyngQsqXMNhwgaxHIjOKHz3fvZuyz0ktktBqB9phAxXR2cIbTK+WDxVaUw9FdwWr5rdp6BJrBKjNF+C9SgTUMXdiXJjVrJLRZSsa+7jZwZoCc0DkhqLqJ9PLbL69MYhOVaFK0RGse+K/LvIPqXZ98uMVATKQCxOLehGPOcF6DpwDpZ9l1U4Kh4Ss10HQkLDo0KlzyRXfZP/rvPL1SeSCB2cjwMdukkXfzyl31KNR+9TkT0X5rSMQuTlJUhQdxXQIKzqiQ/pIySm/UIRsKl6cjsI1Mg5EgxJEESybO74ZyYJe7YhRVdJaZX7pY9ZHfRsFYGFUNXaiGaVtk7UyhxMwEBCWp8T5XPVeOm3lbbfSCQElFdq1Ek4DPPdRwKy1uttli60QO8QmKPHIs/y9etvIgFrT/psFPVrnqxuqzx+CwmSPxLk6ESQmHWebv/NKORjki3zFzih33+jt3drtiYMdGi4Mr8+L5MNRXBLSBevz6glArq4yvfWD6oiqQ9AyPL4NZfJ69c0LKHawZdCRO1m9UWiYJg7fheJOdbdJeX3KuGBBO0+kURo2+Pwkd0GpCo7EPLF57Avhh9a5gyYzBDVENN7gbZuuhQMgZra6BAYxd2k5XdISv27eRS7Sb6Lp3y1hJ2l9Jk0g/Il36QPSGzr0zDbuHLbL6n4HU1VcA67AjsDW37pMLudKpaZpK0sOyUPIwi+TiqrpQryj3w1KqAu371CImzV2Xdpfo0orHYq7CILX4E+o13xX2uMDWwTjQRLL0If/nD47ZTpHK39JF7Eiq8QIsOo1Kf0QZy/LlbirkgW36t6vnipjIKKhinNgabMuxtIRU2QgvHvdlMCtK+sbEOXAfdpzGHtsqrB7UqcN0sdyAQFSGgeDu6oxfJr+qVqKnBEeKS5rGnMc2PbqqtUXl1XCfJ3M173Hlk7qJAJyPA/r2/kzwsYARARUS6SpUkEdHHaHO34ndfl1W5q7OEqi7m/9c/qgx1NvXXBlGxCVwyB2Sd8eRR5uv1OrJ8rCXrQgZScAsyCOVMNd0UKz3p0CHjidCoqRGbP+Fy3RT3Xni21nrFHYxQKPHcOyQUfsKeJ/pxWnW+TZ5jcAw1Z6P5FVUzo8V1ck1D1pTRQLvT2nVE0+IAJLF7zRI2piN6V5qBs5WJ6ch9DfHGHhCNS649lCvP0CXw4BpxM0R1/Yk28v0vKtKyqsMqasvJBFG1vM8+1w3zMwntT3dSyQTZm0ef5tmqWV2qRHfIBaxt1TlzW0HqvmWAlsjJVOPBS7e0xDFzN4S/dEJxmWf6eF8sKB6Ia5FSxvAR7NERHGRS0++CwwUCHxjwIaPf81CzY3gyVyix4s0kWT2Kpb9ouhTnWi9VzvSUMDPG7b0Yhf6uidWdk1Wzzekgft/rdQCYeWqHn+Wq7zmiFAbTmQj5dtMseHyvE5sXrpWaFGaIzj3frE5LU/UFaYmIxxp04MBlDtmETjZ6UUwZaO4w9NQ2DaYiqENHE2gZdMrONGsYYaOKxKZQc86m8NkoQ4qGZy6ZgSmQksNGLRnFMHl431NgSeIeAJo40pIQpaQUYJ4hUKqJgY9YPkHFFmyYaEHJ2UcQiGKINK4kqFVOwQWXOboIdC2H2T0vJKcFQJYzZu4aDMoMCEhLFExfKtcS0YohTNjpaViHoPAtISBRPm3HR0VILIc+9YPTEwgizMCAhTbx8SlsrunsKnCaWOBWMPSZAKYg0la27RZhVQP/Mn7kg9bQhpUDG7BN+A49p8F75oCar2S0D6vebwZSE5QAcWixUsZrBvgV0Q25wuC2djSJNwtRZK3Bo840kxzwvoxHS0awxbH+kji3rcI7vUDmUQ0w/u9Rgf+pP0mB3BqvXBD9324DQPtBQndYoRE59PdAEQNVPOuJkU1boipbPlVKrWHsW1WwwdDrVfbVC51VDVah8aodYn7qD9mZDgVP27msTOEovFcI99sev5mMJ9/vvYqkpTK1xBre+XuhCoHboHMpEap9RSpSG6B6RlHQ8nipV69/MpK8QIy9U28pRT6TGzQWgFe3EiXQnkomRz8iE9HETL+hK8OluZgE+fXKvcFN8Q8jpFpqi2oDKCxTKOhuY7hWFIbeKMWA+DuGDnWf3JC/qPzHZQO2ZFnGs4dduHr/vHS3Wwg8kN2IE4kLgdzgJbkYfKBn0hFjbDK4+jivUslCN5bhBflXG8IG7omkeECCm2kbzfvw6C5XFqyutLOQZGI3W4vxIjWJrwxYFBa5iGiy1LDxraRAdVKExA3VXcWKw7jAxg2rHcg9BuyNfH7jR3RH2MKVPQKEMZvzQp5s6mzoIyAw/uSQVTOzajKkkmMNZTUXtu80sOLXP1sTcvlRb6KOP1nKRvuls9kcuWxp5m6rsSEo17MDhtLqOUtG5BOe5NHpD0H379fD3VZE+pmDssBGjrxoLaVBjmK5LQhrHRgOg4cylWjeZ7pKle91nfbPxRZkqji1R33zI9VPG9uOrAbQhD0UW7Ylcb65ZY2SnEoTbz3urhubQSLjN3EN0BO/LxqqJljugF2nbV02glGF35dj9cb0crpAODa6+TKqriPYCNEM9dAQBdaCt0QH10LnJTV8VMpnZCIl6cIXIssB4L19U56xayP4FJjabRfYu5IoK7lvqQgmupU9mtoTgWMi1Emwk0r820NSzDBxYMowxwpk2cPMhmm6jJfjvhe1JGVon1NLq7dOxQHV3uEoRqS+tPI+A25Vp6H8AldEMQ+9jVEigvrcvrXNDpr4utK8GgiZALwRa1gb0zp8kqncDqItqOV7RSe5LKAtqI8apqbrOHaN4DaLS/YJLKtrc3TTEVNvMnc+uzgJ1xQ7Ge3fEqtWFUOvt0jNBhjEqDBEMtITr3kq4jMzo4dgy8PSJI4q5o1a63MluVy2sRACvyr4K+P46qd+fYLYXLsuqylCRzPbT3h1m15q4apqRMBdanjplW3GtbradsiNjWH+QRUXrlB0lWM3nsNW6V2azTiUYWY3VY5KANI1yJ7i5MYyleZ4JUFUgzAvgTFybCXMGTuo2RiKlU96QUWnYiBkQzM1OhdgF6N2FofFsZ7GOB/0Zs34ok2FWCuPVznd1LvM3zXuhJfieFZQKp8wOasjpFlJmC21rL1Zv7ypM6OcdBkYHlPkc9+2OaE2vxhrGahZ2dyL/vn5FIs+ut99W6eLwNAU0CYsxYDOkCB88BXt8PQOdecXkghOvOrlWcx3S0xv30pse0EwHTIrNR4Ac8CxH940QdJYDlhq2qoiTazgL1Uji5JplFQaeXJOLNk6u6Yipthkn1yzrLNg8t1yo5DppiOszUK3r8Tmtub5sj7UnPQVE6684g95ClA+qve4bRkjd4ZID1Z2hl+pIaVYZeqhVTQVbAd7Hnq6WWNLRoaRkBTKDkzSjIxDalYfU+LBKIm26Q+lJ9pG2z/GrjbQdzssWuPr2s3v5OTK11vokeot6lFDd7J4zQ6qlLwSoCeT5NLsaoG8CRKhxk+ibAKUb6wzVFH4T4KFUg98G6QjGGDw2s2oC+eoDYnU7ALsEBOjr9v4xeo9u15+2Cm0NJ3cbdpehdxdCnQTvJpQuwugelK5BqIaAXWLnv9GBP0iHm9An11UGHCDM4nyP9aVCyV1HS0+yjdyNeFUWvEftyiX0K4CSZBKhj/HqKFB3+//Ze7fntpGkT/Rf6ein3RN7xtPdM3HOTvQ8yLLU1ozd1ifRvd/3pIDJEoUwCbABULb2xP7vBwUQJFDXzLoBoOql2yIqsyqzfnmpe3fXrNrYBKXkQvCFRRrpvQ2rUIiAl28rO1YJsjFFaYBUIPtCaiqocR1r1ZiWsBxAGI1ZIVUT2qZuk6JKl+kuycTHGsUFAYL0yzvQy4BdiKmJg4/rCpGV0vtAyACDZTm1cih+enYaMiJXVOLbccnbIHNeGgoTcWVOzJU6fTs0tmZQENATwUUFhQQ7bQaNEGzlmkChKg6XUBM27NQXeh63//S8ER6lpGCZZRwAyj3edQzXsLS24NrGgVVAhJUZB1xz3Y6KYd32cQAVWl7NFnF3ig28DfyUXshEUC1mSGggKw9iUieLGhLWqvxJ2W02aoXP7+tIAJLDZ/rZh0Egeg0/5z+sGupMEbP/UhqnOgu+cMs86AKyYO0FQkIKt/YqWzlQa95SVcPLddS6GpSFidYncaStAcsQl2+eKv9XnmbVR7rvpR7tb0AbEsUkEEmFlE50KOYcbICNDAhmwQAZCKCqGycAgJ0/1vGDnT5UP8GdPTgbRmfA8KwXrJzRslv54UWuDEQQ+WFDtE7khwM9OZ/jLh61Nk7FIFKcLkpzoZMTt1C7kfrIa5+6eUcek/2mqj/Qt9l0hxeENHJRdaS6IwyAp3y0VWjsj5bxo1lQ9IOQYYQHRUNrFQeNjnz1miipJsDIqYma1noc4bzSoWJNNNVQoGTURFd7JQaOtnwL4MaNtmdvJhzSahs//I5syJquTelGokBKmLByBjqtCgODST0hhq6Hfd/3VUGS7WG7c/ciaq7a+C+jkEutJlQcA6AvjW5B5wBkvL2/RTSsv7kjDaVGjgIqKkvoUo0c78BqxJzekZJAhcWc4EFrcoxDPIeqYcd4BIWhssGO8qBVFijDYSplHDNAYywFWD42BrjUHct7hKFMUy96JCOhQoRS9DjGIFyPNoppakcMYrjyCCERQxgDFY4wgGnrRYxfeAKMgIjRi4n+Ao9dFkn59Y48HldXhAk4X0guEVdWpKRDIbVueE6KxNmHLuQjEklJuCzyEYeRagIOLMRVf9pVn/bCsKosj5WwJXOstgPTkMoDxU95Yb2EoGiJ0lnQ2NhVqgmJomJ6STQBEKWVQOHuWF1dUa1+SDqrIwHIJqa015mEb6BktmuGfGWMKaGXSL4qhlKMfEVMxsZQ/PYZJrATkhVXSyShkmkJ8IqUiqtn42urBbgjviBEHoBLQuknoFs6VChfLeQLgSSQrwfitRF24e9UsdrFDMpA5FC7GZRK1K7Gab7TvZXceDC1LrpCEAk6p+lCGx0vv56XC3hyeMiKIgaScrBYjlDl0Akx9WS4kq4ihctuuKJ+JMVpeuSV9VMT2mgCV/GhPFbSlsyrMg9VjIpd5DSf6X4FIW0A5Qaf+qNNMnQIYkqE3EIGICXnuptsgXWFVjQWvSwNUmAsds3UOhZyG7OhLYA7gqY01jIbIX2aflMBwKsK+8eZJnGJgFHs9x7ug686faYvOIBy0LYkIlNsCDxkoC1f3XztYdTnbCwjbkZ/iy9Uhz0arNQnUl967dWg2prtWrv9PdC9K2Vr7rrd2kxpubxyIkd7txmmo6gPMT7S0gCkRoyIhjRArY4wBmLqlg9+xAXBQsmHOxaakg9w/ByqAA1pFKWRgumPK5mqLNzBJfh4RUcCERE8QhmQQBUYfEwyrBqMO/goRErjVGfBMaccaYiKgc1HNrawsEjZaEKtbnv9AAMlLjZ6CIe+jewuLb/CPJSkpFwSMYFIP7SkWisSXr4Vo3E6XBmNABoXA1RDIIfS1AV4uEJYTiMC4JkKoDICPkrRS//btinHKk0R0FiClnQzKmk4CTQg1KWBBu6r5Ct5yjcr6M2fagK5TEo6ka56BGptqTl7RE+/Yo1bkRWFSaVxMkaaCn7gf9hKlaENSkKspE/gxOwGDAXaUWncSkmn9WqVgo6lILJ0hZ0o5sjM71r7qcIah+1ms8OEmEotTFmIPEMSJypiWIacRqJG+3tepY/d+07yh35FmsSQyzWB4CLSN0uuVjumsuAPIXONO53KA6m/VxyhgROVB/X2mHs/dSioXHFzk6I0Sj7FfU3Wugt1Y5Og6t7KClB7fQqUlD1CL1rs8w+x659rAihPBlAhpAZlzJaaDZo7c7X3/7gjy3SXSjbXASkRggsZeFCwuJ6QStaMUpTlEYJqxiuWagw0cuHr1ZxRVBNgBNScUbTVX/DbzPrL+s+keE7Jt4ti+ZQ+k1tSpPnqjiSrj/mKbJT3naG5qLJ1LDPx0ADMRTd4QDdHu33iwEXeAlc9Kc+hjbsVwRKpVDhncIcDWBr0PqKh04FCczPJY7Ikxj0v54DUn5QRuF95DgbdKG/GdHqtnbDofTDuPT0npPq0DOG9WYm4GPSovknT6dnTwqOxPUo5YA1BxgjRgywHE3uUNmM6vXaYRzXuMxk9UlUSNuD+YukNekvWhOn01alputEBhhypJjEXcEfZ9JCk6rFGFc0WWDeRTMMIHTXU/MCdJWVkFMo0jZqQndVS1KXTdUYvvTPuVg0bLPiV3OD2J2ZjYo3qBk2nO+9JVqZVPbqlw5wP5JlsjLsUwAqpRT1HcNcqWBl0L6Bh0+niU9NaZbUtMoiMA3Lj8NTnEjgyDqoOsWAxCMXoo5XGRyrxRynhB1zCLk58SB/J5ctyQxZFsvxaB8mrZ2pcn3a0WLIZXL6sepXAiI9cISbsRF0g5qPuDKO6A6SBmna1u3PfNzt1dBm6KStjpck4BuozafXjdZvMP6mKo+WXeSaHKg55DBRzptvgLDfmDDfCnwdaxLuvyn61NyvShmGdLwDRqTZa6smFOznLXECXag6ngGoL/JDCg+wNP74QEDGyd/sMASh7tK9fyNW7fZ9v6kxwvyGX+7LKt6jMDEqqWP+FcRAuNItINavNwNo82nxXNVl9vvm9zsBhigZQyaXWE4vU26NKKZVas4A6QipVE3WU5RFCaqKPpQoDRSGu3s+pwEpAahRTIkQWMvCgWnE9IiWDnIwzr6vbAqUlwvo+3WYoVz421LYoceW6vVF6KrS8ul1SzhQ70srGw1uyybN1uchVs2a9UvoZqlNh1RwYbLarxyuAUt7uyzQjZQl/mFxDIRdQTShSXJ9CrTwNb492O6hZ4wSlZYGCaVyeobqCnVjr8N2rXG2B/YIQw+lL5cAO++wEilGq20ZBohdNFWoSFAdIx1M5UJmAaagXW49tuKmOm8Ouvj+lX6TH2xTlAaIKyBwoUMRVuLQhkNGdCoHXsEhLAwQFXr6CUl7gK1cOtWpvWxGUAwijvWMFpZrQPh66awe7Pwe8Eweql7FyUP1qPHyVHbB6DlSHfrXbqRI0T49zpQASaB4eR2kj/LPjvF+H+mIAnUpiPblYn9owhK/Hq3vi6td6byUFSlStR7dWZigv39ULHzTqSBRiqimFmuyTaJSo4R5MizocSgtDZdOhz1RnwTKLY7UPx39pLLZXEGRGp/Ia+wQbZo+jKKYqdW6pJGzcMA0Y6EgBV95YsQERFPDRABEG4JoawQj1Gb6kLFAibZ5voqbA2f7bIv9Ksg9p9vUmO7Wi/fWYN34q0nUqVCGGXDHXB+cinFQUkWtmFxE1qic33HUCn67fkV1eVIdmHWukrRbOF5mw0akIxU3eOTI2kF7CNUE0CwrCh8lT5WzLYCENQiZXCoBa+HK5djCIrsXnI/Bc9ZqApybAyKkJftZ6DDzP1V6Wg5uvl9LoZyRkpNqN94h99lOYw28b0v2lV+axJFTG4xSPS8UdmQaaPrtMKrLOi7TuINSEvZJOL6yKXKXPEx1Ip8pqAph2r37gDL+EAiUqcNbfXJejOEhRs6E23aPBGmJPbB923mOvsHh5V1mrFWX1MhKo1ChbR+t0FBNvq/6YpJnq+khFaah0fSKnahswVl4c6fww3LAhQBfJF4ZKCnSMaA2O4g9RdxoYXWGAu7EApbAx7yOArRiyRaGigdYO0QobYxVxWD/k4TAlBVxUyANixnqEPCTWPzHs/DGxljnqLTE1iV521EtiPRKYZkd5R6xfteoZMUE5qESqR8QMlaR6QsxTaAW+IiYrjJNMG1oNNRYstNImIK1STAGQT0ioVF6ufwlLyTuUAqFoY8sCBYNiDaeu0EjTPBvGlYJaTCOMSxNsGCpcllDP1pqBRUNUAHQe88KOMfkbZgAzICIiaLIkoHWajIn460KjUAn2J9H7XOEbkiBkcmUAqIXH0FkyzflzQC0+z/hz1eseY1ISYOTUPcxkq8dRRv1cM5AuAHgMRkLpz/xl52P0vWSt0vbSWL0eD+Wg4rXFnWrswDL0mPUQ8simna+5LvJtrzahEaspFFamJBSa8YBCY8Nq7iGGZUwTYGFGRwOWGBZgzDUaNrQM69bFFXlpsHi6iGKuuFA37gxr7f6h3AurpQELyZE6ViLP3//GMKYJixznGYflwZIOyBxrccg7hE/sqr4uyJ97ki1f4Bk4lFQuPZCD8MlcEala19DafL4zLGyC7uVlLRFWZt3bzK50O45nbWzj2BCAI2AIwNY6pHPsChjmopeOQd1klKIfl6S772Q19DuifF1HpMq0NbTiTF76piKSeeh19471gmx3dRdiTmFBaSHqULNQq7xPC1W/pj6vw3hhG7RT5VoqtNja6XNnCg42Q3K0LrYZGi/BFQeZMEvlyDNwbJU+Qdk5dvg0cQUWLsDE9DGIHNPUcSZuZNo4k8YqbkQTlk5uiovibEw6mWlutpIZTI3y7ZSlfCNbqTsVJUhuBQNHmlXVEPy98F67oEc1VAQgBUAPaaA1O+LxjPdJtsqfSbEo0mQDDzUQMrnoAGqRZjkytYIhtXj0oXz1msijJsDIqYk/1noMFIX4itUmriyPkU9t4NbqU5v5oLxzNT6c3I5Whf2yQPl6JFrVIdTWZ6uM6e71hXeH5q7QwA1ilDie+0O5PhO3h3J5GJ2FT7iRQz3DYR52iAfOZUYa2sGHdeghHXw4B1ZSIFS1r9fQvDFbwXM7AJVcSD2x8F0KhkqtSEAdIZWqe1NGVR4hpO5tGTsVjoVIdUanKo4QTp3PWWpOnc25TU36LkR73kxcFOaftCfN8C4v+BmzY9WqeznZQiBZVHdzohWjup/TJXZukxf60ildGsQt6sMI5bKC6EXKFBCqtQqryaN7EzVAEx50JDhpNUHCiUYDhQpR1epooaHASamOGU4UGTJyHOr/mG5IWeUZ0cwDqIprhRRRKZR4LA7SoJB5ePVhPKeKCiEvxmea6nQMb3mqHeYqxeURQsKcpKkKw7rH5tlkdCxXUelFlROr1NlRwdSpqCOkUoGIFJZHCAlEpKEKx0IkKFoLiyOEA8VpU80FjdBFuiR3ZL1vt/AhbBpEqJAaQi9ULk+o0S+oJp8QFTRAZ+IaEpy0OkN3odFQ5i6oWmPxagqclBq7d6HIsNafL/cFoe7nnm6TIGvMCB1MrFIAkIdY3UJincqhNXpFsbgRWq+gJ8NLrvUODrUcfmFL0BLdnJyAAjanxhO6mq0TcBaoD9pVJoitxXhKSnKdF1uEi9BTKTCkJRbClaHS4FRfh083wNaus39VeYSQOou3U+EINt5rgs64+0VhttejcGXOfZYiO9Z1gJ26NFffCcqBpNJceofW0hjX3fUqP94R118jokfqtVqTUwLlljJwpll5DZpFMlrGrapRl+DpiCDioy7CGxBBFTzKZXjDylXX4QlLwuVSXYlnoS7VtXh+VrOBt+LJi2OFA2zmMVZcwHjb3AWGNVgxDUhKIalGjaLryHD8w6kSjkC2NFg8OP6wiguPPs2deYJycFtqRHJtoA1TpV8Tat2BlqCBFBk7vYTLgLs27/e73SbVbtk8FgMlVV1pRznakV2AXUsLUmzTrPnxHUlWmzRDHAWHE8vlBvMQKVdCrNY0vEaPkJQ1QhMQIGR4yTUhwqmWAwUNWfXqBQMAFV5i9cKBU+WGXEAYHrd8m5RpeZ0XiyLJyroR7a5VmBsx5CRXjxlDUe9AOKm7yrAtHk0D1CKNH0LzsFSQxkMF6qZAvkt+kPmBbZi+b9TkUIUoueh7RHkY27ha7RlwIBDcdlHvU14Iowyc2EhPQx6BOoepNEDmOmwM/as/t2kcfqCMoFoC8tN3k5ARpr+gLQnm2cQNQkUePQs77aDijqceGj/qMO0y8Gl9amP/0mMS0Kv1a9VGHBgE3PYO7DoSHAMjbcGuK/HQTSNeZzJs1WW+rwdYL+bRR8cAqh4NH32/DBhgOkZXczAPNmwIKqrISc20gIoijjQ/ftS4yUpC9yS17UpJeb9v2rTIm7v8zUYwQKZGbgTGO5BPAzZGG5HUcHLb4wYOT0NvpDoDd+eky0Z0doN2oHydlNJIBShP50Tp4/s53cF4KKmZ+JqD8z40Hvhgvbwpn57rzqUriO/odanyU/dIDiZaETHC9ceAg2nnCJsR/K7EIfdjm8zTYj0LqLK0nPSdxrDAdJW+9mAujG0KKmioiE11gQodDvtgAgGEEwYXRFhyM6/OcAkVTNhqtc5K1/Vu+0a5YRpEZ6QW5YZqD90QfsO1ojH1SMdqEYWnN9IJxyZQX/D1jppkPehe3YCSmilD8wKHD/1r3+Vw/BqHvC26Dd1AShM16DZ8ayhNta/bEB4ycZW1y2BkjdlAjuAyUseMmCzBN6CjeRhpBbxBXc3DuFeCb2DXtMXcQuAb3OFMAnfE+Nah3CAPojP3DbIN9F4dkmyDPbKXPfSCgV+CbMiHkAfvBd9Op+EP8vqSknLRxAQiDQqFgfDyrRiNz+XKaATQ+E+gGoLdAVWW3/JidUdKUt3RRwhL4IlSIKVcTBgD8SVRPKXuoihQXaEVrb2tTEODFFh7a5kTtY6JXBRYTfDpGZK+UXhf5pTVzYo0vKX6EpaTyyIqLnxLdVAu1WSLQq4elXOxek6X5J4u+YA8oLK8XCwVmUhpp/JKbSnZhtGaxp1JSoJE0rguvI4Ceam2xod++2SK6RfSidArK1eH2rp4RgI1yPVqrguEbRnYFcamQAoawZhghoQyIpgBgRQS1HIot+N72gjkaOh0QqrJ5Qrs00GUqaknrHpBqJNSoEQFodFKmWH9+x1ZpmSX1n5SuMQjKKU1s15hS4Ptc5L6eKWyTRRTVcnyiawwm1a0NApRNaRCFQ5oNKrU8feJsWHdOjOVlwaLpzNPc8WFeomSbHYL8h2YyCtKywWTEwnfszuUVitLwTOEsnSP/onKAYTRPfWHU00gBP2bZKu8v0sg2Vzm2WO63mM2axtwkasAz0ykbh0XdTcYtGHMTtIgGkVvoRSNBXjukqlYjG6jN46BjUI0m75990fgDeDaBv2RNqctL/PNfivePollYaGdIacRuodpgKCDGhbtd3XFJp314erzbpVU5H1aVnnxclORLTDWwCgVmgExEPaIgFLTC7C6fLorUQt08UJHgxRYFxfcqDWQ//+QL5PNxbogzS3qV5vmf/DL0DDkcgUguIg0LiVXqx1T6yg9oME1jNBEfg3Cnet7dKzrkhwgpZHsmrTGvbIDJzJtS4rlU/pM6L/h4zAgpU4JOgZyrQ8pAfrWVuUd3UwLQC5EQYMUGOQ4bLUa1FuwdYMchYoIKyzIPVirdESfsCBlZe4XNNQwPaiZ6NTepwarXlNlIFwPWoHwFVI6A+ERPsNe0yP4jmH9CP8hJzQRHOFHHKh5TH+CHLwoqYCyI4cqJypIEqesIxSIweMRSXmEkBiHgFfhGB4APsSQEWAExFi6gf7GMO23+zLNSFkibVtDppFaTS1VbZ8MoFtNLb4hOqgeYuBSAoycEBO30WNIIx9WDLFyOQVKRoidWylxDEsfHrqxuWDdhp1GTWZcpZ0EYQfoPMNW+bYPULMgngfNyIW+IJ4qZP+F9GywBkE8Hp6TE11BPGTQzhvfoxpc1mrABaUsg2tbdVzQHTbiBa7a1uB9o8lVrhg2I3TJeH6PaQfe3SkY2CgE79yc9sf4roz+Zfj6gQU3lM6ATIH9J+SG7kdom8JambhVeNen5+NAWXhX6LPrxnONkvbgXSSAkQtF4V2m134b34Ua3VJqxAelL6P7SvV80P026s2lgPbg3aPZHaY4RiN1znhukGsJ3gEqWdipBe/0nPfM+I7O7DY1M0YoXZndqwZghO61cW9YgzQI7+4M71pDchqth8ZzeXxT8D5PzcNSM3iv56F7xvJ7yGVSBQlAAcjl0Y4EqN6RlkWPVUN9DnY5VETjVGehfQN8+VNcGiwX1LLRChvDWn/Lkw3SWhUkGlHllFJFdiQARSq4+8bfsWqItQoLQ2WDWKuJzkJa66lSiLWKS4PlglirkcLGsNb3SbbK68HNokjRZguh1QgPYCHVMUcLUDakPt9g5dsAsXE1FVpsiNW7UXBIPyCoHeIQNGR4kSEuwpF2x3AaN1lFisdkid2YrKPTSK8hl2p6QAfQsq4e3yge1g9xDnIKlKgQp2CnzJDOgKkZ4ggUJDgxIQ7AUpOjGH51mWdVkSwr5IyjllAnu4ZeruQBIUTLupq8w3bYAJD5y0lw0oIcgKVGg7oApmqQD1DQICUFeQFbdY7rBxZku9skFToTgDIAK0PNB6D+PgNUN2hqDofxQUNwfkNKaqYFnB9xo/lx/MqwCTj/Iqc11ADO3zhS+8j+x9jv2PobYz+DVvfofsXAn5j7EQP/YaTRkfyFiZ+w8A8mfsFMneP4gdsip92IHo6o6bSiK8kVOu7RgVSsrsc/bPv1wzyAjAIlKsz+bZQZ1voHNcOMX0qCExNm+laaHNXw0fFfTQeVHB39e3QYDY8W+/v1owwfH/klhJ6UOYrhY6K+lAQnJsrwzTQ5juG3jzZf1uOPdV6kpERZP4BYqwM9D4XCWWKI0gEV+kcy1wiYV1CS4SWH+QcnSg7rKPjqYd5CTWcgNcxvuNHwmA4EPWJQkgGFR48XTmQIFY82WuhVj/EO+LGCmM6LHsdwA5hxgowCJSPG6I2UOIalt0c1rr5XJFshhwkAUo34eg5SRbOkAGUDavONXa4JEA+gJMLKDPEELnQb0iPwlUO8gpoKLS/EOzhR7Cheosf0c5ZiZxKB5DpVgLjIlS8gh3QArFbvGBc1A+Q9dIQm8oO8iEN9B/UmwgaAPIqW0kh2kGdxqewxPMxt8kJvqr8uyJ8kW74gUxEYtUYZICbSHhBQAzoAVqdvyItaAfEtOjoD4SGexZ2qQ/oVYf0Qt6IlNBEc4lQc6nlEl/IxXxHsoQ0AKUwLCg46tR9J4TpX1RYI3qcmIByImAgrM8J1WOl2BKfRqxzhMSRUaHkRvsJOsaN4iSJdkjuy3revKWMdBYhapwgIE7nmeWqI8kF1eoe3oBUgv6GhMxAe5D2cqTqoDxHVD3IjOkITwUHOxJ2ex3Ep+XJfNC9v3dN7IcgaPZ4Bc9DqBMhI0RdCDqD+gNbt3wLELYG5Gj2toSJgLse1+sO6HkkbYO4HQGyqBJgbcq77UdxRLd1TUpLrvNhi/ZCeVKcJLQe5+hlSiN71tXmHPNsEkJNREWFlBrkVB7oN6ki4ykEeREmFlhfkM1wodgwv0d5iRQqkh9CQaURXU0uV3CcDKFhTi2/sDqqHeAMpAUZOiBew0WNI6x9WDLF8OQVKRojFWylxHEtvB0h0hnZvsNgCpdcqAsRGoXcBPagDYPX6B7WoHTD/oKM0UgHMY7hUelgfImwBzJloSc3Eh7kXpxofw+Hck6xMq/SZGNxRCaHVaALAQqp9jhageUh9vtHOtwHiWNRUaLEhDsWNgkM6EkHtECeiIcOLDHEejrQ7qtO4rfsuz4wuuMXwgGpFz0rfGywPTK8A6g9mAVxbUE5GSW2sDpTTcdoRozghvhUoZ6QmN1cFyjm57YUxnNWCFNs0a768I8lqk2bYu37gHDSaATOS9ouEA6BX4HX7tg9ZSyAOCkJrqAiIc3Kv/pCOSdoGiFsCEZsqAeKSPOg+sDvCT+Maz+DiJ2/hU2XjTdliZmsNJmoxc7SG6gpk7oM678gjKUi2pO3U6KlXFCjQicKhlnpMBUrqDuZ9LpM1z9VAW5bDGTcjGctBjGHCNpGhi/GoxXbAYjxWca7vQJ5B3gC1mwDRmcitdiDO1QxzLS40vSDfK5gDkZSUiycmEOmPllSrSsLLIwSbGjV2zZXRCKCxVqAaHNvgr29aYnrNXFInncXx269v7pdPZJscfvj1TV1kSXbVPtk0W67L7sPHZLdLs3V5ojz88sP9LlnW7b78v+9//OH7dpOV//zxqap2/3jzpmxYl3/ZpssiL/PH6i/LfPsmWeVvfv7rX//nm59+erNtebxZDkz2V6a1x5qqvKgjLfO1rrpu6XValBU1ri9JWav8crXliv07rfKS/l1reNiNvx5121XVAuRi9ZyK3QktTs24K0//3dLcZI9FDeJiv6z2BfkLbdLFkj4C9peWG8vspMnrWji6GayRk/S6W0ZYk97Xo4qkuC3yHSmql0Ozb1a1AvLNfpud/mYRJ6fu1oRYLv3f4dyoYoZ82l/gHChAV/t6rLQe8un/Dud2U14sqT9mNHT8Fc6J/nfIpf0FzuGi/mlbA4Rh0/sZoaUq3/GsTr8iONUQFHA6/opB0pLUSi14JJ1+h3O7TIoveXaZ715kfMUl4DW8zVcvQ47tLwjd7RvHzaiu+xHO51/5F1a4w08IdDVeg7e//u9wbr2IxLaM+QTn2Qv2Q46DD0b82uSBbamwAM//1zeMR2b9/xsuADCRmI0niGhDDc1pwBExBAcdMbGfwHOqUeATmW9YrmzLTr9GE5iQCbSJrRv0i4YuANyLyfwg3j6FoN3Jczn9Cud0+5Rn5Pf99gsdB/WZDT7A+V1tk3Qz5HT4CdGmpCy/5QWj49OviMCcbNio3PyC0zT1GiXvnJhPSB29JY81At+RDWmXPTiNsQXg/BsasuJbPPiA5ifkhePzmOw3FTW1+yopqtuimwxhWcvLwWt7n5QXu7T1CkP+wy8ojnV7vpL3+WZFCglnQQkE2vLlV7L6tBeEQuYTnOd1jSWyuqgqst1VTHvZb5gB1W+b/EuyuVhtUwa9zCc4z8/7lAFZ+0uM1ROK1Yr3zdP1U+UqjGuqMYjwaI5+gr+ox+WdLB1j5xsuue1+w5qL2FJikjwbw/Nvc07NLZilWYcT+0S9v4WDMwzmGy4R2X/paTgvBIkIXwIxf1skWVknXYv8JisJPa+8eEqL1WW+z6r2uurB3K62NCJJrNt8R8pdDev0y4Y8sFoTfTfmfke2SfFVWUFXBNHnz/VoloaU9n5OUR2SIpg51kNGzE+y9j6g5sfXBWkOpdOloM1+xTpdcQnEhAxHfcEMzcQlbGoQqV5eCjFjnJRpeZ0XHe7ZThB9N8BP817tc7KRYOf02YK3Ep1sIQyejkwu8+1OMH4UlzCQ5EitFIUrFXObCeU2p6fQXOUyJ44GuYuKeKq5iuuIYJ/7iFZcDdZbc3YmpP0F4YuOvcn10eALZr1vt9ukpOio79N1xs6fysogs7yWSUO8EqR4w894CVpKwbqv4DtizVahF3N93JQiNZx+RUgvk9pI2l6yyN6ZzNuisujY44qu11mO/d8R0/j8RUcsY0kRozpuN0n2H/ukqLiVDEkZ41r+iyTqKtoCeHvp3gXmdjgIvhtwr8OmlPPhG0InvZtpuG5lvmGWfupQxZnN6VeU1KJhjNHY5d2+nbmg/coMfZlPeJ4f6x54kjDtvuG5fsrWObd1ivuI8L1FQZ7zZVI7rkXOOODhJ8Qy2Pdd2jaI98TsN8TMxeGwDdvx/d/x3HpHd1hwSoogfHnvGQ/OlzPfMNqlNB/3myptfDerX/YrIt7ts4zD1vFHxCj65SpbcYxOv2I0SA4z+WS7zw7/fkvW+4zVprwcxkcNLjHnnRX3Gc272YQrYXz8holfg9tP+SjMfY6j40mOjo+TV1eb5n/tSQTXI2ZQLahhNJCjdmavR85NDEsLmYwUOe7Mp8lgwyciRLxNthSC2Ex1q9VN2Zzh3bxcPCfphmY57PiT/46aJ/2ySddJrbIXlm//C2aTTbks0h2/qWjwAdPCq4xKxQ27jz+j4lBe1LDgws/h17hV5Kzi1uH9ysMBEldeacjVwB/pGEx1hve6yLe9k8dscwSfEeOcXMGZ+4iZGzvklHQl6TERzU4LCozn7e7EOxLvTDYgNuo6XrHH7/lhvyJm1g8n/shKNrMtLhG944S8I3ONgKskvsfUKGVX0vtxjW4WilxO+PmZmrJfymrvt2p6iAP78BOc5x90hZx1n8cfkW27rDNhPudmPo29zNGBnB/jmejvolg+1VAVza4znxALMew9i9yKjKjAeIvFB0Hf7dncfvABzY+aRylkePiC5kgDrpBh+wHNr1sZE/I8fcT0THsPTcUd4Bx+GWtR7yAatWiRUQo+4y2JlJWGP1sEb/uXdLExp5sTZV5gWAK3wbvZ+cjv8T78DOf1G6Gz1PQViF1eMnhgv8G5puXbfZlmdb5wWY+70yW7w0z0HREH0uzrIn+XFnWWmBcvnwuGu+i7DXdBuJGUgdeyq0mT/eHetT7rwQcjfu2KTnmVLYsXwbhFXdKmxtuS7Fd5lm/TGoncsgukvE3tbX7aDEbyja5qprBNvR/yNb9YpSiGWRpcPmXUOGpHSornlOZL7/LlnubV7a4OETbhVG5bgm8F1uf1WPGeb/DRmC+fjAsLmPPXdh+IwFn9qLox9RZp+fWiLGsjoxyG1bDfDLhuhYf5BZ9Rlq1qtOAzIueqKVEoABE4qx9VN6berE6iKTsmxvV+RkzE3d5cMDNwzS84DhQV13nBMzp+wPFD9SqIwFn9qLox9SZZ+a0J2HRoyHeL4DNOplVz8FtwuJz5hsBhc8sA39T+74hts3mdvXOHS06/GowZu4l1ycjx9DkuYJ3VFC0zmnW1rK7mCllR13GIi+lxMT36onP0Rbd17M5Xznb49JmaOyIZvR831NwJI7r08PgzYqEnExwDOf6IMKEs/XNPDurglnrZj/jpSuG6PPcRkdrsdkX+zFrW6ddo+tMz/f6kt1v7V3GGewE1l5iSxJQkpiRn6Zdcbjk+sbRwRHGDcXRA0QHh+M3RAfXO7/vZTCdkb3USxnSDnfM7DGxHFiN1OT24WGT0ShrFqy8mnc0xNuhmAA8/Ueimqn+gPkVwbqn/BcNxKT8KtVQfhQJBTsCW/YrnLGVqcE3YrfDyOuF9ZIqiiFX8tGJD/+EnzL5VBoBsa4UFEFHx7gMTFOkPiD26BeFPZh9/jLF1Qo72bZF/JRndSnWTeXO6ykoMHDCSnx9n/Eey2ZNPj5dPhN7YzC31Cj4jDCjZs/sADz8hnERR5MXhJhpCH1FiXAT/2WBjMZ1A/fT4of5vWdH+aIEu2WwsKzwxY+DN4I7s8sLZnWXqWozNAc7Qjz1gnf4EHN7xNJoPR3dkbungFHyiY4uODTiCdg71HkujkXJwWPMbLXHQdXWAqic6P4wxPB8r52jGz/4I27u0FMz2nX4NOfVqP8nnejK0taGP+Sp95E8VMd8QwyUvx+jiYG42g7nmTvP8m8uHAmp2hq8CCCl9zYu5d6myI5lmJzEpFc8nms/kzMflKmfHz9CA4vpmXN+M65tIfnP0O70YdfX9Kf2SOrwen+VsN1aTMvEV113e4BCRzCPV02U3ru+5sbjiJhRW35JNnq3LRc6yGXwYC/u3BXlO833Jx/nhFwRHZ1d4d7cQiLJt9tsYExAzuUWFkl3mW/7QrOh7nH6J0y8x+jmOfv1OdhUB+zwNoqCafKpjyeZRciawtD8hbHxVcO82d78h1pocvHMuimv4eHb5zL6w84zyTtc1MNJ1xrHp/z62B7WPFHSTZLKsbklR8k6Y+4gZ3R9eKx8YFDPSFxaJHnpCHrpGwGO6duWbW24GXllG6Mcf3z/l3477Q2uz3LNTc8ICWP7tqETOfvgdy73b/Cznz5bA1TDc3snzZ78bar8ebD2m3xXa7wqYaV/OfvjdVPty/mwJ1Dh3v6P7lNqOoz8KhryiIgZ1/FaHE3ZemvmG080i+ULfHn1OyTdeLYOPOL4tq+b+rnyTr1945nwJkxra8wkS5oePMYJNK4KdchiHgezE1CyeqeinOsygPc1zOf2KHLD83txjJBi2dB/CDjv8TEdEE+9/97YMLT5qckeSVfMumMsVak1VhovXaK5TdRKenmDN98XyoDOWK/sNzvVjkmbHSWmK64u6B+hbt2wVyoKm9bH7K/mvhpwFR6ZE3xHab7Jh+u/yorwsnxn9c1+NTpTlhawCaSGEBPsvoKpU5TCzH8fHvSTPL4hLIObIiiQr6+5c5DdZSegju4untFg1N2nTu7mZ2TNtacRMFtdu9k5BcQlMOKL7wulIoLaxJ8GVRsICiPWzpEzL67zotMKsoHFfEb6va1KzAeCZvUBc8BlnKb13snkLGXw0aHN75bPMMBTFULuSOjaX+XZHL8Xk7EJUAjefScfVMjFE3w0TJWWSZJzQvX0RZ9jMZyPerKEyn+aQ0OUb0oZe2pqQ6Z24YrfJHrQOP6kfrZ5bsT/8hliSEAwf5CMGFZfrvejNnOEXn9svxgV/VQ8Na0xcrJ7TOg1xDPAhc3MQ6/hMdYxiuzZ4XuutceJjxhMfvazP6TGWXjJp5h6UHKJjkPOIjiE6BvY7elvxYXnU3b7iA0OjjcVSWj9uwH5XzE3ZjP7pSJQdwzOfMDzvq6Tal7/lyeaPVDCGFxbA8S/o22wvUu7MZwxv+vCJhO/gE4bn+5QUSbF8kjWY/446XbSkj3TJeLNfkf34lTzlmxUp5B3JlcDUQLcd7+lDVNS7SuoQl0HpP8lW+bNUCO6zCRZlIMRw+1eeZtVHKmu6SzYHZ8K6CGkhzNzRdptnt/svm3QpqUVSBLOzQsJ58AEzl7n8ui7yfcaeA+j9jkigrK8xsE/B3J8zPOzn52fgj78j0qpy9cRkVc0vCJRtV18YUDW/YHamUsfC7kptfxvjPMoRuqKNu9zHsdNP16dT3J09vSk7qg85vSqIxSv7Fd/G20dxK+nviLW0Jk0RvjRx/B3Ljfc8/d+F3Nr1ge/cCCwpyU8/4rLahkiUnsLdXFvvg9zbKeQXPdtx4Kd5vUPqpkTvdxxYqp/xeMOoFan5n0fS/M+ONf+ze83/7Ffzv4yk+V8ca/4X95r/xa/m/zaS5v/mWPN/c6/5v/nV/N9H0vzfHWv+7+41/3cHmhfnr/uCpoitKod57OBLnBCc0ITgYLLA3S7oHlOjXdBKej+Tg4ukWJPqYr9KE3r38XCbFPMNkWDvi13O2sPxR8Q2vlqv3AGD448YPrUMLJfmJ8RAfC96zXaPfsa2txAkMhzB5/GmU6Ir6n/34ooOM6//RRJnuxp6LE1ep1BR+3FCtC7R6Yf+7+MZwWVtjvtNlWTV2/2qdojcDjrmqwnnO5LI2DafEDNyq30bQUSN5T4a8OWaOvyCcC7VEym6C1quvu9IVpJS1GplQcv6OGnkpRAIzJYFqbO+FUQ6bWEH9XJSqkvCa3yfFKtvSUFEgrHf8Fy5Zg8+YE5LPFayVrLf8Fy5Vg4+IPF5U2ktgS9iXIcY/cx3A/yppVAUs6pLjnJjie7pby9C3Ay+YDnymDn9bOjR7pPnOqzrHShTzq42tfvsF0IkdOmSdpVCHnEJ0xo4GQSfsWeD6PmiimR03KSQQ1fWvlYeZ6qCaD+iwxxXwrQGmaMybH0c1vS+exnW0F077ZKVo0GNnCFgTKMi9jOkOdQmWMKb4dJiNKLxjMil/RhaTiibeb/fJs0Rb3rFJsuK+zjnTTj2G4s+1nntvuCvSe//HtpbUayI9rz0f8dxa9sg4nf6gpBy/4WSUrf5EyPr4IsRx5+lHH825PiLlOMvBhzFEptIK5bUREqxhCbS1Y5BLGD7wYSfWMz2gwk/sbDthxh1JxZ1XT7j0fEzjL7xGY8+9/iMR3zG40z9TnfAwJXf6fgZ+B05qR+/49oKPxJS1fLxA+fBB0wU324T1uUcf4xWNCErOi7ytiMEbBQv6b8/Pf43wO65toL/bnMEMOycVBxfI/ZFpVtyVVbplnMhwy9wjhdlmS9T+uyCyKj4ryacpVsfJEVM6mj2M/6+38oqOH2PftGHXzTOB0536czHZUl2CWu2ByM2B6t3BSsmy27pnUVZxV9/zH2VnNbJVil1az8076E3BtT1ztADptQDbtOMDm0mhaeP6YaUFb3NYTZwEmzgNOp8xEwp19EntYXtZzf51Ofdit426PoehT5zezjJ+PgBVYjw25xv/5Jm/LzC6ffQ6ZHIFPq/w7n9xz7Z0K4UMGQ+obZZN/fgliKu3EfMns1W3yK27DcEV1evdHk5I3xTXtd+ibv54/BjTPOm6K5dzmAPmNq45ziXHeey41w2kt+s3VAddD5nadU8BePcHfWZ27glNR+pebg+bNWLz7Q5qvjdfZ9Mh7ON8/F+JeVr+YalmIWfANQEB85sux9DBrKrhAkIzQ8I5+3sbhw/+WkMCTMICf3uvaMX2vtwEQ1jSx8h4eHHSbi5H5zeS86McHPkswdeDPP0oqkooPFfo8FOyGAPB4HpFYVbx0eTa54k2ZofTpbR+7HRq+8VKbLb5IU26TrnulH0HXOQTc1d9D10Uimd+lz+uU/LlB9xDj4gWlv/IXgaufcz8gARw6f9CSPfkr4JVCOyxiA7TOc+IvjuV2klmkEcfEDy4xc3ej+HnBz287h39Pj97148/iIpv96RR1fO/sDOwM1LKT0lYdbjh2Zic7gS0vyC4FCL/G/CuJjjj+NNAl4sq/SZXBc5u+Gj9zuW2yIX8aK/jjImrf1GbY3aSCkvFp3YxJyY0+nGI0NDR4adVrRyZQfPyTLp/YzKHSUpIx747syV7v0pWKgff0Ro6vj0uXAhm/uKGdPXHS5iOviAWnLm9wUdf4zOZ0LOh40O3ia6jswdTIjPdMKL5YJ/nK9FvdgWYlyfumnl7p74EvF2YVhCNn7s6n1Cb0FZtQIxW/uHn1A8/1eRVkTCdPAtbsyQc4wbM2Acohftf/e0MaO9AapJRf1szpBUYLRBA8xLvkmjx4LfqMF8fCWbNY4bVJymp0OuNvtxYkIaE9I5uNIOrg4z0QFTKxuKuWfMPWPuGR3mdBwmfRnVlZ+kvAzco5jMj1d0vT/Y3nfRdTZ+pwbWA9R/fkm+pBuB4fY+YKa3s5L8uSfc+yODD6iTX94e2Iheov/di5foPRbsyln0WBr4DCX1a3Ed9jtM3+XfaqtbESaX6/0M5/WWZOSRHjIYsDr9ilhNTNdZ+pgu+dePhl8QiWv+bZHTC5RYhQ0+RJczIZdDG/R7XjW97fJFMJavgfPRs/Djgew9Rr/Vwne8hAXM+PPbr/ivZpzvyDLdpYKtC9JCiMRn2oe+u1DzIA1CD1iOyzyrikTIcvAJw7M3hStgy35FxKvajm/pNS5lWRvoHVmntY03euSq0RSNvn5Cvn64pvBMiueUfKNTVB/zFXF227q6FuulED1DP1HBj6e5b+7iaIVlubLfEFwbffFxrP873s+8S0vR7Bf3FTOh1m5/ZefTul/Re+wqmeSi76bcJTv5el9NOYs1LCsDr+WPejzJzX4cf0T4Pzq9e5lsNryCmU9InmLFMp8MIiM3NTr8YjSxolv+1BR1Uievf21hvPa6p6xE7xrIytjVwoslL4WvqV3xfd/MZsjkYcvY1SKXhy+Fr+nfH65uVuVFeVk+iysZFDDiT3/Q1NAvgrT6O/JICjrF+S5f7reCgYa8lGlNn4uNqormsynvRVqx8x7CAuPmxD1CHp7cR8PcWJkXG+fwb18EcYf/bMT7gn1nb/gJNaW/3OxX3Nj29DOcF32r7vIwOGRVyn4z43q/3+02KQ8vWRm7Wvjuk5cy1JIwoxSXQC3I91lwK/LDj4g8nWT0oPAzfUg9+UCe60GYwNnKSxnMaMg9uqAAYnmtWD7RFu7ZhbHBB8zIgMZGel39wemzQwTuMyKvSsuvNdboOJImwB2LJl8SJFba0m5q5iKTtjDCz6XZ10X+Li3q/s0LkRcVFTDmzwdZwXcXs1Hl0asKEI0gc9EWmWHBKOAt+I3UwTnZ3O6LXV4y3ch+w6zc1OkcFwRPv2I23exItio/Zc3lDY9JLbhUNeqiCG+RLfNto91Ne9Fsb8JIWjuYCJFb7at1jm0HmGja84gHR39LijRfhZlUFFfpaoYRyt3PdOMUb3/HH2SdEkDljjgMWgH1u4KuUVV+cCxvCnwlyVWNfN6jK4uayl4XhNA+kowAxSVei/UdQ3wYY+Orc2VbEM6edkZ1NXNs+h8M+AmmKYefXg1I+z+GAernkk5ciap1BVhMDb629Pk5iDYgFYCY//x6gHyYzQnkbbnqnHlbAGdfoHW7D3UwwaaYe3s9ID1czBMGomxlrgCq5+sHns3a3pDB4ScUDx6Mxx9fCww/09R/hLgvqdVd2AdXEKP+eSCZHks4vaUXaGOfuE5n2/yg7P1g2M3RdjfH7CnF9V6092r4BTEvuE1SZqXm8NNrsRh+aTWM1SjqdWU5qCo8zWEfmlC389gI8dL2sMQZou9D+kguX5YbsiiS5df696vnum5XGBNzN0ASlJEfvDSV8edZej8jluKWyz29FvOi+lwtmQW34SfMOgpVFL+ptP87lptA3N7vCHmb2wySzeA1j27jGbd5TFcYX6/q4nNZGXwt/W2Tyg35gPK+4vdYZ4fLfCghoeVSZ7ez3FelgP+L0aFiICdPXqZ5siLZCOx48GUyPdtXlsunLVm+lrc+zuuBy8ukImvuppnTr5Pp/c83tcPcb8jlvqzy7UHXzk7pipibHNWF8fEDBj8ns1qBmH2kh9/iqcYJGUiHObL6nP6er5y5xx7fG8rXwCz0LPxYRItTbk/38VfEFDH7LAfySQ7hhVkG12VFO+p/92JH/SNWrmyoz9PAftTkU00t4jV58Zq86IPMJmm7fUcundCAqcn0qpo+uqHohqIbOi83dFhQOUwHuJtE0zNGLPeomESnFJ1SdEpn6ZQcP1zQY2rhi+KzBQLMG1/MEE3Iswk5fbXgxNPGgOKbBTHhiAlH9JbT85bt0638JSQ+Nsjx1djuh4Nw9ONm3W1/G2tLSV91LmfkOMYmu0j0POIgOMakGJPOKiY1l6TUcLsu2tdRXly6JSFzk5d2YHyie4ruKbqns3JPN1V3DeCCbHf0PienC5lC7kYJMoxR9FDRQ0UPda4eyo9nsvZI0RNFTxQ9EY7fHD0RfQ4ufybFokgTZ5OJA6YGfkhD78cNXX3f1Yjidkkff4Vzutjtirr5DKfTrwjDrmQXjw+/YFaIeqoVvSkhLBBNdqom6zJ/4Bjbmm7MImIWEbMIJL85uqT2pDc9uZutnB6OZfiaHI7Vsoj+KPqj6I/Oyh/dJi+0Mrr043p5SsDawCuBuETHFB1TdEzn6Jg+phtSVnnm2isd+Zq7JAULP/5owT/Yt8A+0fc65m6iffa/e7VPekGfh6zhyNfCPuUsYr4Q84WYL5yXPypS+sbJer9xfvGYgLWJV4JwiY4pOqbomM7MMeXL2qHQCu/pY11k7XaWRczeyEEBOUUnFZ1UdFLn5aT2xfIpKcl1XmydeieGr4lb0rKI/ij6o+iPzsofnSb+HF8fMmBrtfE3XiEiQH6cpp2uITm9RKTP1c6M4kUiMfmIyUf0mdPxmQtSbNOsmaV9V/uETZo5PRYpYW/gRcGc4ggpOqnopM7KSVGHQmdsa49S//g2KdPyOi8WRZKVj6Ro9/K68liQugzclxnb6MuiL4u+7Ix9Gf3rjpS72n+lNXB8ujJhVdaeDMg1OrLoyKIjO2NHdpnvs6p48enABlVYOy4Nt+iwosOKDuuMHdYdWacl3fpTA5C+y17SJa66iLOpL2B11o4MwdmPUxtWOoTu8JMBzzuyTYqvEq7dR4TJz+VR+mEfHyX2GV+ZSqyBqeUXY2yMsTHGvpIY63JJXl2L04gal+yjj40+NvrYCfnY26Qsv+XF6o6UpE6B/9yT0tmmQRFvo1OpEDbevOgT5+eeMBwWKevd2l9Cb2GMttT/7sWW7su8bROh3909Jjrk+2LyhoqOgx/roVdiFVmy4SPB8MtkevBi9ZwuCVVV97SDqz7kORt0I4TJVMfBd2SZEnprI91nNdxIPfiC4rhLazUJOfa+wDm2+mU1dfo1etsp2WpVJcsnsnI7izXkamKjGgaepk0dHy3gbar/O4JbowWuXcdfsZwE7er9Hu1zQvb5nmx2C/Ld2Wii42dyY7CU1I81urhv6t+EGYI3P4w3xxAtpv/di8X8m2Sr/FOxTrL0fzfZXbK5zLPHdL0vnOaiunoMLAzP0t/y4XNKvgnixOALnOMfdN2JtaHjj4iW9ZTDGRDzLVrl1Kyyba4/axTwN7VCECs/1ndLzaLkV8RPPyPmtLMV+c40pv0JE0PVXoltKKT8dHD54erzbpVU5H2t27x4uanI1hkmBbxN8Ahi4weLzvx29LAcUh0juVmcu1gXpLlC6WrT/M/lwUFpBQaYRvDyA2znib2fxMTZwP+mvFjS57/Ztc3u12jKkzPlYvlUdw39tyj7sDJiNWuw/erYRNONpvuKTXdBysqj+arYI01YzSqacTTj12zGznPoE19bu40Zc7TXaK8Ho3i7L9OstjLnBttnbGqxah7RZKPJvkaTDXmNDLhCUxOf0oUy0fSj6c/J9L1cVqCrx42hj3JtQbTvaN9zsm+vtypB63Nj76PerxTtPtr9nOze0zUJ+prc2PpIFyZEK49WPicr93WrAKAqN3Y+1v0C0dCjoU/f0J1PqHdMbYw3TqRHM41m2pnpb3ni9B30AVNTM5XTRzONZvoazfR9kq1yekq/SD3YK8fd1HABjKIFRwt+jRZ8k1WkeEyW7reFDTibWq6GSbTaaLWv0mq9vEMpYG1st6O8SBkNNxruXAx3Qba7TVJ5iLvCKuwNWc0tGnQ06Fdu0B4N2Y0BR8ONhhsN92gXtVBUnx4y6B5nc7NVMolWG632VVuth2jb42xttTHWRquNVnuy2vuXsiLby3r4uM4Ld5egA7nDzVfPKdpwtOHXbMMe0uUTY1vDjclyNNlosp3Jtr1MX9XIVs7zZZa5qenq+UTzjeb7Ks23h5rPWep+okpUgbEZg3hFU46m/BpN+TZ5oTVeF+RPki1fnAdjAX9TQwaxinYc7fgV2/HHfEXcb3dmmVtasIJPNN9ovq/SfIt0Se7Iet++k+jegnn+xkYMYRXtONrx67TjfFnbH631np5yJ2sPKbW4DnN7BrKLNh1t+lXa9L5YPiUluc6LrXtjZpgbW7GWTzTfaL6v0XzbG2fa97qdmm6fsanZqnlEk40m+zpNth1b0qnevZdpaWEN5kYMYhatOVrza7Tme5KVKe0cLzdccdxNrRjAKFpwtOBXbcG3pCjzzNNdddJarC1azzBadrTs12jZC1Js06wBzTuSrDZp5v7Yv6QOU6sGs4s2HW36ldn0LclWKb1kOVk1myza5+xdWbOYu4EdQxn5seD7fF8sCcvj9Cuc02VB6navLqohq97PCF7tya4XhtXx18lgzMd8quVU6hizqPS/Q/r2F4xnbeLZ5uXiOUk3yZcN52P57xjun75s0nVScZgafhkv8t2UVxmViu2G089wXrdFmhc1HIasTr/COX3ep0yD2l9inJuQD/I+IHU5Fh19GBpdVXRV0VWN5KoW5HvlyitRXgYOSEzmx9f8kWz2jHM4/BRROQYqL8oyX6bNDAIHzbdF/pVkH9Ls601zzLXI6FrmIylItiQP7dfj35+KdJ3WThOCUyPGLGqVTAQGtWJ6yKARD4ukWBORiYEsRcxT1O+0147t9SNKO541FQXX6F/fCGGGRSInWnlHdnlRPcg+Y9BowNwPItENsezK26RmUx3qcAZGvBR2thUYkP2Z1wd6TWWyrNr0HYY5FT0Lq35ZAIrkrC1VPOTlACmKlob0TvW3uvJVSpvxw035+36z+eePj8mmJDj5rUHVPfbxUJtklS7TXZJVQB8mIWWh1BWj+QYASkKuln1z5OkAQOL22aGcqgbZNuuOP16+99BdB/S5TNbQ+CWnZrv/WHJQEAAEWRW2dnpiaw8GaRstA0ufWWhgsHdTPLwjG7Kmiwd4mEB58aDBYQVWjyVyuEochyNFw0PmKdDQBFCHNRYXSfm1TteO1gWEnYCMm39oi3QlABjjmFrC6cjPHkV809z4n9Cuh5UD42pktJqOh3oYMfvpQmD+cUgs0add9Wlf2UCi4wABxk/GyGhrmTo+Dq2cMUpOGdgdKXd5VqZfNqQ1amQiy9NLU9k69NGIh89k2Tos8dFj5ymt5RqMhMox+Zdl4ZIZaO22NKp/XYLmJ+8BKt0hsg+2ix6aneikSD4UQYG4YzvNgdixdXZOzcz1Wnf6fVUON1iSptMeBvNxsN0CIE7cvgAxFQAfkPos+2TAygFoQE2e4ZpFuxpwfAzU1aqZlqFqbeJIjFwl01Q6h9UxnQgzRJhmpeUoMVWAyxUxlrFbxKEqn+MKGCPBrFa/hqOMj0madS+1QdMiOT2fHnXf8JPWslqssyXzQRa2pdgc/6gsrs39L9Asf9AwpRr85Pc6TTtGsumwVc1DOaGOHr6q6nI5hPUKceuhrA0sZzSkDYr+wQH3D+SZbMCjXC0bpQ3wFGhLEFQ6bScvavDMcoBjjKIi1JVQLDSntuhhm6KhAgMIxkueG8jJQFCCVG+Np2MlTsAEarIdouScQ0/FKFrS+5QXQLwh2LGQk5Mit2mB22CJO2edaCnFaNNNPsF3k5WEXo56me9ra0xJeb9vNqAv8uYMT5FkZT34swYltBo4WIdfWr4v7fFvO+zCmjpXTAOlc+l2B30zIeh/eiZFma6fqrZl9p6XZ2gKZ4aTHaDZZs0VupwcLkHKMJ8QTGsDdZwhCDiaJQmQDQ2YdswVmbwgZ5kr4LdRgZnB8YedQwU2YbbQO5P9Wfdl3h4hPKyaNvv7YUvTQkpuKXpYCrIELeAbfmc+vGmzWvjr32fygD3uJiW23fgtYWw9Kd3j6qD3Za2c4rZujez2bkN28wQaVDBOMoRB/AmgAkukyatw4XQg7Z8iBjFa0QOyO47enKVLM1KwRY7n3Q+/HP8uux8oiGqH1FwMVp7o7pdPZJs0qil3yZLQ83orcp0WZTM5/CUpSVvkxx9qfTynK1LUwjXwa4D8l/s/N5ebtI4JpwIf6zzykZT18P4ryf75489//ennH3+42KRJSfWyefzxh+/bTVb+Y7kvq3ybZFleNaL/88enqtr9482bsqmx/Ms2XRZ5mT9Wf1nm2zfJKn9T8/rlzU8/vSGr7RuW/MAWxOWv/7PjUparwbpJ7w6JA2AuVs9pbR4/sPX94yZbke///PH/++H/DLH3678JB5oOTDVsf5Dh7tc3LOGvAuzSlv3zxzTrFv1/IzUe6HGb26SiWydoqUO+8QOFJ71J5QjRN0r23Y3rTDUnLrUP0zJpruAxJ6doW+03NXQtmJzuUWxZfEkrtDLofzv67Dmh78AU/22bfP/v2MZc1D5o+47exHfgRm/lq9It+ZmaDFmmZYP9/wetqSrf+WBbg8cD2zuyJHWPFFbYukyKL3l2me9enLB7m69enHTxYT7TCa9/5V9OQtkBr3FcCnsE2QFzN0yPkdwhUsp//HDznw8D4v/xw6eiDg//+OGvtcfENmNwoQwYmVjWpztlcHIKWCCk7d9GAwhF1ELPJOKcBEK6HAR3fG92dFaA9W83EB9wNmbDCwu2mnZy5vzTN1HGou+Gdn6I/vZAfzjp/3/U45vPWfrnvi50TeunHfIx+f6BZOvq6Z8//vTXvxphxm0zf0I2E2I0t095Rn7fb79004GWgfhqm6QbK5EbDkeZf+7LvKgb4KBnbpOy/JYX+swDxO0+2eizITBiqD8uPeSkjVbfksfaDOmlBaeTSZb93TAjKw8tPnC2Gde8I4/JflNRcN1XSVHVzenu2nIh+/ukvNil7fyWpJlANnXrvpL3+aaGvJIdDEb58itZfdr7GNpc1yii95JXZLurSptc+6b8bZN/STYXq22a2Yjb3lja0u8bR5E2UeUxVYfCg+P5z3Z2n3IRx4PO6cScaKY5kXx1745uSHgN6ZJZ96AHd4KpkHxjMChpqRwMSUwtb/LjoTiPYG/952LbtvFPsfvBeVQ0HBD9ZzMQaute5J+KtXhM1Daqh7F2+KQeNP1sMIJgn1VCIF8hi0DBfb8wqFMoFVIKmniKN7+ZrYYcNrcu8m4T7OIpLVbHnbAWrGkbe8eeHvDehudgk1Yx3O7INim+OhlTMPskHXI+riIbxOMTqY3WbsqLdUEIvaP8Ms+Wm/2KrCxAwTO7qBwPd/gqHHbI26RMy+u86OwG3y88B5vuOUKvOXj+nGws+obj5VBvN+WR+2W+3Q1mCWyaemTm0pzjKHAio8DTebiY97VpyPF8oPMsb/xQcyZ5poOtHXnFKcLM6w6uh3CykWC329RY7djep+vM0SJEk9i23BuuVpPIQ04e5lQ9KOCmdCC3L3l7ibPowgSsv1Aws8qGzmKI14EXr9gTpY0W6cCyHgjSFPqeTiqQ9Qu+KUImjlp1u0my/9gnRXWyPIMckmH4XySx4dY5hAWpE9JaXLzGeA426jpyq9tg0ZaG2qrb9tQjlqQe8WwNUDSgtmpHcxuYQQsOdJZ9MRw4u1pt3bdTfhS6VjM1Bz4f615/csHoU7bOeztkTSLZTVGQ53xJKRa563X177v0eMLYdaTsHqp33tsdY9pskqw2aWZg2EImViG3mfKit+JlK4PR8oDaph0tj4/7TZU2IdBmmftun2V2G7zfvlw1b53bTHHsyGHBk2z32eHfb8l6nznG1W3yQmPgdUH+rMdwJqGeZWDnpxtmzTkQ46YcqO3SjXRJ7mp1C48cgBIghoGVlcUpqclNSR3nma82zf9oodL5xgRRLeKTa4IJMNXlVPq5MGnVyN3KYjZWq+SMZLgGDYi9bIMXSPwadqyIJ/D6Gz//jp9OEz0ybpFWDp4Wt9ml2HtR3Mnkz/FNcfNGnV4TN899rGeoD3fFzHBvXtyfA3Vw7QHb7jjma3BtarNAMrsu8i1zmy2umzkGVpBe5FaNYcjtth52J3y7a9RNJpc5Fla7Rhw7+junu9kbndOB195s6MbS22iquySArPhFJ3CuKOAx7XFTDBrwkVP/4plXEDPsF4J9TRx7nQB1tnrd5P0tZvjlawCyh1d3NefUBizhRwl/xp/R+4NuUOJjhlmzD8yMzz6CtX1ZD7TMtmFItd2x9Np4i4VfwRKu1cQEC1j4rASPS4MGXNT9VXsds2W/AbFN3B3cg2/WFgELmxaNv73poNx3e+kAHcGFOtnSiZc9MKRJoH2zug0IjlLl9p606mUni6KYPUtWV7Ec5KMezczHcAwcQGlBysq6RUMmVlvFDx7sku72yOnpAXMv2Odh0yaazjaHGWzmxNqccHO7L3Z56Sa3Scu3+zLNSFleFrWXW1pt3KZvjS3yd2mdtNF5zc8Fd5jfLP/i2DpMDYS8ETnC39E5wq6uK9nTBtpscehxOVy5fZUti5fBBIFJqs/zvS3JfpVn+TatMWy5m4Ln3h5Zb0bZ+cYt6w/5OrNs74IsnzJqFbXzJsVzMxR5ly/3dDWl3SsoBqMRziGVOZqtIUWvDgsUMpw8jOLYGnwpX1OPkzqKtPx6UZY13rdEGglQjLZ+LqGrbclZW+9qRsgONHPlgIq8+nVN/U4QVOuD0HrcpNzvbm8ubHbZ1eQUfNd54Rh/lHMIo9fU46SOJCu/NXGTjh8daHzVXG3jweiz5iInRQth54Lz2i57hynNxzinxSWLQZf1MvLQ08TV5PktDKhn6ehhD4O9OwIWdrNCzFXs2JmhAbmH7WbMtMGZrIw4CyRxc9CENgdNzgXHPa0oJ3Nbp0v56jWszDYXC/q40fcqwx6+hNldY2uHbnJ0lJd7UNtsotbFrp+L3a7In+3cW0zoprPTQ7CycCaOIyYuMXGJicvUEpfFSzxfEc9XnIMniucrzsat2W2VPW5/9rtpdnA/0BsIATNoQHtIwY1E+HN7jjbpTWDow78va9EWP1OQ9GR9kdHbALuTC+cRTW+q+gfqtozUfqK12zK1tDnHutSfY0VPBQQFobwtFs1wcE/srfzZalyblMxsWrlIqw2XDJq9/sLat6MJps93H5zwuSwI8jaVieQ7cRQHCzBvC/oQK90ReJOda7D5I9nsyafHyydC33lxtcfhMtmf9qOajEauiiIvDtfxEfqyrs2Go67L6Az4p8cP9X/LivZqiyDX8G5Rc6z0U5GuUxMPLeNjlda1t4bdkV1emER2htzHEKMVmzO3sq30TKzOSegw8mPH08dnosnov6L/mpT/uqlOJvYKpn5dWZz5sdT/PJ1C1R2WxY/5BPc9oG8Av8hWhxaKLvH18SalxS0Vjm6ncHbW+l1aWk+Pi5cnnPSe/U3uJv3rYBPrsZ/dT9i7XiJpTwR9zFcH+RCArkUdUms2/FvsGzW71luNrtAXfOPT0njXybwWcJq3pvJvryEzEQZv+JQtIBDCvKHxRQNu7hegXJy44WjG0zLjuLkkbi6Jm0vi5pKzcWq9mHv1/SltsDo99wZJHmZ+VVM0iikZRXfkdXqm4DrSvyWbPFuXi9xgsvlE6mKTh6OdBjVGn9N8X4pSGDOGIz4W1N0LZDaYGVJbDWgczAie2aVrlMtlvu1fzGEFM6sJ0zOaJj1s2/q8j1Ok402RxonRmGc5vOvheH3nLSnKPEs23VyKwXKyipeH/Wh9XL+GfBAbhqxv6719yjM3idrFqqhdqpttsNskdbPGbpa5qTM2mPt85i5exfQjVs7rGobpOhPUembB1X5aredRHj5/vnnnNMuhp2KSZdU6R6tbbm/Kd+Qx2W+qoQvsDQAg6ylX1xefPywePt39Bu6GGMYnGsYH2DII3Sy9h3BdV/GYrqcYqP3PYd4/5d+OZ5Fq57e3W2Bp2bXDMVfcujN7bvgNz9PYt+6gutpsH9PvrlTnilunOnt+dcv2O7obs+0F+qM0UOAY/lbHRje5HJV5kXz59EyvhSTfbNV3mW/226y52zff5GurBcMTv8M5XHNWMYpNZ9J/EJzOeDBndvt73QfuJtTpiO/35qLTiQ3WFBNnU0tP43lC+K6dW+GZ2zuSrJq3wc/Y2PUdAdDP4WrvdsXA8JUs3/PWbh9uus/3xZK0WDKYoRxQWzXkY5KeTvNQG7mou2mdkZWjxdIhf0fHSgZMhUfTXcKSr83r42JtUk//XV6Ul+WzmwMXJ2nzwjHv+/0Xn+xvyuMD59wDheBNt7d3D0dip9NEiyLJyhobi/wmK8lyX5DFU1qsmkeA6HtCJi3V8XQqAK/c063ujlbE2rONdKRVu5YnHy9ZvE3KtLzOi05zRgfO3t3dPrCM/D4j2Gmk2SH3zDzKBAQLx8QpOpqTBe2B1/SLiZs9tJLhE0at7fZS5+7oyP8y3+7oKw1G7kjEx2nXddM5juUfJNVWQ5gBJ6cDyQNXlCOz3bgvySXyDWkzqm1zRLkbEExw+tj1aIGKbrARq6FyvKBmNHpkB4yuWnK9N370tm1Ux8DYiSLO5LvflOjAziqypJVfrJ7TMtesOZ+HLTnzjoHX7M9860WI6YRpTAbGWX7UWdx+xhy9U/RO0TtF7zQJ73TcgvAa/JL1RrqDrtwfUL0pmwkmOgGQWD2HfFPe163fl7/lyeaPdDBHY8qOKn/94oQZfcPUCaP3dY9RT+imWVdL+s61G161+r+Sp3xTQ8MJP3rgZ0+fh6aQdKO7JFvlz46a18HDhsu/8traP1Ih012yOdgY3mNK2NhEKqr8PLvdf9mkS+N2CZnYHV/k2mKVF7xNll/XRb7P3LBzdimY2aSI3/NpBpdQuL/u4XAe0Ops5FW5enKTo29XX5wwum6c5uwP0B6t0+wcBkNulWefxaG88Q/xurga5absuHzI6RW2Nqbbcbp9tGlRmyd6WHttGTuLArdPSUl+enA2p3DgZ/IGJ4I9/iVOMPOfHeviZ7+6+NmnLn5xrItf/OriF5+6+JtjXfzNry7+5lMXf3esi7/71cXfPenicl/QhKapwyZWxBm76czYDSYEXsOs3SIp1qS62K/ShD7I4sSm98UuL93w+kjK/qEcS161kG72d+6JB3/SW8cysxGOgeN5EPQoK96hdjaO8TCL+19Et0h4Hm6Ryjk80mR2kHJ0G7qsHcJ+UyVZ9Xa/qj29jTgnXncksWF0tdq3Eda+TUdWlk36VD2Rortg7er7jmQlKe2bJ2Rr2dSbbFmQOudcuW+ulLVlk98nxepbUhD7FnacLBt0nz9WbhrUcXKBv5vKMfJODF1hzmUTBUxtuzXZJMWLg05t+Lh0KffJc5qtXXuUA1fLhn5Il1T5zpo45Gfbpe2FFUlNSzI6RnHWTBlnN5bstsOP/GwbF1PqyaTUdBdJO50/xYw6wP02B9nPf5UlWt20rG6K9uZ6BPt+X4tHj0BRGkd7WZxN+7veteHMUj/W+ei+SCx3btl7NopSsy0OJ0qb2b9TbDJrQUdrFyD2Xygv6t9/cu3gT6x/9sf6Fz+sf3IC9QOzn10y+8Uls9p5OZW05udU2JqfG3ljejCt9ID++RpSBFE4j6+CxVfB4qtgZ+bUukMJU3Rq/ucZXNv+R1LDJ1v7mHbYb7fJydHFpOJM7O+4mDvd6b44/TCF6YdFbRZXZW0cPd9ikhVclGW+TGlPmtkFS2/1SteRl8V2CCETK8d04ths4Px9v5UoPDrbSThb4Sybl03DfnYLt67/lt5blVW9LY0GaPPWOps2pdSlbtOMDtXUg8qf/19PcfXzjmrjTAJoeLcJG/de5tsvaWY38HUaL+0n2/9jn2zqLrJndEfK5q7g0p5Vp2YHnNDv7s3rcueb8rr2Olb3OsTr3adyvfvggO5rGCfFOdg4BxvnYGfi2JzkqnXoq7u1Ojw25NrD9XPFN/ry/ThMW2XkIcc/5SASwzwhaTlYNah3FOsoo8ELexI2nt/FpfK/htjbBEl+bhLksg+0qttvbG9WdzbdeZX03vlcGwzux7zxxe6eFbabXERVpy/GUltz/2psDPzTCfz93r6jDxC8Btfq5hJ4k8CbnwY7RgckpjKtcXqs2SyhYenjnbLn4U4OB7Hvq4Ik29fgSq6+Uwa3yQt90+M6N+gZnoPVFHhm2x6eg6sEyffYB7Teu/xzX9thf5rHyBHvSJFYM6Fn56wW0pdL+g5Ymq1rQ3S0M4detlLZz+s3bDwsBTpbnKl1R8ryY746ZMa4zH1I7fZhmBjPphPPFkn5tY4/ryGSWQ8cD7oaThQLZx6QLWtXW1wsyNYtrLVsNKVyoFUPhAcrIw73fanWXGDOrkqfyXWRbx2745bxInfMdtQpndp31j7FQeIiYxSvnTqj6OBppWR68eHg3vGdcSS0XUQxHj84MLsxPRLdSljYLSQvyPIpyzf52sE+ogbxTvYQ0RFmPE5wZk6RjXdxVjnErLL966rGuYipxcVE6HxtPn8drx2+T+iVV6t2NsgmPteM/leRVsSek2hdPm7Zi1v24sr9mfncm6q9IrBJxz1v2+vVFHTrHlMvdvvegPyMt/D15LTdxjdk5XMPfRwXxHFBHBece4zqjD0OCOKAQMEtDgjigCA6WztnS1/Yfg0+dgInekQ+1XAXkjNnVf/5JfmSbixdDX1GhdQuoffeluFh8wk9FxXd1HTc1H2VfCVPhwefo7eak7fqH1+wu+Iq/1ab9oqUTri9rXvrMa3cMLtP11mdVy0TSwf4Pv+2yOnVho5UFl3YdFwY5fx7XjUwaeP3+fsxkBOB3q9z1Bz0BU004/6eURPz7fO6q0G9SzHbfwxewjv3e3AszpmbHS4XtWGZZ1WRGDaiR2zXCrvpevM5ekEcTqrkll76VpZptr4j67Ss2nMtBg1TMovZ+3mEvuGq4zMpnlPyjU55fsxXZHMmsW4yXvO+ubCt7QR8Q4bUdg1pOl08laxtiRIyD03pB1pUc4xKfl8FMAK1zXiXlvycrhMZ2BrcHgu7KdvDFlZz0e1u5Mp7d3aF2gqtOhdxXuRQKWMpNqyEYMEx/IMUpfBIjxNFH7h71W6z1HOZbDYeATOow780LFB8SNPVAZfmZ7w0x+b0Vog82bJ88UgkC/6QWm/G13a7DUQsSXXa/nImlEdrktTq3ba6xnUvAFPhfPSduB6nHSeqIkDAZKtDdBfe4rpKm61Y5ftmTt5rd5FNnq3LRe6pr/pyhOirTpxgdvXvD1c3q/KivCyf3WxwOPGlPzjk3ETAepBHCrqS+C5f7reDCTSHzD8XGw9cF2nFz9y7TA+GNXmFj8UECkQcyRSLA8PucfZoz0wtfrPP/jSNj85gKnDaHQPePgcDbD2huuSicj2zd5lny81+hZoyBD3zlaTZ5WFC2geMhvydoqjP+n6/221SP25JXI93UTzahaw6r+YxQIJ6DgrC7n1S9jm6n4VjKnA7CXdPMnp52DOhix0fyDPZOM3GDutcjnOxi5qUNnnP7Axzou4ec7c5fZPH05cMD7mjh/latgq3WKH7MWsrpXVTJ99VchyJ+xr7a6r1OqJUVe4sT0+zr4v8XVpHT7ph3GcewtfkVXtMfa4UJl+YLY/piTtvI6/NsVtrF/w2t/til5e+IDCsxOtU7vu8bk0vBXXnozvObv3bO7Ij2ar8lDU3hj4mdY877uGbbJlvGxBt2lfCerK6ruvTvlrnXuqyW1s/xNdbUqT56rTQ/gp2nKleUDQyC7EqH9LGRo61aYzEajQof7zRvUCHunyK4+tSLOcbVOQx6VVZlFwNLsbfSjSqqnYclpT5h6M0wVBWXAb5s8kul/JiXRBCk25u6mlCb6s4t/BjDvKqDPootQv75VV4wHOvFsdbmjrGDi1TL4XVjNl5xcXPJZ1h7314XdZjc7+MEHuVSJUd/mTX0TixpD5zl9YElihaVU9ph3ncV2ZNhgcdYSo8Yk5wJtKNBfUm351Zj04KqynF87KawzXRr8pmmv08jsDG6u8w99dUgYEYdohw2DvkXQrvs++zsZTPdFgZkzZHSZtUm3PO21BCxdTttHKSb8hFWabrjM6gvCrDcnNboAujcHNhoquWXO+ND760jeoY+DWxq22ScsvFsAcIKWWI41nTN39+e8+rcgGd+DXtUQH2AVah1EN2x5dwa8ZTxN+H9JFcviw3ZFEky6/0CcdnortU4jxQ1gjK3c8BcVQd4cOn5XJPn8S5qB5Oij19V6JneFJbx1T8kB3Pqn/0BMX3ZwRfR22lzRs+YGnVWvzx+mMVn6ulyVq4CRQAOvHRZRi+v3iAgqatFlAQtdZ6ewStxfSyU3tgnqT075oAHeMDNxi+f/OAR01bLfAoai3eNTX35Cab/qnZ40EtcALhqmM14cu4Y/3FByeHvg59YPFCs50QIvWYCtHvI6NrZbwAAAOskF3v46kEiw2Z91U57LNDxnsmefh3yiDZWF8u3mfk9nbxnvINLiRjyH0/fNbkDecBDdF8l9mdjJd1g9a9a/31dzHCb+G8qT37fkMuGyQcOuE1DKAtrif7zF5P9iDU4kP7m1NjblniZygNmyx8eN5yc6X/iwiR55XnfQ+hRWTuup6sPt/8nq/Oxe+2GMYrvaOzuuOvlt2Nz3fwaEq0tKlYWv9CotcQXMVLffG5pPhcUnwuaXJ+zWoBuDsPED1b9GzRs0XPdj6e7bAL4zD3kpLyjD2YoT1HrzUZrzU5TxOHhjg/E1/yji95x5e8p2/qLnKK+JA3nlF8yDtmQnH8Fn2t0dEEfm/8mXhY7WEDm6N0Ht/Vs+nZQWfGeccYt2LcinHrbOJWc3Vm3YLrgtRdmi1fooeLHi56uOjhzsbD3VTdswILst3Ri4Kji4suLrq46OLO0cVF1xZdW3Rt0bWdi2t7n2Sr/JkUiyJNXsV9LlffdzV+nL89d7HbFbUeXbM9RR6TyVvRY3UGhjLACG0Dvi0CFjY7TaIHmagHiflRzI9ifhTzo7Pxbm0f09P82So6t+jconOLzu1snNtt8kKv9KVrk3FpMvq36N+ifztH//Yx3ZC6Sdm53IixSCv+0hgjc46TYRO073jUCmfd9NLsmLrE1CWmLjF1mZRvs0pdipQ+17neb073KEb/Fv1b9G/Rv52Hf8uX+6J5k/uePgRO1nH6Kfq46OOijzsjH7enSC/JdV5so3OLzi06t+jczsa5nSZU41VH8aqjeNXRq7H2eNkRmlG87CjmVjG3it4W6m0XpNimWdOId7UP2qRZPFMdfVz0cdHHnY+Po7d90UWAOidKs/XbpEzL67xYFElWPpLi08EsosOLDi86vOjwzs7h0b/uSLnLszKtWUd/F/1d9HfR352tv7vM91lVvEQ/F/1c9HPRz52tn7sj67SkG9rqNn16JkVJF0frIq9i8o4R2C0ijszvyDYpvjrxNLdJUYuKh1ZH5x9PR6lj5IyRM0bOGDlfReSMmwziJgMVt+h9o/eN3tf2coSy/JYXqztSkjqnrru1fBW7OGtX+eTE3BfpyVO6gs9oW0yjZU7HMu/LvGV+QPh52B29Q6/Iko11cOozchqdqNINHkk7kPlAwsXqOV0SWkH3jtCZgEGUZRo54bvaIxB6+2yzP848Zar57NJaGFs+bY/hQdTRTdyJx7tpgIZbVcnyiaxez6yd0VGRz4KjIj/3Pfk1rdrYEjhjBreH0hxb9IuTFjVIMNDPge7Ymp/ctcZIP0dKcey167Hou8b3Xe/JZrcg36szcUzubsurBXHCx/W8UzSdqZjOv0m2yj8V6yRL/3fTkmRzmWeP6XpfnFP2Thcln1PyDR0/dPp56HN2G1/+oOuoAIODKaAngoHJDahjxn8+pn+Zb/bb7BxN/paaT9nL7+1WSmgn2QyzdY4EjxI9Rx8TPP/+cPV5R23lfa3cvHi5qcj2TBDDOFxn24Cix5uIx2uWdC/WBWlucbvaNP9rUoLzALDzNH0ySYNoKgK9Bn+xrNJnq3X8aMrTMuUa2nWP0n+fUeISrTha8Su04gUpq2jJ0ZKjJc/ekmNGHS04WvAcLfjtvkwzUpbRhKMJRxOepQmDrimKph1NO5r2vE17eEFFtOho0dGi523R4iu2omVHy46WPW/LZi/FiDYdbTra9Lxtmrv+IRp1NOpo1HM06jjdHc03mu8szfe3PNlE843mG813lub7PslWOb0NoUijHUc7jnY8Uzu+yWqDeUyWcfNXtOFowzO14eGTqdGIoxFHI56vES/IdrepdRAjcjTmaMxzN+ZoxNGIoxHP04jr5lOlxqw62nC04XnbcIzD0YajDc/Uhu9fyopsL2vp13mRkjIacjTkaMizNeSYT0cTjiY8SxNuYUHfRclWMaWOZhzNeJ5m3EPY5yyNM1zRlKMpz9OUb5MXehvudUH+JNnyJQblaMnRkudsyR/zFYk7qqMZRzOeqRkX6ZLckfW+fUYzWnK05GjJM7XkfLkvmscm7ul9AWQd0+tozdGaZ2rNe4rtklznxTaacTTjaMazNOP29p7DM+zRhKMJRxOenwm3Q2M6Z72Pk9bRlqMtz9aW70lWprRP43Vc0Y6jHc/fjm9JUdIniaM9R3uO9jxbe16QYptmTUPekWS1SbN4n0C05mjNs7PmW5Ktmkurk1WzM+TzjqrgTOz4Pt8XS4JXfUd30vf/+OGm/Jylf+7rAte0agPjuywIFeuiEoAN0KgjuaZVVrg9HIJ7wWqso7PRGBizZzhHS//rJNTclE183rxcPCdpQ2fjp2/KT1826TqpepAw4eM6oN6UVxktvbJp1G2R5kXTWebB8PM+PbZh36A9bSDwmJIiRsXZRsVzH65GdxPdTXQ3k3E3C/Jd2Zz/cyZu549ks3fjd/xjF4uweYPXJh3v7mqnNZgAtaN/4BErLE/rEZTVo3tQEU6VPVIrwBzbjqv+QOaj945XGHXXJ3wuk7VZntNxgnbkoEajHh1WidNpn9aqT3kxsA0Z0vvo5UVSfq0V31Vl0r0HFtjONerXfl04ZZ4onfSpRXeG6UljazXsTnNbnUyfzshOm6p+it17Lt17ui+wlTlImJVDYSYBNjC0EL3ZXcMsfwHUrIc7vtAultdv2OuDBmC7vUds1e8aqXDNUjLzgQ55hf0FXRN8oHpbyKHfAiOETLJr1AvvBg1jyMOiZPjlMt/XRvVi/k64PWgUDTpnDOnEtmkny21MhDl4i941xpgmvR6UiQS3aSnPb7yIZzSciSHvNYQ860kNe5jYD4RngpMJDpcvyjJfpk2FWl3eUW/Gr3AwoLnKVj/QywfbifdOxHuyefxL+8PH/aZKd5t0WTfnnz/+xCntxEDTlAFvbdlhtf8XV22NR1LQRbZkUw+mKHHdLTx402yZ7pJNX0SmEHBlkPbJkR375R3ZkYwu+QE1AWmCcHWLb9OxasYGdfr59U0PS2qIXawL0tzBcbVp/ke7MSSuRPUPGIoLzBpBQpHOADa9heUImEkAhtknMB2oHPgvudcmHHe0CkmnmToRp3JQl7asF3wZ97sl3nTSQpog7PbRQNible0+khVAOCFcJMjgscdK+il7RzakIj/QIyR0X8xlUi6TFZ+s1hniar6w7alkJmDVLTmEgOjh9Y7D7Q09mIqVaYPMv/7lLyrHOGzJgCf76Qzww4gE8m1c34wXXYvlU/pM6DbkBjaOU3cNUpjah+GZ/TbvFIyRZmbpOoMSZ5l6xIcFPqaQnQ/nsZRSuOlXDWKGc6DDcDb44ifhNuhF6/RFOukrqZBp5NhO5ZYUab56UE1eW3evp1R6IIEIxN0XT2kOtufd+KiDULC8uNfEiQAt5OTkqPgIHLoQsJhcYnOARpgJyAiKyWYzh1YvSFmNOyLqt0CEkeH3c0DKQKJZOpEBagKPkCJetNVOwb8IR0tySdz28xxGTuheHWv01G/o6I4n9Jr7qVohBs9gwbQnyTxjUbj19AiG2QQaTgK7fpxFQAm25G0aSOoGTgQm3WKUag3bcPoNsotCxVxS5jzm1WTizWeG7W2RfyXZhzT7etM8P19k9B2Bwxadh/br8e9PRbpO5ZkuRz+AguArHGvKZg6q0ZT0gju+ngDYUwsKaYCwd8fbBtE2hxOlvCO7vKgeZJ+lcFTzE4BGXjTImsS0Ma5R0SwAf5tQsQ94Gg3n3ZV6oTfxcwni6cdZZ/niKwoldU1nvHeEQZDBXgTAhMZ4tMF3+bcHyeWahr2mGdQdKuVYNb956X9UvzjAAJUEUlXXrtH7/6a6yeo49piw8WswyjqVGY6ser/j/EBYFEiFHB8IvaaNjoXAyUBYDISMBNDOn1YmQCEQLBGInT+FLKDnfa6+P6Vf0spfQPAyYOUFkDXo+BmQscwhyAhEM681ANRq+sd0HTLGtDUOWHQ/zdrJHISYV4A5dH+Q+BI7fhLBpety+Y1rpy4bFOp33PBDkJgCho+72CHX0ehIGhM+VbKsbptXQAJvpBzUzSKh/2Xu/qQny+ziSQ8doTZMRlyIK5xCuBncnqUQwb47G5B4CT1GYdARuvC9bgkzdNAb2vyocyWSO5i6lxy9Jj3qiRVNy6B3ZZ3KewFb6IQHIinI0TGvyU4NgLWwdfl0nW2bVeYOju2qs3KNxzNuPDlMtCqgcsiova1SuUCnPyORqAPSqBZ7UzSWo3m0b85etQ9r4aEGxNR5enLo9fvBIYsCaR8BY0O1Io1DvFg9p2VejHDP5rABIpyxJWY93BHLNK/hsBg6wVbzImjgoJncWFkoinxPq9Goxd+QeVrwG2lcYwLDqYxk7ki5q9mkXzbBt6P2quY3I/S/zd5V9aWZX2TrQyTcDpUIDkmVk4xgPSFmFbvGhdkY8QoNtylEqtODepf5dptnt/svdVccflNslOpKDHclHX9Fnok90FEuMI7ONtAKJfWDkaGYsIUBrktGXJjcbvdZerjJRaI4c4h42/PQazWzEjb4Mn94DQUCVVhNC1RB99CNiYtwC95YSEwnPx5CI9D+ugiKqebFQzj0Uq0Ae6YiKkQVMn0wGjKulnmWb1/+iyRB1xR61Q7vYuj/PmtI9CWZV+zoQyJI5IhgmGLMOI1te61X3eMzhRHLeFAKOlrB4mn8sUoPTfCLUkwmSvzAyu4CoVlCzOzqoGM3j4a03/Jk80D/c18l1V4Orl6Rfmf2fw7ismiFXAs8IUimFj8QagSB1HNq1qioCX33TVcn1/tncPXJUYx55b5HGARJfCMAJpTvHuOG8uIbVJdp5kZCe/5QV96g/P6o9900fR7Y44fq8ZCGPkMvH87Dv9oOn4pXb1PL2ay6ogcmLm8rCTjCdDIYCQuhwKEChYIZehFE708reBzgECyERCBMKqi8T7JV/kyK2YSUrsGDRpx+PItwchRn0sHkCJ2AoQTV+zPzHqhen04QOcIgSAiJAJhi8LhNiiqlMmZVeThsLIUAqgchUOAwNfzgBRIOPDQaFmAYnmL6tICxSIo1kecXznzDGIAI7SPA9dGC4wHhtNW9HWZ0JchqLvkmI4G4LV5HLyOdTYCPYwSdOkHAed8fOj5SQjkhO5CMmq2y+Ag4don4UFU5nQENC5Eg45oIDlWVUxjsMO3+vFvVzizwta3CNqiw0pU4J8QcZJq1UzmgJ9S1rhE3ONxM19/M7rLxaUEv9HUAFhCc1qUAQkFmsN19WvAbcyiPwN4kB/ShtzQPKhYj5gz2tg5lmWlOFW6bcwSFuMJJJUwPivbb9yU01R7n/ppQG6ORkazfvEkA5P6lrMj2c5msiXbFEr0QAUDHoAVivkyRM0pIhpKhADSBpSwWPZplTVVPKzp4XihC9+eISOpRTAFN/8prJh/plRtUcseLovHCNV5MSIXCTpkAWMYY/wTFRfAUd65jnsDjnQiCiY1xxnmAaRw8jDZrO8eZWs1TSDGBsAEEOIEY+VGgExzuxJeeuLsRZpLzIYZXvoR0G8emTeKK8bt0/VQ9vCOPSd0d9YfPGfveuiSsNAVloaX9iMIL1ygp88NX7xGHV4Uf+PCyQSoddtmEsBRwqDINzITKWs1wMp0hDA+VIEOZCJJ5DHEE8JjbnpdpQC30qMkQclMYPfGYcxGwzhhb03ZjkwlvNCV7oJ2+pptp+qtGo+TWhktRM86p8etDXPeNfXn1fVWQZHu4a/Y2eaEPFF+zb+ANOrmuuK6XG3GffkaBZtAM0U3E3RdP0zzHZgeAy1AiSIVst0wELTdZRMsE0cJ2y0TQEv61hJHwEfiSfAQypjM8H0Ij5KsJERQTHI4zcFDmcIHS2HHhMkYaawAdppXTGQ6NNC+MBuHMvIsRLKcTdTiYBJ8TjgCZaATioTHn+eCxYDbmbDAcblOYDF4k5dea3XGbt/Z8wIFg0KvH3+DO6EDSVStid/rmBSNdowPAgxUIUuWxY6aDDODef+Fc67ywgeqpEcDRFZ4OOmCHi/w4D36GX1zgzNwIfJp/cr5ktMNEU0JO8INExviZyDEiMYo+7apP+2pEz/OTFkA/nafv4QYQc3I+B9hMwwWNB6FJOCEYkCbmhQJO7SGc18zmaTAebDrzdx0Egkzbxc6fytzcsdvrVtQQDLM85GmWLjyqxlhKQiFM3Kujo01zxA3RkZqVxgMVd7jNLyzC57BzOdZGm9vmOoFTDfGo2OdQOGTEgWe600o4WigESzkiCKaVeBy63+dhxelBYqycAbWDevQsoYUGIE9AdCAgV2johNmC7/n2oJMVJzFnlTMI8yrTCVFvQ5DwLiVwvolepJnOzhONQwl1Lp6Sc15mhH0kY5yMP8o+A9fDtnvUg/HHBihRc26HBk8yzWt4I4ZOm3nPalZtWhCcgvfCHsefJAYDb8yNjguClGnt06UyjRrs6l/VkGkKnBdiqEgzj3QUNuM4mQgYeb2T9DBNQOJFcN3HrzI1AiNjtKBH6SeGxVlcGzM+1qafUE0qJNawSrN1+BWOwfayw7S+ZtvfsNTZjOHkMoJi51Q2UIiBdby31NOtRL6fdlMgU1jijFApkm9WiOxfVFzuambplw0RyOH/ButJoGicW63R8On11ZRe5gk+vz6sWYyac8ijGGHmNcHAwEMzh45+7MtvbBsJWOP4odnMjAshFeopluhrpjg3dWp24GnvQcUSWMx/3nIoy1wDULCp7QgKcYXT8hT66WvDfjz3rCTU3LRBLBp1UpqB1mRno8cG0oRzmVEj1V1afg2Zu9D6BgzaH2bd540I80pQmm4Pkpe86g6fQvLRdPVgqtW2uzXzq6+6xxlFj58XPNCmy5d5pjH5FRIyQSe6wLg5vW8+FmLuq+Qreco3K1KETAh61Q74DH6fte/oSzKvLKEPiSDJQgTDFDOIUyzptX7qIWU8KAUNMFg8jR9nTmg6HPbTXpiJBhRgllR08pP/OH98cDKhQDKBFf4TSjS31Dm63HAKCAl4PNcIH6PfZnhCRx232/uK6HaWqcekuPPIYOfR+BGL5oa/51X6mC6bnx/eJVVSN2pJSrqZ8o6sU8qffpICUEHS739VMdQkDNtmLi0ffvQCMKia/CCOExJSp7zJ4zk7Dn6yN+88PvI3BTiFferPCD431fLQxEnBRejnve2vnQZWAsY2Q6iMnmMLkCK9B9n+OuhZoCbwPdCGyJnEFdAcegJOGk8BLKFmDI0wMp05ZA4m/T/uSK2ClCguWBpzz0pEmaZOYVdOB2lBliwiSDR1TmEFg4fG3B4UnALMQj8oaAa3KTwoODw8/EyK55R8uyiWT+kzuSVFmq/uSLL6mK/IRnfDoJDVkVpxLJsvGmiOEyy6vvEyOv/ZP6++IJOkcB1AmjPyZYhCceQzbK/LJAB60EsCYvKajAWikLlazk1WkeIxWZLXZSi82PqGi2hekxkI5J8r6tsF3t6H14V+ufh6AVS0r8kaFHqYq1Wcjhm9KmvgxQbEAgHNa0K/QP65ov6w7+h1YZ4VWt9snuI14Z2Tfq5oP8Hc52ylaiekJ+uZ6XSkA7xPd3KyuRbwFWfZEukhSbaU9DV5XbkaZut+a2Hrouk629a1vC57kMgOaL2M8DXZgkwJc7WEe5KVaZU+Ezq7+oE8k83rsgaF/HoJlMSvySpUipirZZzsoD3CdlVXVb243jk55yQ9+JZKB+jv9+UkLu4e600d8DByZvuY0CPH6Wyn/JA+ksuX5YYsimT5tc65r55rxg+fdrRMsulLdqhVcbDWqK81+7jFDRxwlxU5i1kCiXCg2QFVJ04Vcc09Z+X75gS6v3mqCDrfoJP149Rw5/36qqlhKVRQtMDQZJ7OCf+KXEyRJrTN+74qh66LNDn8/HZ7SwRhLrKRlDmLiCaTDrvKMt75uEEraL+BkNcUlKGv/TgPR8W1e4pOizZsvEMpNx/z1X5DLvdllW89DfV1p25FbRgyFZeYdXATyzSviYCu7WT1+eb3fOX8AQoNcNjqB/z4j7OGCyfOzJHiLEmOGLHDyBRyZg4dn1Otc3QfQDzl0ZNAoHGwGQOSbVsnlhOFclgxG8IBdAr+S4KYuY34pwW94Ce9zSE4hanqbs354S3Z5Nm6XORBVz+66oWr/WeCkKM4kLqO3TAaIt7uyzQjZUk7JOTqfb/eAaPhh1nHq4Eo8xqKDWARZK0iAmKiecspZkhbb9uNEwwb6K4KGjZ6jRsfF1ffK1LQhfluB4jqdmtET2pQwVU7YCr46nXbYAiM8DKBKu36aXyk3FTH8/5X35/SL+qL0BFQ8bbJmm0v0xr+8+xBJhAKg7LxQRb0fevwgSnc+6AIzE0ncT3CINBb1hEA00tUxz2FHCc3JjnjBTz/5SIz7cgoj5BoCJsm9GSE1DeRU1EP+sMGlgOLCQ5mDQcOAX3F+KcH+Lw3bCY5jZFGuOTCaJQxpTyTg0ugjDMCZS75aNfw0Gsrg4qH8Bh+mTcyBrLMzHsMoBHGcURQTNdTnJzcw/Ff8qGKWU9q89JTzZKI4mvYgu4zdzEFVl1XehIAGScrDYyJEdKLuYWQHiRCZ54RDJMMHWPNe46Fi/Czn0h8TGEC9G2RfyXZhzT7epOdoNL+epx1+VSk61SOGYMuVm71ETVpuFlEXMLTrCkyG7DcAyQUDVKxsM/GW9Vvm8Nv/rgju7yoDgg7SkgFli/2q3kJoCEvGmRjwLQQrFHJpEHdLgscMDMaljndBT6kOI29TKHyLLPliOmk3jxaQp37iTiZS1bef/nYYIOkyZPVXiLdNBAX/HJGu62WIz94zTRDuA47uZ2WRrif8cYJBJSnsrXyMqnIOi9SUgZOj/gGCCHS/zzrwCcQaF4ZkgAxoVKkiJWZZkk6QVz2MRBD40YjZI+OFpdO7ZwIkkY4ATAOUkL7GDg2pheKWmh8rBnVHGuGS+BbEMhBmAoqXcUq/pIy5zGqkok327FV0EMm0cdMPYWZ3WUu40Jr1Hfx5rOCO8TYVM4vjAOZUU8ywHEzheMMQ9CUu5ph+mVDBEIESH36T90U689ZWmlqGJY6l/RHJiAMU8c+nFgu1LzIMMaoq6lYiKHDl7PIiFpZ5jnqaqHRZmqunY7nnGgccI3mlOAoa3tzUtAKNAKL/ma6IzAqwygxqP5LDInmw3kggooy0wBEYRHWSURATNRDNAGDb7ptH551HgLu6eDBh9JNBFMuIs0ZYmi6icskQlM7eudfm3a+OzDE5DEvhrx9orLnNZiSiQlqwjQmdwatD32DAVf58EE5/uus/Rcvz7xybR4qQRLuCJJ55d+CeKe8Stqyfye9jmXWm8HXsbhmTgREtdHVTs99nhSXsDAQQi9hDajHC1ftYIFs2hd4rot8K9XiZJPvoRBDz8h8Og/kMVJBamR6diqAC5lHj4ySYMkRHhwTSp+H8AiTO0dgyGqcQsrMQKL7B+BuMPxNHZo8eWykBL6ewwAwXO9MBTaL3GteM2XMTD85GXTOaIjpmnxdkD/3JFu+hJ7pEzZgwFFSYtZhSSzTvNIWMXSCZC8RNDjQTDCladzeURIpVBz19MRzHPOeDR+3hh034nxgd5TsoftIVr2IqlpEPR4AFB+9C7Z8Or3zgOKjkX6wZ3cY8Eg7PgAXZLurDSj8Ne/CFkjwMywy6zgoEWpe2ZMEPoF2KkbgIIEzhQyqF/JYOQDBzrKrwYfbgUHVechCd6kzMIFqY5s5ARSNGK8UGDwrNzPruDRGPIrAmEfcUe3bMe7O6ceYiceWcTfoHFFCNwvVrVySskyz9R1Zp5QzLVs+3Of7Qrl+hR6cQwAjb5GkGhXBWY29FYLiBuJjHkMHIW+RFGsiP4QMhAgcGOeCTFuETASpcvJJIBd1RzTSR57/7dAhfafp1dDL0R3l+yRb5c+kWBQ1s9CjP67yATfB11mn+rw88xoG8lAJMhKMIJnHkJCHByBuWXauZnQ4oJdz9gQZs650iR9QhVwzp4GgB1kEn+Cy7bg4C5vq4AE2gYXZIbLGynCCI2OUoDXnrGaEjCaCYlJZTG/4Hfo9k3FmssMvdMzMQfQQEe69koiFifmFTzv6B53nyVahp0nYuoc3hHMfZw0NTpx5OQsOJkESiggQTZ2T9CCA6RGrjp1okDHqwMABp9fESeQdHt+QmCBAgj8BgQPHNN5/OIKjfS3b8cogBBWUz1i7bsLiopEUUmPbF6Oh4jZ52dac6EmcMc5tCqof8BN+n3UyIpJoXgmrCDJBctYIljklryKYAPJXB5080SzWtDPD5ipMK8eGz8d0Q8oqz8icFvfYtosA3Pt4BokPJxSozvFX+TiUhZ3BnwJQAscyHEQml/WckBJqZj9iRFPnhJKdj/mKBN8SydYtBMjp41kA5CjOPJ3IESYhx00RILI6J+lB4GMls46d9igJ14GjDJGaJo6HlyJdkjuy3reX7gQPOnz1Q/SJvs/bswgkmln0EUAmTACKYJlTJBLABBKM7Dt5qiHJsDMDR6VhK0eET77cF4RGyHt6NJKsw68qiZvAwFFSZuZ+RyzV3AKVGEKBglUEDx48Uwhc/R0OvCiKwOWswycbwMw7NnQQ41o6nhfaF8unpCTXebENHsGYuodg5D7O2+2w4swsWLEwCROlIkDUdU4tIPVkkEcim06dauwx6bzAQafXxClg5TjYlgLF8sKUiULF8EqUoFg5tm0aQCl3Nbf0y4b0txjT1/RAe76bgrJ93+3HWQBHLfxEcCPtqgkgqX1/fpRLXEVvyjPfZp28sNLMK7llIdJmVZPfgDc+vMY6dwAHWduVE0NWsCuCo9uZ+pCJyjFSSKr/lkGj+XQuyKDCzDYeUXiEdhoRGJP2GE0g4Rvvoi9fQaIC7vURQhOlnAzCXMShM0XTlNObiQSuh/v9rla7AkJGx/JnMDUzwWmZri9Gw8WCFNs0a355R5LVJs2CPwAnacKAp7TMrL2ITKp55cQyCAVJjiN4TMAzhbxZBhvAVk+HnT7RsGXTuWEjmKClo0Fq+DjG26RMy+u8WBRJVtZ1tFckhYxskPYonmWREczabYFEnFcABMEuSDSMgPMIuCkETcXzP6xkUpQFAYkmrjp/psrLK1EWYHEKWvQrUWzDp4jX3qe80L6oF/RdMzkX6dQIlOQM3zYDig5pyRRfN4NDWPM0n/PbLucG09BzcQ6B2SeYChTpX/1tXSMPb4TNUYBPUv6Mck2xhHMe24ghN8LQJoLNHdgmPq5hBANmiF4AchaDGnOgjDumYdo9lSg8wCri+VvnYDn353HHHeSYnQ2Z/njmMt9nVfEydvI4aIbCAJhyZxS/h5LNOUkcQmqE5DCCCQ+miSeBN1lJ6MH8VrCUlPf7psGLnBJ105wzmUQ0QyuYwxlGXzNNnEeENrEDzUykB3f5Wi0Bj7iZmMIwik/RFsJelT7Vwf04CQY6AEw1WR0gKtSV6hFLVliaeK46ztN3U8XUdBb90At9EwTXp2dSlPTESV2E6N7R8zDc8TK/CBQXupA9pHlVo6Gh7JCmjPz831CUY/PHno5kGqJAHlfyjAIzK9uc8zwWWiNMS0ZQmYJq6gnfUKS57GU0RSeCx6sKvvY4n9lkJId71LSjM3f4mtFvgrLZGAAbs6doA5L9AMHuypzqsH+UuzQtI8OxrVME2v3+C7PdfB5ZRn9C5SeDveg/vbIsYij7GWYNPJCneW5iSmCdziQqHp5TPDoxBORLWZHt5zJZk7k41Zuq12hgzQzNq3KqQ9nP0an2Mazxp3LwKCFyXkjFI2JC4BxQTBGPoMua5788xd9ypy37qtzubC6DhiE56GrBFHE2/v6QeV0mrZAj///bu7rluHEd/Spb5wWm5n52qyZOcuI9mUnKdk7VXrmUbtpRpS35SGrP+O1XavUPKQIEqOav3FeJmwBJfPoAkBRFhj1c2twTLrXq7M8YJozj9CDVN5wavWIHrQux7IiVeMSiD7f2xoXLwG4+qxJIxUNNyTI62cO002dnArE1j8O3h8YDf64wqAy6ZD2ZceFoV15DtR0DQn1ecHn2iYymvhZt+1fdrG9EK7ob8Z+taIPecge1r97pCgpkTRLQpLyCBUibMLc6XwjDJ0yyESbZIe2FXhb0ihqCbtt6bH+orntNl1KTjird0MqyJtLUGi6H4r0f/H39Uq7EbV9Z4MnPqWGlJvnnrKkgGZLXyEZiRKjJ0IULyQ1axi7fYz3XHh7w4AJll1jk2RuZHn1G8djMCTiFZjMwy7CRZfoIMxW+PPiEcsUAzo3YjHsdY4wl5Q4AnFCLF8APxaAcg4TCmLBjzQtXiFbTiSv3N2JViueyrxM/qTmNQWh8VoUelFrzKvbgtOuK1Q+x9nN4CRV6lMZVgkyK8g45qjGZpSaVIcHS0oUbWIsppKJPYvN8J/4OvUh6aFap5/Rj1kw4mpFXfDgyIVRkuHAgoTjwr76BWv5adlflQ/m4jXLgLdUdpX5aOGsukeblFWdIpoWKPxeOOeZYFnHM5wG5XmbgOdA09BERbuiawmm7JF//Xe5uHLuqN9unCl8n8soSn8weDSP6Cgp5YbITZrlgN2Qyp23KgHhM//zh2/O66MSnsu3q5vW6E0+hR5VAF1SygQJ5Z3bIpMxGjBBzgo0SL5zhcyaFEeDnelVsfn9shHjqK/yw2f0zPK/AwQbth1KxQSprCuF25RV7cDaFCkAXHs3nUdrxKLupaJpUDD35PJOSKcw6RxOa1Y/yRQz/j7DCC3UBoNFUYAHBbGJSjvlwwpywqfDCmcxy35Qteaa9NGgXJ9nNoV9qee5OtF0CuU7uBkoiVWgx8UsxK9+8pzApRu67cCjjPKiyJ+dcmAoNY+ZEezomlxdjLY2emsfJs5QFLMmcjPNe+GXPC0fQNpPLaxkvacalWdT8ld+65bttW1aibWMlLrl9nS5qaf5hSbEnw9ylsCVo8rrwxNhoMvlLZUiWCSw61aKkMHvKJZPD1FOF3xVt2X6sm7umqNq+oSgfcbL7pROMp5V/jGPZmWGOZLExaO688DAID5PJwTwGZpmbs6NylFzujtKJ5virelt1zWsqqV3pDkW/ifDSAqhqXvb5W2VaxLR94dg5HEs0N0/YtYCUnBxNE0jAM+iaaN4d/roR7XNf8/AdZSr5F+wWRT5EaWmxEjYz+7wMMzFifr5w0AcHE83bCPsWkL+Tp3EC+fwMOiea17+8iKYdbuBLJaNPOkQRUBNfWgSdGph9/p4yLmLmvnDtfK4lmqc1li0gQydJ1wSy8izaJpqPtRvgoydk4x3gLPmlhclZd3gnnZM11kVMyhe+OeFbonlZZ9oCEnOilE0gNc+jblK5Odb+6EPbMJmWst/1aEumOTT8fugLL9LOdRnvf45GrWiZKsM9z/+si02snHRoWyfIqST/2HO0JcOcdGRH0Jx04UW6OenEiCxzUjRqRclJdhRLJid9Kqp1/SKau6aMl5y0TuiUAUTyD0u6URnmLZ1BQRPYhTs23EkmtwGsyTLJJUS/KGlvJg2TyX/XVSeah2IV7RQgpQM6eSbF+cct1aAM853KmKC57sIVqtVk8tuEJVnmtgToFiWnzaBdOvms66vpa1l1sfagqD0AaDMpX0CYUi3KMaeprAmb1C58ySmvTZiSZ2JLgXJxUtsM6iWY2+7E0/Om6OJN2sCemIikyi0phimWZZ37FFZFyoEXPlnzKcHcqDIp8xyZECUj50x7aqaYO+PnTIpIy4tp+efGmDnxwhes2RRz3yJyXjzKxc5xOea2vneDH8Rb8pQ6ANFGKV5CoJINyjKvyYwJnNYuXDG3mlBOU1iSaUqLTrdICc2adunls3hTNakDBtIsZ+AtG5RzPosxTbtwxdxqevks6yladLrFzWdZzs9uX9tOPF0VnXism1K0cZLatBcQfXSZJYQszaosc5zGosCJ7sIfK/4klPd05mSa/BKiYKQ0OI+KyeXCeEuVp/Zx8ixn8UmyJ+OcF2OZ8sITQ6PJ5baslygjUy1qJstwfXI8rPPD313fWqwlymkfdOLoEvnHKc2mDHOaxp6gee3Cm/zWLXXGZJnnkqFelHw3j4Lp5DypJ9+qMtpWE6gfAJFAqQXEMciuHHMgxKawefDCozk8SicnggzKMy+mRsU4+XE2JZPJkV+L16e+uo+N+I+oVq+xpoZAN3Q6gUL5BzbIrAzzI8SkoOnxwiF7DiWTG0H2ZJkaE6NhlMQ4m46p5cU/6rWIdsTmtA8ojSSJxYSyk0355sITe2Ikwgtv8st/EmNyTn7xqRcz7VlSMJ2c15QrcSMet5tdUbS0p3cDoBEktIAgBpiVY/4DmBQ2BV44ZM2hdHIhxJ4802FaNIyTFOfSMaG8WK+2jRhS+21fWSce462Twl2BSIUILiG+waZlmSdhZgXOlRdOncOphPImwqZMc2eStIyUQ8+gZzp5dNusfhSt+Fg3T9ES6KQPAJ00iQWEt6lNOebKKXvCJskLb/LLhxpj8kyEqVAvTuqbRcFkct54JbtoYuU7uX2dOGpp/vFKsSfDHKewJWh+u/DE2GgyOU1lSJb5LDrVouQxe8ollMPGpdthO8825i5RsCMQhUCxJYQtyLAs8xzEqMAJ78KleVxKKBeCLMo0KSZHx0hpcjYtk8mXt6Jqy658Ee+LroiVK7VO6GQCRPKPa7pRGeZHnUFBc+OFOzbcSSYfAqzJMhcmRL8oOXAmDdPLf19F09ZVsUkiD047YyCVLrqg2KYZl3N+1BgWJ09euHUGt9LLnzqr8s6j6dEzbl6dR9Nk8uudaJ7Kavfze1GsN2UV7VJdpCs6wVDB/KMfZlqGeRVjVtCseuHUeZxKJp+ibMoymyZKyyiZ9Cx6ppBHI27LQV9/L2iTRcb7cKJswblwItE8prBhX+9qeoHBuQ+SIMfh1OlvbfGoVjop8UIP68d2Jk1UmzgNKs8oGlNSWfTkTfqXuhy1lFXO+AucFx7lvaKJM4iRxhw/fGaCA3ObJyKd94Ad5ThWW/iDjMatO/F35zqtmQgytKdUMP6QdYTZmZBXUto9dmf55/LAkXbCZ48PvU732ut0vYZo9v24qtfiY9m03RBwvhet0J73oHUrur387+uXctXH/vF36eEdCm5XP8RT8d//WH+v+4dbfN9IShoVoLr7UNih9Y+FeBtDeUs2NDJVa2L8Gap8LCFqHRAcvuEWbVtWj+OEpdk9hpvy8QdkE6kB9YVQoq3HK7Dqom3v6I5ddwM7m2IFYSUXQg3L5ex2fn9sxO6D+w+b3T9De62xcUTD3CNEiXIHQAtyDFAMdJFZ3djfhrXfsgt0YCoANa3KcKigLHoAD0Qph+FXRCiwm9WPfvg1LHwjZmoSIMSqEOMhjwr9sK+s13irh3JDmwcRXoN3ou1oY1UpQ+OyINtojNByqalNFn1PXkhzCpE0O7ciTPdnuGinqYY98PsJGtATQAbqgyZGt/6uqX+K6nNZ/byuOD0h5KFeGVW4PdQVb8Rz3UCJgVLA+4jp2MF4XfW1PBQkfJIcBdtRlENvU/tKKUxjSYAxbrip/0IGCbsSbESwK2RUj0SEUxHWADcWHK398PeP8nsJDzR0Idj79oXMVGbIYuYERragvizXWlGLoZZUCaK1Pu49lI9AO4cCqIVDGV1314fUcREEbkIuR1o6iZwzGL4RxXp3yK/dwP2kZTl4Pyie1ed+EtpP/8rHahjfzbQAq8PSHrgatnWd2O3lGKZ1bQ3N1hA5Qy9VUV5PbkT73POo/L7BApMigQbAkxAnTPWdHZYHwJBxLINjxrGYdLWnp21VoiPASTnsaooINfBZ1VX99Pp/ooCeplIKhtuTAI3gP+tic9sV3RaazMmFUEtyOaMdpAW8blatSCY8FWG18zLhp6Ja1y/gKsipCGriVMolMfocNAkjoZlPZCL/7XlddPDICJRjdGEUtegJ8ign5caWucObvXifz4ebyvCJDihn7IEsSvdkemcaMSoZRaiRyShl0TK27AbIUG0zl9b2Qeq2a0QBDfgm5YY4dxAhGrwr2p/99AVo6lgCNXIsZFSPsUgqw5rgLb1oF+wxHpskx6EN8/HBVxnSHamx1A9JWi5+kb6MypKLYnY+fQwF2POZChjjCfOJnOThRzEpNzfJAv+mbH8CDY0/Q/WPJdQialf8FD/qzRpMuUopuHwqCzBebvxZd+UDPrbTRbCXHrKULXH7UcJLKf4yzUIoBZrCU52ZnVTWUK17jGmzuw9XMNOWeVPa+VWxrXQy+QVrPq7YWFsIabIN0pVn9r93tfW7V6nA2g5TDWx78ErmPpdj7LV+LoAm/7loyjP7vx8nWfde12P3fao6m1G9i51HKLQCCz4hdcxNJezlLTt1fpqZu6gF1qYcAfFZvIiNtUnGKthmGWqhTftcPoir19VG3DXF6mf/wD+8CHAHByYIdROWZbys7lr10yOxEwDHXIgkPP6ChEvLmTCyEKCLUFMJ3nLAt+v+CW434mrbdvUT/n4AkQOHhJAo3ZODuFh/u/6zXkMg6CLgiuNEivGmbtvHoH7AgWCvFoPv5SQJhp8fRgTYoo9aDnqoLMKPLFfDhRF1UyL7V3QhU3SQ5Zjt47NCpdzUKntOuBfHpoRysbE9+9m4HimpSA1pkIFZV2KEPv20JD3o6TJguJuKMabN8JmF+jwalgMn1pCozYaPO/H03FeB+iIiaN7uIctadYbsBKdxq8X9u6YEX09Myk3L/HsRmwYRQwEZsmGeuV+eB5YMmzmqNZZiNREwxU6k6KbBG9611kEpqAOAILsPf5R9MOvqytABScTQ+lGK3/Tpml+06ZOIqemDFKNp6D5FvXVICuyALsjpA3InFdAPRBLuCyjM6I92Q4jeEU0E7MFEyibO4eOAiYQ50rHHAkcFbDSgChCtskYE6NkP+jsSTBJ8YwIL2+4HeVe0Zds/uX7mVLUPohmjGrkFBFOjd33AmrbdnuySYPYa0aI7DSra9vmq3va8eWX2dSJN91FROGdb0DDPbweHeg+/DGdr2m0BUpRt+39UZqKrydN9naicu/HKepfVnC1VnKTctn/Vzbpnt+huhqFzC8VjWAxOzpAkNRtp6/EzNnwBZioBzkQUIc58dPwOaFAyfLIACeEfFclyjA50XdFXtUZ5OxUAG1ZkGEN+sXkeP5/TB97HInC8vS+lm/hXPyqu5VWo3QdoD+XjFv14iFaBukRpMbt6VW+2TxWri6Ao2jVAmtGlzx/GjUOfeneum9dreEcwLAZ2BZBkLNYOBzsxPywyyIJLtpg4t1fkFziwGN4X229xZC3i+xhclOqO3ZcyiqbpMVHfzEylmE0Ty6eADNq43ULqTmXmwNZCF+2tmyEuUBU1ZqRVmH22HD0CNXCH5HxVZtdnDs6BmuhRJEeJ2W3r8SRQB2NQydJidtl+eHmsxBQSzMvLigizRcOe6Ek52iJ/d/ROnLOoiQmifZixvLnTo94rQUJoJyzfMI061EILKIV3wXLJZaJErOwbpRl9slvjnyrz+sTui00fzJslISFDD6y2Tao6ZgzIfe+6HLsDjJehqKShK9avRRU98/OgXldqYszWGe9FEDm0F/ZvSEY13r5qgyzeo1k7rHeqvJc3uCjap1mvcWRN0wsVRI7qjMWrlVGN9X4FF8X7M+dNy16T+7rFLG7o2swXL6M2/fYFkcM7ZP0eZqemHkMK90KVQXsgi7Fb5+0EMAkb+jNrTwB2nRTcKeYuCVjWtjP6sXpEp3QFunNTHWYn+S+6zOJoB2e/8vraJ6Dd9GW/TRH9zg8TBBe6QVnO3hejv9GuZudlNtSxZM0ZhEFWn/GV57GEubMEObFLLTbtJxkkLD43os+KgQWNHyBZnhSz3wluOD9CkzB863cQsm7X9P2fLsbowTzzd1q/MvvxK78j/ZD2y5ZzisdhNoJ+camLmL/pHaVs9jhYndzGUzPvhzjnNDfDe2HzeSVcRcuX0ZLuOZ0/ZwcAux470zztGjjvfbxFTedY6/AdvswQKNCwNecTEzouldt9Kl6zNe26T0R16TBS1j6K4VECpw7/l1QPvbcCqUTp2Q5b9SzbI9bwgZ+KBvOwz11lpOwEs19U0BiAQq9deSgyNV1CZ3r9vKsBFvADknzSMRce9HTkJQEjH9nHxAU7c969kUqNzONcd5XbnslqD+aphftDuVgjjem4WmhzAEFszwhO9eBYCZSTLTqKtJIv8ODDcnc1TIvOd1t1fwsz3pNKTiMavKdn9PNpmXNAqNhuEM8XBGU8dq/VD4Uck4IXsyYOB4xb9z5nOsF5Nj/GUzbuJ7Wj/ADFnZsDQaseCi0Di5z1fC4kNhEEVfHgOsGB4EUOQDhr4+WtiVZcIBQ9gAJtz5ShUcu9AMTjCKqSPyhg4lDbYGYbRcmrmXEzj8W03KjggzvaNEz+3SkATMfxOtMOYjTM9V3dXMd41e8qO8+MSA6gWneYSiFTYFjU75CLuCZiMgd0DY/xzoT7sfT495emfCzB4DqnGhwS9H6IHRhAqQFe1r0Tu3oJSUdQY1c/3GPFONz2VVEwUZdfSDjholk8jMP2Av6Kf4CMON1OcVzDd5QWjmYQiRCUy83Qm/qv+1OVsJGKjKPuaprSzSVHRehakvlmKnep4JbKYqZ8pN3rss9B6IUtEUxmuy0s7JrM/g1muOxULB8j9ZtvKE4TGv7ojd/kM60Gu6bHHp7xi18e51FZl2xQb+LZ6SD37Mw2luA7IJWbgcqWItxCWQzvMLSzaddt0w1LIU0+XY3E5rFRxfHT1i9/OiAglzgGguY4Ipyn8TIV7yeV69YbpJ0bc74rzczsxKHkZJCwrsNnBGF0hrs76STvE2b4TOX7r8VwzbUl3Oa6ooLGbc98xjXVOqYdxE9u623Tj7h2HZ3rJ0odcwBkIpWvD6nX2FltliRVXU9W0Iv8ZNimEp6AYszdzErLAEfJ6GAj4GInRy1AWovEJuk0EotFD6OS83UB/abK0/qAXOYcEM6iCCKeLwiaP6hXfDIcSFHw7TrhgDl+4HQ/3A9aV1+33zfl6uvhWlJoEcmkYFoDOlaqLP0cfzWuH+2lhh7w9GfNM6ULUu+lmqFZJizqx3zw8tf9BM10p+u5EDDXHMwqbqfdcYAg1xww4SUYL8UbHgemCnmCIN1gzHMEs4JLEIC7mceX/PLvTgEgHAATzc/oU3ZTb7A25UFF0k8GCG48a0eFUd4TEOftcpkBynAO3b18ybiOw1QE775+0/mu3/gd5pq2pufIRP6+DoO0S3+fHiF4NNjRdoejGURsA+VyM/T+VJ+BvsSODquOBiMun7QBCOvNSAZJvRLUl2Fj1DNPtkA5P+nFOj6fZzabuqi86+cc0HgGpQHJ3Aw+nGhkpjgg5Yfgh4YU1dOP7sxlUdsg7fI5BzOaoDQol6WhX4umK1flc1F17f4doNFgSN6RGaCmBp1a4AmIu6J5FGb/huR9MMA3AKcV2TFEH4TE2hjnOGq+l5D1gK+VeYQHC4WEhkuOxIWClRhopeUAQiQNk/hiQBjP7pzFDVTVIzjq+aUQRAcJT0DZcQZQWjQ4xP4/hpbP97sJwHUPtkCs8SI6QdJ1DJD4K6KUihdn01biJiWOgeBGHK9LpRGMv5/UzPIQYiF1phnnONeZEMiHRhrme5SK51hh+hYcFvEHEj4XpFRMhrr4cj4FsP63Lqvuj+F1fT8V3rB2G8EqvrOPz/1GJ9vsskyoDBPAcG5W8Z9RQhjLHZdGGIsGMB//QkSTWYZXS7sQTDafxPCuuzzcw/8zl+k3nu78XjwU203XFwy3PlH7bUEdnhuM1SOuMBYyv2LTD4YGSj1AxcoFHDWXYTIFYIhcYVZYHBhELiE0fOaUFODh+83CXGUIcX3k3IjH4dWBeta/GQ6DZojQG+5ws/2eyduuEcXTfufi4Q7A2rS9FdMwGXXO6dRKs9C2z0OJY0h2h3FYQaJpLA0Smw3gqIrLKBMLCN5GcEB4EcZrAY1EYKoRIpSGg0fLH9aDV0TLV0K2BtYFKBYDV01+WUBYDFp1hVBj1hDQ7G+TO64AmxbVUVncnMmtdzsrjr8ZYEDuMJT1T2UeQMAXzVFZekQJDiYThoF8y2JW8M4KfYQOC/gChk+SkO9V0gJpvCbTmkOqWhgm/UqipF+z5xgmW0apauF5FRYy1pgOF3Y5grHg3RkGE+M1SCxDI/t+94+IM6WhVELMacKAgr+imkh4C43aqym3Ro6n9LM9GhN3TXc4W7pMkaMlDM/WBbM1Fn/ZpguF8uFQxps9WZFx1mFYF/Ro9wYf44TJ4oOQn/Dl99lqiwP4I8ZEQ79CHoS1xx9goWXmi2STqs91KPNbMknCE1BjsOejs5ePwaY0oGIvZYZ7Dx8ZnJp70CBT0ytM9eRQOVjAD0i2BJrqLBKYnZeMlXN9aift2bRUnY29w2MivczY09tWVo+sYdAoGXw3x36OQayCqVKeYDrucuRth5nqhIFu35wBNlDC6c5V6QQ/5L5lgzTDuHO278YDxmJgTeq4jEZqYzAmruLPxDB88AwLeuZGLADoTxj8joXjAMAe9lIqfqCYDnomJY6BYBPB55g2hvHG4Ssk5rz7CbiCcVAKieXq/Tdl+5Pn9IikS8OHJhSN8Qc3RhIOrclkYxjjRGdQLgcDpWFpXyFxpMEo4mdI4svA2674KX7UmzX3kDWzgstnKrWkKCq/OwWAcFFMND+jT5yV6iXYrUj6IXlo4/evonhnEEyFPU89oFdneqEPMDhnDUyF3b8CjAdE76PjvpRh0k84xUR2aUsVQ7j6s+7Kh8NlDKYr1XScbNRx8/3e9jbtoxau1UL3kMrfKjEglMRNjDnns6gEIDGc4WGQ9uN+CcChbO9kQSJrMBfWZ24pjQ4Pa9jK0HI5jIsOivzHjViVzyWyu4WpuShwiHG+UX5ZQBCfUJkVeO+v5n1CFRoa9eXhi2heSvHX783qR/kivoqmrNecy4ln1MJ967mvDL6ClhJlv1s1dpluEtPz83g4NwpbPiuLKpN8cLZ3F8+vxM8j3X36/1CsxOwniNeQ5APTu0s3B+n4eRzj9FYqmP1Y6JqSfDx4t+lmTbqevOf4dma296A1JPl49O4yvAfQ8fM49otTsx8Gpp/ko5h2lm5M1/DzGE740Ucm8tV9Dn69PUZ3eaEfGLhJC0RFSXId7TUnKaCqntjfm9FLl4/VcJrS7AdFVJPkY0L6zGgTU/TziG5F1ZZdP28aBt6fxYvYzH5MjKqSfFSGftPtGpV955TxbeDYxRk5RVH3u1CbUlaRU6H9py4BP3FhJ/AZIHwuH8TV62oj7ppi9bPPCx9eege9//I8iBUb5XBH0+G/s+rxOX6BO6TUhYn4BnW3b639tNtLQA0H51b1xqDFPNYk7tJdY0KiRCWLr9GCfIXmM3bddq1c4/Va7Joip1gsPZ8OhHRgst8IkXHLF+wKGF2IB4h2/4temABzvl33g4jtRlxt265+shoDcFWdvqOD2lSrgCXOBupQn1h/u/6zH3fxMGJouYRn2pyirRe6B4UIukb5RQHxrQRpyIAE1vTuElHhg0MJtTGAVFpG5EHspDYL0FpedwxEg+swW75/JzZ19dje1aaFAEkqxBoyOK93YPS7bVtWom359xoSGi5dR25K0VQL3IJABA9UNkfDT2RW6jWxXhZ0bEBQ4h8t0u5JQvaK4+KOjFA0z7zb6RxArrvjzoQPf/8ov6O75w3yPiDR25nUoRe7A4X5QTMq7TI6BHMN8uNlQC5PQ5lvlMO/O/ZuOv1miv/GaY5Pj0LA5XvuTSWu3tOkvEXnwE96Ghe5wYyh59bbY8R3zUgy6Bk1sgfkUKXFReeEilNI5LZUNNQSx0BQpECFMzX+RK374/8Ib5AEnZuAuQXmD44hsI2X4QJlIAD4MTFEMAxlNDkoRGT9jgtDwPCuqX+K6nNZ/byuTkaOvx5HNV+a8rEEkbFRd2qqugYB9UJdjIAlHMGnrxTciOe66fZAHBsc2gdn2HOqoeDAagNwwUWTBF3rLvN+RoaayzgWfmFHt5C6r9GokDcYypY4y7U/VIee3J2z4S82SKe5KAXNUdLnUoEllGeYf1V04rFuStHaLf8Z9Xysj50aBHGRi32Aw1wmRDSWAojqAnITXLeRdDyaGNmpLC4bolR8MCc0EH8UZWU6OMYg7TfrnA6ZMdWGyDgGiRlg/N7SFIshVl+7Rfq4LSAcrEX8qWjYlfzwkHAOZjdq+I4l8ncoMQ7+P9RtdVa7WcVHbIFO6lVKHANhOqcdkAvDkjggkNnF91HtwY2v+ee0GzW8wFBrJ33LBW5B4BJgKpu14cT57JqU467HJj9xMrsmlbevj1lf/8CWMTmFlAKOFvTm8Voh2fO/kJIr5b8U56i55JTWnvollF7qARjq3G2jQt5gGHyG2lKLqXgzL4k5y3iqEo3LXm7p85N92Beb3e/3H5v6Sek84E1mDb+AqY2r9JsUuYaGF30pHafRJh4YVMTFpRcCwOE/xk1KpI6/PQgRobmr7SKIKr+c+HGo6mMj/rMV1eqVP4jjqrp0JrBNpQpEwhNQ1H1HpNIywJk4y47ixzYY3jVR8G5iNHc7vRO6P5SLtRQXkCknpcR5UYW8m0r6Ndeh5jvx9Nw/A5tt11xdt0sXUKMIWqqIL7DI1TtSa3kA3U9bIJxOEw9g4HlOfB5/5jhZUOcyQOrcmeycKJDzBATgXq2Z5yjmFZrZhkR0CsOtTuab1Wwq8J/GmddM8RRCwWu6q82mAhwgv7dvZQA/d6uvScEXe8Pv8P1UVOv6RTR3TVls+OmQo+YyIWjtKepAqQdgiNRoVlgaGGbvMcp7MwyvC6/HNTjE9X+orK+IEgsG+ygSMoIEBMImaoSJGF6Nl/Km5bwq2JwqyBiaPY8KMIfyZ/B4dPIwLqnW/MEDQ8slENPm1G3OWqF7UKhzhE3yiwLCPGgwiXsyKmqEILfzw6IGKBzs5Q8KgenIoamQ/wUD4Oghh2Z/LV6Hy0eGdzV27x55ii7jBNCiUgFY7gUgInJSKssExRxFCQ2vBgaPJfs+/VFuRNvVlSBmXyZxX/Fl2iaEqVToHhKbIGPS8uBM8UDhBRZYfglADNf+WKcgk5YPUA7NgaCcCt2DwmQHKL8oIFipBhT3ZFT4DNOUw728j9txX4yFz7AUnbJFb1HFFir3AhDlP4TKMkEhfMms4dXACE5Vr7aNGDz9dnjHJx5t5kNsZbc8AludQI3IeAOMdDRabTkgyWsGeiPUKgOgEcTQ8M63bVY/ilZ8rJsnC6+jtZwyadKciqxW6B4UyrNM8jkDIbuEVDvlPbKoJ2NiLlQSZ40Act72eMSF4XhaiLykPHz/RgKDa/IWtMdGkEXtsTAZoKwOF6GU/LwThD45n5Q5B8R0yAgo6X/NPx4MjFfDvg8aiQRCzT9uhNDxBId+fIVa5BoMPiGm0gsAgDh+BJDzYEIajkEcRQLILSEe3N9un583JblP5iiW+wvwO9E8ldXux/eiWG/KyuJjL76yS24grSqVoDLeACPiJkdt+SCZlx0ZWkEMDu6E6tcG74q2bPuJ511TVG1v+bhviOeRM2tyyTxOFwxfd2AKYUAmvNi6jrcHrPytzP20TRpTs3pkcAwtOvh2yS30UlHdmD6Vs64jICTM2tGhFlcl4IPAP6qzrsPn2DMfsIe/5BW92dmSW5G/mA72wIAxIh8EYKtMSVfx1kDV3FtqckZwkLWjApNTiuR9fGtXQazkGP5jXbWjV/W2nw69zo++VAX+AoTSsuFZTOS8AmgVXXHVpYOmeON11Yphk8PYZCna2+0Oirt6d+bofmQ/byRsV3d6I+R5D49dQwKPdda42q7uoL6x/Ac7I0kQ+v7CXXJjF6sEgWq+JcCILxy5qnEm3SlA+OVFNO3wxq0XEYbPJS1rSC9ZKt3kLnGoOo4fw7H2+eNrugp/wWDStgFSTdIzkFZh1KT8FsBTg6La2MwVZqyW9ILC3IdiUUfQxzVrvIzVEpzLb+OhGXf6svS8LRhlNG657yd1Lt6GodWkF6zkEeevM17S/Br6gcyKRmg18V+MpQi6dHD5TAcAakiP+/iJ6WydYI9hHu2BGkz7l86/GCNXsKmd/kzN9Diub4olZQPBPGNFyu+XBdmAyP4SwbqOQHBOd7lTor7BnE9In182ZAKg8UsIll4ECPJ0fOOXFiy95cbLobu8qIhIuoRmENDO5YO05hpKRCxNJhfjvhZt+1fdrG9EK7qb4X6olvlFKlPTJRBQk5NjgSABPyCRhz8ROosFxoowi+HIbVsPfbtei11TKAqgnEsAJg0oylrZ2Wb/vn4pV8NF2syoYZR3CcOpIUVP/tml8UQ0QCTzNPherhOzVRaiOg10OBVTLUgdhNAMqOYbyyKxZwL7NHDogt290Cw99yDIDQKAqMU+wGExAdVYBiD3N2JViueyjyfg7nNAyk+gC2x81xWrH2Jts5+F1HHKCKUxFZBJkWswKLfApXMF4JPYPN+Jv5mjO4O0SwAOzShapx/dGU1dygPJ5WTov0S1ruUXncXmqq4eysetzUbgGbW4BIlqXqmNFvYPKsEqK/23DSSxcdiuAp9bE7KD9t/l7kvCq3qzfarA4Y9tFZHA0VsaO0S0AAqdD/vnD9+e10UnPpVtVzev1514YsZYnqbTcAA0qQIFCvgBiYqZlM4SgPlcr4rN74+N2B0W/GGz+4d/JJSNuku40HaVagxSHoEjaMVTfDNgEemWqekzz6YCX7P6Ub6I4f/8YTRT0z3b1CYBpKYCfkBi+aJBZ7nAsPzOpOTf5eJCdSfabr6zEdq+eCU3iwKmCvkDzcL5UL23AZSFM+KKoRwyOnSWo1Ojljd+weMDudA9KDYO53/AGRMIG4eKMJgMDM27bVtWom0tPYdQc84YuT0dF7XUAzAc70EVFgcGx4NwDe8uFB4edffrOaf2nlOdc55x+qEDzNMKCDzHea0ruoCNYMQJDvY1eQ8aucE/45S9GbV4Zjl+SBUt7B9U+7gR5vi9/IC0jwmGCgKHgtSgHf6aecjxGbV55i/YDQpsRCkc6PYBgq7nAjQEkH0AYVQUOJCkDv2sk8Vm1eOZ46bDfTjiIcC1Dx2hjhzLFVD7EGGsInBwSBHieWcSzKvIM4ONX5az5IMAbB8Vgh1WkDGo9pHBXEfg0JASzJZvCQwqXrgJr/ieShwDwXVX/28EYhjPdasIbwDCwfHPuthYOoVBxTkvDm3pQJxKHAPBcQpQeBHGc5wClvbuFOHg+FRU67ofod41pbV3cHSdM0VrVMcIEPEFFseDzFpLB4jjZYSad3eLCdl11YnmoVjZ7oei9JzzSmlQB2hS7AMcjrPhGksEhONcBhXvjhUFotNF83YLIaSiewYpLQL4TMq9AMTyKlxloaCwPMug49+1IsN0J56eN0Vnnba4FXjkldyyCThVziuAdk6Iqr4x0OycFNcN6KyJwDjbacM7KwWUP4AsnTKkM0YExdLpojpbUJi+NvXw8K1HnWY9DyySGoTQUYp9gMPzK0xjiYDwfApVCeBSESGyTlZmPX/8wcKNUuwDHCuHCpGnogNi5VBRclQMiMYbXK76YeVjPdybbOVVDGUPTJq2CmGly3gDjOdpRrU3ABLP+8x6AVwwBdisR4tGNW/cwvK+XOoBGBt3CzFQjAuGjVtFGSSGhmfcUTncelmtLUeJDFXn/Jm2qYOkS3gCiuNYRqVFg8NxNLOWd2eLCJfUz29VabvewVR3zy+gXQA0UMojcCxHpBTfDFgsxyQ1/TtndPi+Fq/DwXUfG/EfUa1eLZMjT9s564BmddRAIX+gcfyT0nsbQHF8k1T07pqJQPdHvRa22y0Zqr6YdmwTxUqS8ASUhSfCSosGx8L7EK1QrhcDrqZciRvxuB1vQrH1O5a2e3bpzQKIQUL+QGP5IKH3NoBi+SOl6N8lo0NXr7bN7ozl2+EzOPFoPVRl1+CBd2DTEICIoF8Qec5K67494HjOy1AO4MCJQLltVj+KVnysmydbD6ZV3TNw0iaAlybhCSiWl5qUFg0OyxONWv5dMBpc49fjorF0OELNOZ/k9nRw1FIPwHAcDFVYHBgch8I1vDtTDHjGYe2w2LOdsVbK1ffAJKBhCDNQzCd4PI+jNN8SYDyvJFUDuGd8CG9F1ZZd+SJmHHLC0XXOO61RHTBAxBdYHOc0ay0dII4zEmreHTEJyL6Kph0uWTzHERl1+OPbtHEDiLqobzCtHNWo/VYBtHJks3o4h04A0jvRPJXVruS9KNabsrL9ypdfg3NuIk3rMKKCfkHkuDVH9+0Bx3FnlrJ3Z04ASvu1oYDLQugs3/EE32YdKMgSUBTDb8SDaPpZmADv6sZEHRuh1HDYC/6tLR7VKiYlZwNx5lg11jCVNxrwORCYPS4NPyRNGSyz77H0ghkOuijonQ4guxN/dzwfRCRdMmhoQtEYf3BjJOEvmkxKhv32y6g7HJhQ9IOT5lj22y+3qx/iqdj/0P/Z1U0fs3d7t9rdr7/9crPttZ/E+Nd70ZaPpyp+6+useqP7Nk+VHmSuq4f6a1M/i2bXb7lHB5FD8R7qP0RXrHti/9505UOx6k5nLP/jv/5dbLa9yIen72J9XX3Zds/brjdZPH3fvMpg/PaLuf3fftH6/Nv4lUXrwoS+m2VvgvhSvduWm/Wx3x+LTTtxVqyKqx79f4r+9/FZ7l/0H2v6s66YFe3hey+eRbUW1fE4mvZLdVu8iDl968n6WTwWq9f+95dyPTAXq4R+ECrsv70vi8emeGr3dZz0+z97Dq+f/v6f/wfnxTZ5eGcXAA== + + + dbo + + \ No newline at end of file From 9f5aa7067cd9e4a0a42b30cb71e67d4bc09cb742 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 14:17:38 +0200 Subject: [PATCH 129/432] remove change --- .../GDPR/DataProcessingRegistrationReadModelService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs index 776c83a8ff..6391f6b9b3 100644 --- a/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs +++ b/Core.ApplicationServices/GDPR/DataProcessingRegistrationReadModelService.cs @@ -22,7 +22,7 @@ public Result, OperationError> G { if (_authorizationContext.GetOrganizationReadAccessLevel(organizationId) != OrganizationDataReadAccessLevel.All) return new OperationError(OperationFailure.Forbidden); - + return Result, OperationError>.Success(_repository.GetByOrganizationId(organizationId)); } } From f7c697d92e6cc24782cb398094012fa154b1eeab Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 14:27:37 +0200 Subject: [PATCH 130/432] fixed property names --- .../Interceptors/EFEntityInterceptor.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs index bd737952a0..2184fa6a21 100644 --- a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs +++ b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs @@ -85,8 +85,8 @@ private DbCommandTree HandleUpdateCommand(DbUpdateCommandTree updateCommand) var updates = new List<(string propertyName, KeyValuePair, DbExpression> condition)> { new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, ObjectOwnerIdColumnName) && MatchNull(clause), userId)), //Some EF updates end up in this e.g. changing an owned child on a parent - new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId)), - new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) + new(LastChangedByUserIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId)), + new(LastChangedColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) }; var updateConditions = updates.Select(x => x.condition).ToList(); @@ -137,7 +137,7 @@ public static DbModificationClause ApplyUpdates(DbModificationClause clause, Lis //Only check for updates until pending updates has been depleted if (pendingUpdates.Any()) { - foreach (var pendingUpdate in pendingUpdates.ToList()) + foreach (var pendingUpdate in pendingUpdates) { if (pendingUpdate.Key((DbSetClause)clause)) { From 2d7e29a30efb75f7ffc778a9c597d8698be1aabb Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 14:36:07 +0200 Subject: [PATCH 131/432] fixed removing applied items --- .../Interceptors/EFEntityInterceptor.cs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs index 2184fa6a21..f7f1cfed24 100644 --- a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs +++ b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs @@ -58,11 +58,11 @@ private DbCommandTree HandleInsertCommand(DbInsertCommandTree insertCommand) var userId = GetActiveUserId(); var now = _operationClock().Now; - var updates = new List, DbExpression>> + var updates = new List<(string parameterName, KeyValuePair, DbExpression> condition)> { - new(clause=>MatchPropertyName(clause,ObjectOwnerIdColumnName), userId), - new(clause=>MatchPropertyName(clause,LastChangedByUserIdColumnName), userId), - new(clause=>MatchPropertyName(clause,LastChangedColumnName), DbExpression.FromDateTime(now)) + new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, ObjectOwnerIdColumnName), userId)), + new(LastChangedByUserIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId)), + new(LastChangedColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) }; var setClauses = insertCommand.SetClauses @@ -89,9 +89,8 @@ private DbCommandTree HandleUpdateCommand(DbUpdateCommandTree updateCommand) new(LastChangedColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) }; - var updateConditions = updates.Select(x => x.condition).ToList(); var setClauses = updateCommand.SetClauses - .Select(clause => ApplyUpdates(clause, updateConditions)) + .Select(clause => ApplyUpdates(clause, updates)) .ToList(); foreach (var updateDescriptor in updates) @@ -132,20 +131,20 @@ private static bool MatchPropertyName(DbSetClause clause, string propertyName) return propertyExpression.Property.Name == propertyName; } - public static DbModificationClause ApplyUpdates(DbModificationClause clause, List, DbExpression>> pendingUpdates) + public static DbModificationClause ApplyUpdates(DbModificationClause clause, List<(string parameterName, KeyValuePair, DbExpression> condition)> pendingUpdates) { //Only check for updates until pending updates has been depleted if (pendingUpdates.Any()) { foreach (var pendingUpdate in pendingUpdates) { - if (pendingUpdate.Key((DbSetClause)clause)) + if (pendingUpdate.condition.Key((DbSetClause)clause)) { var propertyExpression = (DbPropertyExpression)((DbSetClause)clause).Property; //Pending update matched - apply the update and break off pendingUpdates.Remove(pendingUpdate); - return DbExpressionBuilder.SetClause(propertyExpression, pendingUpdate.Value); + return DbExpressionBuilder.SetClause(propertyExpression, pendingUpdate.condition.Value); } } } From b23499527f092b119febb548368d15887bfae022 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 10 Jun 2022 14:44:32 +0200 Subject: [PATCH 132/432] removed extra line --- Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs index f7f1cfed24..0c1e75a7af 100644 --- a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs +++ b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs @@ -97,8 +97,7 @@ private DbCommandTree HandleUpdateCommand(DbUpdateCommandTree updateCommand) { ApplyUnusedUpdates(updateCommand, updateDescriptor, setClauses); } - - + return new DbUpdateCommandTree( updateCommand.MetadataWorkspace, updateCommand.DataSpace, From b5b8f4da4649c5960a39ac0ee1a191984a869e62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 13 Jun 2022 10:35:13 +0200 Subject: [PATCH 133/432] Attempt to fix duplicate updates --- .../Interceptors/EFEntityInterceptor.cs | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs index 0c1e75a7af..5242318df2 100644 --- a/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs +++ b/Infrastructure.DataAccess/Interceptors/EFEntityInterceptor.cs @@ -58,12 +58,14 @@ private DbCommandTree HandleInsertCommand(DbInsertCommandTree insertCommand) var userId = GetActiveUserId(); var now = _operationClock().Now; - var updates = new List<(string parameterName, KeyValuePair, DbExpression> condition)> - { - new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, ObjectOwnerIdColumnName), userId)), - new(LastChangedByUserIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId)), - new(LastChangedColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) - }; + var updates = new List, DbExpression>> + { + new(clause => MatchPropertyName(clause, ObjectOwnerIdColumnName), userId), + new(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId), + new(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now)) + } + .Select(update => ("", false, update))//First two fields are only used during an update scenario, so we insert dummies here + .ToList(); var setClauses = insertCommand.SetClauses .Select(clause => ApplyUpdates(clause, updates)) @@ -82,22 +84,23 @@ private DbCommandTree HandleUpdateCommand(DbUpdateCommandTree updateCommand) var userId = GetActiveUserId(); var now = _operationClock().Now; - var updates = new List<(string propertyName, KeyValuePair, DbExpression> condition)> + var pendingUpdates = new List<(string propertyName, bool addIfNotUpdated, KeyValuePair, DbExpression> condition)> { - new(ObjectOwnerIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, ObjectOwnerIdColumnName) && MatchNull(clause), userId)), //Some EF updates end up in this e.g. changing an owned child on a parent - new(LastChangedByUserIdColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId)), - new(LastChangedColumnName, new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) + new(ObjectOwnerIdColumnName, false,new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, ObjectOwnerIdColumnName) && MatchNull(clause), userId)), //Some EF updates end up in this e.g. changing an owned child on a parent + new(LastChangedByUserIdColumnName, true,new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedByUserIdColumnName), userId)), + new(LastChangedColumnName, true,new KeyValuePair, DbExpression>(clause => MatchPropertyName(clause, LastChangedColumnName), DbExpression.FromDateTime(now))) }; var setClauses = updateCommand.SetClauses - .Select(clause => ApplyUpdates(clause, updates)) + .Select(clause => ApplyUpdates(clause, pendingUpdates)) .ToList(); - - foreach (var updateDescriptor in updates) + + //Add updates which did not hit an existing change set (but only the ones which MUST be updated on each update) + foreach (var updateDescriptor in pendingUpdates.Where(x => x.addIfNotUpdated).ToList()) { - ApplyUnusedUpdates(updateCommand, updateDescriptor, setClauses); + ApplyUnusedUpdates(updateCommand, updateDescriptor.propertyName, updateDescriptor.condition.Value, setClauses); } - + return new DbUpdateCommandTree( updateCommand.MetadataWorkspace, updateCommand.DataSpace, @@ -130,7 +133,7 @@ private static bool MatchPropertyName(DbSetClause clause, string propertyName) return propertyExpression.Property.Name == propertyName; } - public static DbModificationClause ApplyUpdates(DbModificationClause clause, List<(string parameterName, KeyValuePair, DbExpression> condition)> pendingUpdates) + public static DbModificationClause ApplyUpdates(DbModificationClause clause, List<(string propertyName, bool addIfNotUpdated, KeyValuePair, DbExpression> condition)> pendingUpdates) { //Only check for updates until pending updates has been depleted if (pendingUpdates.Any()) @@ -156,7 +159,7 @@ private static DbSetClause GetUpdateSetClause(string column, DbExpression newVal { // Create the variable reference in order to create the property var variableReference = updateCommand.Target.VariableType.Variable(updateCommand.Target.VariableName); - + // Create the property to which will assign the correct value var tenantProperty = variableReference.Property(column); @@ -165,15 +168,14 @@ private static DbSetClause GetUpdateSetClause(string column, DbExpression newVal return newSetClause; } - private static void ApplyUnusedUpdates(DbUpdateCommandTree updateCommand, (string propertyName, KeyValuePair, DbExpression> condition) updateDescriptor, ICollection setClauses) + private static void ApplyUnusedUpdates(DbUpdateCommandTree updateCommand, string propertyName, DbExpression updateExpression, ICollection setClauses) { var edmType = updateCommand.Target.VariableType.EdmType; - if (edmType is not System.Data.Entity.Core.Metadata.Edm.EntityType entityType) + if (edmType is not System.Data.Entity.Core.Metadata.Edm.EntityType entityType) return; - var propertyName = updateDescriptor.propertyName; if (entityType.Properties.Contains(propertyName)) - setClauses.Add(GetUpdateSetClause(propertyName, updateDescriptor.condition.Value, updateCommand)); + setClauses.Add(GetUpdateSetClause(propertyName, updateExpression, updateCommand)); } } } From 023821775cf98c6381e4e9bfd8b09f49474d14bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 13 Jun 2022 11:12:02 +0200 Subject: [PATCH 134/432] updated all texts --- Core.DomainModel/ItContract/ItContract.cs | 4 ++-- Core.DomainModel/ItContract/ProcurementStrategyType.cs | 2 +- .../components/global-admin/global-admin-contract.view.html | 2 +- .../app/components/it-contract/it-contract-plan.controller.ts | 2 +- .../it-contract/tabs/it-contract-tab-main.view.html | 4 ++-- .../components/local-config/local-config-contract.view.html | 2 +- Presentation.Web/app/models/it-contract/it-contract.ts | 4 ++-- .../app/models/it-contract/procurement-strategy.ts | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index 6fbcd4a422..67dc24c913 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -218,7 +218,7 @@ public bool IsActive public virtual Organization.Organization Supplier { get; set; } /// - /// Gets or sets the chosen procurement strategy option identifier. (udbudsstrategi) + /// Gets or sets the chosen procurement strategy option identifier. (Genanskaffelsesstrategi) /// /// /// Chosen procurement strategy identifier. @@ -226,7 +226,7 @@ public bool IsActive public int? ProcurementStrategyId { get; set; } /// - /// Gets or sets the chosen procurement strategy option. (udbudsstrategi) + /// Gets or sets the chosen procurement strategy option. (Genanskaffelsesstrategi) /// /// /// Chosen procurement strategy. diff --git a/Core.DomainModel/ItContract/ProcurementStrategyType.cs b/Core.DomainModel/ItContract/ProcurementStrategyType.cs index fabfe74214..91981f6d3f 100644 --- a/Core.DomainModel/ItContract/ProcurementStrategyType.cs +++ b/Core.DomainModel/ItContract/ProcurementStrategyType.cs @@ -3,7 +3,7 @@ namespace Core.DomainModel.ItContract { /// - /// It contract procurment strategy option. (udbudsstrategi) + /// It contract procurment strategy option. (Genanskaffelsesstrategi) /// public class ProcurementStrategyType : OptionEntity, IOptionReference { diff --git a/Presentation.Web/app/components/global-admin/global-admin-contract.view.html b/Presentation.Web/app/components/global-admin/global-admin-contract.view.html index 301829db59..98d853e374 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-contract.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-contract.view.html @@ -7,6 +7,6 @@
-
+
diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 7730a0b71f..fb0f9c4567 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -805,7 +805,7 @@ }, { field: "ProcurementStrategy", - title: "Udbudsstrategi", + title: "Genanskaffelsesstrategi", width: 150, persistId: "procurementStrategy", // DON'T YOU DARE RENAME! hidden: true, diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 4a6f635b99..06f0b48c3e 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -84,8 +84,8 @@

{{contract.name}}

-
+
diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index 5c5eadf995..2c1ed2b11d 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -31,9 +31,9 @@ SupplierId: number; /** Gets or sets the organization marked as supplier for this contract. */ Supplier: IOrganization; - /** Gets or sets the chosen procurement strategy option identifier. (udbudsstrategi) */ + /** Gets or sets the chosen procurement strategy option identifier. (Genanskaffelsesstrategi) */ ProcurementStrategyId: number; - /** Gets or sets the chosen procurement strategy option. (udbudsstrategi) */ + /** Gets or sets the chosen procurement strategy option. (Genanskaffelsesstrategi) */ ProcurementStrategy: IProcurementStrategy; /** Gets or sets the procurement plan quarter. (genanskaffelsesplan) */ ProcurementPlanQuarter: number; diff --git a/Presentation.Web/app/models/it-contract/procurement-strategy.ts b/Presentation.Web/app/models/it-contract/procurement-strategy.ts index 217516a9ed..38cad32000 100644 --- a/Presentation.Web/app/models/it-contract/procurement-strategy.ts +++ b/Presentation.Web/app/models/it-contract/procurement-strategy.ts @@ -1,5 +1,5 @@ module Kitos.Models.ItContract { - /** It contract procurment strategy option. (udbudsstrategi) */ + /** It contract procurment strategy option. (Genanskaffelsesstrategi) */ export interface IProcurementStrategy extends IEntity { Name: string; IsActive: boolean; From 7bed63583fff8bdc3e240c0bfc0d1ab4ea44eb79 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 11:40:13 +0200 Subject: [PATCH 135/432] tinymce --- package.json | 2 +- yarn.lock | 865 ++++++++++++++++++++++++--------------------------- 2 files changed, 405 insertions(+), 462 deletions(-) diff --git a/package.json b/package.json index f95f77cdbe..111fd3fa01 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "ngstorage": "^0.3.4", "select2": "^3.4.5", "select2-bootstrap-css": "^1.4.6", - "tinymce": "^4.9.11" + "tinymce": "^5.10.0" }, "engines": { "yarn": ">= 1.0.0" diff --git a/yarn.lock b/yarn.lock index b75a1b7071..8ccd480e16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,9 +15,9 @@ integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== "@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" @@ -37,7 +37,7 @@ "@gulp-sourcemaps/map-sources@1.X": version "1.0.0" resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" - integrity sha1-iQrnxdjId/bThIYCFazp1+yUW9o= + integrity sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A== dependencies: normalize-path "^2.0.1" through2 "^2.0.3" @@ -55,12 +55,12 @@ "@types/q@^0.0.32": version "0.0.32" resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" - integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU= + integrity sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug== "@types/selenium-webdriver@^3.0.0": - version "3.0.19" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.19.tgz#28ecede76f15b13553b4e86074d4cf9a0bbe49c4" - integrity sha512-OFUilxQg+rWL2FMxtmIgCkUDlJB6pskkpvmew7yeXfzzsOBb5rc+y2+DjHm+r3r1ZPPcJefK3DveNSYWGiy68g== + version "3.0.20" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz#448771a0608ebf1c86cb5885914da6311e323c3a" + integrity sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA== "@xmldom/xmldom@^0.7.3": version "0.7.5" @@ -93,9 +93,9 @@ acorn-jsx@^5.2.0: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@5.X, acorn@^5.0.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^7.1.1: version "7.4.1" @@ -132,7 +132,7 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + integrity sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg== dependencies: kind-of "^3.0.2" longest "^1.0.1" @@ -146,14 +146,14 @@ angular-animate@1.8.3: angular-base64@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/angular-base64/-/angular-base64-2.0.5.tgz#13255562ad1c8e8ca09b9c4b1f4ef966ac4cd093" - integrity sha1-EyVVYq0cjoygm5xLH075ZqxM0JM= + integrity sha512-cKzerbGzH+cQgi3RLAzDcXfcFOVUcCvJprIBTB5afqrdiNUpn9oc74jnMNX3VGTvpQs3E3P7omdzA+33Nz1qog== dependencies: angular ">= 1.0.8" angular-confirm@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/angular-confirm/-/angular-confirm-1.2.6.tgz#7988e5ee0bd7929142e6f6219f5baccc28b5199b" - integrity sha1-eYjl7gvXkpFC5vYhn1uszCi1GZs= + integrity sha512-Vvf8PowLffKr0+ym1CIf+loLpfS9xJgH2iSSNWcjF/kUpba0jzIY+uQZUli8NhOZAdjvh1JY/AvDDpqORPpUlQ== angular-cookies@1.8.3: version "1.8.3" @@ -168,7 +168,7 @@ angular-i18n@1.8.3: angular-loading-bar@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/angular-loading-bar/-/angular-loading-bar-0.9.0.tgz#37ef52c25f102c216e7b3cdfd2fc5a5df9628e45" - integrity sha1-N+9Swl8QLCFuezzf0vxaXflijkU= + integrity sha512-m131J6XitwSMS2D95Kso9WwpoV92ixkksJv4KXGdhk6UKS1gW09IDvSaJq24iUtsLHIRqnhpj9Y2HiIn7q0WpQ== angular-messages@1.8.3: version "1.8.3" @@ -193,24 +193,24 @@ angular-sanitize@1.8.3: angular-ui-bootstrap@1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/angular-ui-bootstrap/-/angular-ui-bootstrap-1.3.3.tgz#4820f895d433c17abeb4ac7387f2f122cbf8c11c" - integrity sha1-SCD4ldQzwXq+tKxzh/LxIsv4wRw= + integrity sha512-L485EPlDCqETedZW1Y/Pcjwriw45TDL70Cy4ChAf1xJ3dNgRMEVr1NqU5zVzKK5J/apGwOqun9BCtLzMn0N/oQ== angular-ui-router@^0.3.0: version "0.3.2" resolved "https://registry.yarnpkg.com/angular-ui-router/-/angular-ui-router-0.3.2.tgz#c27e0496309c99218d5655985b164a096ab520a9" - integrity sha1-wn4EljCcmSGNVlWYWxZKCWq1IKk= + integrity sha512-FXtC3D7z7SNtSIdMDXCVO+v4Q6jPABneDvRu6NyOeeZlo09mQFqVCjhKqJWnf94ZlNSmyOXoFSqKD5tL2JTFEg== dependencies: angular "^1.0.8" angular-ui-select2@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/angular-ui-select2/-/angular-ui-select2-0.0.5.tgz#15e7643afd69ca9063d405eb3be2f95dd5ec87f5" - integrity sha1-FedkOv1pypBj1AXrO+L5XdXsh/U= + integrity sha512-vxiWkxe6VmkJBlHx9BYuMHrz+cNeI0nmVLcQUS7W9BJQCGbmXJuWslmpPoQGSOZs7ayQIqY6stTF8CkQ0/hdWw== angular-ui-tinymce@0.0.19: version "0.0.19" resolved "https://registry.yarnpkg.com/angular-ui-tinymce/-/angular-ui-tinymce-0.0.19.tgz#6a613675a1265e415c9c21944053ac9bab9578e9" - integrity sha1-amE2daEmXkFcnCGUQFOsm6uVeOk= + integrity sha512-PxIk0ffeZByZGHP71oT2qssyXylNu2QpsbjBGg1NJlUcExRxko1uxSjbBB+rx7h0v0ifPDaJYESe0T4/DuMsAg== angular-ui-tree@^2.22.1: version "2.22.6" @@ -225,7 +225,7 @@ angular@1.8.3, "angular@>= 1.0.8", angular@^1.0.8, angular@~1: angularjs-dropdown-multiselect@^1.11.8: version "1.11.8" resolved "https://registry.yarnpkg.com/angularjs-dropdown-multiselect/-/angularjs-dropdown-multiselect-1.11.8.tgz#4b6709d916ba47e0d8ab61c6cbade387863375a7" - integrity sha1-S2cJ2Ra6R+DYq2HGy63jh4Yzdac= + integrity sha512-JekPdnHvgJ3FxzVeRb4j+f2TDZjvWp/Db+onyw4Ck9ipQkMjn2dFwbEnan4VwWqiC74GTI7B8YikRqv4iR3sIA== dependencies: angular "~1" @@ -237,14 +237,14 @@ ansi-colors@^1.0.1: ansi-wrap "^0.1.0" ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-cyan@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= + integrity sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A== dependencies: ansi-wrap "0.1.0" @@ -258,21 +258,21 @@ ansi-escapes@^4.2.1: ansi-gray@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= + integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw== dependencies: ansi-wrap "0.1.0" ansi-red@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= + integrity sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow== dependencies: ansi-wrap "0.1.0" ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: version "3.0.1" @@ -292,7 +292,7 @@ ansi-regex@^5.0.1: ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" @@ -311,7 +311,7 @@ ansi-styles@^4.1.0: ansi-wrap@0.1.0, ansi-wrap@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw== anymatch@^2.0.0: version "2.0.0" @@ -324,14 +324,14 @@ anymatch@^2.0.0: append-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= + integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA== dependencies: buffer-equal "^1.0.0" archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== argparse@^1.0.7: version "1.0.10" @@ -343,7 +343,7 @@ argparse@^1.0.7: arr-diff@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= + integrity sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q== dependencies: arr-flatten "^1.0.1" array-slice "^0.2.3" @@ -351,12 +351,12 @@ arr-diff@^1.0.1: arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== arr-filter@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" - integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + integrity sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA== dependencies: make-iterator "^1.0.0" @@ -368,29 +368,29 @@ arr-flatten@^1.0.1, arr-flatten@^1.1.0: arr-map@^2.0.0, arr-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" - integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + integrity sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw== dependencies: make-iterator "^1.0.0" arr-union@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= + integrity sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA== arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" - integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== array-initial@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" - integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + integrity sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw== dependencies: array-slice "^1.0.0" is-number "^4.0.0" @@ -405,7 +405,7 @@ array-last@^1.1.1: array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= + integrity sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q== array-slice@^1.0.0: version "1.1.0" @@ -424,24 +424,24 @@ array-sort@^1.0.0: array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== asn1@~0.2.3: version "0.2.6" @@ -453,12 +453,12 @@ asn1@~0.2.3: assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== astral-regex@^1.0.0: version "1.0.0" @@ -483,7 +483,7 @@ async-each@^1.0.1: async-settle@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" - integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= + integrity sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw== dependencies: async-done "^1.2.2" @@ -497,7 +497,7 @@ async@^2.1.5: asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== atob@^2.1.2: version "2.1.2" @@ -507,7 +507,7 @@ atob@^2.1.2: aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.11.0" @@ -517,7 +517,7 @@ aws4@^1.8.0: bach@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" - integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + integrity sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg== dependencies: arr-filter "^1.1.1" arr-flatten "^1.0.1" @@ -550,7 +550,7 @@ base@^0.11.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" @@ -612,7 +612,7 @@ browserstack@^1.5.1: buffer-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + integrity sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ== buffer-from@^1.0.0: version "1.1.2" @@ -622,7 +622,7 @@ buffer-from@^1.0.0: builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== cache-base@^1.0.1: version "1.0.1" @@ -655,12 +655,12 @@ callsites@^3.0.0: camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== camelcase@^5.0.0: version "5.3.1" @@ -670,12 +670,12 @@ camelcase@^5.0.0: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + integrity sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ== dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" @@ -683,7 +683,7 @@ center-align@^0.1.1: chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -747,10 +747,10 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-css@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" - integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== +clean-css@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== dependencies: source-map "~0.6.0" @@ -769,7 +769,7 @@ cli-width@^3.0.0: cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + integrity sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA== dependencies: center-align "^0.1.1" right-align "^0.1.1" @@ -778,7 +778,7 @@ cliui@^2.1.0: cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -796,17 +796,17 @@ cliui@^4.0.0: clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= + integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== clone@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== cloneable-readable@^1.0.0: version "1.1.3" @@ -820,12 +820,12 @@ cloneable-readable@^1.0.0: code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== collection-map@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" - integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + integrity sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA== dependencies: arr-map "^2.0.2" for-own "^1.0.0" @@ -834,7 +834,7 @@ collection-map@^1.0.0: collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -856,7 +856,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -875,7 +875,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.12.1, commander@~2.20.3: +commander@^2.12.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -888,7 +888,7 @@ component-emitter@^1.2.1: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.0: version "1.6.2" @@ -907,14 +907,7 @@ concat-with-sourcemaps@^1.0.0: dependencies: source-map "^0.6.1" -convert-source-map@1.X: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^1.5.0: +convert-source-map@1.X, convert-source-map@^1.5.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -931,7 +924,7 @@ copy-anything@^2.0.1: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== copy-props@^2.0.1: version "2.0.5" @@ -944,7 +937,7 @@ copy-props@^2.0.1: core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" @@ -983,12 +976,12 @@ d@1, d@^1.0.1: dargs@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829" - integrity sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk= + integrity sha512-Mr5OxT76pdJv7BbLq3hF1gSP8zxlCyDA1afj2Iab2MPKmdAKV+aKGC8YJv6cT8ItdFXAf798JJQD7jmbWZcYTQ== dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" @@ -1001,10 +994,10 @@ debug-fabulous@1.X: memoizee "0.4.X" object-assign "4.X" -debug@3.X: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@3.X, debug@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" @@ -1015,13 +1008,6 @@ debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - debug@^4.0.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -1032,12 +1018,12 @@ debug@^4.0.1: decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== deep-is@~0.1.3: version "0.1.4" @@ -1054,7 +1040,7 @@ default-compare@^1.0.0: default-resolution@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" - integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= + integrity sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ== define-properties@^1.1.3: version "1.1.4" @@ -1067,14 +1053,14 @@ define-properties@^1.1.3: define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" @@ -1089,7 +1075,7 @@ define-property@^2.0.2: del@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= + integrity sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ== dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" @@ -1102,17 +1088,17 @@ del@^2.2.0: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== detect-newline@2.X: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== diff@^4.0.1: version "4.0.2" @@ -1152,7 +1138,7 @@ each-props@^1.3.2: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -1188,7 +1174,7 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.61" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269" integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA== @@ -1197,19 +1183,10 @@ es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: es6-symbol "^3.1.3" next-tick "^1.1.0" -es5-ext@^0.10.45, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: +es6-iterator@^2.0.1, es6-iterator@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" es5-ext "^0.10.35" @@ -1223,11 +1200,11 @@ es6-promise@^4.0.3: es6-promisify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== dependencies: es6-promise "^4.0.3" -es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.3: +es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== @@ -1235,7 +1212,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: +es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== @@ -1248,7 +1225,7 @@ es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== eslint-scope@^5.0.0: version "5.1.1" @@ -1359,7 +1336,7 @@ esutils@^2.0.2: event-emitter@^0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== dependencies: d "1" es5-ext "~0.10.14" @@ -1367,7 +1344,7 @@ event-emitter@^0.3.5: event-stream@3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== dependencies: duplexer "~0.1.1" from "~0" @@ -1393,12 +1370,12 @@ execa@^1.0.0: exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -1411,7 +1388,7 @@ expand-brackets@^2.1.4: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" @@ -1425,21 +1402,21 @@ ext@^1.1.2: extend-shallow@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= + integrity sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw== dependencies: kind-of "^1.1.0" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -1475,7 +1452,7 @@ extglob@^2.0.4: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" @@ -1505,12 +1482,12 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9" - integrity sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk= + integrity sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw== fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== figures@^3.0.0: version "3.2.0" @@ -1534,7 +1511,7 @@ file-uri-to-path@1.0.0: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -1544,7 +1521,7 @@ fill-range@^4.0.0: find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -1559,7 +1536,7 @@ find-up@^3.0.0: findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" - integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + integrity sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g== dependencies: detect-file "^1.0.0" is-glob "^3.1.0" @@ -1617,24 +1594,24 @@ flush-write-stream@^1.0.2: font-awesome@4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" - integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM= + integrity sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg== for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== for-own@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== dependencies: for-in "^1.0.1" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@~2.3.2: version "2.3.3" @@ -1648,19 +1625,19 @@ form-data@~2.3.2: fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" from@~0: version "0.1.7" resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== fs-extra@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= + integrity sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg== dependencies: graceful-fs "^4.1.2" jsonfile "^3.0.0" @@ -1669,7 +1646,7 @@ fs-extra@^3.0.1: fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= + integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ== dependencies: graceful-fs "^4.1.11" through2 "^2.0.3" @@ -1677,7 +1654,7 @@ fs-mkdirp-stream@^1.0.0: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^1.2.7: version "1.2.13" @@ -1695,7 +1672,7 @@ function-bind@^1.1.1: functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== get-caller-file@^1.0.1: version "1.0.3" @@ -1703,13 +1680,13 @@ get-caller-file@^1.0.1: integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-stream@^4.0.0: version "4.1.0" @@ -1721,19 +1698,19 @@ get-stream@^4.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -1748,7 +1725,7 @@ glob-parent@^5.0.0: glob-stream@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= + integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw== dependencies: extend "^3.0.0" glob "^7.1.1" @@ -1774,27 +1751,15 @@ glob-watcher@^5.0.3: normalize-path "^3.0.0" object.defaults "^1.1.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -1810,7 +1775,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -1828,7 +1793,7 @@ globals@^12.1.0: globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= + integrity sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ== dependencies: array-union "^1.0.1" arrify "^1.0.0" @@ -1844,22 +1809,17 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" -graceful-fs@4.X: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== - -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== gulp-clean-css@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-4.2.0.tgz#915ec258dc6d3e6a50043f610066d5c2eac4f54e" - integrity sha512-r4zQsSOAK2UYUL/ipkAVCTRg/2CLZ2A+oPVORopBximRksJ6qy3EX1KGrIWT4ZrHxz3Hlobb1yyJtqiut7DNjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-4.3.0.tgz#5b1e73f2fca46703eb636014cdd4553cea65146d" + integrity sha512-mGyeT3qqFXTy61j0zOIciS4MkYziF2U594t2Vs9rUnpkEHqfu6aDITMp8xOvZcvdX61Uz3y1mVERRYmjzQF5fg== dependencies: - clean-css "4.2.1" + clean-css "4.2.3" plugin-error "1.0.1" through2 "3.0.1" vinyl-sourcemaps-apply "0.2.1" @@ -1891,7 +1851,7 @@ gulp-cli@^2.2.0: gulp-concat@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353" - integrity sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M= + integrity sha512-a2scActrQrDBpBbR3WUZGyGS1JEPLg5PZJdIa7/Bi3GuKAmPYDK6SFhy/NZq5R8KsKKFvtfR0fakbUCcKGCCjg== dependencies: concat-with-sourcemaps "^1.0.0" through2 "^2.0.0" @@ -1909,7 +1869,7 @@ gulp-eslint@^6.0.0: gulp-file@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/gulp-file/-/gulp-file-0.4.0.tgz#451356a2ac5089c6db91a0444252a0543657006b" - integrity sha1-RRNWoqxQicbbkaBEQlKgVDZXAGs= + integrity sha512-3NPCJpAPpbNoV2aml8T96OK3Aof4pm4PMOIa1jSQbMNSNUUXdZ5QjVgLXLStjv0gg9URcETc7kvYnzXdYXUWug== dependencies: through2 "^0.4.1" vinyl "^2.1.0" @@ -2013,14 +1973,14 @@ gulp@^4.0.2: gulplog@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= + integrity sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw== dependencies: glogg "^1.0.0" har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" @@ -2033,14 +1993,14 @@ har-validator@~5.1.3: has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" @@ -2050,7 +2010,7 @@ has-flag@^4.0.0: has-gulplog@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= + integrity sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw== dependencies: sparkles "^1.0.0" @@ -2061,7 +2021,7 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1: +has-symbols@^1.0.1, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -2069,7 +2029,7 @@ has-symbols@^1.0.1: has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -2078,7 +2038,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -2087,12 +2047,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -2119,7 +2079,7 @@ hosted-git-info@^2.1.4: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -2148,12 +2108,12 @@ ignore@^4.0.6: image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== import-fresh@^3.0.0: version "3.3.0" @@ -2166,22 +2126,22 @@ import-fresh@^3.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indx@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/indx/-/indx-0.2.3.tgz#15dcf56ee9cf65c0234c513c27fbd580e70fbc50" - integrity sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA= + integrity sha512-SEM+Px+Ghr3fZ+i9BNvUIZJ4UhojFuf+sT7x3cl2/ElL7NXne1A/m29VYzWTTypdOgDnWfoKNewIuPA6y+NMyQ== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2189,7 +2149,7 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@^1.3.4: version "1.3.8" @@ -2223,7 +2183,7 @@ interpret@^1.4.0: invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== invert-kv@^2.0.0: version "2.0.0" @@ -2241,7 +2201,7 @@ is-absolute@^1.0.0: is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" @@ -2255,12 +2215,12 @@ is-accessor-descriptor@^1.0.0: is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" @@ -2279,7 +2239,7 @@ is-core-module@^2.8.1: is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" @@ -2311,7 +2271,7 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" @@ -2323,19 +2283,19 @@ is-extendable@^1.0.1: is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -2345,7 +2305,7 @@ is-fullwidth-code-point@^3.0.0: is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" @@ -2359,12 +2319,12 @@ is-glob@^4.0.0, is-glob@^4.0.1: is-negated-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug== is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" @@ -2376,7 +2336,7 @@ is-number@^4.0.0: is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= + integrity sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw== is-path-in-cwd@^1.0.0: version "1.0.1" @@ -2388,7 +2348,7 @@ is-path-in-cwd@^1.0.0: is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== dependencies: path-is-inside "^1.0.1" @@ -2404,10 +2364,10 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-promise@^2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== is-relative@^1.0.0: version "1.0.0" @@ -2419,12 +2379,12 @@ is-relative@^1.0.0: is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unc-path@^1.0.0: version "1.0.0" @@ -2436,12 +2396,12 @@ is-unc-path@^1.0.0: is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== is-valid-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== is-what@^3.14.1: version "3.14.1" @@ -2456,44 +2416,44 @@ is-windows@^1.0.1, is-windows@^1.0.2: isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== jasmine-core@~2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" - integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= + integrity sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ== -jasmine-core@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" - integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== +jasmine-core@~3.99.0: + version "3.99.1" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.99.1.tgz#5bfa4b2d76618868bfac4c8ff08bb26fffa4120d" + integrity sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg== jasmine-expect@^4.0.3: version "4.0.3" @@ -2513,29 +2473,29 @@ jasmine-reporters@^2.2.0: jasmine@2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" - integrity sha1-awicChFXax8W3xG4AUbZHU6Lij4= + integrity sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw== dependencies: exit "^0.1.2" glob "^7.0.6" jasmine-core "~2.8.0" jasmine@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-3.5.0.tgz#7101eabfd043a1fc82ac24e0ab6ec56081357f9e" - integrity sha512-DYypSryORqzsGoMazemIHUfMkXM7I7easFaxAvNM3Mr6Xz3Fy36TupTrAOxZWN8MVKEU5xECv22J4tUQf3uBzQ== + version "3.99.0" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-3.99.0.tgz#7cc7aeda7ade2d57694fc818a374f778cbb4ea62" + integrity sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw== dependencies: - glob "^7.1.4" - jasmine-core "~3.5.0" + glob "^7.1.6" + jasmine-core "~3.99.0" jasminewd2@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e" - integrity sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4= + integrity sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg== jquery@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/jquery/-/jquery-2.2.4.tgz#2c89d6889b5eac522a7eea32c14521559c6cbf02" - integrity sha1-LInWiJterFIqfuoywUUhVZxsvwI= + integrity sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q== js-sha256@^0.9.0: version "0.9.0" @@ -2558,12 +2518,12 @@ js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== json-fn@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/json-fn/-/json-fn-1.1.1.tgz#4293c9198a482d6697d334a6e32cd0d221121e80" - integrity sha1-QpPJGYpILWaX0zSm4yzQ0iESHoA= + integrity sha512-diGeurhgiazd1lfByjn83uQkF6fVFdiCiQgJyhN3/aCl7EKye0aZe3r9eeQPKcsCh81Mntrvt46z65cn7ZwZHA== json-schema-traverse@^0.4.1: version "0.4.1" @@ -2578,17 +2538,17 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== jsonfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= + integrity sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w== optionalDependencies: graceful-fs "^4.1.6" @@ -2603,14 +2563,14 @@ jsprim@^1.2.2: verror "1.10.0" jszip@^3.1.3: - version "3.9.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.9.1.tgz#784e87f328450d1e8151003a9c67733e2b901051" - integrity sha512-H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw== + version "3.10.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.0.tgz#faf3db2b4b8515425e34effcdbb086750a346061" + integrity sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q== dependencies: lie "~3.3.0" pako "~1.0.2" readable-stream "~2.3.6" - set-immediate-shim "~1.0.1" + setimmediate "^1.0.5" just-debounce@^1.0.0: version "1.1.0" @@ -2620,19 +2580,19 @@ just-debounce@^1.0.0: kind-of@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= + integrity sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g== kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" @@ -2649,14 +2609,14 @@ kind-of@^6.0.0, kind-of@^6.0.2: klaw-sync@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-2.1.0.tgz#3d3bcd8600e7bfdef53231c739ff053aed560e44" - integrity sha1-PTvNhgDnv971MjHHOf8FOu1WDkQ= + integrity sha512-lIxVCUMQIF7hfygFfdZgv4Z+e1smLroaYNQMUcf1TcJ5oqxj9m8qk19iIuMVl+tXQPr3CSE4V+4XjGEqmsth0Q== optionalDependencies: graceful-fs "^4.1.11" last-run@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" - integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + integrity sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ== dependencies: default-resolution "^2.0.0" es6-weak-map "^2.0.1" @@ -2664,7 +2624,7 @@ last-run@^1.1.0: lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + integrity sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== lazystream@^1.0.0: version "1.0.1" @@ -2676,7 +2636,7 @@ lazystream@^1.0.0: lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== dependencies: invert-kv "^1.0.0" @@ -2690,7 +2650,7 @@ lcid@^2.0.0: lead@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= + integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow== dependencies: flush-write-stream "^1.0.2" @@ -2713,7 +2673,7 @@ lead@^1.0.0: levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -2742,7 +2702,7 @@ liftoff@^3.1.0: load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -2761,17 +2721,17 @@ locate-path@^3.0.0: lodash.clone@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= + integrity sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg== lodash.defaults@^4.0.1: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.flatten@^4.2.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.merge@^4.4.0: version "4.6.2" @@ -2781,17 +2741,17 @@ lodash.merge@^4.4.0: lodash.partialright@^4.1.4: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.partialright/-/lodash.partialright-4.2.1.tgz#0130d80e83363264d40074f329b8a3e7a8a1cc4b" - integrity sha1-ATDYDoM2MmTUAHTzKbij56ihzEs= + integrity sha512-yebmPMQZH7i4El6SdJTW9rn8irWl8VTcsmiWqm/I4sY8/ZjbSo0Z512HL6soeAu3mh5rhx5uIIo6kYJOQXbCxw== lodash.pick@^4.2.1: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== lodash.uniq@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" @@ -2801,12 +2761,12 @@ lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21: longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + integrity sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg== -lru-queue@0.1: +lru-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" - integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== dependencies: es5-ext "~0.10.2" @@ -2821,14 +2781,14 @@ make-dir@^2.1.0: make-error-cause@^1.1.1: version "1.2.2" resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" - integrity sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0= + integrity sha512-4TO2Y3HkBnis4c0dxhAgD/jprySYLACf7nwN6V0HAHDx59g12WlRpUmFy1bRHamjGUEEBrEvCq6SUpsEE2lhUg== dependencies: make-error "^1.2.0" make-error@^1.2.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" - integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-iterator@^1.0.0: version "1.0.1" @@ -2847,29 +2807,29 @@ map-age-cleaner@^0.1.1: map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-stream@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" - integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg= + integrity sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ== map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" matchdep@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" - integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + integrity sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA== dependencies: findup-sync "^2.0.0" micromatch "^3.0.4" @@ -2886,18 +2846,18 @@ mem@^4.0.0: p-is-promise "^2.0.0" memoizee@0.4.X: - version "0.4.14" - resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" - integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== dependencies: - d "1" - es5-ext "^0.10.45" - es6-weak-map "^2.0.2" + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" event-emitter "^0.3.5" - is-promise "^2.1" - lru-queue "0.1" - next-tick "1" - timers-ext "^0.1.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -2940,7 +2900,7 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -2975,7 +2935,7 @@ mkdirp@^1.0.4: mkdirp@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" - integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= + integrity sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg== moment@^2.29.2: version "2.29.3" @@ -2985,7 +2945,7 @@ moment@^2.29.2: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -3008,9 +2968,9 @@ mute-stream@0.0.8: integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== nanomatch@^1.2.9: version "1.2.13" @@ -3037,14 +2997,9 @@ native-request@^1.0.5: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -next-tick@1, next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -next-tick@^1.1.0: +next-tick@1, next-tick@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== @@ -3052,7 +3007,7 @@ next-tick@^1.1.0: ngstorage@^0.3.4: version "0.3.11" resolved "https://registry.yarnpkg.com/ngstorage/-/ngstorage-0.3.11.tgz#1637c45b872d909d9cc7e18b374898d50b2e844f" - integrity sha1-FjfEW4ctkJ2cx+GLN0iY1QsuhE8= + integrity sha512-IXOcCZ/4f0bU24e0dIzzEJKz/8l00S0k8XXpnROC912iJDL3WQtdens50ayWtTI9EbXOeYhc7FCea4LzFG+WlQ== nice-try@^1.0.4: version "1.0.5" @@ -3072,7 +3027,7 @@ normalize-package-data@^2.3.2: normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" @@ -3091,14 +3046,14 @@ now-and-later@^2.0.0: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== oauth-sign@~0.9.0: version "0.9.0" @@ -3108,12 +3063,12 @@ oauth-sign@~0.9.0: object-assign@4.X, object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" @@ -3127,12 +3082,12 @@ object-keys@^1.1.1: object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= + integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" @@ -3149,7 +3104,7 @@ object.assign@^4.0.4, object.assign@^4.1.0: object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" - integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== dependencies: array-each "^1.0.1" array-slice "^1.0.0" @@ -3159,7 +3114,7 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: object.map@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" - integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== dependencies: for-own "^1.0.0" make-iterator "^1.0.0" @@ -3167,14 +3122,14 @@ object.map@^1.0.0: object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" object.reduce@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" - integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + integrity sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw== dependencies: for-own "^1.0.0" make-iterator "^1.0.0" @@ -3182,7 +3137,7 @@ object.reduce@^1.0.0: once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -3208,14 +3163,14 @@ optionator@^0.8.3: ordered-read-streams@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= + integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw== dependencies: readable-stream "^2.0.1" os-locale@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== dependencies: lcid "^1.0.0" @@ -3231,17 +3186,17 @@ os-locale@^3.0.0: os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-is-promise@^2.0.0: version "2.1.0" @@ -3282,7 +3237,7 @@ parent-module@^1.0.0: parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== dependencies: is-absolute "^1.0.0" map-cache "^0.2.0" @@ -3291,7 +3246,7 @@ parse-filepath@^1.0.1: parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== dependencies: error-ex "^1.2.0" @@ -3303,44 +3258,44 @@ parse-node-version@^1.0.0: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-parse@^1.0.7: version "1.0.7" @@ -3350,19 +3305,19 @@ path-parse@^1.0.7: path-root-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== path-root@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== dependencies: path-root-regex "^0.1.0" path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -3371,7 +3326,7 @@ path-type@^1.0.0: path@^0.12.7: version "0.12.7" resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8= + integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== dependencies: process "^0.11.1" util "^0.10.3" @@ -3379,19 +3334,19 @@ path@^0.12.7: pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== dependencies: through "~2.3" performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^4.0.1: version "4.0.1" @@ -3401,14 +3356,14 @@ pify@^4.0.1: pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== plugin-error@1.0.1, plugin-error@^1.0.1: version "1.0.1" @@ -3423,7 +3378,7 @@ plugin-error@1.0.1, plugin-error@^1.0.1: plugin-error@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= + integrity sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw== dependencies: ansi-cyan "^0.1.1" ansi-red "^0.1.1" @@ -3434,17 +3389,17 @@ plugin-error@^0.1.2: posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== pretty-hrtime@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" @@ -3454,7 +3409,7 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: process@^0.11.1: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.0: version "2.0.3" @@ -3495,7 +3450,7 @@ protractor@5.4.4, protractor@^5: prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== psl@^1.1.28: version "1.8.0" @@ -3535,12 +3490,12 @@ punycode@^2.1.0, punycode@^2.1.1: q@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= + integrity sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg== q@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qs@~6.5.2: version "6.5.3" @@ -3550,7 +3505,7 @@ qs@~6.5.2: read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== dependencies: find-up "^1.0.0" read-pkg "^1.0.0" @@ -3558,16 +3513,16 @@ read-pkg-up@^1.0.1: read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" path-type "^1.0.0" "readable-stream@2 || 3": - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -3589,7 +3544,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable readable-stream@~1.0.17: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -3608,7 +3563,7 @@ readdirp@^2.2.1: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" @@ -3636,7 +3591,7 @@ remove-bom-buffer@^3.0.0: remove-bom-stream@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= + integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA== dependencies: remove-bom-buffer "^3.0.0" safe-buffer "^5.1.0" @@ -3645,7 +3600,7 @@ remove-bom-stream@^1.2.0: remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== repeat-element@^1.1.2: version "1.1.4" @@ -3655,7 +3610,7 @@ repeat-element@^1.1.2: repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== replace-ext@^1.0.0: version "1.0.1" @@ -3665,7 +3620,7 @@ replace-ext@^1.0.0: replace-homedir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" - integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + integrity sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg== dependencies: homedir-polyfill "^1.0.1" is-absolute "^1.0.0" @@ -3700,17 +3655,17 @@ request@^2.87.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -3723,14 +3678,14 @@ resolve-from@^4.0.0: resolve-options@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= + integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A== dependencies: value-or-function "^3.0.0" resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0: version "1.22.0" @@ -3757,7 +3712,7 @@ ret@~0.1.10: right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + integrity sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg== dependencies: align-text "^0.1.1" @@ -3787,7 +3742,7 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -3797,15 +3752,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" @@ -3829,12 +3779,12 @@ sax@>=0.6.0: select2-bootstrap-css@^1.4.6: version "1.4.6" resolved "https://registry.yarnpkg.com/select2-bootstrap-css/-/select2-bootstrap-css-1.4.6.tgz#5cfb68246f5299ca1858e01efd788804c734997e" - integrity sha1-XPtoJG9SmcoYWOAe/XiIBMc0mX4= + integrity sha512-BBsisfivUYjwhj3QdWNS15sBqC/DHoszRC4B3GIzJwMNO1pT1uVvwDm5u2TLXi7oj/3S4vIeQ6yAuMa86d7c9A== select2@^3.4.5: version "3.5.1" resolved "https://registry.yarnpkg.com/select2/-/select2-3.5.1.tgz#f2819489bbc65fd6d328be72bbe2b95dd7e87cfe" - integrity sha1-8oGUibvGX9bTKL5yu+K5XdfofP4= + integrity sha512-IFX3UFPpPyK1I1Kuw1R1x+upMyNAZbMlkFhiTnRCRR7ii0KU1brmJMLa3GZcrMWCHiQlm0eKqb6i4XO4pqOrGQ== selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: version "3.6.0" @@ -3849,7 +3799,7 @@ selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: semver-greatest-satisfied-range@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" - integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + integrity sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ== dependencies: sver-compat "^1.5.0" @@ -3866,12 +3816,7 @@ semver@^6.1.2: set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-immediate-shim@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -3883,17 +3828,22 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" @@ -3965,17 +3915,17 @@ source-map-url@^0.4.0: source-map@^0.5.1, source-map@^0.5.6, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== sparkles@^1.0.0: version "1.0.1" @@ -4018,14 +3968,14 @@ split-string@^3.0.1, split-string@^3.0.2: split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== dependencies: through "2" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: version "1.17.0" @@ -4045,12 +3995,12 @@ sshpk@^1.7.0: stack-trace@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" @@ -4058,7 +4008,7 @@ static-extend@^0.1.1: stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== dependencies: duplexer "~0.1.1" @@ -4075,7 +4025,7 @@ stream-shift@^1.0.0: string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -4117,7 +4067,7 @@ string_decoder@^1.1.1: string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" @@ -4129,14 +4079,14 @@ string_decoder@~1.1.1: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" @@ -4157,19 +4107,19 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: strip-bom-string@1.X: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-json-comments@^3.0.1: version "3.1.1" @@ -4179,7 +4129,7 @@ strip-json-comments@^3.0.1: supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== supports-color@^5.3.0: version "5.5.0" @@ -4203,7 +4153,7 @@ supports-preserve-symlinks-flag@^1.0.0: sver-compat@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" - integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= + integrity sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg== dependencies: es6-iterator "^2.0.1" es6-symbol "^3.1.1" @@ -4221,7 +4171,7 @@ table@^5.2.3: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== through2-filter@^3.0.0: version "3.0.0" @@ -4239,7 +4189,7 @@ through2@2.X, through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through2@3.0.1, through2@^3.0.1: +through2@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== @@ -4249,22 +4199,30 @@ through2@3.0.1, through2@^3.0.1: through2@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" - integrity sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s= + integrity sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ== dependencies: readable-stream "~1.0.17" xtend "~2.1.1" +through2@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + through@2, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= + integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw== -timers-ext@^0.1.5: +timers-ext@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== @@ -4272,15 +4230,15 @@ timers-ext@^0.1.5: es5-ext "~0.10.46" next-tick "1" -tinymce@^4.9.11: - version "4.9.11" - resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-4.9.11.tgz#e3dae099722294c5b8d84ba7ef18dd126de6b582" - integrity sha512-nkSLsax+VY5DBRjMFnHFqPwTnlLEGHCco82FwJF2JNH6W+5/ClvNC1P4uhD5lXPDNiDykSHR0XJdEh7w/ICHzA== +tinymce@^5.10.0: + version "5.10.5" + resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-5.10.5.tgz#02aef6a67e915f1559e51fa8fb007270d9666778" + integrity sha512-nFKtLhmoRtExBxUfv06JlkbQWux5D+d115vxSRAqUmccZdrtpFvOIYwZmikvulLdM9pfEpvO0B+RQ2qFV/+R7w== tmp@0.0.30: version "0.0.30" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" - integrity sha1-ckGdSovn1s51FI/YsyTlk6cRwu0= + integrity sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w== dependencies: os-tmpdir "~1.0.1" @@ -4294,7 +4252,7 @@ tmp@^0.0.33: to-absolute-glob@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA== dependencies: is-absolute "^1.0.0" is-negated-glob "^1.0.0" @@ -4302,14 +4260,14 @@ to-absolute-glob@^2.0.0: to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -4327,7 +4285,7 @@ to-regex@^3.0.1, to-regex@^3.0.2: to-through@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= + integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q== dependencies: through2 "^2.0.3" @@ -4373,19 +4331,19 @@ tsutils@^2.29.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" @@ -4412,7 +4370,7 @@ type@^2.5.0: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript@4.6.4: version "4.6.4" @@ -4422,7 +4380,7 @@ typescript@4.6.4: uglify-js@^2.8.22: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= + integrity sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w== dependencies: source-map "~0.5.1" yargs "~3.10.0" @@ -4430,27 +4388,24 @@ uglify-js@^2.8.22: uglify-to-browserify "~1.0.0" uglify-js@^3.0.5: - version "3.7.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.4.tgz#e6d83a1aa32ff448bd1679359ab13d8db0fe0743" - integrity sha512-tinYWE8X1QfCHxS1lBS8yiDekyhSXOO6R66yNOCdUJeojxxw+PX2BHAz/BWyW7PQ7pkiWVxJfIEbiDxyLWvUGg== - dependencies: - commander "~2.20.3" - source-map "~0.6.1" + version "3.16.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.16.0.tgz#b778ba0831ca102c1d8ecbdec2d2bdfcc7353190" + integrity sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw== uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + integrity sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q== unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== undertaker-registry@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" - integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + integrity sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw== undertaker@^1.2.1: version "1.3.0" @@ -4494,7 +4449,7 @@ universalify@^0.1.0: unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -4514,7 +4469,7 @@ uri-js@^4.2.2: urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== use@^3.1.0: version "3.1.1" @@ -4524,7 +4479,7 @@ use@^3.1.0: util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.10.3: version "0.10.4" @@ -4561,12 +4516,12 @@ validate-npm-package-license@^3.0.1: value-or-function@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= + integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -4598,7 +4553,7 @@ vinyl-fs@^3.0.0, vinyl-fs@^3.0.3: vinyl-sourcemap@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= + integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA== dependencies: append-buffer "^1.0.2" convert-source-map "^1.5.0" @@ -4611,11 +4566,11 @@ vinyl-sourcemap@^1.1.0: vinyl-sourcemaps-apply@0.2.1, vinyl-sourcemaps-apply@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" - integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= + integrity sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw== dependencies: source-map "^0.5.1" -vinyl@^2.0.0: +vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== @@ -4627,18 +4582,6 @@ vinyl@^2.0.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vinyl@^2.1.0, vinyl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - webdriver-js-extender@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz#57d7a93c00db4cc8d556e4d3db4b5db0a80c3bb7" @@ -4667,17 +4610,17 @@ webdriver-manager@^12.0.6: when@^3.7.8: version "3.7.8" resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" - integrity sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I= + integrity sha512-5cZ7mecD3eYcMiCH4wtRPA5iFJZ50BJYDfckI5RRpQiktMiYTcn0ccLTZOvcbBume+1304fQztxeNzNS9Gvrnw== which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== which@^1.2.14, which@^1.2.9: version "1.3.1" @@ -4689,7 +4632,7 @@ which@^1.2.14, which@^1.2.9: window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== word-wrap@~1.2.3: version "1.2.3" @@ -4699,12 +4642,12 @@ word-wrap@~1.2.3: wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + integrity sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q== wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -4712,7 +4655,7 @@ wrap-ansi@^2.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write@1.0.3: version "1.0.3" @@ -4737,7 +4680,7 @@ xmlbuilder@~11.0.0: xtend@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== dependencies: object-keys "~0.4.0" @@ -4812,7 +4755,7 @@ yargs@^7.1.0: yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + integrity sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A== dependencies: camelcase "^1.0.2" cliui "^2.1.0" From 4042b99952fe9fb0344230440bd42e2cb1c6b156 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 12:02:41 +0200 Subject: [PATCH 136/432] added indexes --- .../Infrastructure.DataAccess.csproj | 10 +- .../DataProcessingRegistrationReadModelMap.cs | 11 ++ ...01212019_AddedDrpReadModelLastChangedBy.cs | 22 --- ...212019_AddedDrpReadModelLastChangedBy.resx | 126 ------------------ ..._AddDprReadModelLastUpdatedBy.Designer.cs} | 6 +- ...6130953204_AddDprReadModelLastUpdatedBy.cs | 28 ++++ ...30953204_AddDprReadModelLastUpdatedBy.resx | 126 ++++++++++++++++++ 7 files changed, 173 insertions(+), 156 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx rename Infrastructure.DataAccess/Migrations/{202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs => 202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs} (76%) create mode 100644 Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.resx diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 682f486718..9430f42367 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -873,9 +873,9 @@ 202206081008542_Rename_SsoOrgIdentity.cs - - - 202206101212019_AddedDrpReadModelLastChangedBy.cs + + + 202206130953204_AddDprReadModelLastUpdatedBy.cs @@ -1446,8 +1446,8 @@ 202206081008542_Rename_SsoOrgIdentity.cs - - 202206101212019_AddedDrpReadModelLastChangedBy.cs + + 202206130953204_AddDprReadModelLastUpdatedBy.cs diff --git a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs index de6a95e18c..a4a991dd21 100644 --- a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs +++ b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs @@ -1,6 +1,7 @@ using System.Data.Entity.ModelConfiguration; using Core.DomainModel.GDPR; using Core.DomainModel.GDPR.Read; +using Core.DomainModel.Users; namespace Infrastructure.DataAccess.Mapping { @@ -69,6 +70,16 @@ public DataProcessingRegistrationReadModelMap() .HasIndexAnnotation("IX_DPR_IsOversightCompleted", 0); Property(x => x.ContractNamesAsCsv).IsOptional(); + + Property(x => x.LastChangedById) + .HasIndexAnnotation("ItSystemUsageOverviewReadModel_Index_LastChangedById", 0); + + Property(x => x.LastChangedByName) + .HasMaxLength(UserConstraints.MaxNameLength) + .HasIndexAnnotation("ItSystemUsageOverviewReadModel_Index_LastChangedByName", 0); + + Property(x => x.LastChangedAt) + .HasIndexAnnotation("ItSystemUsageOverviewReadModel_Index_LastChangedAt", 0); } } } \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs deleted file mode 100644 index 5c0386285f..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddedDrpReadModelLastChangedBy : DbMigration - { - public override void Up() - { - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById", c => c.Int()); - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", c => c.String()); - AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); - } - - public override void Down() - { - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt"); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName"); - DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById"); - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx b/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx deleted file mode 100644 index 14b560fac6..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs b/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs similarity index 76% rename from Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs rename to Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs index 9c48a5fc80..a239661877 100644 --- a/Infrastructure.DataAccess/Migrations/202206101212019_AddedDrpReadModelLastChangedBy.Designer.cs +++ b/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs @@ -7,13 +7,13 @@ namespace Infrastructure.DataAccess.Migrations using System.Resources; [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddedDrpReadModelLastChangedBy : IMigrationMetadata + public sealed partial class AddDprReadModelLastUpdatedBy : IMigrationMetadata { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddedDrpReadModelLastChangedBy)); + private readonly ResourceManager Resources = new ResourceManager(typeof(AddDprReadModelLastUpdatedBy)); string IMigrationMetadata.Id { - get { return "202206101212019_AddedDrpReadModelLastChangedBy"; } + get { return "202206130953204_AddDprReadModelLastUpdatedBy"; } } string IMigrationMetadata.Source diff --git a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.cs b/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.cs new file mode 100644 index 0000000000..3f66c0362d --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.cs @@ -0,0 +1,28 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddDprReadModelLastUpdatedBy : DbMigration + { + public override void Up() + { + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById", c => c.Int()); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", c => c.String(maxLength: 100)); + AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedById", name: "ItSystemUsageOverviewReadModel_Index_LastChangedById"); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", name: "ItSystemUsageOverviewReadModel_Index_LastChangedByName"); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", name: "ItSystemUsageOverviewReadModel_Index_LastChangedAt"); + } + + public override void Down() + { + DropIndex("dbo.DataProcessingRegistrationReadModels", "ItSystemUsageOverviewReadModel_Index_LastChangedAt"); + DropIndex("dbo.DataProcessingRegistrationReadModels", "ItSystemUsageOverviewReadModel_Index_LastChangedByName"); + DropIndex("dbo.DataProcessingRegistrationReadModels", "ItSystemUsageOverviewReadModel_Index_LastChangedById"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName"); + DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.resx b/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.resx new file mode 100644 index 0000000000..5a84d2a2e8 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file From 58fdc4c33a9119b74e33060690510ec35599c476 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 12:37:25 +0200 Subject: [PATCH 137/432] try fixing tinymce --- bundle.config.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bundle.config.js b/bundle.config.js index dbf570b0ff..6a7daa2dbf 100644 --- a/bundle.config.js +++ b/bundle.config.js @@ -10,11 +10,11 @@ module.exports = { npm("/select2/select2_locale_da.js"), npm("/moment/min/moment.min.js"), npm("/json-fn/jsonfn.min.js"), - npm("/tinymce/tinymce.js"), - npm("/tinymce/plugins/image/plugin.min.js"), - npm("/tinymce/plugins/code/plugin.min.js"), - npm("/tinymce/plugins/link/plugin.min.js"), - npm("/tinymce/themes/modern/theme.min.js"), + npm("/tinymce.js"), + npm("/plugins/image/plugin.min.js"), + npm("/plugins/code/plugin.min.js"), + npm("/plugins/link/plugin.min.js"), + npm("/themes/modern/theme.min.js"), npm("/js-sha256/src/sha256.js") ], libraryBundle: "library-bundle.min.js", @@ -24,8 +24,8 @@ module.exports = { npm("/select2-bootstrap-css/select2-bootstrap.min.css"), npm("/angular-loading-bar/build/loading-bar.min.css"), npm("/angular-ui-tree/dist/angular-ui-tree.min.css"), - npm("/tinymce/skins/lightgray/skin.min.css"), - npm("/tinymce/skins/lightgray/content.min.css") + npm("/skins/lightgray/skin.min.css"), + npm("/skins/lightgray/content.min.css") ], // angular script bundle From 2f4f9b5d017b463306bb8a77158a114a6388735b Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 12:51:05 +0200 Subject: [PATCH 138/432] fixed naming --- .../Infrastructure.DataAccess.csproj | 10 +++++----- .../DataProcessingRegistrationReadModelMap.cs | 6 +++--- ...1047556_AddDprReadModelLastUpdatedBy.Designer.cs} | 2 +- ... 202206131047556_AddDprReadModelLastUpdatedBy.cs} | 12 ++++++------ ...02206131047556_AddDprReadModelLastUpdatedBy.resx} | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) rename Infrastructure.DataAccess/Migrations/{202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs => 202206131047556_AddDprReadModelLastUpdatedBy.Designer.cs} (92%) rename Infrastructure.DataAccess/Migrations/{202206130953204_AddDprReadModelLastUpdatedBy.cs => 202206131047556_AddDprReadModelLastUpdatedBy.cs} (74%) rename Infrastructure.DataAccess/Migrations/{202206130953204_AddDprReadModelLastUpdatedBy.resx => 202206131047556_AddDprReadModelLastUpdatedBy.resx} (71%) diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 9430f42367..2f46d0ace2 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -873,9 +873,9 @@ 202206081008542_Rename_SsoOrgIdentity.cs - - - 202206130953204_AddDprReadModelLastUpdatedBy.cs + + + 202206131047556_AddDprReadModelLastUpdatedBy.cs @@ -1446,8 +1446,8 @@ 202206081008542_Rename_SsoOrgIdentity.cs - - 202206130953204_AddDprReadModelLastUpdatedBy.cs + + 202206131047556_AddDprReadModelLastUpdatedBy.cs diff --git a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs index a4a991dd21..36ebb3c4f0 100644 --- a/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs +++ b/Infrastructure.DataAccess/Mapping/DataProcessingRegistrationReadModelMap.cs @@ -72,14 +72,14 @@ public DataProcessingRegistrationReadModelMap() Property(x => x.ContractNamesAsCsv).IsOptional(); Property(x => x.LastChangedById) - .HasIndexAnnotation("ItSystemUsageOverviewReadModel_Index_LastChangedById", 0); + .HasIndexAnnotation("DataProcessingRegistrationReadModel_Index_LastChangedById", 0); Property(x => x.LastChangedByName) .HasMaxLength(UserConstraints.MaxNameLength) - .HasIndexAnnotation("ItSystemUsageOverviewReadModel_Index_LastChangedByName", 0); + .HasIndexAnnotation("DataProcessingRegistrationReadModel_Index_LastChangedByName", 0); Property(x => x.LastChangedAt) - .HasIndexAnnotation("ItSystemUsageOverviewReadModel_Index_LastChangedAt", 0); + .HasIndexAnnotation("DataProcessingRegistrationReadModel_Index_LastChangedAt", 0); } } } \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs b/Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.Designer.cs similarity index 92% rename from Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs rename to Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.Designer.cs index a239661877..231deed376 100644 --- a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.Designer.cs +++ b/Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.Designer.cs @@ -13,7 +13,7 @@ public sealed partial class AddDprReadModelLastUpdatedBy : IMigrationMetadata string IMigrationMetadata.Id { - get { return "202206130953204_AddDprReadModelLastUpdatedBy"; } + get { return "202206131047556_AddDprReadModelLastUpdatedBy"; } } string IMigrationMetadata.Source diff --git a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.cs b/Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.cs similarity index 74% rename from Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.cs rename to Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.cs index 3f66c0362d..2022adf48a 100644 --- a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.cs +++ b/Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.cs @@ -10,16 +10,16 @@ public override void Up() AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById", c => c.Int()); AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", c => c.String(maxLength: 100)); AddColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", c => c.DateTime(nullable: false, precision: 7, storeType: "datetime2")); - CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedById", name: "ItSystemUsageOverviewReadModel_Index_LastChangedById"); - CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", name: "ItSystemUsageOverviewReadModel_Index_LastChangedByName"); - CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", name: "ItSystemUsageOverviewReadModel_Index_LastChangedAt"); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedById", name: "DataProcessingRegistrationReadModel_Index_LastChangedById"); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedByName", name: "DataProcessingRegistrationReadModel_Index_LastChangedByName"); + CreateIndex("dbo.DataProcessingRegistrationReadModels", "LastChangedAt", name: "DataProcessingRegistrationReadModel_Index_LastChangedAt"); } public override void Down() { - DropIndex("dbo.DataProcessingRegistrationReadModels", "ItSystemUsageOverviewReadModel_Index_LastChangedAt"); - DropIndex("dbo.DataProcessingRegistrationReadModels", "ItSystemUsageOverviewReadModel_Index_LastChangedByName"); - DropIndex("dbo.DataProcessingRegistrationReadModels", "ItSystemUsageOverviewReadModel_Index_LastChangedById"); + DropIndex("dbo.DataProcessingRegistrationReadModels", "DataProcessingRegistrationReadModel_Index_LastChangedAt"); + DropIndex("dbo.DataProcessingRegistrationReadModels", "DataProcessingRegistrationReadModel_Index_LastChangedByName"); + DropIndex("dbo.DataProcessingRegistrationReadModels", "DataProcessingRegistrationReadModel_Index_LastChangedById"); DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedAt"); DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedByName"); DropColumn("dbo.DataProcessingRegistrationReadModels", "LastChangedById"); diff --git a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.resx b/Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.resx similarity index 71% rename from Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.resx rename to Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.resx index 5a84d2a2e8..eca9dd8025 100644 --- a/Infrastructure.DataAccess/Migrations/202206130953204_AddDprReadModelLastUpdatedBy.resx +++ b/Infrastructure.DataAccess/Migrations/202206131047556_AddDprReadModelLastUpdatedBy.resx @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 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 dbo From e4f7cbb0aa8fb9daf942d51287e3ccb4127bedcc Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 12:53:37 +0200 Subject: [PATCH 139/432] try fixing tinymce --- bundle.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundle.config.js b/bundle.config.js index 6a7daa2dbf..eee3a40557 100644 --- a/bundle.config.js +++ b/bundle.config.js @@ -10,7 +10,7 @@ module.exports = { npm("/select2/select2_locale_da.js"), npm("/moment/min/moment.min.js"), npm("/json-fn/jsonfn.min.js"), - npm("/tinymce.js"), + npm("/tinymce/tinymce.js"), npm("/plugins/image/plugin.min.js"), npm("/plugins/code/plugin.min.js"), npm("/plugins/link/plugin.min.js"), From 1f3aed9eca9bd958f355c2a6fbfad17de233dc22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 13 Jun 2022 13:01:10 +0200 Subject: [PATCH 140/432] Added customization --- Presentation.Web/Content/less/kitos.less | 3 +++ ...min.ItContract.UiCustomization.e2e.spec.ts | 3 ++- .../it-contract-plan.controller.ts | 9 +++++---- .../tabs/it-contract-tab-main.controller.ts | 4 ++-- .../tabs/it-contract-tab-main.view.html | 4 ++-- .../local-ui-customization.view.html | 20 ++++++++++--------- ...tract-ui-customization-config-blueprint.ts | 5 ++++- 7 files changed, 29 insertions(+), 19 deletions(-) diff --git a/Presentation.Web/Content/less/kitos.less b/Presentation.Web/Content/less/kitos.less index cf4fef7b44..0d8c9a5b53 100644 --- a/Presentation.Web/Content/less/kitos.less +++ b/Presentation.Web/Content/less/kitos.less @@ -1715,3 +1715,6 @@ tbody.bordered > tr > td { border-right: 0; } +.local-ui-customization-option { + font-weight: normal; +} \ No newline at end of file diff --git a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts index 4a4a759e78..8b0203c32b 100644 --- a/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts +++ b/Presentation.Web/Tests/01_Parallel/It-Contract/LocalAdmin.ItContract.UiCustomization.e2e.spec.ts @@ -36,7 +36,8 @@ describe("Local admin is able customize the IT-Contract UI", () => { .then(() => Select2Helper.select(loginHelper.getGlobalAdminCredentials().username, "selectUser")) .then(() => testTabCustomization(contractName, "ItContracts.contractRoles", ContractNavigationSrefs.contractRolesSref)) .then(() => testTabCustomization(contractName, "ItContracts.advice", ContractNavigationSrefs.adviceSref)) - .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.replacementPlan", ContractNavigationSrefs.frontPageSref, "selectReplacementPlan")); + .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.procurementPlan", ContractNavigationSrefs.frontPageSref, "selectProcurementPlan")) + .then(() => testFieldCustomization(contractName, "ItContracts.frontPage.procurementStrategy", ContractNavigationSrefs.frontPageSref, "selectProcurementStrategy")); }); function testTabCustomization(name: string, settingId: string, tabSref: string) { diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index fb0f9c4567..321485f468 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -164,7 +164,7 @@ const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); return filterUrl.replace(pattern, "contains(LastChangedByUser/Name$2 or contains(LastChangedByUser/LastName$2"); } - + public saveGridProfile() { Utility.KendoFilterProfileHelper.saveProfileLocalStorageData(this.$window, this.orgUnitStorageKey); @@ -408,7 +408,7 @@ columnHide: this.saveGridOptions, columnShow: this.saveGridOptions, columnReorder: this.saveGridOptions, - excelExport: (e:any) => this.exportToExcel(e), + excelExport: (e: any) => this.exportToExcel(e), page: this.onPaging, columns: [ { @@ -817,7 +817,8 @@ showOperators: false, operator: "contains" } - } + }, + isAvailable: this.uiState.isBluePrintNodeAvailable(this.uiBluePrint.children.frontPage.children.procurementStrategy) }, { field: "ProcurementPlanYear", @@ -825,7 +826,7 @@ width: 90, persistId: "procurementPlan", // DON'T YOU DARE RENAME! attributes: { "class": "text-center" }, - isAvailable: this.uiState.isBluePrintNodeAvailable(this.uiBluePrint.children.frontPage.children.replacementPlan), + isAvailable: this.uiState.isBluePrintNodeAvailable(this.uiBluePrint.children.frontPage.children.procurementPlan), template: dataItem => dataItem.ProcurementPlanQuarter && dataItem.ProcurementPlanYear ? `${dataItem.ProcurementPlanYear} | Q${dataItem.ProcurementPlanQuarter}` diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index bdca797ad2..87baec1205 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -93,8 +93,8 @@ $scope.procurementStrategies = procurementStrategies; $scope.orgUnits = orgUnits; $scope.allowClear = true; - $scope.showReplacementPlanSelection = - uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.replacementPlan); + $scope.showprocurementPlanSelection = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.procurementPlan); + $scope.showProcurementStrategySelection = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.procurementStrategy); var today = new Date(); if (!contract.active) { diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 06f0b48c3e..559146ae53 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -82,7 +82,7 @@

{{contract.name}}

-
+
{{contract.name}}
-
+
diff --git a/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts index 944e81c4db..79f8df887d 100644 --- a/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts +++ b/Presentation.Web/app/models/ui-customization/config/blueprints/it-contract-ui-customization-config-blueprint.ts @@ -10,7 +10,10 @@ readOnly: true, helpText: Configs.helpTexts.cannotChangeTab, children: { - replacementPlan: { + procurementStrategy: { + text: "Genanskaffelsesstrategi" + }, + procurementPlan: { text: "Genanskaffelsesplan" } } From 94c329075d322f62eec6d1a20aabbb9b6cc7a0b4 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 12:53:37 +0200 Subject: [PATCH 141/432] try fixing tinymce --- bundle.config.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bundle.config.js b/bundle.config.js index 6a7daa2dbf..ee1a0e9515 100644 --- a/bundle.config.js +++ b/bundle.config.js @@ -10,11 +10,11 @@ module.exports = { npm("/select2/select2_locale_da.js"), npm("/moment/min/moment.min.js"), npm("/json-fn/jsonfn.min.js"), - npm("/tinymce.js"), - npm("/plugins/image/plugin.min.js"), - npm("/plugins/code/plugin.min.js"), - npm("/plugins/link/plugin.min.js"), - npm("/themes/modern/theme.min.js"), + npm("/tinymce/tinymce.js"), + npm("/tinymce/plugins/image/plugin.min.js"), + npm("/tinymce/plugins/code/plugin.min.js"), + npm("/tinymce/plugins/link/plugin.min.js"), + npm("/tinymce/themes/silver/theme.min.js"), npm("/js-sha256/src/sha256.js") ], libraryBundle: "library-bundle.min.js", From b24559c43f1049636ebfc02099a58488c63bb64a Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 13:11:20 +0200 Subject: [PATCH 142/432] try fixing tinymce --- bundle.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bundle.config.js b/bundle.config.js index ee1a0e9515..ad8e6eb6a0 100644 --- a/bundle.config.js +++ b/bundle.config.js @@ -24,8 +24,8 @@ module.exports = { npm("/select2-bootstrap-css/select2-bootstrap.min.css"), npm("/angular-loading-bar/build/loading-bar.min.css"), npm("/angular-ui-tree/dist/angular-ui-tree.min.css"), - npm("/skins/lightgray/skin.min.css"), - npm("/skins/lightgray/content.min.css") + npm("/tinymce/skins/lightgray/skin.min.css"), + npm("/tinymce/skins/lightgray/content.min.css") ], // angular script bundle From aa1f6fa3497cc120a8065441e7627083c43f7571 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 13:17:20 +0200 Subject: [PATCH 143/432] fixed tinymce --- bundle.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundle.config.js b/bundle.config.js index ad8e6eb6a0..a514d8a2e4 100644 --- a/bundle.config.js +++ b/bundle.config.js @@ -14,7 +14,7 @@ module.exports = { npm("/tinymce/plugins/image/plugin.min.js"), npm("/tinymce/plugins/code/plugin.min.js"), npm("/tinymce/plugins/link/plugin.min.js"), - npm("/tinymce/themes/silver/theme.min.js"), + //npm("/tinymce/themes/silver/theme.min.js"), npm("/js-sha256/src/sha256.js") ], libraryBundle: "library-bundle.min.js", From 72a9ce8917ed69bdd17436bef0c11eab90366d40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 13 Jun 2022 14:15:56 +0200 Subject: [PATCH 144/432] added correct filtering --- Presentation.Web/Presentation.Web.csproj | 1 + .../it-contract/it-contract-overview.controller.ts | 8 +------- .../it-contract/it-contract-plan.controller.ts | 7 +------ .../it-system/it-system-catalog.controller.ts | 4 +++- .../app/helpers/kendo-field-filter-helpers.ts | 12 ++++++++++++ 5 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 Presentation.Web/app/helpers/kendo-field-filter-helpers.ts diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 0c4859071e..5df5b2512c 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -344,6 +344,7 @@ + diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 65faca966f..80eab4d65d 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -174,11 +174,6 @@ return filterUrl.replace(pattern, "AssociatedSystemUsages/any(c: $1c/ItSystemUsage/ItSystem/Name$2)"); } - private fixUserFilter(filterUrl, column) { - const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); - return filterUrl.replace(pattern, "contains(LastChangedByUser/Name$2 or contains(LastChangedByUser/LastName$2"); - } - // loads kendo grid options from localstorage private loadGridOptions() { this.gridState.loadGridOptions(this.mainGrid); @@ -291,8 +286,7 @@ parameterMap.$filter = self .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); - parameterMap.$filter = self - .fixUserFilter(parameterMap.$filter, "LastChangedByUser/Name"); + parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } return parameterMap; diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index fb0f9c4567..ba4cdc01a0 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -160,11 +160,6 @@ return filterUrl.replace(/ProcurementPlanYear/i, "cast($&, Edm.String)"); } - private fixUserFilter(filterUrl, column) { - const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); - return filterUrl.replace(pattern, "contains(LastChangedByUser/Name$2 or contains(LastChangedByUser/LastName$2"); - } - public saveGridProfile() { Utility.KendoFilterProfileHelper.saveProfileLocalStorageData(this.$window, this.orgUnitStorageKey); @@ -280,7 +275,7 @@ parameterMap.$filter = this.fixProcurmentFilter(parameterMap.$filter); - parameterMap.$filter = this.fixUserFilter(parameterMap.$filter, "LastChangedByUser/Name"); + parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } return parameterMap; diff --git a/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts b/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts index 65b06dd924..8c371fc14f 100644 --- a/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts +++ b/Presentation.Web/app/components/it-system/it-system-catalog.controller.ts @@ -228,6 +228,9 @@ // replaces "contains(Uuid,'11')" with "contains(CAST(Uuid, 'Edm.String'),'11')" parameterMap.$filter = parameterMap.$filter.replace(/contains\(Uuid,/, "contains(CAST(Uuid, 'Edm.String'),"); + + //Fix filter on users to include both the first and last name properties + parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } const existing = parameterMap.$filter; @@ -237,7 +240,6 @@ parameterMap.$filter = `(${parameterMap.$filter})`; } - return parameterMap; } }, diff --git a/Presentation.Web/app/helpers/kendo-field-filter-helpers.ts b/Presentation.Web/app/helpers/kendo-field-filter-helpers.ts new file mode 100644 index 0000000000..27bbaf629b --- /dev/null +++ b/Presentation.Web/app/helpers/kendo-field-filter-helpers.ts @@ -0,0 +1,12 @@ +module Kitos.Helpers { + /** + * Updates the "filter" on a user "Name" with a filter that works on both first and lastname properties + * @param filterUrl The OData filter string + * @param replaceQueryParameter The OData filter parameter e.g. LastChangedBy/Name + * @param userDataPropertyName The "User" property (the root) e.g. LastChangedBy + */ + export function fixODataUserByNameFilter(filterUrl: string, replaceQueryParameter: string, userDataPropertyName: string) { + const pattern = new RegExp(`(\\w+\\()${replaceQueryParameter}(.*?\\))`, "i"); + return filterUrl.replace(pattern, `contains(${userDataPropertyName}/Name$2 or contains(${userDataPropertyName}/LastName$2`); + } +} From a59abba31017b5d2408a5f9b71179df644021774 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 13 Jun 2022 15:28:09 +0200 Subject: [PATCH 145/432] fixed tinymce --- .../Scripts/skins/lightgray/content.min.css | 1 - .../Scripts/skins/lightgray/skin.min.css | 1 - .../global-admin-help-texts-edit.controller.ts | 4 ++-- .../app/components/home/home.controller.ts | 4 ++-- .../components/it-advice/it-advice-modal-dialog.ts | 4 ++-- bundle.config.js | 13 ++++++++----- gulp/deploy.js | 6 ++++-- 7 files changed, 18 insertions(+), 15 deletions(-) delete mode 100644 Presentation.Web/Scripts/skins/lightgray/content.min.css delete mode 100644 Presentation.Web/Scripts/skins/lightgray/skin.min.css diff --git a/Presentation.Web/Scripts/skins/lightgray/content.min.css b/Presentation.Web/Scripts/skins/lightgray/content.min.css deleted file mode 100644 index 07b59ad8a1..0000000000 --- a/Presentation.Web/Scripts/skins/lightgray/content.min.css +++ /dev/null @@ -1 +0,0 @@ -//Dummy file from gulp \ No newline at end of file diff --git a/Presentation.Web/Scripts/skins/lightgray/skin.min.css b/Presentation.Web/Scripts/skins/lightgray/skin.min.css deleted file mode 100644 index 07b59ad8a1..0000000000 --- a/Presentation.Web/Scripts/skins/lightgray/skin.min.css +++ /dev/null @@ -1 +0,0 @@ -//Dummy file from gulp \ No newline at end of file diff --git a/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts index cd891b21ae..4c0968e35c 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts @@ -15,8 +15,8 @@ $rootScope.page.title = "Hjælpetekter"; this.tinymceOptions = { plugins: "link image code", - skin: "lightgray", - theme: "modern", + //skin: "lightgray", + theme: "silver", convert_urls: false, height: "400px" }; diff --git a/Presentation.Web/app/components/home/home.controller.ts b/Presentation.Web/app/components/home/home.controller.ts index 8ed775c4eb..9c222595c6 100644 --- a/Presentation.Web/app/components/home/home.controller.ts +++ b/Presentation.Web/app/components/home/home.controller.ts @@ -48,8 +48,8 @@ $scope.tinymceOptions = { plugins: 'link image code', - skin: 'lightgray', - theme: 'modern', + //skin: 'lightgray', + theme: 'silver', convert_urls: false }; diff --git a/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts b/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts index a6702f1528..312d488e46 100644 --- a/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts +++ b/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts @@ -286,8 +286,8 @@ $scope.tinymceOptions = { plugins: "link image code", - skin: "lightgray", - theme: "modern", + //skin: "lightgray", + theme: "silver", toolbar: "bold italic | example | code | preview | link | searchreplace", convert_urls: false }; diff --git a/bundle.config.js b/bundle.config.js index a514d8a2e4..29021a6d90 100644 --- a/bundle.config.js +++ b/bundle.config.js @@ -14,9 +14,10 @@ module.exports = { npm("/tinymce/plugins/image/plugin.min.js"), npm("/tinymce/plugins/code/plugin.min.js"), npm("/tinymce/plugins/link/plugin.min.js"), - //npm("/tinymce/themes/silver/theme.min.js"), + npm("/tinymce/themes/silver/theme.min.js"), + npm("/tinymce/icons/default/icons.min.js"), npm("/js-sha256/src/sha256.js") - ], +], libraryBundle: "library-bundle.min.js", libraryStylesSrc: [ @@ -24,8 +25,10 @@ module.exports = { npm("/select2-bootstrap-css/select2-bootstrap.min.css"), npm("/angular-loading-bar/build/loading-bar.min.css"), npm("/angular-ui-tree/dist/angular-ui-tree.min.css"), - npm("/tinymce/skins/lightgray/skin.min.css"), - npm("/tinymce/skins/lightgray/content.min.css") + npm("/tinymce/skins/ui/oxide/skin.min.css"), + npm("/tinymce/skins/ui/oxide/content.min.css"), + npm("/tinymce/skins/content/default/content.css"), + npm("/tinymce/skins/content/default/content.min.css") ], // angular script bundle @@ -62,7 +65,7 @@ module.exports = { ], tinyMCEFontSrc: [ - npm("/tinymce/skins/lightgray/fonts/*.*") + npm("/tinymce/ui/oxide/fonts/*.*") ], // assets diff --git a/gulp/deploy.js b/gulp/deploy.js index f15d286a7d..8879c3d88e 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -112,9 +112,11 @@ const tinyMCEFonts = function (callBack) { const tinyMCEFixCss = function (callBack) { return file("content.min.css", "//Dummy file from gulp", { src: true }) - .pipe(dest(paths.sourceScript + "/skins/lightgray")) + .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) .pipe(rename("skin.min.css")) - .pipe(dest(paths.sourceScript + "/skins/lightgray")); + .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) + .pipe(rename("content.min.css")) + .pipe(dest(paths.sourceScript + "/skins/content/default")); }; const tinyMCEFixLang = function (callBack) { From e6c704cc103a07ce1a90957fa727e2cabd6211a2 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 08:12:03 +0200 Subject: [PATCH 146/432] try fixing tinymce --- gulp/deploy.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gulp/deploy.js b/gulp/deploy.js index 8879c3d88e..9410a9007b 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -115,8 +115,8 @@ const tinyMCEFixCss = function (callBack) { .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) .pipe(rename("skin.min.css")) .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) - .pipe(rename("content.min.css")) - .pipe(dest(paths.sourceScript + "/skins/content/default")); + //.pipe(rename("content.min.css")) + //.pipe(dest(paths.sourceScript + "/skins/content/default")); }; const tinyMCEFixLang = function (callBack) { From 557fd79714e1071381c8dca18cff9f09ee608d97 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 08:31:26 +0200 Subject: [PATCH 147/432] tinyMCE fonts fix --- gulp/deploy.js | 9 +++++---- paths.config.js | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gulp/deploy.js b/gulp/deploy.js index 9410a9007b..25933898d8 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -107,16 +107,17 @@ const fonts = function (callBack) { // copy tinyMCE fonts const tinyMCEFonts = function (callBack) { return src(config.tinyMCEFontSrc) - .pipe(dest(config.tinyMCEFontDest)); + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce-small.eot")); }; const tinyMCEFixCss = function (callBack) { return file("content.min.css", "//Dummy file from gulp", { src: true }) .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) .pipe(rename("skin.min.css")) - .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) - //.pipe(rename("content.min.css")) - //.pipe(dest(paths.sourceScript + "/skins/content/default")); + .pipe(dest(paths.sourceScript + "/skins/ui/oxide")); + //.pipe(rename("content.min.css")) + //.pipe(dest(paths.sourceScript + "/skins/content/default")); }; const tinyMCEFixLang = function (callBack) { diff --git a/paths.config.js b/paths.config.js index d7c9078436..726aa08a1f 100644 --- a/paths.config.js +++ b/paths.config.js @@ -5,6 +5,7 @@ var source = "Presentation.Web", typescriptOutputApp = typescriptOutput + "/app", sourceApp = source + "/app", sourceScript = source + "/Scripts", + sourceContent = source + "/Content", allJavaScript = [sourceApp + "/app.js", sourceApp + "/**/*.module.js", sourceApp + "/**/!(tinyMCE_lang_da).js"], allJavaScriptNoTests = [sourceApp + "/app.js", sourceApp + "/**/*.module.js", sourceApp + "/**/!(*.spec|*.po|*tinyMCE_lang_da).js"], appTypeScriptOut = [typescriptOutputApp + "/app.js", typescriptOutputApp + "/**/*.module.js", typescriptOutputApp + "/**/!(*.spec|*.po).js"], @@ -30,6 +31,7 @@ module.exports = { sourceApp: sourceApp, appMaps: appMaps, sourceScript: sourceScript, + sourceContent: sourceScript, allJavaScript: allJavaScript, allJavaScriptNoTests: allJavaScriptNoTests, typescriptOutput: typescriptOutput, From a6cf219e50ce3906af8d0b35305bb9f2d10a3ac5 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 08:33:47 +0200 Subject: [PATCH 148/432] method change --- gulp/deploy.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gulp/deploy.js b/gulp/deploy.js index 25933898d8..c7c756952a 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -106,18 +106,18 @@ const fonts = function (callBack) { // copy tinyMCE fonts const tinyMCEFonts = function (callBack) { - return src(config.tinyMCEFontSrc) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce-small.eot")); + return src(config.tinyMCEFontSrc); }; const tinyMCEFixCss = function (callBack) { return file("content.min.css", "//Dummy file from gulp", { src: true }) .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) .pipe(rename("skin.min.css")) - .pipe(dest(paths.sourceScript + "/skins/ui/oxide")); - //.pipe(rename("content.min.css")) - //.pipe(dest(paths.sourceScript + "/skins/content/default")); + .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) + .pipe(rename("content.min.css")) + .pipe(dest(paths.sourceScript + "/skins/content/default")) + .pipe(rename("tinymce-small.eot")) + .pipe(dest(paths.sourceContent + "/css/fonts")); }; const tinyMCEFixLang = function (callBack) { From 96d4c7e0297243204f9d9fa1a625f28c37edc455 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 08:56:35 +0200 Subject: [PATCH 149/432] added dummy tinymce-small.eot file --- gulp/deploy.js | 9 ++++++--- paths.config.js | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gulp/deploy.js b/gulp/deploy.js index c7c756952a..fe86652e58 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -115,8 +115,11 @@ const tinyMCEFixCss = function (callBack) { .pipe(rename("skin.min.css")) .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) .pipe(rename("content.min.css")) - .pipe(dest(paths.sourceScript + "/skins/content/default")) - .pipe(rename("tinymce-small.eot")) + .pipe(dest(paths.sourceScript + "/skins/content/default")); +}; + +const tinyMCEFixFonts = function (callBack) { + return file("tinymce-small.eot", "//Dummy file from gulp", { src: true }) .pipe(dest(paths.sourceContent + "/css/fonts")); }; @@ -126,7 +129,7 @@ const tinyMCEFixLang = function (callBack) { }; // bundle, minify and copy styles, fonts and assets -const styles = series(cleanStyles, parallel(css, assets, fonts), parallel(tinyMCEFonts, tinyMCEFixCss, tinyMCEFixLang)); +const styles = series(cleanStyles, parallel(css, assets, fonts), parallel(tinyMCEFonts, tinyMCEFixCss, tinyMCEFixLang, tinyMCEFixFonts)); // run bundle tasks const scripts = series(cleanScriptBundles, parallel(appBundle, libraryBundle, angularBundle)); diff --git a/paths.config.js b/paths.config.js index 726aa08a1f..5bc8bc6816 100644 --- a/paths.config.js +++ b/paths.config.js @@ -31,7 +31,7 @@ module.exports = { sourceApp: sourceApp, appMaps: appMaps, sourceScript: sourceScript, - sourceContent: sourceScript, + sourceContent: sourceContent, allJavaScript: allJavaScript, allJavaScriptNoTests: allJavaScriptNoTests, typescriptOutput: typescriptOutput, From 9e923f297aeaff608252188ce167352e09cb9385 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 09:04:58 +0200 Subject: [PATCH 150/432] added dummy tinymce-small.svg file --- gulp/deploy.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gulp/deploy.js b/gulp/deploy.js index fe86652e58..ef93e9b1ac 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -120,6 +120,8 @@ const tinyMCEFixCss = function (callBack) { const tinyMCEFixFonts = function (callBack) { return file("tinymce-small.eot", "//Dummy file from gulp", { src: true }) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce-small.svg")) .pipe(dest(paths.sourceContent + "/css/fonts")); }; From b80990d4c6165388072a93be3063cafa02cdf121 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 09:13:20 +0200 Subject: [PATCH 151/432] added dummy tinymce-small.ttf file --- gulp/deploy.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gulp/deploy.js b/gulp/deploy.js index ef93e9b1ac..582b79670b 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -122,6 +122,8 @@ const tinyMCEFixFonts = function (callBack) { return file("tinymce-small.eot", "//Dummy file from gulp", { src: true }) .pipe(dest(paths.sourceContent + "/css/fonts")) .pipe(rename("tinymce-small.svg")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce-small.ttf")) .pipe(dest(paths.sourceContent + "/css/fonts")); }; From 21dbb259577e0cafd347c24decbc0eb459a54a9c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 09:23:53 +0200 Subject: [PATCH 152/432] added tinymce-small.wof file --- gulp/deploy.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gulp/deploy.js b/gulp/deploy.js index 582b79670b..d4afa379a7 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -124,6 +124,8 @@ const tinyMCEFixFonts = function (callBack) { .pipe(rename("tinymce-small.svg")) .pipe(dest(paths.sourceContent + "/css/fonts")) .pipe(rename("tinymce-small.ttf")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce-small.wof")) .pipe(dest(paths.sourceContent + "/css/fonts")); }; From 4b08d69167775f2fd14038fafcc5349b5c80729c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 09:31:06 +0200 Subject: [PATCH 153/432] added woff file --- gulp/deploy.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gulp/deploy.js b/gulp/deploy.js index d4afa379a7..2de415baec 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -126,6 +126,8 @@ const tinyMCEFixFonts = function (callBack) { .pipe(rename("tinymce-small.ttf")) .pipe(dest(paths.sourceContent + "/css/fonts")) .pipe(rename("tinymce-small.wof")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce-small.woff")) .pipe(dest(paths.sourceContent + "/css/fonts")); }; From 1e8812b4bb36ef1c5ac97b1b88baa907e53b49fd Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 09:38:33 +0200 Subject: [PATCH 154/432] tinymce font --- gulp/deploy.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gulp/deploy.js b/gulp/deploy.js index 2de415baec..3b0820e34a 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -128,6 +128,16 @@ const tinyMCEFixFonts = function (callBack) { .pipe(rename("tinymce-small.wof")) .pipe(dest(paths.sourceContent + "/css/fonts")) .pipe(rename("tinymce-small.woff")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce.eot")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce.svg")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce.ttf")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce.wof")) + .pipe(dest(paths.sourceContent + "/css/fonts")) + .pipe(rename("tinymce.woff")) .pipe(dest(paths.sourceContent + "/css/fonts")); }; From 529acd260c06fb3e7e1e22e57e29295ff8af0c95 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 09:46:01 +0200 Subject: [PATCH 155/432] added lightgray skin --- gulp/deploy.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gulp/deploy.js b/gulp/deploy.js index 3b0820e34a..37cc923e0d 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -115,6 +115,10 @@ const tinyMCEFixCss = function (callBack) { .pipe(rename("skin.min.css")) .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) .pipe(rename("content.min.css")) + .pipe(dest(paths.sourceScript + "/skins/lightgray")) + .pipe(rename("skin.min.css")) + .pipe(dest(paths.sourceScript + "/skins/lightgray")) + .pipe(rename("content.min.css")) .pipe(dest(paths.sourceScript + "/skins/content/default")); }; From ce65ae279b1182424175e24ec68280c36645b258 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 09:57:56 +0200 Subject: [PATCH 156/432] removed green code --- .../global-admin/global-admin-help-texts-edit.controller.ts | 1 - Presentation.Web/app/components/home/home.controller.ts | 1 - .../app/components/it-advice/it-advice-modal-dialog.ts | 1 - 3 files changed, 3 deletions(-) diff --git a/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts index 4c0968e35c..43e76c1831 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.controller.ts @@ -15,7 +15,6 @@ $rootScope.page.title = "Hjælpetekter"; this.tinymceOptions = { plugins: "link image code", - //skin: "lightgray", theme: "silver", convert_urls: false, height: "400px" diff --git a/Presentation.Web/app/components/home/home.controller.ts b/Presentation.Web/app/components/home/home.controller.ts index 9c222595c6..778ce059ea 100644 --- a/Presentation.Web/app/components/home/home.controller.ts +++ b/Presentation.Web/app/components/home/home.controller.ts @@ -48,7 +48,6 @@ $scope.tinymceOptions = { plugins: 'link image code', - //skin: 'lightgray', theme: 'silver', convert_urls: false }; diff --git a/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts b/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts index 312d488e46..17fc3c0850 100644 --- a/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts +++ b/Presentation.Web/app/components/it-advice/it-advice-modal-dialog.ts @@ -286,7 +286,6 @@ $scope.tinymceOptions = { plugins: "link image code", - //skin: "lightgray", theme: "silver", toolbar: "bold italic | example | code | preview | link | searchreplace", convert_urls: false From 7e203e919e2de381fe75e361d1050c587402d98e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 10:43:11 +0200 Subject: [PATCH 157/432] Added LastUpdatedBy to contract --- Presentation.Web/App_Start/MappingConfig.cs | 1 + .../Models/API/V1/ItContractDTO.cs | 1 + .../tabs/it-contract-tab-main.view.html | 37 ++++++++++++++----- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index a852684a39..c266080ae3 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -355,6 +355,7 @@ public MappingProfile() CreateMap() .ForMember(dest => dest.AssociatedSystemUsages, opt => opt.MapFrom(src => src.AssociatedSystemUsages.Select(x => x.ItSystemUsage))) .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) + .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser.GetFullName())) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index ce55fffa96..569458501a 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -61,6 +61,7 @@ public class ItContractDTO public IEnumerable Advices { get; set; } public DateTime LastChanged { get; set; } + public string LastChangedByName { get; set; } public int LastChangedByUserId { get; set; } public string ObjectOwnerName { get; set; } diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 559146ae53..397bb2fafa 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -176,15 +176,15 @@

{{contract.name}}

- +
@@ -265,6 +265,25 @@

{{contract.name}}

+ +
+
+ + +
+
+ + +
+
From cd789a3fa6b9b91934241d84e9a2944817242679 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 13:09:45 +0200 Subject: [PATCH 158/432] added field to itContract Main view --- Core.DomainModel/ItContract/ItContract.cs | 9 ++ .../Infrastructure.DataAccess.csproj | 7 + ...epurchaseInitiatedToItContract.Designer.cs | 29 ++++ ...0041_AddRepurchaseInitiatedToItContract.cs | 18 +++ ...41_AddRepurchaseInitiatedToItContract.resx | 126 ++++++++++++++++++ .../Models/API/V1/ItContractDTO.cs | 10 +- .../tabs/it-contract-tab-main.controller.ts | 11 ++ .../tabs/it-contract-tab-main.view.html | 10 ++ 8 files changed, 216 insertions(+), 4 deletions(-) create mode 100644 Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index 67dc24c913..2b3062599b 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -10,6 +10,7 @@ using Core.DomainModel.Extensions; using Core.DomainModel.Notification; +using Core.DomainModel.Shared; // ReSharper disable VirtualMemberCallInConstructor @@ -255,6 +256,14 @@ public bool IsActive /// public int? ProcurementPlanYear { get; set; } + /// + /// Gets or sets the chosen contract template identifier. + /// + /// + /// Chosen contract template identifier. + /// + public YesNoUndecidedOption? RepurchaseInitiated{ get; set; } + /// /// Gets or sets the chosen contract template identifier. /// diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 2f46d0ace2..ed67b9ed3c 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -877,6 +877,10 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs + + + 202206140930041_AddRepurchaseInitiatedToItContract.cs + @@ -1449,6 +1453,9 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs + + 202206140930041_AddRepurchaseInitiatedToItContract.cs + diff --git a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs new file mode 100644 index 0000000000..0bffb21664 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddRepurchaseInitiatedToItContract : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddRepurchaseInitiatedToItContract)); + + string IMigrationMetadata.Id + { + get { return "202206140930041_AddRepurchaseInitiatedToItContract"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs new file mode 100644 index 0000000000..58cd84a347 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs @@ -0,0 +1,18 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddRepurchaseInitiatedToItContract : DbMigration + { + public override void Up() + { + AddColumn("dbo.ItContract", "RepurchaseInitiated", c => c.Int()); + } + + public override void Down() + { + DropColumn("dbo.ItContract", "RepurchaseInitiated"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx new file mode 100644 index 0000000000..8afeaed42c --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index ce55fffa96..f8a5412a1c 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using Core.DomainModel.ItContract; +using Core.DomainModel.Shared; namespace Presentation.Web.Models.API.V1 { @@ -65,10 +66,9 @@ public class ItContractDTO public string ObjectOwnerName { get; set; } public string ObjectOwnerLastName { get; set; } - public string ObjectOwnerFullName - { - get { return ObjectOwnerName + " " + ObjectOwnerLastName; } - } + + public string ObjectOwnerFullName => ObjectOwnerName + " " + ObjectOwnerLastName; + public int? ObjectOwnerId { get; set; } public YearSegmentOption? Running { get; set; } @@ -82,5 +82,7 @@ public string ObjectOwnerFullName public IEnumerable DataProcessingRegistrations { get; set; } public Guid Uuid { get; set; } + + public YesNoUndecidedOption? RepurchaseInitiated { get; set; } } } diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 87baec1205..dadd797e24 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -79,10 +79,13 @@ function ($scope, $http, _, $stateParams, notify, contract, contractTypes, contractTemplates, purchaseForms, procurementStrategies, orgUnits: Kitos.Models.ViewModel.Generic.Select2OptionViewModelWithIndentation[], hasWriteAccess, user: Kitos.Services.IUser, autofocus, kitosUsers, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI) { const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; + const yesNoUndecided = new Kitos.Models.ViewModel.Shared.YesNoUndecidedOptions(); $scope.autoSaveUrl = 'api/itcontract/' + $stateParams.id; $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; + $scope.dataOptions = yesNoUndecided.options; $scope.contract = contract; + $scope.contract.repurchaseInitiated = yesNoUndecided.getById(contract.repurchaseInitiated); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; @@ -184,6 +187,14 @@ patch(payload, $scope.autoSaveUrl + '?organizationId=' + user.currentOrganizationId); } + $scope.saveRepurchaseInitiated = repurchaseInitiated => { + if (repurchaseInitiated === null) + return; + + var payload = { repurchaseInitiated: repurchaseInitiated }; + patch(payload, $scope.autoSaveUrl + '?organizationId=' + user.currentOrganizationId); + }; + function patch(payload, url) { var msg = notify.addInfoMessage("Gemmer...", false); $http({ method: 'PATCH', url: url, data: payload }) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 559146ae53..c78e38c736 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -108,6 +108,16 @@

{{contract.name}}

+
+
+ + +
+
From 94edb4817a7c123848a437b99b8f422889b81e5d Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 13:51:32 +0200 Subject: [PATCH 159/432] added column to overview --- .../it-contract/it-contract-overview.controller.ts | 14 ++++++++++++++ .../app/models/it-contract/it-contract.ts | 2 ++ 2 files changed, 16 insertions(+) diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 80eab4d65d..c715c1ed97 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -745,6 +745,20 @@ dataItem && dataItem.status && `Hvid: ${dataItem.status.white}, Rød: ${dataItem.status.red}, Gul: ${dataItem.status.yellow}, Grøn: ${dataItem.status.green}, Max: ${dataItem.status.max}` || "", sortable: false, filterable: false + }, + { + field: "RepurchaseInitiated", title: "Genanskaffelse igangsat", width: 150, + persistId: "genanskaffelse_igangsat", + template: dataItem => dataItem.RepurchaseInitiated ? Models.ViewModel.Shared.YesNoUndecidedOptions.getText(dataItem.RepurchaseInitiated) : "", + hidden: true, + filterable: { + cell: { + template: customFilter, + dataSource: [], + showOperators: false, + operator: "contains" + } + } } ] }; diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index 2c1ed2b11d..6ba7321a03 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -1,4 +1,5 @@ module Kitos.Models.ItContract { + /** Contains info about an it contract */ export interface IItContract extends IEntity { /** Gets or sets the name. */ @@ -119,5 +120,6 @@ AssociatedAgreementElementTypes: Array; DataProcessingRegistrations: Models.DataProcessing.IDataProcessingRegistration[]; + RepurchaseInitiated: Models.Api.Shared.YesNoUndecidedOption; } } From 46b22615a1cb78e2a266bbcb454b24c5150f664c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 15 Jun 2022 08:46:23 +0200 Subject: [PATCH 160/432] ItContract RepurchaseInitiated Api v2 --- .../Contract/Write/ItContractWriteService.cs | 4 ++- ...ntractGeneralDataModificationParameters.cs | 2 ++ Core.DomainModel/ItContract/ItContract.cs | 4 +-- .../Mapping/ItContractResponseMapper.cs | 3 +- .../Mapping/ItContractWriteModelMapper.cs | 7 +++- .../ContractGeneralDataWriteRequestDTO.cs | 5 +++ .../ContractGeneralDataResponseDTO.cs | 5 +++ .../Contract/ItContractResponseDTO.cs | 1 + .../Contract/V2/ItContractsApiV2Test.cs | 35 ++++++++++--------- 9 files changed, 45 insertions(+), 21 deletions(-) diff --git a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs index 2a99fb28a9..e8db11b41d 100644 --- a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs +++ b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs @@ -19,6 +19,7 @@ using Core.DomainModel.ItContract; using Core.DomainModel.Organization; using Core.DomainModel.References; +using Core.DomainModel.Shared; using Core.DomainServices; using Core.DomainServices.Generic; using Core.DomainServices.Role; @@ -466,6 +467,7 @@ private Result UpdateGeneralData(ItContract contract .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTypeUuid, UpdateContractType)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTemplateUuid, UpdateContractTemplate)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.Notes, (c, newValue) => c.Note = newValue)) + .Bind(itContract => itContract.WithOptionalUpdate(generalData.RepurchaseInitiated, (c, newValue) => c.RepurchaseInitiated = newValue.GetValueOrFallback(YesNoUndecidedOption.Undecided))) .Bind(itContract => itContract.WithOptionalUpdate(generalData.EnforceValid, (c, newValue) => c.Active = newValue.GetValueOrFallback(false))) .Bind(itContract => UpdateValidityPeriod(itContract, generalData).Match>(error => error, () => itContract)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.AgreementElementUuids, UpdateAgreementElements)); @@ -611,7 +613,7 @@ private Maybe UpdateName(ItContract contract, string newName) contract.Name = newName; return Maybe.None; } - + public Maybe Delete(Guid itContractUuid) { var dbId = _entityIdentityResolver.ResolveDbId(itContractUuid); diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs index b36761973c..0334d049e5 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using Core.Abstractions.Types; using Core.ApplicationServices.Model.Shared; +using Core.DomainModel.Shared; namespace Core.ApplicationServices.Model.Contracts.Write { @@ -15,5 +16,6 @@ public class ItContractGeneralDataModificationParameters public OptionalValueChange> EnforceValid { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidFrom { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidTo { get; set; } = OptionalValueChange>.None; + public OptionalValueChange> RepurchaseInitiated { get; set; } = OptionalValueChange>.None; } } diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index 2b3062599b..2de7ca4967 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -257,10 +257,10 @@ public bool IsActive public int? ProcurementPlanYear { get; set; } /// - /// Gets or sets the chosen contract template identifier. + /// Gets or sets the repurchase initiated. (Genanskaffelse igangsat) /// /// - /// Chosen contract template identifier. + /// Yes/No/Undecided repurchase initiated. /// public YesNoUndecidedOption? RepurchaseInitiated{ get; set; } diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs index 35311cf890..e3ea141b5a 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs @@ -17,7 +17,7 @@ public class ItContractResponseMapper : IItContractResponseMapper { public ItContractResponseDTO MapContractDTO(ItContract contract) { - return new ItContractResponseDTO() + return new ItContractResponseDTO { Uuid = contract.Uuid, Name = contract.Name, @@ -196,6 +196,7 @@ private static ContractGeneralDataResponseDTO MapGeneral(ItContract contract) { return new() { + RepurchaseInitiated = contract.RepurchaseInitiated, ContractId = contract.ItContractId, Notes = contract.Note, ContractTemplate = contract.ContractTemplate?.MapIdentityNamePairDTO(), diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs index 31f545ce53..2537634988 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs @@ -16,6 +16,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; +using Core.DomainModel.Shared; namespace Presentation.Web.Controllers.API.V2.External.ItContracts.Mapping { @@ -302,7 +303,11 @@ private static ItContractGeneralDataModificationParameters MapGeneralData x.General.Validity.EnforcedValid) ? (dto.Validity?.EnforcedValid ?? Maybe.None).AsChangedValue() - : OptionalValueChange>.None + : OptionalValueChange>.None, + + RepurchaseInitiated = rule.MustUpdate(x => x.General.RepurchaseInitiated) + ? (dto.RepurchaseInitiated ?? Maybe.None).AsChangedValue() + : OptionalValueChange>.None }; } diff --git a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs index 49d143124d..72a067febf 100644 --- a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs +++ b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Core.DomainModel.Shared; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Request.Generic.Validity; @@ -37,5 +38,9 @@ public class ContractGeneralDataWriteRequestDTO /// Validity of the it-contract /// public ValidityWriteRequestDTO Validity { get; set; } + /// + /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) + /// + public YesNoUndecidedOption? RepurchaseInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs index b2e1899630..b4e31e7275 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Core.DomainModel.Shared; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Validity; @@ -30,5 +31,9 @@ public class ContractGeneralDataResponseDTO /// Validity of the it-contract /// public ValidityResponseDTO Validity { get; set; } + /// + /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) + /// + public YesNoUndecidedOption? RepurchaseInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs index 96d7250df2..8f6c547abf 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs @@ -1,6 +1,7 @@ using Presentation.Web.Models.API.V2.SharedProperties; using System; using System.Collections.Generic; +using Core.DomainModel.Shared; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Roles; using Presentation.Web.Models.API.V2.Response.Organization; diff --git a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs index 5044253692..b16305576a 100644 --- a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs +++ b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs @@ -8,6 +8,7 @@ using System.Threading.Tasks; using AutoFixture; using Core.Abstractions.Extensions; +using Core.DomainModel.Shared; using Core.DomainServices.Extensions; using ExpectedObjects; using Presentation.Web.Models.API.V1; @@ -383,10 +384,10 @@ public async Task POST_With_Name_Alone() { //Arrange var (token, user, organization) = await CreatePrerequisitesAsync(); - var requestDto = new CreateNewContractRequestDTO() + var requestDto = new CreateNewContractRequestDTO { OrganizationUuid = organization.Uuid, - Name = CreateName() + Name = CreateName(), }; //Act @@ -686,17 +687,18 @@ public async Task Can_PATCH_With_Procurement() } [Theory] - [InlineData(true, true, true)] - [InlineData(true, true, false)] - [InlineData(true, false, true)] - [InlineData(false, true, true)] - [InlineData(false, false, false)] - public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements) + [InlineData(true, true, true, true)] + [InlineData(true, true, false, true)] + [InlineData(true, false, true, true)] + [InlineData(false, true, true, true)] + [InlineData(true, true, true, false)] + [InlineData(false, false, false, false)] + public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withRepurchaseInitiated) { //Arrange var (token, user, organization) = await CreatePrerequisitesAsync(); - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements); - var request = new CreateNewContractRequestDTO() + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements, withRepurchaseInitiated); + var request = new CreateNewContractRequestDTO { OrganizationUuid = organization.Uuid, Name = CreateName(), @@ -724,7 +726,7 @@ public async Task Can_PATCH_With_GeneralData() var dto = await ItContractV2Helper.PostContractAsync(token, request); //Act - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, true, true, true); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); using var response1 = await ItContractV2Helper.SendPatchContractGeneralDataAsync(token, dto.Uuid, generalDataWriteRequestDto); Assert.Equal(HttpStatusCode.OK, response1.StatusCode); @@ -734,7 +736,7 @@ public async Task Can_PATCH_With_GeneralData() AssertGeneralDataSection(generalDataWriteRequestDto, contractType, contractTemplateType, agreementElements, freshDTO); //Act - new values - (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, false, true, false); + (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, false, true, false, false); using var response2 = await ItContractV2Helper.SendPatchContractGeneralDataAsync(token, dto.Uuid, generalDataWriteRequestDto); Assert.Equal(HttpStatusCode.OK, response2.StatusCode); @@ -1666,7 +1668,7 @@ public async Task Can_POST_Full_Contract() var (token, _, organization) = await CreatePrerequisitesAsync(); var parent = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest, procurementStrategy, purchaseType) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequest) = await CreateGeneralDataRequestDTO(organization, true, true, true); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequest) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); var contractResponsibleDataWriteRequest = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials = await CreateHandoverTrials(organization, true, true, true); @@ -1734,7 +1736,7 @@ public async Task Can_PUT_All() var parent1 = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest1, procurementStrategy1, purchaseType1) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType1, contractTemplateType1, agreementElements1, generalDataWriteRequest1) = await CreateGeneralDataRequestDTO(organization, true, true, true); + var (contractType1, contractTemplateType1, agreementElements1, generalDataWriteRequest1) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); var contractResponsibleDataWriteRequest1 = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest1 = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials1 = await CreateHandoverTrials(organization, true, true, true); @@ -1791,7 +1793,7 @@ public async Task Can_PUT_All() //Arrange - Put on filled var parent2 = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest2, procurementStrategy2, purchaseType2) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType2, contractTemplateType2, agreementElements2, generalDataWriteRequest2) = await CreateGeneralDataRequestDTO(organization, true, true, true); + var (contractType2, contractTemplateType2, agreementElements2, generalDataWriteRequest2) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); var contractResponsibleDataWriteRequest2 = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest2 = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials2 = await CreateHandoverTrials(organization, true, true, true); @@ -2109,7 +2111,7 @@ private async Task CreateContractSupplierDa return contractResponsibleDataWriteRequestDto; } - private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements) + private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withRepurchaseInitiated) { var contractType = withContractType ? (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractContractTypes, @@ -2130,6 +2132,7 @@ private async Task CreateContractSupplierDa ContractTypeUuid = contractType?.Uuid, ContractTemplateUuid = contractTemplateType?.Uuid, AgreementElementUuids = agreementElements?.Select(x => x.Uuid).ToList(), + RepurchaseInitiated = A(), Validity = new ValidityWriteRequestDTO() { ValidFrom = DateTime.Now, From e5f0df0c9ce7d66ae74e6f72f7fa2e02e36c6407 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 11:54:55 +0200 Subject: [PATCH 161/432] Added Contract Criticality choice type --- Core.DomainModel/Core.DomainModel.csproj | 2 + .../ItContract/CriticalityType.cs | 9 ++ Core.DomainModel/ItContract/ItContract.cs | 17 +++ .../LocalOptions/LocalCriticalityType.cs | 8 ++ .../Infrastructure.DataAccess.csproj | 8 ++ Infrastructure.DataAccess/KitosContext.cs | 3 + .../Mapping/CriticalityTypeMap.cs | 13 ++ .../Mapping/ItContractMap.cs | 5 + ...06160929335_AddCriticalityType.Designer.cs | 29 ++++ .../202206160929335_AddCriticalityType.cs | 79 +++++++++++ .../202206160929335_AddCriticalityType.resx | 126 ++++++++++++++++++ Presentation.Web/App_Start/MappingConfig.cs | 1 + Presentation.Web/App_Start/WebApiConfig.cs | 5 + .../LocalCriticalityTypesController.cs | 42 ++++++ .../CriticalityTypesController.cs | 15 +++ .../ItContractCriticalityTypeV2Controller.cs | 59 ++++++++ .../Models/API/V1/ItContractDTO.cs | 3 + Presentation.Web/Presentation.Web.csproj | 4 + .../global-admin-contract.view.html | 1 + .../it-contract-overview.controller.ts | 27 +++- .../tabs/it-contract-tab-main.controller.ts | 9 +- .../tabs/it-contract-tab-main.view.html | 14 ++ .../local-config-contract.view.html | 1 + .../models/it-contract/criticality-type.ts | 8 ++ .../app/models/it-contract/it-contract.ts | 2 + .../app/services/localOptionService.ts | 3 + 26 files changed, 490 insertions(+), 3 deletions(-) create mode 100644 Core.DomainModel/ItContract/CriticalityType.cs create mode 100644 Core.DomainModel/LocalOptions/LocalCriticalityType.cs create mode 100644 Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx create mode 100644 Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs create mode 100644 Presentation.Web/Controllers/API/V1/OData/OptionControllers/CriticalityTypesController.cs create mode 100644 Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs create mode 100644 Presentation.Web/app/models/it-contract/criticality-type.ts diff --git a/Core.DomainModel/Core.DomainModel.csproj b/Core.DomainModel/Core.DomainModel.csproj index f397d23679..a567da84e5 100644 --- a/Core.DomainModel/Core.DomainModel.csproj +++ b/Core.DomainModel/Core.DomainModel.csproj @@ -54,6 +54,7 @@ + @@ -66,6 +67,7 @@ + diff --git a/Core.DomainModel/ItContract/CriticalityType.cs b/Core.DomainModel/ItContract/CriticalityType.cs new file mode 100644 index 0000000000..9a7a2bcd4c --- /dev/null +++ b/Core.DomainModel/ItContract/CriticalityType.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Core.DomainModel.ItContract +{ + public class CriticalityType : OptionEntity, IOptionReference + { + public virtual ICollection References { get; set; } = new HashSet(); + } +} diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index 67dc24c913..a95b5a9105 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -327,6 +327,23 @@ public bool IsActive /// public virtual ICollection Children { get; set; } + + /// + /// Id of criticality type ItContract + /// + /// + /// The criticality type identifier. + /// + public int? CriticalityId { get; set; } + + /// + /// The parent ItContract + /// + /// + /// The parent. + /// + public virtual CriticalityType CriticalityType { get; set; } + #endregion #region Deadlines (aftalefrister) diff --git a/Core.DomainModel/LocalOptions/LocalCriticalityType.cs b/Core.DomainModel/LocalOptions/LocalCriticalityType.cs new file mode 100644 index 0000000000..bd9c65f6fd --- /dev/null +++ b/Core.DomainModel/LocalOptions/LocalCriticalityType.cs @@ -0,0 +1,8 @@ +using Core.DomainModel.ItContract; + +namespace Core.DomainModel.LocalOptions +{ + public class LocalCriticalityType : LocalOptionEntity + { + } +} diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 2f46d0ace2..dd913c6151 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -65,6 +65,7 @@ + @@ -877,6 +878,10 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs + + + 202206160929335_AddCriticalityType.cs + @@ -1449,6 +1454,9 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs + + 202206160929335_AddCriticalityType.cs + diff --git a/Infrastructure.DataAccess/KitosContext.cs b/Infrastructure.DataAccess/KitosContext.cs index c268516afd..b13000ecd3 100644 --- a/Infrastructure.DataAccess/KitosContext.cs +++ b/Infrastructure.DataAccess/KitosContext.cs @@ -58,6 +58,8 @@ public KitosContext(string nameOrConnectionString) public DbSet Handovers { get; set; } public DbSet HandoverTrials { get; set; } public DbSet HandoverTrialTypes { get; set; } + public DbSet CriticalityTypes { get; set; } + public DbSet LocalCriticalityTypes { get; set; } public DbSet InterfaceTypes { get; set; } public DbSet ItInterfaceExhibits { get; set; } public DbSet ItContracts { get; set; } @@ -206,6 +208,7 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder) modelBuilder.Configurations.Add(new HandoverMap()); modelBuilder.Configurations.Add(new HandoverTrialMap()); modelBuilder.Configurations.Add(new HandoverTrialTypeMap()); + modelBuilder.Configurations.Add(new CriticalityTypeMap()); modelBuilder.Configurations.Add(new InterfaceTypeMap()); modelBuilder.Configurations.Add(new ItInterfaceMap()); modelBuilder.Configurations.Add(new ItInterfaceExhibitMap()); diff --git a/Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs b/Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs new file mode 100644 index 0000000000..915b40cd2d --- /dev/null +++ b/Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Core.DomainModel.ItContract; + +namespace Infrastructure.DataAccess.Mapping +{ + public class CriticalityTypeMap : OptionEntityMap + { + } +} diff --git a/Infrastructure.DataAccess/Mapping/ItContractMap.cs b/Infrastructure.DataAccess/Mapping/ItContractMap.cs index 9e734b368d..ff359df3f6 100644 --- a/Infrastructure.DataAccess/Mapping/ItContractMap.cs +++ b/Infrastructure.DataAccess/Mapping/ItContractMap.cs @@ -58,6 +58,11 @@ public ItContractMap() .WithMany(t => t.Children) .HasForeignKey(d => d.ParentId) .WillCascadeOnDelete(false); + + HasOptional(t => t.CriticalityType) + .WithMany(t => t.References) + .HasForeignKey(d => d.CriticalityId) + .WillCascadeOnDelete(false); HasMany(t => t.AssociatedAgreementElementTypes) .WithRequired(t => t.ItContract) diff --git a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.Designer.cs b/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.Designer.cs new file mode 100644 index 0000000000..8057b23bd3 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddCriticalityType : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddCriticalityType)); + + string IMigrationMetadata.Id + { + get { return "202206160929335_AddCriticalityType"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.cs b/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.cs new file mode 100644 index 0000000000..7028b7399d --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.cs @@ -0,0 +1,79 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddCriticalityType : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.CriticalityTypes", + c => new + { + Id = c.Int(nullable: false, identity: true), + Name = c.String(nullable: false, maxLength: 150), + IsLocallyAvailable = c.Boolean(nullable: false), + IsObligatory = c.Boolean(nullable: false), + Description = c.String(), + IsEnabled = c.Boolean(nullable: false), + Priority = c.Int(nullable: false), + Uuid = c.Guid(nullable: false), + ObjectOwnerId = c.Int(nullable: false), + LastChanged = c.DateTime(nullable: false, precision: 7, storeType: "datetime2"), + LastChangedByUserId = c.Int(nullable: false), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.User", t => t.LastChangedByUserId) + .ForeignKey("dbo.User", t => t.ObjectOwnerId) + .Index(t => t.Uuid, unique: true, name: "UX_Option_Uuid") + .Index(t => t.ObjectOwnerId) + .Index(t => t.LastChangedByUserId); + + CreateTable( + "dbo.LocalCriticalityTypes", + c => new + { + Id = c.Int(nullable: false, identity: true), + Description = c.String(), + OrganizationId = c.Int(nullable: false), + OptionId = c.Int(nullable: false), + IsActive = c.Boolean(nullable: false), + ObjectOwnerId = c.Int(), + LastChanged = c.DateTime(nullable: false, precision: 7, storeType: "datetime2"), + LastChangedByUserId = c.Int(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.User", t => t.LastChangedByUserId) + .ForeignKey("dbo.User", t => t.ObjectOwnerId) + .ForeignKey("dbo.Organization", t => t.OrganizationId, cascadeDelete: true) + .Index(t => t.OrganizationId) + .Index(t => t.ObjectOwnerId) + .Index(t => t.LastChangedByUserId); + + AddColumn("dbo.ItContract", "CriticalityId", c => c.Int()); + CreateIndex("dbo.ItContract", "CriticalityId"); + AddForeignKey("dbo.ItContract", "CriticalityId", "dbo.CriticalityTypes", "Id"); + } + + public override void Down() + { + DropForeignKey("dbo.LocalCriticalityTypes", "OrganizationId", "dbo.Organization"); + DropForeignKey("dbo.LocalCriticalityTypes", "ObjectOwnerId", "dbo.User"); + DropForeignKey("dbo.LocalCriticalityTypes", "LastChangedByUserId", "dbo.User"); + DropForeignKey("dbo.ItContract", "CriticalityId", "dbo.CriticalityTypes"); + DropForeignKey("dbo.CriticalityTypes", "ObjectOwnerId", "dbo.User"); + DropForeignKey("dbo.CriticalityTypes", "LastChangedByUserId", "dbo.User"); + DropIndex("dbo.LocalCriticalityTypes", new[] { "LastChangedByUserId" }); + DropIndex("dbo.LocalCriticalityTypes", new[] { "ObjectOwnerId" }); + DropIndex("dbo.LocalCriticalityTypes", new[] { "OrganizationId" }); + DropIndex("dbo.CriticalityTypes", new[] { "LastChangedByUserId" }); + DropIndex("dbo.CriticalityTypes", new[] { "ObjectOwnerId" }); + DropIndex("dbo.CriticalityTypes", "UX_Option_Uuid"); + DropIndex("dbo.ItContract", new[] { "CriticalityId" }); + DropColumn("dbo.ItContract", "CriticalityId"); + DropTable("dbo.LocalCriticalityTypes"); + DropTable("dbo.CriticalityTypes"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx b/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx new file mode 100644 index 0000000000..8f51fbe60a --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index a852684a39..ddff31b8b3 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -355,6 +355,7 @@ public MappingProfile() CreateMap() .ForMember(dest => dest.AssociatedSystemUsages, opt => opt.MapFrom(src => src.AssociatedSystemUsages.Select(x => x.ItSystemUsage))) .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) + .ForMember(dest => dest.CriticalityName, opt => opt.MapFrom(src => src.CriticalityType.Name)) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) diff --git a/Presentation.Web/App_Start/WebApiConfig.cs b/Presentation.Web/App_Start/WebApiConfig.cs index 1d96b81e58..a94a37ee32 100644 --- a/Presentation.Web/App_Start/WebApiConfig.cs +++ b/Presentation.Web/App_Start/WebApiConfig.cs @@ -254,6 +254,8 @@ public static IEdmModel GetModel() BindEntitySet(builder); + BindEntitySet(builder); + //Local options var localAgreementElementType = BindEntitySet(builder); @@ -326,6 +328,9 @@ public static IEdmModel GetModel() var localPurchaseFormType = BindEntitySet(builder); localPurchaseFormType.HasRequiredBinding(u => u.Organization, entitySetOrganizations); + var localCriticalityType = BindEntitySet(builder); + localCriticalityType.HasRequiredBinding(u => u.Organization, entitySetOrganizations); + var removeOption = builder.Function("RemoveOption"); removeOption.Parameter("id"); removeOption.Parameter("objectId"); diff --git a/Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs b/Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs new file mode 100644 index 0000000000..4af348572a --- /dev/null +++ b/Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Http; +using Core.DomainModel.ItContract; +using Core.DomainModel.LocalOptions; +using Core.DomainServices; +using Microsoft.AspNet.OData; +using Microsoft.AspNet.OData.Routing; +using Presentation.Web.Infrastructure.Attributes; + +namespace Presentation.Web.Controllers.API.V1.OData.LocalOptionControllers +{ + [InternalApi] + [ODataRoutePrefix("LocalCriticalityTypes")] + public class LocalCriticalityTypesController : LocalOptionBaseController + { + public LocalCriticalityTypesController(IGenericRepository repository, IGenericRepository optionsRepository) + : base(repository, optionsRepository) + { + } + + [EnableQuery] + [ODataRoute] + [RequireTopOnOdataThroughKitosToken] + public override IHttpActionResult GetByOrganizationId(int organizationId) => base.GetByOrganizationId(organizationId); + + [EnableQuery] + [ODataRoute] + public override IHttpActionResult Get(int organizationId, int key) => base.Get(organizationId, key); + + [ODataRoute] + public override IHttpActionResult Post(int organizationId, LocalCriticalityType entity) => base.Post(organizationId, entity); + + [ODataRoute] + public override IHttpActionResult Patch(int organizationId, int key, Delta delta) => base.Patch(organizationId, key, delta); + + [ODataRoute] + public override IHttpActionResult Delete(int organizationId, int key) => base.Delete(organizationId, key); + } +} \ No newline at end of file diff --git a/Presentation.Web/Controllers/API/V1/OData/OptionControllers/CriticalityTypesController.cs b/Presentation.Web/Controllers/API/V1/OData/OptionControllers/CriticalityTypesController.cs new file mode 100644 index 0000000000..10222d14c9 --- /dev/null +++ b/Presentation.Web/Controllers/API/V1/OData/OptionControllers/CriticalityTypesController.cs @@ -0,0 +1,15 @@ +using Core.DomainModel.ItContract; +using Core.DomainServices; +using Presentation.Web.Infrastructure.Attributes; + +namespace Presentation.Web.Controllers.API.V1.OData.OptionControllers +{ + [InternalApi] + public class CriticalityTypesController : BaseOptionController + { + public CriticalityTypesController(IGenericRepository repository) + : base(repository) + { + } + } +} \ No newline at end of file diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs new file mode 100644 index 0000000000..197e7e14af --- /dev/null +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Web; +using System.Web.Http; +using Core.ApplicationServices.OptionTypes; +using Core.DomainModel.ItContract; +using Presentation.Web.Infrastructure.Attributes; +using Presentation.Web.Models.API.V2.Request.Generic.Queries; +using Presentation.Web.Models.API.V2.Response.Generic.Identity; +using Presentation.Web.Models.API.V2.Response.Options; +using Swashbuckle.Swagger.Annotations; + +namespace Presentation.Web.Controllers.API.V2.External.ItContracts +{ + [RoutePrefix("api/v2/it-contract-criticality-types")] + public class ItContractCriticalityTypeV2Controller : BaseRegularOptionTypeV2Controller + { + public ItContractCriticalityTypeV2Controller(IOptionsApplicationService optionService) + : base(optionService) + { + } + + /// + /// Returns It-Contract criticality type options + /// + /// organization context for the criticality types availability + /// A list of available It-Contract criticality types + [HttpGet] + [Route] + [SwaggerResponse(HttpStatusCode.OK, Type = typeof(IEnumerable))] + [SwaggerResponse(HttpStatusCode.Forbidden)] + [SwaggerResponse(HttpStatusCode.Unauthorized)] + [SwaggerResponse(HttpStatusCode.NotFound)] + public IHttpActionResult Get([NonEmptyGuid] Guid organizationUuid, [FromUri] UnboundedPaginationQuery pagination = null) + { + return GetAll(organizationUuid, pagination); + } + + /// + /// Returns requested It-Contract criticality type + /// + /// criticality type identifier + /// organization context for the criticality type availability + /// A uuid and name pair with boolean to mark if the criticality type is available in the organization + [HttpGet] + [Route("{purchaseTypeUuid}")] + [SwaggerResponse(HttpStatusCode.OK, Type = typeof(RegularOptionExtendedResponseDTO))] + [SwaggerResponse(HttpStatusCode.BadRequest)] + [SwaggerResponse(HttpStatusCode.Unauthorized)] + [SwaggerResponse(HttpStatusCode.Forbidden)] + [SwaggerResponse(HttpStatusCode.NotFound)] + public IHttpActionResult Get([NonEmptyGuid] Guid purchaseTypeUuid, [NonEmptyGuid] Guid organizationUuid) + { + return GetSingle(purchaseTypeUuid, organizationUuid); + } + } +} \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index ce55fffa96..1ce5a0e602 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -82,5 +82,8 @@ public string ObjectOwnerFullName public IEnumerable DataProcessingRegistrations { get; set; } public Guid Uuid { get; set; } + public int? CriticalityId { get; set; } + public string CriticalityName { get; set; } + public virtual CriticalityType CriticalityType { get; set; } } } diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 5df5b2512c..3737691e54 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -347,6 +347,7 @@ + @@ -354,6 +355,8 @@ + + @@ -379,6 +382,7 @@ + diff --git a/Presentation.Web/app/components/global-admin/global-admin-contract.view.html b/Presentation.Web/app/components/global-admin/global-admin-contract.view.html index 98d853e374..8bb0050eeb 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-contract.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-contract.view.html @@ -10,3 +10,4 @@
+
diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 80eab4d65d..83cd8fec5d 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -174,6 +174,11 @@ return filterUrl.replace(pattern, "AssociatedSystemUsages/any(c: $1c/ItSystemUsage/ItSystem/Name$2)"); } + private fixCriticalityFilter(filterUrl, column) { + const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); + return filterUrl.replace(pattern, "CriticalityTypes/any(c: $1c/CriticalityType/Name$2)"); + } + // loads kendo grid options from localstorage private loadGridOptions() { this.gridState.loadGridOptions(this.mainGrid); @@ -260,7 +265,8 @@ "Supplier($select=Name)," + "AssociatedSystemUsages($expand=ItSystemUsage($select=Id;$expand=ItSystem($select=Name,Disabled)))," + "DataProcessingRegistrations($select=IsAgreementConcluded)," + - "LastChangedByUser($select=Name,LastName)"; + "LastChangedByUser($select=Name,LastName)," + + "CriticalityType($select=Name)"; // if orgunit is set then the org unit filter is active var orgUnitId = self.$window.sessionStorage.getItem(self.orgUnitStorageKey); if (orgUnitId === null) { @@ -286,6 +292,9 @@ parameterMap.$filter = self .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); + parameterMap.$filter = + self.fixCriticalityFilter(parameterMap.$filter, "CriticalityType"); + parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } @@ -745,6 +754,22 @@ dataItem && dataItem.status && `Hvid: ${dataItem.status.white}, Rød: ${dataItem.status.red}, Gul: ${dataItem.status.yellow}, Grøn: ${dataItem.status.green}, Max: ${dataItem.status.max}` || "", sortable: false, filterable: false + }, + { + field: "Criticality", title: "Kritikalitet", width: 90, + persistId: "kritikalitet", + template: dataItem => dataItem.CriticalityType ? dataItem.CriticalityType.Name : "", + excelTemplate: dataItem => + dataItem.CriticalityType ? dataItem.CriticalityType.Name : "", + sortable: false, + filterable: { + cell: { + template: customFilter, + dataSource: [], + showOperators: false, + operator: "contains" + } + } } ] }; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 87baec1205..36c4c1e7ae 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -22,6 +22,10 @@ "localOptionServiceFactory", (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.ProcurementStrategyTypes).getAll() ], + criticalities: [ + "localOptionServiceFactory", (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => + localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.CriticalityTypes).getAll() + ], orgUnits: [ '$http', 'contract', function ($http, contract) { return $http.get('api/organizationUnit?organization=' + contract.organizationId).then(function (result) { @@ -75,8 +79,8 @@ app.controller('contract.EditMainCtrl', [ - '$scope', '$http', '_', '$stateParams', 'notify', 'contract', 'contractTypes', 'contractTemplates', 'purchaseForms', 'procurementStrategies', 'orgUnits', 'hasWriteAccess', 'user', 'autofocus', 'kitosUsers', "uiState", - function ($scope, $http, _, $stateParams, notify, contract, contractTypes, contractTemplates, purchaseForms, procurementStrategies, orgUnits: Kitos.Models.ViewModel.Generic.Select2OptionViewModelWithIndentation[], hasWriteAccess, user: Kitos.Services.IUser, autofocus, kitosUsers, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI) { + '$scope', '$http', '_', '$stateParams', 'notify', 'contract', 'contractTypes', 'contractTemplates', 'purchaseForms', 'procurementStrategies', 'orgUnits', 'hasWriteAccess', 'user', 'autofocus', 'kitosUsers', "uiState", "criticalities", + function ($scope, $http, _, $stateParams, notify, contract, contractTypes, contractTemplates, purchaseForms, procurementStrategies, orgUnits: Kitos.Models.ViewModel.Generic.Select2OptionViewModelWithIndentation[], hasWriteAccess, user: Kitos.Services.IUser, autofocus, kitosUsers, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI, criticalities) { const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; @@ -91,6 +95,7 @@ $scope.contractTemplates = contractTemplates; $scope.purchaseForms = purchaseForms; $scope.procurementStrategies = procurementStrategies; + $scope.criticalities = criticalities; $scope.orgUnits = orgUnits; $scope.allowClear = true; $scope.showprocurementPlanSelection = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.procurementPlan); diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 559146ae53..c9ada5955a 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -108,6 +108,20 @@

{{contract.name}}

+
+
+ + +
+
diff --git a/Presentation.Web/app/components/local-config/local-config-contract.view.html b/Presentation.Web/app/components/local-config/local-config-contract.view.html index 280730106d..02cd59283f 100644 --- a/Presentation.Web/app/components/local-config/local-config-contract.view.html +++ b/Presentation.Web/app/components/local-config/local-config-contract.view.html @@ -45,4 +45,5 @@
+
diff --git a/Presentation.Web/app/models/it-contract/criticality-type.ts b/Presentation.Web/app/models/it-contract/criticality-type.ts new file mode 100644 index 0000000000..ec5ea35ba1 --- /dev/null +++ b/Presentation.Web/app/models/it-contract/criticality-type.ts @@ -0,0 +1,8 @@ +module Kitos.Models.ItContract { + export interface ICriticalityType extends IEntity { + Name: string; + IsActive: boolean; + Note: string; + References: Array; + } +} \ No newline at end of file diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index 2c1ed2b11d..8f3458aa62 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -59,6 +59,8 @@ Children: Array; /** Gets or sets the chosen agreement elements. */ AgreementElements: Array; + CriticalityId: number, + CriticalityType: ICriticalityType, /** When the contract began. (indgået) */ Concluded: Date; diff --git a/Presentation.Web/app/services/localOptionService.ts b/Presentation.Web/app/services/localOptionService.ts index 160f1dbee6..6548e93044 100644 --- a/Presentation.Web/app/services/localOptionService.ts +++ b/Presentation.Web/app/services/localOptionService.ts @@ -89,6 +89,7 @@ DataProcessingOversightOptions, DataProcessingDataResponsibleOptions, DataProcessingCountryOptions, + CriticalityTypes, } export interface ILocalOptionUrlResolver { @@ -185,6 +186,8 @@ return "LocalDataProcessingDataResponsibleOptions"; case LocalOptionType.DataProcessingCountryOptions: return "LocalDataProcessingCountryOptions"; + case LocalOptionType.CriticalityTypes: + return "LocalCriticalityTypes"; default: throw new Error(`Unknown option type ${type}`); } From c06fd0f8e1d643b96578b0f5a1c26e34928d64fa Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 12:41:20 +0200 Subject: [PATCH 162/432] criticality filtering --- .../components/it-contract/it-contract-overview.controller.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 83cd8fec5d..f950ceecb9 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -176,7 +176,7 @@ private fixCriticalityFilter(filterUrl, column) { const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); - return filterUrl.replace(pattern, "CriticalityTypes/any(c: $1c/CriticalityType/Name$2)"); + return filterUrl.replace(pattern, `contains(CriticalityType/Name$2`); } // loads kendo grid options from localstorage @@ -293,7 +293,7 @@ .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); parameterMap.$filter = - self.fixCriticalityFilter(parameterMap.$filter, "CriticalityType"); + self.fixCriticalityFilter(parameterMap.$filter, "Criticality"); parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } From 79fc5da5448fed960b2b214726717668a8626c1d Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 13:53:35 +0200 Subject: [PATCH 163/432] api test --- Presentation.Web/App_Start/MappingConfig.cs | 5 +++++ .../ItContracts/ItContractCriticalityTypeV2Controller.cs | 2 -- Presentation.Web/Ninject/KernelBuilder.cs | 2 ++ .../Options/V2/OptionV2ApiTests.cs | 1 + .../Tools/EntityOptionHelper.cs | 1 + .../Tools/External/OptionV2ApiHelper.cs | 4 +++- 6 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index ddff31b8b3..1b69d8a4bd 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -148,6 +148,11 @@ public DropdownProfile() .ForMember(dest => dest.References, opt => opt.Ignore()) .IgnoreDestinationEntityFields(); + CreateMap() + .ReverseMap() + .ForMember(dest => dest.References, opt => opt.Ignore()) + .IgnoreDestinationEntityFields(); + CreateMap() .ReverseMap() .ForMember(dest => dest.References, opt => opt.Ignore()) diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs index 197e7e14af..0e73e63b94 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Net; -using System.Web; using System.Web.Http; using Core.ApplicationServices.OptionTypes; using Core.DomainModel.ItContract; diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index cb71495a99..ae341ba658 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -470,6 +470,8 @@ private void RegisterOptions(IKernel kernel) RegisterOptionsService(kernel); + RegisterOptionsService(kernel); + RegisterOptionsService(kernel); //IT-Project diff --git a/Tests.Integration.Presentation.Web/Options/V2/OptionV2ApiTests.cs b/Tests.Integration.Presentation.Web/Options/V2/OptionV2ApiTests.cs index 3e4bcb65c5..5d8021dd41 100644 --- a/Tests.Integration.Presentation.Web/Options/V2/OptionV2ApiTests.cs +++ b/Tests.Integration.Presentation.Web/Options/V2/OptionV2ApiTests.cs @@ -144,6 +144,7 @@ public static IEnumerable GetRegularResources() yield return new[] { EntityOptionHelper.ResourceNames.AgreementExtensionOptionTypes, OptionV2ApiHelper.ResourceName.ItContractAgreementExtensionOptionTypes }; yield return new[] { EntityOptionHelper.ResourceNames.NoticePeriodMonthTypes, OptionV2ApiHelper.ResourceName.ItContractNoticePeriodMonthTypes }; yield return new[] { EntityOptionHelper.ResourceNames.HandoverTrialTypes, OptionV2ApiHelper.ResourceName.ItContractHandoverTrialTypes }; + yield return new[] { EntityOptionHelper.ResourceNames.CriticalityTypes, OptionV2ApiHelper.ResourceName.CriticalityTypes }; } } } diff --git a/Tests.Integration.Presentation.Web/Tools/EntityOptionHelper.cs b/Tests.Integration.Presentation.Web/Tools/EntityOptionHelper.cs index db7f08bf86..4393801bc3 100644 --- a/Tests.Integration.Presentation.Web/Tools/EntityOptionHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/EntityOptionHelper.cs @@ -33,6 +33,7 @@ public static class ResourceNames public const string NoticePeriodMonthTypes = "TerminationDeadlineTypes"; public const string HandoverTrialTypes = "HandoverTrialTypes"; public const string ContractRoles = "ItContractRoles"; + public const string CriticalityTypes = "CriticalityTypes"; public const string DataProcessingDataResponsibleOptions = "DataProcessingDataResponsibleOptions"; public const string DataProcessingBasisForTransferOptions = "DataProcessingBasisForTransferOptions"; diff --git a/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs index 6b70aed9dd..5346a1e218 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Net; using System.Threading.Tasks; +using Newtonsoft.Json; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Options; using Xunit; @@ -35,6 +36,7 @@ public static class ResourceName public const string ItContractNoticePeriodMonthTypes = "it-contract-notice-period-month-types"; public const string ItContractHandoverTrialTypes = "it-contract-handover-trial-types"; public const string ItContractRoles = "it-contract-role-types"; + public const string CriticalityTypes = "it-contract-criticality-types"; public const string DataProcessingRegistrationDataResponsible = "data-processing-registration-data-responsible-types"; public const string DataProcessingRegistrationBasisForTransfer = "data-processing-registration-basis-for-transfer-types"; @@ -47,7 +49,7 @@ public static async Task> GetOptionsAsy { var token = await HttpApi.GetTokenAsync(OrganizationRole.GlobalAdmin); var url = TestEnvironment.CreateUrl($"api/v2/{resource}?organizationUuid={orgUuid}&pageSize={pageSize}&page={pageNumber}"); - + using var response = await HttpApi.GetWithTokenAsync(url, token.Token); Assert.Equal(HttpStatusCode.OK, response.StatusCode); return await response.ReadResponseBodyAsAsync>(); From 7a6b35ad11667f82af1fe261ff149303d720ab92 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 14:10:15 +0200 Subject: [PATCH 164/432] removed unused lines --- Core.DomainModel/ItContract/ItContract.cs | 4 ++-- Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs | 7 +------ .../LocalCriticalityTypesController.cs | 6 +----- .../Tools/External/OptionV2ApiHelper.cs | 1 - 4 files changed, 4 insertions(+), 14 deletions(-) diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index a95b5a9105..e2af853545 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -337,10 +337,10 @@ public bool IsActive public int? CriticalityId { get; set; } /// - /// The parent ItContract + /// The criticality of ItContract /// /// - /// The parent. + /// The criticality. /// public virtual CriticalityType CriticalityType { get; set; } diff --git a/Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs b/Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs index 915b40cd2d..c11f34ada5 100644 --- a/Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs +++ b/Infrastructure.DataAccess/Mapping/CriticalityTypeMap.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Core.DomainModel.ItContract; +using Core.DomainModel.ItContract; namespace Infrastructure.DataAccess.Mapping { diff --git a/Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs b/Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs index 4af348572a..7227bf9bc9 100644 --- a/Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs +++ b/Presentation.Web/Controllers/API/V1/OData/LocalOptionControllers/LocalCriticalityTypesController.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.Http; +using System.Web.Http; using Core.DomainModel.ItContract; using Core.DomainModel.LocalOptions; using Core.DomainServices; diff --git a/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs b/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs index 5346a1e218..1fc493e1b6 100644 --- a/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs +++ b/Tests.Integration.Presentation.Web/Tools/External/OptionV2ApiHelper.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Net; using System.Threading.Tasks; -using Newtonsoft.Json; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Options; using Xunit; From 2c6690e5dc20d4544061aeb3f192ca048c903b4e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 14:38:05 +0200 Subject: [PATCH 165/432] fix --- .../app/shared/typeahead/typeahead.directive.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Presentation.Web/app/shared/typeahead/typeahead.directive.ts b/Presentation.Web/app/shared/typeahead/typeahead.directive.ts index bd84eb077a..282a5683c7 100644 --- a/Presentation.Web/app/shared/typeahead/typeahead.directive.ts +++ b/Presentation.Web/app/shared/typeahead/typeahead.directive.ts @@ -45,12 +45,10 @@ }; scope.onBlur = function () { - if (angular.isUndefined(scope.model) || scope.model.length) { - scope.model = scope.searchInput; - $timeout(function () { - scope.showItems = false; - }, 200); - } + scope.model = scope.searchInput; + $timeout(function () { + scope.showItems = false; + }, 200); }; scope.onKeypress = function (keyEvent) { From 5234baaf95bedb60ca2d618a7cdcaccbbfe09224 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 14:57:38 +0200 Subject: [PATCH 166/432] insert data into choice type on db create --- Infrastructure.DataAccess/Migrations/Configuration.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Infrastructure.DataAccess/Migrations/Configuration.cs b/Infrastructure.DataAccess/Migrations/Configuration.cs index 809ed73eff..23281bbddc 100644 --- a/Infrastructure.DataAccess/Migrations/Configuration.cs +++ b/Infrastructure.DataAccess/Migrations/Configuration.cs @@ -90,6 +90,8 @@ protected override void Seed(KitosContext context) AddOptions(context.PurchaseFormTypes, globalAdmin, "SKI", "SKI 02.18", "SKI 02.19", "Udbud", "EU udbud", "Direkte tildeling", "Annoncering"); + AddOptions(context.CriticalityTypes, globalAdmin, "1", "2", "3", "4", "5", "6", "7"); + AddOptions(context.PaymentModelTypes, globalAdmin, "Licens", "icens - flatrate", "Licens - forbrug", "Licens - indbyggere", "Licens - pr. sag", "Gebyr", "Engangsydelse"); AddOptions(context.AgreementElementTypes, globalAdmin, From 406935e3cee4c9d55e1d76b768e9368adf612107 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 15:50:26 +0200 Subject: [PATCH 167/432] wip: adding edit button to helptext dialog --- Presentation.Web/app/services/helpTextService.ts | 5 ++++- Presentation.Web/app/shared/helpText/helpTextModal.view.html | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Presentation.Web/app/services/helpTextService.ts b/Presentation.Web/app/services/helpTextService.ts index 6223e8c818..53057f09c0 100644 --- a/Presentation.Web/app/services/helpTextService.ts +++ b/Presentation.Web/app/services/helpTextService.ts @@ -78,7 +78,7 @@ return this.$q.resolve(cachedValue); } } - return this.$http.get>(`odata/HelpTexts?$filter=Key eq '${key}'`) + return this.getHelpTextFromApi(key) .then((result) => { let text: IHelpText | null = null; if (result.data.value.length > 0) { @@ -92,7 +92,10 @@ helpTextCache[cacheKey] = text; return text; }); + } + getHelpTextFromApi(key: string): angular.IHttpPromise> { + return this.$http.get>(`odata/HelpTexts?$filter=Key eq '${key}'`); } static $inject = ["$http", "$sce", "$q", "apiUseCaseFactory"]; diff --git a/Presentation.Web/app/shared/helpText/helpTextModal.view.html b/Presentation.Web/app/shared/helpText/helpTextModal.view.html index aebdc297ce..b22f3c3263 100644 --- a/Presentation.Web/app/shared/helpText/helpTextModal.view.html +++ b/Presentation.Web/app/shared/helpText/helpTextModal.view.html @@ -5,6 +5,7 @@ From 00aed4d6246289fae31983902caeec25e286cede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 08:09:39 +0200 Subject: [PATCH 168/432] cleanup missing files issue --- Presentation.Web/Presentation.Web.csproj | 9 +------ bundle.config.js | 5 ---- gulp/deploy.js | 30 +----------------------- 3 files changed, 2 insertions(+), 42 deletions(-) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 5df5b2512c..9d7143b1af 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1318,14 +1318,6 @@ - - - - - - - - @@ -1699,6 +1691,7 @@ + diff --git a/bundle.config.js b/bundle.config.js index 29021a6d90..58de40bcb5 100644 --- a/bundle.config.js +++ b/bundle.config.js @@ -64,10 +64,6 @@ module.exports = { npm("/font-awesome/fonts/*.*") ], - tinyMCEFontSrc: [ - npm("/tinymce/ui/oxide/fonts/*.*") - ], - // assets assetsSrc: [ npm("/select2/*.png"), @@ -82,7 +78,6 @@ module.exports = { cssBundleMin: "app.min.css", fontDest: content("/fonts"), - tinyMCEFontDest: content("/css/fonts"), cssDest: content("/css"), maps: "maps", diff --git a/gulp/deploy.js b/gulp/deploy.js index 37cc923e0d..b81a14fdae 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -104,11 +104,6 @@ const fonts = function (callBack) { .pipe(dest(config.fontDest)); }; -// copy tinyMCE fonts -const tinyMCEFonts = function (callBack) { - return src(config.tinyMCEFontSrc); -}; - const tinyMCEFixCss = function (callBack) { return file("content.min.css", "//Dummy file from gulp", { src: true }) .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) @@ -122,36 +117,13 @@ const tinyMCEFixCss = function (callBack) { .pipe(dest(paths.sourceScript + "/skins/content/default")); }; -const tinyMCEFixFonts = function (callBack) { - return file("tinymce-small.eot", "//Dummy file from gulp", { src: true }) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce-small.svg")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce-small.ttf")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce-small.wof")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce-small.woff")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce.eot")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce.svg")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce.ttf")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce.wof")) - .pipe(dest(paths.sourceContent + "/css/fonts")) - .pipe(rename("tinymce.woff")) - .pipe(dest(paths.sourceContent + "/css/fonts")); -}; - const tinyMCEFixLang = function (callBack) { return file("da.js", "//Dummy file from gulp", { src: true }) .pipe(dest(paths.sourceScript + "/langs")); }; // bundle, minify and copy styles, fonts and assets -const styles = series(cleanStyles, parallel(css, assets, fonts), parallel(tinyMCEFonts, tinyMCEFixCss, tinyMCEFixLang, tinyMCEFixFonts)); +const styles = series(cleanStyles, parallel(css, assets, fonts), parallel(tinyMCEFixCss, tinyMCEFixLang)); // run bundle tasks const scripts = series(cleanScriptBundles, parallel(appBundle, libraryBundle, angularBundle)); From 8274e1adb2de0234df6b0e7366d16310dea75bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 08:20:27 +0200 Subject: [PATCH 169/432] cleanup old tinymce fixes --- gulp/deploy.js | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/gulp/deploy.js b/gulp/deploy.js index b81a14fdae..a733870dad 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -7,8 +7,6 @@ var del = require("del"); var minifyCss = require("gulp-clean-css"); var sourceMaps = require("gulp-sourcemaps"); var ts = require("gulp-typescript"); -var rename = require("gulp-rename"); -var file = file = require("gulp-file"); var less = require("gulp-less"); var paths = require("../paths.config.js"); var config = require("../bundle.config.js"); @@ -104,26 +102,8 @@ const fonts = function (callBack) { .pipe(dest(config.fontDest)); }; -const tinyMCEFixCss = function (callBack) { - return file("content.min.css", "//Dummy file from gulp", { src: true }) - .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) - .pipe(rename("skin.min.css")) - .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) - .pipe(rename("content.min.css")) - .pipe(dest(paths.sourceScript + "/skins/lightgray")) - .pipe(rename("skin.min.css")) - .pipe(dest(paths.sourceScript + "/skins/lightgray")) - .pipe(rename("content.min.css")) - .pipe(dest(paths.sourceScript + "/skins/content/default")); -}; - -const tinyMCEFixLang = function (callBack) { - return file("da.js", "//Dummy file from gulp", { src: true }) - .pipe(dest(paths.sourceScript + "/langs")); -}; - // bundle, minify and copy styles, fonts and assets -const styles = series(cleanStyles, parallel(css, assets, fonts), parallel(tinyMCEFixCss, tinyMCEFixLang)); +const styles = series(cleanStyles, parallel(css, assets, fonts)); // run bundle tasks const scripts = series(cleanScriptBundles, parallel(appBundle, libraryBundle, angularBundle)); From 2d7c335e2bb185f54eba12b623daa29cc56ea02f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 08:32:46 +0200 Subject: [PATCH 170/432] removed dependency of unused file --- Presentation.Web/Presentation.Web.csproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 9d7143b1af..a8a0d4d509 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1652,8 +1652,6 @@ - - From cbd64d6931df311ba616e3c29c87dd345bc1f55e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 09:05:01 +0200 Subject: [PATCH 171/432] Reverted and cleanup what is not used Revert "cleanup missing files issue" This reverts commit 00aed4d6246289fae31983902caeec25e286cede. --- Presentation.Web/Presentation.Web.csproj | 11 ++++- gulp/deploy.js | 54 +++++++++++++++++++++++- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index a8a0d4d509..5df5b2512c 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1318,6 +1318,14 @@ + + + + + + + + @@ -1652,6 +1660,8 @@ + + @@ -1689,7 +1699,6 @@ - diff --git a/gulp/deploy.js b/gulp/deploy.js index a733870dad..5cc1398b5c 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -7,6 +7,8 @@ var del = require("del"); var minifyCss = require("gulp-clean-css"); var sourceMaps = require("gulp-sourcemaps"); var ts = require("gulp-typescript"); +var rename = require("gulp-rename"); +var file = file = require("gulp-file"); var less = require("gulp-less"); var paths = require("../paths.config.js"); var config = require("../bundle.config.js"); @@ -102,8 +104,58 @@ const fonts = function (callBack) { .pipe(dest(config.fontDest)); }; + +/** + * Create dummy files which are referenced when TinyMCE is loaded but where the content is actually part of the main bundle + * @param {any} callBack + */ +const tinyMCEFixCss = function (callBack) { + return file("content.min.css", "//Dummy file from gulp", { src: true }) + .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) + .pipe(rename("skin.min.css")) + .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) + .pipe(rename("content.min.css")) + .pipe(dest(paths.sourceScript + "/skins/lightgray")) + .pipe(rename("skin.min.css")) + .pipe(dest(paths.sourceScript + "/skins/lightgray")) + .pipe(rename("content.min.css")) + .pipe(dest(paths.sourceScript + "/skins/content/default")); +}; + +///** +// * Create dummy files which are referenced when TinyMCE is loaded but where the content is actually part of the main bundle +// * @param {any} callBack +// */ +//const tinyMCEFixFonts = function (callBack) { +// return file("tinymce-small.eot", "//Dummy file from gulp", { src: true }) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce-small.svg")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce-small.ttf")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce-small.wof")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce-small.woff")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce.eot")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce.svg")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce.ttf")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce.wof")) +// .pipe(dest(paths.sourceContent + "/css/fonts")) +// .pipe(rename("tinymce.woff")) +// .pipe(dest(paths.sourceContent + "/css/fonts")); +//}; + +//const tinyMCEFixLang = function (callBack) { +// return file("da.js", "//Dummy file from gulp", { src: true }) +// .pipe(dest(paths.sourceScript + "/langs")); +//}; + // bundle, minify and copy styles, fonts and assets -const styles = series(cleanStyles, parallel(css, assets, fonts)); +const styles = series(cleanStyles, parallel(css, assets, fonts), parallel(tinyMCEFixCss)); // run bundle tasks const scripts = series(cleanScriptBundles, parallel(appBundle, libraryBundle, angularBundle)); From ceb8ed2479b227584f2c7435a4ccc3497cd7184f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 09:55:18 +0200 Subject: [PATCH 172/432] clean --- Presentation.Web/Presentation.Web.csproj | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 5df5b2512c..954e15bea9 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1318,14 +1318,6 @@ - - - - - - - - From 575ee645234ad6a5111a92a7c10dc190f35d1764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 10:04:49 +0200 Subject: [PATCH 173/432] include the dummy files --- Presentation.Web/Presentation.Web.csproj | 3 +++ gulp/deploy.js | 32 ------------------------ 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 954e15bea9..167c855923 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1652,9 +1652,12 @@ + + + Designer diff --git a/gulp/deploy.js b/gulp/deploy.js index 5cc1398b5c..0812c5948a 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -122,38 +122,6 @@ const tinyMCEFixCss = function (callBack) { .pipe(dest(paths.sourceScript + "/skins/content/default")); }; -///** -// * Create dummy files which are referenced when TinyMCE is loaded but where the content is actually part of the main bundle -// * @param {any} callBack -// */ -//const tinyMCEFixFonts = function (callBack) { -// return file("tinymce-small.eot", "//Dummy file from gulp", { src: true }) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce-small.svg")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce-small.ttf")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce-small.wof")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce-small.woff")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce.eot")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce.svg")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce.ttf")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce.wof")) -// .pipe(dest(paths.sourceContent + "/css/fonts")) -// .pipe(rename("tinymce.woff")) -// .pipe(dest(paths.sourceContent + "/css/fonts")); -//}; - -//const tinyMCEFixLang = function (callBack) { -// return file("da.js", "//Dummy file from gulp", { src: true }) -// .pipe(dest(paths.sourceScript + "/langs")); -//}; - // bundle, minify and copy styles, fonts and assets const styles = series(cleanStyles, parallel(css, assets, fonts), parallel(tinyMCEFixCss)); From 02c35b7a3d44493f8ebfd7f0353ebf52ec1d4380 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 17 Jun 2022 10:38:29 +0200 Subject: [PATCH 174/432] added edit to helpText popup --- ...dmin-help-texts-create.modal.controller.ts | 18 +++++-------- .../global-admin-help-texts-edit.view.html | 6 ++--- .../app/services/helpTextService.ts | 20 +++++++++++--- .../app/shared/helpText/helpText.directive.ts | 26 ++++++++++++++++--- .../shared/helpText/helpTextModal.view.html | 2 +- 5 files changed, 50 insertions(+), 22 deletions(-) diff --git a/Presentation.Web/app/components/global-admin/global-admin-help-texts-create.modal.controller.ts b/Presentation.Web/app/components/global-admin/global-admin-help-texts-create.modal.controller.ts index f840f7768f..f363721877 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-help-texts-create.modal.controller.ts +++ b/Presentation.Web/app/components/global-admin/global-admin-help-texts-create.modal.controller.ts @@ -10,16 +10,15 @@ public busy: boolean; public vm: ICreateViewModel; - public static $inject: string[] = ["$uibModalInstance", "$http", "$q", "notify", "autofocus", "user", "_", "helpTexts"]; + public static $inject: string[] = ["$uibModalInstance", "notify", "autofocus", "user", "_", "helpTexts", "helpTextService"]; constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, - private $http: IHttpServiceWithCustomConfig, - private $q: ng.IQService, private notify, private autofocus, - private user: Kitos.Services.IUser, + private user: Services.IUser, private _: _.LoDashStatic, - private helpTexts) { + private helpTexts, + private helpTextService: Services.IHelpTextService) { if (!user.currentOrganizationId) { notify.addErrorMessage("Fejl! Kunne ikke oprette hjælpetekst.", true); return; @@ -42,15 +41,10 @@ } this.busy = true; - var payload = { - Title: this.vm.title, - Key: this.vm.key - }; - var msg = this.notify.addInfoMessage("Opretter hjælpetekst", false); - this.$http.post(`odata/HelpTexts?organizationId=${this.user.currentOrganizationId}`, payload, { handleBusy: true }) - .then((response) => { + this.helpTextService.createHelpText(this.vm.key, this.vm.title) + .then(() => { msg.toSuccessMessage(`${this.vm.title} er oprettet i KITOS`); this.cancel(); }, () => { diff --git a/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.view.html b/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.view.html index 653bf1a0d2..75c4460478 100644 --- a/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.view.html +++ b/Presentation.Web/app/components/global-admin/global-admin-help-texts-edit.view.html @@ -3,13 +3,13 @@
- - + +
- +
diff --git a/Presentation.Web/app/services/helpTextService.ts b/Presentation.Web/app/services/helpTextService.ts index 53057f09c0..d1ddbcff6d 100644 --- a/Presentation.Web/app/services/helpTextService.ts +++ b/Presentation.Web/app/services/helpTextService.ts @@ -6,6 +6,7 @@ } interface IHelpTextOdataModel { + Id?: number; Title?: string; Description?: string; } @@ -32,6 +33,8 @@ loadHelpText(key: string, ignoreCache?: boolean): ng.IPromise; deleteHelpText(id: number, key: string): ng.IPromise; updateHelpText(id: number, key: string, title: string, text: string): ng.IPromise; + createHelpText(key: string, title: string): angular.IPromise; + getHelpTextFromApi(key: string): angular.IHttpPromise>; } class HelpTextService implements IHelpTextService { @@ -94,17 +97,28 @@ }); } + createHelpText(key: string, title: string): angular.IPromise { + const user = this.userService.getUser(); + const payload = { + Title: title, + Key: key + }; + + return this.$http.post(`odata/HelpTexts?organizationId=${user.$$state.value.currentOrganizationId}`, payload, { handleBusy: true }); + } + getHelpTextFromApi(key: string): angular.IHttpPromise> { return this.$http.get>(`odata/HelpTexts?$filter=Key eq '${key}'`); } - static $inject = ["$http", "$sce", "$q", "apiUseCaseFactory"]; + static $inject = ["$http", "$sce", "$q", "apiUseCaseFactory", "userService"]; constructor( - private readonly $http: ng.IHttpService, + private readonly $http: IHttpServiceWithCustomConfig, private readonly $sce: ng.ISCEService, private readonly $q: ng.IQService, - private readonly apiUseCaseFactory: Services.Generic.IApiUseCaseFactory) { } + private readonly apiUseCaseFactory: Services.Generic.IApiUseCaseFactory, + private readonly userService: Services.IUserService) { } } app.service("helpTextService", HelpTextService); diff --git a/Presentation.Web/app/shared/helpText/helpText.directive.ts b/Presentation.Web/app/shared/helpText/helpText.directive.ts index 4d9850351c..3c1aa5d880 100644 --- a/Presentation.Web/app/shared/helpText/helpText.directive.ts +++ b/Presentation.Web/app/shared/helpText/helpText.directive.ts @@ -10,16 +10,17 @@ noButtonLayout: "@" }, controller: [ - "$scope", "$uibModal", "helpTextService", ($scope, $uibModal, helpTextService : Kitos.Services.IHelpTextService) => { + "$scope", "$uibModal", "helpTextService", "notify", ($scope, $uibModal, helpTextService: Kitos.Services.IHelpTextService, notify) => { var parent = $scope; $scope.showHelpTextModal = () => { $uibModal.open({ windowClass: "modal fade in", templateUrl: "app/shared/helpText/helpTextModal.view.html", - controller: ["$scope", ($scope) => { + controller: ["$scope", "$uibModalInstance", ($scope, $uibModalInstance) => { + const helpTextKey = parent.key; - helpTextService.loadHelpText(parent.key) + helpTextService.loadHelpText(helpTextKey) .then(helpText => { if (helpText != null) { $scope.title = helpText.title; @@ -27,8 +28,27 @@ } else { $scope.title = parent.defaultTitle; $scope.description = "Ingen hjælpetekst defineret."; + + helpTextService.createHelpText(helpTextKey, $scope.title); } }); + + $scope.navigateToHelpTextEdit = () => { + var msg = notify.addInfoMessage("CHANGE TO DANISH: Navigating to edit page", false); + + helpTextService.getHelpTextFromApi(helpTextKey) + .then((response) => { + if (response.data.value.length < 1) { + msg.toErrorMessage(`CHANGE TO DANISH: Failed to find "${helpTextKey}" help text`); + } + + const helpText = response.data.value[0]; + const helpTextId = helpText.Id; + window.location.href = `/#/global-admin/help-texts/edit/${helpTextId}`; + + $uibModalInstance.close(); + }); + } }] }); } diff --git a/Presentation.Web/app/shared/helpText/helpTextModal.view.html b/Presentation.Web/app/shared/helpText/helpTextModal.view.html index b22f3c3263..aa2cb7f896 100644 --- a/Presentation.Web/app/shared/helpText/helpTextModal.view.html +++ b/Presentation.Web/app/shared/helpText/helpTextModal.view.html @@ -5,7 +5,7 @@ From 014b61271b681e4f2b43aa69451fb878a65fdbc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 10:48:22 +0200 Subject: [PATCH 175/432] added missing dummy file --- Presentation.Web/Presentation.Web.csproj | 1 + gulp/deploy.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 167c855923..ae2ebf76be 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1652,6 +1652,7 @@ + diff --git a/gulp/deploy.js b/gulp/deploy.js index 0812c5948a..5906354623 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -119,7 +119,9 @@ const tinyMCEFixCss = function (callBack) { .pipe(rename("skin.min.css")) .pipe(dest(paths.sourceScript + "/skins/lightgray")) .pipe(rename("content.min.css")) - .pipe(dest(paths.sourceScript + "/skins/content/default")); + .pipe(dest(paths.sourceScript + "/skins/content/default")) + .pipe(rename("content.css")) + .pipe(dest(paths.sourceScript + "/skins/content/default"));; }; // bundle, minify and copy styles, fonts and assets From fe128ed0aad94b03fa2787134691a8c289da77c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 10:59:09 +0200 Subject: [PATCH 176/432] remove dependency of old theme --- Presentation.Web/Presentation.Web.csproj | 4 +--- gulp/deploy.js | 4 ---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index ae2ebf76be..006acf4c10 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1652,11 +1652,9 @@ + - - - diff --git a/gulp/deploy.js b/gulp/deploy.js index 5906354623..c40604cfde 100644 --- a/gulp/deploy.js +++ b/gulp/deploy.js @@ -115,10 +115,6 @@ const tinyMCEFixCss = function (callBack) { .pipe(rename("skin.min.css")) .pipe(dest(paths.sourceScript + "/skins/ui/oxide")) .pipe(rename("content.min.css")) - .pipe(dest(paths.sourceScript + "/skins/lightgray")) - .pipe(rename("skin.min.css")) - .pipe(dest(paths.sourceScript + "/skins/lightgray")) - .pipe(rename("content.min.css")) .pipe(dest(paths.sourceScript + "/skins/content/default")) .pipe(rename("content.css")) .pipe(dest(paths.sourceScript + "/skins/content/default"));; From 9d5999acabc0de0182a879825705d7bcc5dfc364 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 17 Jun 2022 11:04:46 +0200 Subject: [PATCH 177/432] error message --- Presentation.Web/app/shared/helpText/helpText.directive.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Presentation.Web/app/shared/helpText/helpText.directive.ts b/Presentation.Web/app/shared/helpText/helpText.directive.ts index 3c1aa5d880..39a8850e64 100644 --- a/Presentation.Web/app/shared/helpText/helpText.directive.ts +++ b/Presentation.Web/app/shared/helpText/helpText.directive.ts @@ -34,11 +34,13 @@ }); $scope.navigateToHelpTextEdit = () => { - var msg = notify.addInfoMessage("CHANGE TO DANISH: Navigating to edit page", false); + //TODO: Change text to danish + var msg = notify.addInfoMessage("CHANGE TO DANISH: Navigating to edit page", true); helpTextService.getHelpTextFromApi(helpTextKey) .then((response) => { if (response.data.value.length < 1) { + //TODO: Change text to danish msg.toErrorMessage(`CHANGE TO DANISH: Failed to find "${helpTextKey}" help text`); } From b7ae1168b57e68500f0351fa407774315947c6db Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 17 Jun 2022 11:59:30 +0200 Subject: [PATCH 178/432] fixed date formatting --- .../it-contract/tabs/it-contract-tab-main.controller.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 87baec1205..f6a5de63a0 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -83,6 +83,7 @@ $scope.autoSaveUrl = 'api/itcontract/' + $stateParams.id; $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; $scope.contract = contract; + $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate($scope.contract.lastChanged); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; From 033b08f752386966ba30cea9cbb78a1f385a7ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 12:48:48 +0200 Subject: [PATCH 179/432] cleanup --- .../it-contract/tabs/it-contract-tab-main.controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index f6a5de63a0..c1cbcae224 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -83,7 +83,7 @@ $scope.autoSaveUrl = 'api/itcontract/' + $stateParams.id; $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; $scope.contract = contract; - $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate($scope.contract.lastChanged); + $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; From 4b6aceebdc429de2726439d4160cb5c9ce2b3e4a Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 17 Jun 2022 13:50:50 +0200 Subject: [PATCH 180/432] changes after review --- .../Contract/Write/ItContractWriteService.cs | 2 +- ...ntractGeneralDataModificationParameters.cs | 2 +- Core.DomainModel/ItContract/ItContract.cs | 6 +- .../Infrastructure.DataAccess.csproj | 10 +- .../Mapping/ItContractMap.cs | 4 + ...0041_AddRepurchaseInitiatedToItContract.cs | 18 --- ...41_AddRepurchaseInitiatedToItContract.resx | 126 ------------------ ...ocurmentInitiatedToitContract.Designer.cs} | 6 +- ...7197_AddProcurmentInitiatedToitContract.cs | 20 +++ ...97_AddProcurmentInitiatedToitContract.resx | 126 ++++++++++++++++++ Presentation.Web/App_Start/MappingConfig.cs | 1 + .../Mapping/ItContractResponseMapper.cs | 2 +- .../Mapping/ItContractWriteModelMapper.cs | 4 +- .../Models/API/V1/ItContractDTO.cs | 9 +- .../ContractGeneralDataWriteRequestDTO.cs | 2 +- .../ContractGeneralDataResponseDTO.cs | 2 +- .../it-contract-overview.controller.ts | 14 -- .../it-contract-plan.controller.ts | 16 ++- .../tabs/it-contract-tab-main.controller.ts | 10 +- .../tabs/it-contract-tab-main.view.html | 6 +- .../app/models/it-contract/it-contract.ts | 2 +- .../Contract/V2/ItContractsApiV2Test.cs | 9 +- .../V2/ItContractWriteModelMapperTest.cs | 1 + 23 files changed, 202 insertions(+), 196 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx rename Infrastructure.DataAccess/Migrations/{202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs => 202206171137197_AddProcurmentInitiatedToitContract.Designer.cs} (77%) create mode 100644 Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx diff --git a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs index e8db11b41d..bf6ebcaedb 100644 --- a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs +++ b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs @@ -467,7 +467,7 @@ private Result UpdateGeneralData(ItContract contract .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTypeUuid, UpdateContractType)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTemplateUuid, UpdateContractTemplate)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.Notes, (c, newValue) => c.Note = newValue)) - .Bind(itContract => itContract.WithOptionalUpdate(generalData.RepurchaseInitiated, (c, newValue) => c.RepurchaseInitiated = newValue.GetValueOrFallback(YesNoUndecidedOption.Undecided))) + .Bind(itContract => itContract.WithOptionalUpdate(generalData.ProcurementInitiated, (c, newValue) => c.ProcurementInitiated = newValue.GetValueOrFallback(YesNoUndecidedOption.Undecided))) .Bind(itContract => itContract.WithOptionalUpdate(generalData.EnforceValid, (c, newValue) => c.Active = newValue.GetValueOrFallback(false))) .Bind(itContract => UpdateValidityPeriod(itContract, generalData).Match>(error => error, () => itContract)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.AgreementElementUuids, UpdateAgreementElements)); diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs index 0334d049e5..0d420fcdf0 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs @@ -16,6 +16,6 @@ public class ItContractGeneralDataModificationParameters public OptionalValueChange> EnforceValid { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidFrom { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidTo { get; set; } = OptionalValueChange>.None; - public OptionalValueChange> RepurchaseInitiated { get; set; } = OptionalValueChange>.None; + public OptionalValueChange> ProcurementInitiated { get; set; } = OptionalValueChange>.None; } } diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index 2de7ca4967..80cf9b216b 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -257,12 +257,12 @@ public bool IsActive public int? ProcurementPlanYear { get; set; } /// - /// Gets or sets the repurchase initiated. (Genanskaffelse igangsat) + /// Gets or sets if procurement has been initiated (Genanskaffelse igangsat) /// /// - /// Yes/No/Undecided repurchase initiated. + /// Yes/No/Undecided procurment initiated. /// - public YesNoUndecidedOption? RepurchaseInitiated{ get; set; } + public YesNoUndecidedOption? ProcurementInitiated { get; set; } /// /// Gets or sets the chosen contract template identifier. diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index ed67b9ed3c..867c28c9ec 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -877,9 +877,9 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs - - - 202206140930041_AddRepurchaseInitiatedToItContract.cs + + + 202206171137197_AddProcurmentInitiatedToitContract.cs @@ -1453,8 +1453,8 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs - - 202206140930041_AddRepurchaseInitiatedToItContract.cs + + 202206171137197_AddProcurmentInitiatedToitContract.cs diff --git a/Infrastructure.DataAccess/Mapping/ItContractMap.cs b/Infrastructure.DataAccess/Mapping/ItContractMap.cs index 9e734b368d..9c47bc33fe 100644 --- a/Infrastructure.DataAccess/Mapping/ItContractMap.cs +++ b/Infrastructure.DataAccess/Mapping/ItContractMap.cs @@ -25,6 +25,10 @@ public ItContractMap() .IsUnique(false) .HasName("IX_Name"); + HasIndex(x => x.ProcurementInitiated) + .IsUnique(false) + .HasName("IX_ProcurementInitiated"); + // Table & Column Mappings ToTable("ItContract"); diff --git a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs deleted file mode 100644 index 58cd84a347..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddRepurchaseInitiatedToItContract : DbMigration - { - public override void Up() - { - AddColumn("dbo.ItContract", "RepurchaseInitiated", c => c.Int()); - } - - public override void Down() - { - DropColumn("dbo.ItContract", "RepurchaseInitiated"); - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx b/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx deleted file mode 100644 index 8afeaed42c..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs b/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.Designer.cs similarity index 77% rename from Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs rename to Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.Designer.cs index 0bffb21664..576af357e1 100644 --- a/Infrastructure.DataAccess/Migrations/202206140930041_AddRepurchaseInitiatedToItContract.Designer.cs +++ b/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.Designer.cs @@ -7,13 +7,13 @@ namespace Infrastructure.DataAccess.Migrations using System.Resources; [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddRepurchaseInitiatedToItContract : IMigrationMetadata + public sealed partial class AddProcurmentInitiatedToitContract : IMigrationMetadata { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddRepurchaseInitiatedToItContract)); + private readonly ResourceManager Resources = new ResourceManager(typeof(AddProcurmentInitiatedToitContract)); string IMigrationMetadata.Id { - get { return "202206140930041_AddRepurchaseInitiatedToItContract"; } + get { return "202206171137197_AddProcurmentInitiatedToitContract"; } } string IMigrationMetadata.Source diff --git a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.cs b/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.cs new file mode 100644 index 0000000000..f9a72c831c --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.cs @@ -0,0 +1,20 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddProcurmentInitiatedToitContract : DbMigration + { + public override void Up() + { + AddColumn("dbo.ItContract", "ProcurementInitiated", c => c.Int()); + CreateIndex("dbo.ItContract", "ProcurementInitiated"); + } + + public override void Down() + { + DropIndex("dbo.ItContract", new[] { "ProcurementInitiated" }); + DropColumn("dbo.ItContract", "ProcurementInitiated"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx b/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx new file mode 100644 index 0000000000..508a51ea9f --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index a852684a39..1ff58b4c27 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -355,6 +355,7 @@ public MappingProfile() CreateMap() .ForMember(dest => dest.AssociatedSystemUsages, opt => opt.MapFrom(src => src.AssociatedSystemUsages.Select(x => x.ItSystemUsage))) .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) + .ForMember(dest => dest.ObjectOwnerFullName, opt => opt.MapFrom(src => src.ObjectOwner.GetFullName())) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs index e3ea141b5a..d5386eac12 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs @@ -196,7 +196,7 @@ private static ContractGeneralDataResponseDTO MapGeneral(ItContract contract) { return new() { - RepurchaseInitiated = contract.RepurchaseInitiated, + ProcurementInitiated = contract.ProcurementInitiated, ContractId = contract.ItContractId, Notes = contract.Note, ContractTemplate = contract.ContractTemplate?.MapIdentityNamePairDTO(), diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs index 2537634988..95a5d9bcd0 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs @@ -305,8 +305,8 @@ private static ItContractGeneralDataModificationParameters MapGeneralData.None).AsChangedValue() : OptionalValueChange>.None, - RepurchaseInitiated = rule.MustUpdate(x => x.General.RepurchaseInitiated) - ? (dto.RepurchaseInitiated ?? Maybe.None).AsChangedValue() + ProcurementInitiated = rule.MustUpdate(x => x.General.ProcurementInitiated) + ? (dto.ProcurementInitiated ?? Maybe.None).AsChangedValue() : OptionalValueChange>.None }; } diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index f8a5412a1c..4854fdb46b 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -63,11 +63,8 @@ public class ItContractDTO public IEnumerable Advices { get; set; } public DateTime LastChanged { get; set; } public int LastChangedByUserId { get; set; } - - public string ObjectOwnerName { get; set; } - public string ObjectOwnerLastName { get; set; } - - public string ObjectOwnerFullName => ObjectOwnerName + " " + ObjectOwnerLastName; + + public string ObjectOwnerFullName { get; set; } public int? ObjectOwnerId { get; set; } @@ -83,6 +80,6 @@ public class ItContractDTO public Guid Uuid { get; set; } - public YesNoUndecidedOption? RepurchaseInitiated { get; set; } + public YesNoUndecidedOption? ProcurementInitiated { get; set; } } } diff --git a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs index 72a067febf..4f86b8411d 100644 --- a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs +++ b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs @@ -41,6 +41,6 @@ public class ContractGeneralDataWriteRequestDTO /// /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) /// - public YesNoUndecidedOption? RepurchaseInitiated { get; set; } + public YesNoUndecidedOption? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs index b4e31e7275..10d9845f13 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs @@ -34,6 +34,6 @@ public class ContractGeneralDataResponseDTO /// /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) /// - public YesNoUndecidedOption? RepurchaseInitiated { get; set; } + public YesNoUndecidedOption? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index c715c1ed97..80eab4d65d 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -745,20 +745,6 @@ dataItem && dataItem.status && `Hvid: ${dataItem.status.white}, Rød: ${dataItem.status.red}, Gul: ${dataItem.status.yellow}, Grøn: ${dataItem.status.green}, Max: ${dataItem.status.max}` || "", sortable: false, filterable: false - }, - { - field: "RepurchaseInitiated", title: "Genanskaffelse igangsat", width: 150, - persistId: "genanskaffelse_igangsat", - template: dataItem => dataItem.RepurchaseInitiated ? Models.ViewModel.Shared.YesNoUndecidedOptions.getText(dataItem.RepurchaseInitiated) : "", - hidden: true, - filterable: { - cell: { - template: customFilter, - dataSource: [], - showOperators: false, - operator: "contains" - } - } } ] }; diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index b4a032cf09..8820820484 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -798,6 +798,20 @@ } } }, + { + field: "ProcurementInitiated", title: "Genanskaffelse igangsat", width: 150, + persistId: "procurement_initiated", + template: dataItem => dataItem.ProcurementInitiated ? Models.ViewModel.Shared.YesNoUndecidedOptions.getText(dataItem.ProcurementInitiated) : "", + hidden: true, + filterable: { + cell: { + template: customFilter, + dataSource: [], + showOperators: false, + operator: "contains" + } + } + }, { field: "ProcurementStrategy", title: "Genanskaffelsesstrategi", @@ -868,7 +882,7 @@ operator: "gte" } } - }, + } ] }; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index dadd797e24..16e52d88a0 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -83,9 +83,9 @@ $scope.autoSaveUrl = 'api/itcontract/' + $stateParams.id; $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; - $scope.dataOptions = yesNoUndecided.options; + $scope.yesNoUndecidedValues = yesNoUndecided.options; $scope.contract = contract; - $scope.contract.repurchaseInitiated = yesNoUndecided.getById(contract.repurchaseInitiated); + $scope.contract.procurementInitiated = yesNoUndecided.getById(contract.procurementInitiated); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; @@ -187,11 +187,11 @@ patch(payload, $scope.autoSaveUrl + '?organizationId=' + user.currentOrganizationId); } - $scope.saveRepurchaseInitiated = repurchaseInitiated => { - if (repurchaseInitiated === null) + $scope.saveProcurementInitiated = procurementInitiated => { + if (procurementInitiated === null) return; - var payload = { repurchaseInitiated: repurchaseInitiated }; + var payload = { procurementInitiated: procurementInitiated }; patch(payload, $scope.autoSaveUrl + '?organizationId=' + user.currentOrganizationId); }; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index c78e38c736..71bcaa4f1f 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -112,9 +112,9 @@

{{contract.name}}

diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index 6ba7321a03..879aa5e3b1 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -120,6 +120,6 @@ AssociatedAgreementElementTypes: Array; DataProcessingRegistrations: Models.DataProcessing.IDataProcessingRegistration[]; - RepurchaseInitiated: Models.Api.Shared.YesNoUndecidedOption; + ProcurementInitiated: Models.Api.Shared.YesNoUndecidedOption; } } diff --git a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs index b16305576a..407bd04d89 100644 --- a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs +++ b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs @@ -693,11 +693,11 @@ public async Task Can_PATCH_With_Procurement() [InlineData(false, true, true, true)] [InlineData(true, true, true, false)] [InlineData(false, false, false, false)] - public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withRepurchaseInitiated) + public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withProcurementInitiated) { //Arrange var (token, user, organization) = await CreatePrerequisitesAsync(); - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements, withRepurchaseInitiated); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements, withProcurementInitiated); var request = new CreateNewContractRequestDTO { OrganizationUuid = organization.Uuid, @@ -2111,7 +2111,7 @@ private async Task CreateContractSupplierDa return contractResponsibleDataWriteRequestDto; } - private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withRepurchaseInitiated) + private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withProcurementInitiated) { var contractType = withContractType ? (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractContractTypes, @@ -2132,7 +2132,7 @@ private async Task CreateContractSupplierDa ContractTypeUuid = contractType?.Uuid, ContractTemplateUuid = contractTemplateType?.Uuid, AgreementElementUuids = agreementElements?.Select(x => x.Uuid).ToList(), - RepurchaseInitiated = A(), + ProcurementInitiated = A(), Validity = new ValidityWriteRequestDTO() { ValidFrom = DateTime.Now, @@ -2158,6 +2158,7 @@ private static void AssertGeneralDataSection( Assert.Equal(request?.Validity?.ValidTo?.Date, freshDTO.General.Validity?.ValidTo); Assert.Equal(request?.Validity?.ValidFrom?.Date, freshDTO.General.Validity?.ValidFrom); Assert.Equal(request?.Validity?.EnforcedValid == true, freshDTO.General.Validity?.EnforcedValid == true); + Assert.Equal(request?.ProcurementInitiated, freshDTO.General.ProcurementInitiated); if (expectedAgreementElements == null) Assert.Empty(freshDTO.General.AgreementElements); diff --git a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs index 2b0b25abed..eaa971dd3e 100644 --- a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs +++ b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs @@ -1516,6 +1516,7 @@ private static void AssertGeneralData(ContractGeneralDataWriteRequestDTO input, Assert.Equal(input.Validity.ValidFrom, AssertPropertyContainsDataChange(output.ValidFrom)); Assert.Equal(input.Validity.ValidTo, AssertPropertyContainsDataChange(output.ValidTo)); Assert.Equal(input.Validity.EnforcedValid, AssertPropertyContainsDataChange(output.EnforceValid)); + Assert.Equal(input.ProcurementInitiated, AssertPropertyContainsDataChange(output.ProcurementInitiated)); } private static void AssertProcurement(bool hasValues, ContractProcurementDataWriteRequestDTO expected, ItContractProcurementModificationParameters actual) From 5df00514e6a576102955e9f5051edf94797d2d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 14:33:07 +0200 Subject: [PATCH 181/432] fix --- .../tabs/it-contract-tab-main.controller.ts | 2 +- .../tabs/it-contract-tab-main.view.html | 2 +- .../it-system-usage-tab-main.controller.ts | 4 ++-- .../it-system-usage/system-usage-view-model.ts | 18 +++++------------- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index c1cbcae224..874ab1ea2a 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -83,7 +83,7 @@ $scope.autoSaveUrl = 'api/itcontract/' + $stateParams.id; $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; $scope.contract = contract; - $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); + $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 397bb2fafa..c51daadadd 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -279,7 +279,7 @@

{{contract.name}}

diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts index c99900f532..116b8feda0 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts @@ -22,8 +22,8 @@ $scope.systemCategories = systemCategories; $scope.shouldShowCategories = systemCategories.length > 0; $scope.system = itSystemUsage.itSystem; - $scope.lastChangedBy = itSystemUsage.getLastChangedByUserFullName(); - $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(itSystemUsage.lastChanged); + $scope.lastChangedBy = itSystemUsage.lastChangedBy; + $scope.lastChanged = itSystemUsage.lastChanged; autofocus(); $scope.isValidUrl = (url: string) => Kitos.Utility.Validation.isValidExternalReference(url); diff --git a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts index c4c2f29377..b9c13840ea 100644 --- a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts +++ b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts @@ -119,9 +119,8 @@ DPIA: DataOption; answeringDataDPIA: DataOption; hostedAt: HostedAt; - lastChanged: string, - lastChangedByUserName: string, - lastChangedByUserLastName: string, + lastChanged: string; + lastChangedBy: string; } export class SystemUsageViewModel implements ISystemUsageViewModel { @@ -146,8 +145,7 @@ hostedAt: HostedAt; userCount: string; lastChanged: string; - lastChangedByUserName: string; - lastChangedByUserLastName: string; + lastChangedBy: string; constructor(itSystemUsage: any) { this.id = itSystemUsage.id; @@ -157,10 +155,8 @@ this.expirationDate = itSystemUsage.expirationDate; this.isActive = itSystemUsage.isActive; this.active = itSystemUsage.active; - this.lastChanged = itSystemUsage.lastChanged; - this.lastChangedByUserName = itSystemUsage.lastChangedByUserName; - this.lastChangedByUserLastName = itSystemUsage.lastChangedByUserLastName; - + this.lastChanged = Helpers.RenderFieldsHelper.renderDate(itSystemUsage.lastChanged); + this.lastChangedBy = `${itSystemUsage.lastChangedByUserName} ${itSystemUsage.lastChangedByUserLastName}`; const sensitiveDataLevels = _.map(itSystemUsage.sensitiveDataLevels, this.mapDataLevels); this.noDataSelected = _.some(sensitiveDataLevels, x => x === SensitiveDataLevelViewModel.levels.none.value); this.personalDataSelected = _.some(sensitiveDataLevels, x => x === SensitiveDataLevelViewModel.levels.personal.value); @@ -230,9 +226,5 @@ throw new RangeError(`${dataOption} is not a valid RiskLevel`); } } - - getLastChangedByUserFullName() { - return `${this.lastChangedByUserName} ${this.lastChangedByUserLastName}`; - } } } \ No newline at end of file From f41c12153ee2cc27b5fa3ecd7bb956e4d6895139 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 17 Jun 2022 14:53:39 +0200 Subject: [PATCH 182/432] changes after review --- Infrastructure.DataAccess/Mapping/ItContractMap.cs | 5 ++--- Infrastructure.DataAccess/Migrations/Configuration.cs | 2 +- Presentation.Web/App_Start/MappingConfig.cs | 1 - .../ItContracts/ItContractCriticalityTypeV2Controller.cs | 4 ++-- Presentation.Web/Models/API/V1/ItContractDTO.cs | 4 +--- 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Infrastructure.DataAccess/Mapping/ItContractMap.cs b/Infrastructure.DataAccess/Mapping/ItContractMap.cs index ff359df3f6..52884dde3a 100644 --- a/Infrastructure.DataAccess/Mapping/ItContractMap.cs +++ b/Infrastructure.DataAccess/Mapping/ItContractMap.cs @@ -58,11 +58,10 @@ public ItContractMap() .WithMany(t => t.Children) .HasForeignKey(d => d.ParentId) .WillCascadeOnDelete(false); - + HasOptional(t => t.CriticalityType) .WithMany(t => t.References) - .HasForeignKey(d => d.CriticalityId) - .WillCascadeOnDelete(false); + .HasForeignKey(d => d.CriticalityId); HasMany(t => t.AssociatedAgreementElementTypes) .WithRequired(t => t.ItContract) diff --git a/Infrastructure.DataAccess/Migrations/Configuration.cs b/Infrastructure.DataAccess/Migrations/Configuration.cs index 23281bbddc..42fe23bd40 100644 --- a/Infrastructure.DataAccess/Migrations/Configuration.cs +++ b/Infrastructure.DataAccess/Migrations/Configuration.cs @@ -90,7 +90,7 @@ protected override void Seed(KitosContext context) AddOptions(context.PurchaseFormTypes, globalAdmin, "SKI", "SKI 02.18", "SKI 02.19", "Udbud", "EU udbud", "Direkte tildeling", "Annoncering"); - AddOptions(context.CriticalityTypes, globalAdmin, "1", "2", "3", "4", "5", "6", "7"); + AddOptions(context.CriticalityTypes, globalAdmin, "Kritikalitet 1", "Kritikalitet 2"); AddOptions(context.PaymentModelTypes, globalAdmin, "Licens", "icens - flatrate", "Licens - forbrug", "Licens - indbyggere", "Licens - pr. sag", "Gebyr", "Engangsydelse"); diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index 1b69d8a4bd..6e18108545 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -360,7 +360,6 @@ public MappingProfile() CreateMap() .ForMember(dest => dest.AssociatedSystemUsages, opt => opt.MapFrom(src => src.AssociatedSystemUsages.Select(x => x.ItSystemUsage))) .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) - .ForMember(dest => dest.CriticalityName, opt => opt.MapFrom(src => src.CriticalityType.Name)) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs index 0e73e63b94..b79f062e0b 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs @@ -49,9 +49,9 @@ public IHttpActionResult Get([NonEmptyGuid] Guid organizationUuid, [FromUri] Unb [SwaggerResponse(HttpStatusCode.Unauthorized)] [SwaggerResponse(HttpStatusCode.Forbidden)] [SwaggerResponse(HttpStatusCode.NotFound)] - public IHttpActionResult Get([NonEmptyGuid] Guid purchaseTypeUuid, [NonEmptyGuid] Guid organizationUuid) + public IHttpActionResult Get([NonEmptyGuid] Guid criticalityTypeUuid, [NonEmptyGuid] Guid organizationUuid) { - return GetSingle(purchaseTypeUuid, organizationUuid); + return GetSingle(criticalityTypeUuid, organizationUuid); } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index 1ce5a0e602..b8021587b1 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -82,8 +82,6 @@ public string ObjectOwnerFullName public IEnumerable DataProcessingRegistrations { get; set; } public Guid Uuid { get; set; } - public int? CriticalityId { get; set; } - public string CriticalityName { get; set; } - public virtual CriticalityType CriticalityType { get; set; } + public virtual OptionDTO CriticalityType { get; set; } } } From fe521abe142f3b4cf36aa63b3865b2df7d747184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 15:17:36 +0200 Subject: [PATCH 183/432] fix error --- Presentation.Web/App_Start/MappingConfig.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index 20db4bbb05..4c0862640a 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -356,7 +356,7 @@ public MappingProfile() .ForMember(dest => dest.AssociatedSystemUsages, opt => opt.MapFrom(src => src.AssociatedSystemUsages.Select(x => x.ItSystemUsage))) .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) .ForMember(dest => dest.ObjectOwnerFullName, opt => opt.MapFrom(src => src.ObjectOwner.GetFullName())) - .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser?.GetFullName())) + .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser != null ? src.LastChangedByUser.GetFullName() : "")) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) From d9b912c0e45952d68c1f76c32e6acd819fa4a424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Sun, 19 Jun 2022 12:26:57 +0200 Subject: [PATCH 184/432] fix --- DeploymentScripts/DeployWebsiteToEnvironment.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DeploymentScripts/DeployWebsiteToEnvironment.ps1 b/DeploymentScripts/DeployWebsiteToEnvironment.ps1 index d86afd8654..fa446539e7 100644 --- a/DeploymentScripts/DeployWebsiteToEnvironment.ps1 +++ b/DeploymentScripts/DeployWebsiteToEnvironment.ps1 @@ -12,7 +12,7 @@ $ErrorActionPreference = "Stop" Setup-Environment -environmentName $targetEnvironment -Prepare-Package -environmentName $targetEnvironment -pathToArchive (Resolve-Path "$PSScriptRoot\..\WebPackage\Presentation.Web.csproj.zip") +Prepare-Package -environmentName $targetEnvironment -pathToArchive (Resolve-Path "$PSScriptRoot\..\WebPackage\Presentation.Web.zip") Deploy-Website -packageDirectory (Resolve-Path "$PSScriptRoot\..\WebPackage") ` -msDeployUrl "$Env:MsDeployUrl" ` From 0cd5069d5c20ba356adb393660a6b96d6440e932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Sun, 19 Jun 2022 12:31:38 +0200 Subject: [PATCH 185/432] fix --- DeploymentScripts/DeployWebsite.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DeploymentScripts/DeployWebsite.ps1 b/DeploymentScripts/DeployWebsite.ps1 index f8a8adbedd..d4024d37a8 100644 --- a/DeploymentScripts/DeployWebsite.ps1 +++ b/DeploymentScripts/DeployWebsite.ps1 @@ -3,14 +3,14 @@ Function Deploy-Website($packageDirectory, $msDeployUrl, $msDeployUser, $msDeplo $msdeploy = "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"; $fullCommand=$(("`"{0}`" " + "-verb:sync " + - "-source:package=`"{1}\Presentation.Web.csproj.zip`" " + + "-source:package=`"{1}\Presentation.Web.zip`" " + "-dest:auto,computerName=`"{2}`",userName=`"{3}`",password=`"{4}`",authtype=`"Basic`",includeAcls=`"False`" " + "-disableLink:AppPoolExtension " + "-disableLink:ContentExtension " + "-disableLink:CertificateExtension " + "-skip:objectname=`"dirPath`",absolutepath=`"C:\\kitos_tmp\\app\\App_Data$`" " + "-skip:objectname=`"dirPath`",absolutepath=`"Default Web \Site\\App_Data$`" " + - "-setParamFile:`"{1}\Presentation.Web.csproj.SetParameters.xml`" -allowUntrusted " + + "-setParamFile:`"{1}\Presentation.Web.SetParameters.xml`" -allowUntrusted " + "-setParam:name=`"serilog:minimum-level`",value=`"{5}`" " + "-setParam:name=`"serilog:write-to:Elasticsearch.nodeUris`",value=`"{6}`" " + "-setParam:name=`"SecurityKeyString`",value=`"{7}`" " + From da0b4235a27d2e5dabfe9b79c81ae6caf2f560f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 20 Jun 2022 08:09:41 +0200 Subject: [PATCH 186/432] added query for sytstems which will expire and systems which should become active --- .../Core.DomainServices.csproj | 2 + .../QueryReadModelsWhichShouldBecomeActive.cs | 41 +++++++++++++++++++ .../QueryReadModelsWhichShouldExpire.cs | 34 +++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs create mode 100644 Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs diff --git a/Core.DomainServices/Core.DomainServices.csproj b/Core.DomainServices/Core.DomainServices.csproj index 143556ea51..a9855ddf34 100644 --- a/Core.DomainServices/Core.DomainServices.csproj +++ b/Core.DomainServices/Core.DomainServices.csproj @@ -131,6 +131,8 @@ + + diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs new file mode 100644 index 0000000000..5e30c3b6f0 --- /dev/null +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs @@ -0,0 +1,41 @@ +using System; +using System.Linq; +using Core.DomainModel.ItSystemUsage.Read; + +namespace Core.DomainServices.Queries.SystemUsage +{ + public class QueryReadModelsWhichShouldBecomeActive : IDomainQuery + { + private readonly DateTime _currentTime; + + public QueryReadModelsWhichShouldBecomeActive(DateTime currentTime) + { + _currentTime = currentTime; + } + + public IQueryable Apply(IQueryable source) + { + var currentTime = _currentTime.Date; + return source.Where( + x => + + // 1: Common scenario + ( + // All currently inactive models + x.IsActive == false && + // Exclude those which were enforced as valid - dates have no effect + x.SourceEntity.Active == false && + // Include systems where concluded (start time) has passed or is not defined + (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded >= currentTime) && + // Include only if not expired or no expiration defined + (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) + ) || + + // 2: Out of sync scenario + // Source entity marked as active (forced) but read model state false, mark as target for update + x.SourceEntity.Active == true + + ); + } + } +} diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs new file mode 100644 index 0000000000..3ba08ba4fe --- /dev/null +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs @@ -0,0 +1,34 @@ +using System; +using System.Linq; +using Core.DomainModel.ItSystemUsage.Read; + +namespace Core.DomainServices.Queries.SystemUsage +{ + public class QueryReadModelsWhichShouldExpire : IDomainQuery + { + private readonly DateTime _currentTime; + + public QueryReadModelsWhichShouldExpire(DateTime currentTime) + { + _currentTime = currentTime; + } + + public IQueryable Apply(IQueryable source) + { + var currentTime = _currentTime.Date; + + return source.Where( + + x => + // All currently set as active in the read model + x.IsActive && + // Remove results where the date has no effect (active overrides all other logic) + x.SourceEntity.Active == false && + // Expiration data defined + x.SourceEntity.ExpirationDate != null && + // Expiration date has passed + x.SourceEntity.ExpirationDate < currentTime + ); + } + } +} From c6b9398b5c2894e6f63392bafee9c6377eccd955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 20 Jun 2022 13:29:07 +0200 Subject: [PATCH 187/432] added tests --- .../QueryReadModelsWhichShouldBecomeActive.cs | 2 +- ...ryReadModelsWhichShouldBecomeActiveTest.cs | 53 +++++++++++++++++++ .../QueryReadModelsWhichShouldExpireTest.cs | 49 +++++++++++++++++ .../ItSystemUsageOverviewReadModelTestData.cs | 23 ++++++++ .../Tests.Unit.Presentation.Web.csproj | 3 ++ 5 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs create mode 100644 Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs create mode 100644 Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs index 5e30c3b6f0..3c703d3160 100644 --- a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs @@ -26,7 +26,7 @@ public IQueryable Apply(IQueryable= currentTime) && + (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded <= currentTime) && // Include only if not expired or no expiration defined (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) ) || diff --git a/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs new file mode 100644 index 0000000000..d23f71c760 --- /dev/null +++ b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs @@ -0,0 +1,53 @@ +using System; +using System.Linq; +using Core.DomainServices.Queries.SystemUsage; +using Tests.Toolkit.Patterns; +using Xunit; +using static Tests.Unit.Presentation.Web.Helpers.ItSystemUsageOverviewReadModelTestData; + +namespace Tests.Unit.Presentation.Web.DomainServices.SystemUsage +{ + public class QueryReadModelsWhichShouldBecomeActiveTest : WithAutoFixture + { + private readonly DateTime _now; + private readonly QueryReadModelsWhichShouldBecomeActive _sut; + + public QueryReadModelsWhichShouldBecomeActiveTest() + { + this._now = DateTime.UtcNow.Date; + _sut = new QueryReadModelsWhichShouldBecomeActive(_now); + } + + [Fact] + public void Apply_Includes_Systems_Which_Are_Currently_Inactive_But_Should_Be_Active() + { + //Arrange + var excludedSinceReadModelIsCurrentlyActive = CreateReadModel(true, false, null, null); + var includedSinceSourceEntityIsActiveOverride = CreateReadModel(false, true, null, null); + var excludedSinceConcludedHasNotYetPassed = CreateReadModel(false, false, _now.Date.AddDays(1), null); + var includedSinceConcludedHasPassedAndNoExpiration = CreateReadModel(false, false, _now.Date, null); + var includedSinceConcludedHasPassedAndNotExpired = CreateReadModel(false, false, _now.Date, _now.Date.AddDays(1)); + var excludedSinceConcludedSinceExpired = CreateReadModel(false, false, _now.Date.AddDays(-2), _now.Date.AddDays(-1)); + + + var input = new[] + { + excludedSinceReadModelIsCurrentlyActive, + includedSinceSourceEntityIsActiveOverride, + excludedSinceConcludedHasNotYetPassed, + includedSinceConcludedHasPassedAndNoExpiration, + includedSinceConcludedHasPassedAndNotExpired, + excludedSinceConcludedSinceExpired + }; + + //Act + var result = _sut.Apply(input.AsQueryable()).ToList(); + + //Assert + Assert.Equal(3, result.Count); + Assert.Contains(includedSinceSourceEntityIsActiveOverride, result); + Assert.Contains(includedSinceConcludedHasPassedAndNoExpiration, result); + Assert.Contains(includedSinceConcludedHasPassedAndNotExpired, result); + } + } +} diff --git a/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs new file mode 100644 index 0000000000..9ced961207 --- /dev/null +++ b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs @@ -0,0 +1,49 @@ +using System; +using System.Linq; +using Core.DomainServices.Queries.SystemUsage; +using Tests.Toolkit.Patterns; +using Xunit; +using static Tests.Unit.Presentation.Web.Helpers.ItSystemUsageOverviewReadModelTestData; + +namespace Tests.Unit.Presentation.Web.DomainServices.SystemUsage +{ + public class QueryReadModelsWhichShouldExpireTest : WithAutoFixture + { + private readonly DateTime _now; + private readonly QueryReadModelsWhichShouldExpire _sut; + + public QueryReadModelsWhichShouldExpireTest() + { + _now = DateTime.UtcNow.Date; + _sut = new QueryReadModelsWhichShouldExpire(_now); + } + + [Fact] + public void Apply_Includes_Systems_Which_Are_Currently_Inactive_But_Should_Be_Active() + { + //Arrange + var excludedSinceReadModelIsCurrentlyInActive = CreateReadModel(false, false, _now.AddDays(-2), _now.AddDays(-1)); + var excludedSinceSourceModelIsForcedActive = CreateReadModel(true, true, _now.AddDays(-2), _now.AddDays(-1)); + var excludedBecauseExpirationDateIsNull = CreateReadModel(true, false, _now.AddDays(-2), null); + var excludedBecauseExpirationDateHasNotPassed = CreateReadModel(true, false, _now.AddDays(-2), _now); + var includedSinceExpired = CreateReadModel(true, false, null, _now.AddDays(-1)); + + + var input = new[] + { + excludedSinceReadModelIsCurrentlyInActive, + excludedSinceSourceModelIsForcedActive, + excludedBecauseExpirationDateIsNull, + excludedBecauseExpirationDateHasNotPassed, + includedSinceExpired + }; + + //Act + var result = _sut.Apply(input.AsQueryable()).ToList(); + + //Assert + var includedResult = Assert.Single(result); + Assert.Same(includedSinceExpired, includedResult); + } + } +} diff --git a/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs new file mode 100644 index 0000000000..7278396e4d --- /dev/null +++ b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs @@ -0,0 +1,23 @@ +using System; +using Core.DomainModel.ItSystemUsage; +using Core.DomainModel.ItSystemUsage.Read; + +namespace Tests.Unit.Presentation.Web.Helpers +{ + public static class ItSystemUsageOverviewReadModelTestData + { + public static ItSystemUsageOverviewReadModel CreateReadModel(bool isActive, bool sourceIsActive, DateTime? sourceConcluded, DateTime? sourceExpirationDate) + { + return new ItSystemUsageOverviewReadModel + { + IsActive = isActive, + SourceEntity = new ItSystemUsage + { + Active = sourceIsActive, + Concluded = sourceConcluded, + ExpirationDate = sourceExpirationDate + } + }; + } + } +} diff --git a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj index 6c71db161f..d5ca28f78e 100644 --- a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj +++ b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj @@ -234,6 +234,8 @@ + + @@ -256,6 +258,7 @@ + From d449cc9bb8507678c9b328face4d71c9cebb5e34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 20 Jun 2022 14:47:59 +0200 Subject: [PATCH 188/432] added background job to trigger updates to systems which have become active or which have expired --- .../Core.BackgroundJobs.csproj | 1 + ...mUsageReadModelsWhichChangesActiveState.cs | 58 +++++++++++++++++++ Core.BackgroundJobs/Model/StandardJobIds.cs | 1 + .../Services/BackgroundJobLauncher.cs | 10 +++- .../QueryReadModelsWhichShouldBecomeActive.cs | 28 ++++----- ...tSystemUsageOverviewReadModelRepository.cs | 4 +- ...tSystemUsageOverviewReadModelRepository.cs | 13 +++++ .../BackgroundJobs/IBackgroundJobLauncher.cs | 1 + Presentation.Web/Ninject/KernelBuilder.cs | 1 + Presentation.Web/Startup.cs | 19 +++++- 10 files changed, 117 insertions(+), 19 deletions(-) create mode 100644 Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs diff --git a/Core.BackgroundJobs/Core.BackgroundJobs.csproj b/Core.BackgroundJobs/Core.BackgroundJobs.csproj index 5b9449f9ac..1b5db8ef23 100644 --- a/Core.BackgroundJobs/Core.BackgroundJobs.csproj +++ b/Core.BackgroundJobs/Core.BackgroundJobs.csproj @@ -77,6 +77,7 @@ + diff --git a/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs new file mode 100644 index 0000000000..2fb8d90193 --- /dev/null +++ b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs @@ -0,0 +1,58 @@ +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Core.Abstractions.Types; +using Core.DomainModel.BackgroundJobs; +using Core.DomainServices.Repositories.BackgroundJobs; +using Core.DomainServices.Repositories.SystemUsage; +using Infrastructure.Services.DataAccess; + +namespace Core.BackgroundJobs.Model.ReadModels +{ + public class ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState : IAsyncBackgroundJob + { + private readonly IItSystemUsageOverviewReadModelRepository _readModelRepository; + private readonly IPendingReadModelUpdateRepository _pendingReadModelUpdateRepository; + private readonly ITransactionManager _transactionManager; + private readonly IDatabaseControl _databaseControl; + public string Id => StandardJobIds.ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState; + + public ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState( + IItSystemUsageOverviewReadModelRepository readModelRepository, + IPendingReadModelUpdateRepository pendingReadModelUpdateRepository, + ITransactionManager transactionManager, + IDatabaseControl databaseControl) + { + _readModelRepository = readModelRepository; + _pendingReadModelUpdateRepository = pendingReadModelUpdateRepository; + _transactionManager = transactionManager; + _databaseControl = databaseControl; + } + + public Task> ExecuteAsync(CancellationToken token = default) + { + using var transaction = _transactionManager.Begin(); + + var idsOfSourceEntitiesWhichHaveChangedState = _readModelRepository + .GetReadModelsMustUpdateToChangeActiveState() + .Select(x => x.SourceEntity.Id) + .Distinct() + .ToList(); + + var pendingReadModelUpdates = idsOfSourceEntitiesWhichHaveChangedState + .Select(id => PendingReadModelUpdate.Create(id, PendingReadModelUpdateSourceCategory.ItSystemUsage)) + .ToList(); + + if (pendingReadModelUpdates.Any()) + { + _pendingReadModelUpdateRepository.AddMany(pendingReadModelUpdates); + + _databaseControl.SaveChanges(); + transaction.Commit(); + } + + return Task.FromResult(Result.Success($"Scheduled {idsOfSourceEntitiesWhichHaveChangedState.Count} updates")); + + } + } +} diff --git a/Core.BackgroundJobs/Model/StandardJobIds.cs b/Core.BackgroundJobs/Model/StandardJobIds.cs index 27faad024c..26c46833de 100644 --- a/Core.BackgroundJobs/Model/StandardJobIds.cs +++ b/Core.BackgroundJobs/Model/StandardJobIds.cs @@ -11,5 +11,6 @@ public static class StandardJobIds public static readonly string RebuildDataProcessingReadModels = $"{NamePrefix}rebuild-dpr-read-models"; public static readonly string RebuildItSystemUsageReadModels = $"{NamePrefix}rebuild-it-system-usage-read-models"; public static readonly string PurgeDuplicatePendingReadModelUpdates = $"{NamePrefix}purge-duplicate-read-model-updates"; + public static readonly string ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState = $"{NamePrefix}schedule-updates-for-it-system-usage-read-models-which-changes-active-state"; } } diff --git a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs index e95ddc8566..cd35f521ff 100644 --- a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs +++ b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs @@ -21,6 +21,7 @@ public class BackgroundJobLauncher : IBackgroundJobLauncher private readonly ScheduleItSystemUsageOverviewReadModelUpdates _scheduleItSystemUsageOverviewReadModelUpdates; private readonly IRebuildReadModelsJobFactory _rebuildReadModelsJobFactory; private readonly PurgeDuplicatePendingReadModelUpdates _purgeDuplicatePendingReadModelUpdates; + private readonly ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState _scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive; public BackgroundJobLauncher( ILogger logger, @@ -30,7 +31,8 @@ public BackgroundJobLauncher( RebuildItSystemUsageOverviewReadModelsBatchJob rebuildItSystemUsageOverviewReadModels, ScheduleItSystemUsageOverviewReadModelUpdates scheduleItSystemUsageOverviewReadModelUpdates, IRebuildReadModelsJobFactory rebuildReadModelsJobFactory, - PurgeDuplicatePendingReadModelUpdates purgeDuplicatePendingReadModelUpdates) + PurgeDuplicatePendingReadModelUpdates purgeDuplicatePendingReadModelUpdates, + ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive) { _logger = logger; _checkExternalLinksJob = checkExternalLinksJob; @@ -40,6 +42,7 @@ public BackgroundJobLauncher( _scheduleItSystemUsageOverviewReadModelUpdates = scheduleItSystemUsageOverviewReadModelUpdates; _rebuildReadModelsJobFactory = rebuildReadModelsJobFactory; _purgeDuplicatePendingReadModelUpdates = purgeDuplicatePendingReadModelUpdates; + _scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive = scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive; } public async Task LaunchLinkCheckAsync(CancellationToken token = default) @@ -78,6 +81,11 @@ public async Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token) await Launch(_purgeDuplicatePendingReadModelUpdates, token); } + public async Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default) + { + await Launch(_scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive, token); + } + private async Task Launch(IAsyncBackgroundJob job, CancellationToken token = default) { var jobId = job.Id; diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs index 3c703d3160..0638b638a9 100644 --- a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs @@ -19,22 +19,22 @@ public IQueryable Apply(IQueryable - // 1: Common scenario + // All currently inactive models + x.IsActive == false && ( - // All currently inactive models - x.IsActive == false && - // Exclude those which were enforced as valid - dates have no effect - x.SourceEntity.Active == false && - // Include systems where concluded (start time) has passed or is not defined - (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded <= currentTime) && - // Include only if not expired or no expiration defined - (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) + ( + // 1: Common scenario + // Exclude those which were enforced as valid - dates have no effect + x.SourceEntity.Active == false && + // Include systems where concluded (start time) has passed or is not defined + (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded <= currentTime) && + // Include only if not expired or no expiration defined + (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) ) || - - // 2: Out of sync scenario - // Source entity marked as active (forced) but read model state false, mark as target for update - x.SourceEntity.Active == true - + // 2: Out of sync scenario + // Source entity marked as active (forced) but read model state false, mark as target for update + x.SourceEntity.Active == true + ) ); } } diff --git a/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs b/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs index 2758efa776..490230010c 100644 --- a/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs +++ b/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs @@ -1,5 +1,4 @@ -using System.Collections.Generic; -using System.Linq; +using System.Linq; using Core.Abstractions.Types; using Core.DomainModel.ItSystemUsage.Read; @@ -22,5 +21,6 @@ public interface IItSystemUsageOverviewReadModelRepository IQueryable GetByProjectId(int projectId); IQueryable GetByDataProcessingRegistrationId(int dataProcessingRegistrationId); IQueryable GetByItInterfaceId(int interfaceId); + IQueryable GetReadModelsMustUpdateToChangeActiveState(); } } diff --git a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs index 8c18365f07..8be3a5c07c 100644 --- a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs +++ b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs @@ -1,8 +1,10 @@ using System; using System.Linq; +using Core.Abstractions.Extensions; using Core.Abstractions.Types; using Core.DomainModel.ItSystemUsage.Read; using Core.DomainServices.Extensions; +using Core.DomainServices.Queries.SystemUsage; namespace Core.DomainServices.Repositories.SystemUsage @@ -119,5 +121,16 @@ public IQueryable GetByItInterfaceId(int interfa .AsQueryable() .Where(x => x.DependsOnInterfaces.Select(y => y.InterfaceId).Contains(interfaceId)); } + + public IQueryable GetReadModelsMustUpdateToChangeActiveState() + { + var now = DateTime.Now; + var expiringReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldExpire(now).Apply).Select(x => x.Id).ToList(); + var activatingReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldBecomeActive(now).Apply).Select(x => x.Id).ToList(); + + var idsOfReadModelsWhichMustUpdate = expiringReadModelIds.Concat(activatingReadModelIds).Distinct().ToList(); + + return _repository.AsQueryable().ByIds(idsOfReadModelsWhichMustUpdate); + } } } diff --git a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs index 013e40fabc..579e807e74 100644 --- a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs +++ b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs @@ -12,5 +12,6 @@ public interface IBackgroundJobLauncher Task LaunchUpdateItSystemUsageOverviewReadModels(CancellationToken token = default); Task LaunchFullReadModelRebuild(ReadModelRebuildScope scope, CancellationToken token); Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token); + Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default); } } diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index cb71495a99..79bcf1e242 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -627,6 +627,7 @@ private void RegisterBackgroundJobs(IKernel kernel) //Itsystemusage kernel.Bind().ToSelf().InCommandScope(Mode); kernel.Bind().ToSelf().InCommandScope(Mode); + kernel.Bind().ToSelf().InCommandScope(Mode); //Generic kernel.Bind().ToSelf().InCommandScope(Mode); diff --git a/Presentation.Web/Startup.cs b/Presentation.Web/Startup.cs index 852447d18a..0992b7bc10 100644 --- a/Presentation.Web/Startup.cs +++ b/Presentation.Web/Startup.cs @@ -65,19 +65,34 @@ private static void InitializeHangfire(IAppBuilder app) var recurringJobManager = new RecurringJobManager(); + /****************** + * RECURRING JOBS * + *****************/ + recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.CheckExternalLinks, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchLinkCheckAsync(CancellationToken.None)), cronExpression: Cron.Weekly(DayOfWeek.Sunday, 0), timeZone: TimeZoneInfo.Local); - new RecurringJobManager().AddOrUpdate( + recurringJobManager.AddOrUpdate( + recurringJobId: StandardJobIds.CheckExternalLinks, + job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken.None)), + cronExpression: Cron.Daily(), // Every night at 00:00 + timeZone: TimeZoneInfo.Local); + + + /****************** + * ON-DEMAND JOBS * + *****************/ + + recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.RebuildDataProcessingReadModels, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchFullReadModelRebuild(ReadModelRebuildScope.DataProcessingRegistration, CancellationToken.None)), cronExpression: Cron.Never(), //On demand timeZone: TimeZoneInfo.Local); - new RecurringJobManager().AddOrUpdate( + recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.RebuildItSystemUsageReadModels, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchFullReadModelRebuild(ReadModelRebuildScope.ItSystemUsage, CancellationToken.None)), cronExpression: Cron.Never(), //On demand From 200e0c25e3582070d10786cb1395e3d6be36c367 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Mon, 20 Jun 2022 16:01:28 +0200 Subject: [PATCH 189/432] changes after review --- .../API/V1/GenericApiController.cs | 2 +- .../Models/API/V1/ItContractDTO.cs | 3 +- Presentation.Web/Presentation.Web.csproj | 1 + ...essing-registration-overview.controller.ts | 28 ++---- .../it-contract-edit.controller.ts | 8 +- .../it-contract-overview.controller.ts | 7 +- .../tabs/it-contract-tab-main.controller.ts | 87 +++++++++++++++---- .../tabs/it-contract-tab-main.view.html | 25 +++--- .../app/helpers/OdataQueryHelper.ts | 24 +++++ 9 files changed, 131 insertions(+), 54 deletions(-) create mode 100644 Presentation.Web/app/helpers/OdataQueryHelper.ts diff --git a/Presentation.Web/Controllers/API/V1/GenericApiController.cs b/Presentation.Web/Controllers/API/V1/GenericApiController.cs index 8905458947..e74a9a51c2 100644 --- a/Presentation.Web/Controllers/API/V1/GenericApiController.cs +++ b/Presentation.Web/Controllers/API/V1/GenericApiController.cs @@ -278,7 +278,7 @@ protected virtual TModel PatchQuery(TModel item, JObject obj) var itemType = item.GetType(); // get name of mapped property var map = Mapper.ConfigurationProvider.FindTypeMapFor().PropertyMaps; - var nonNullMaps = map.Where(x => x.SourceMember != null).ToList(); + var nonNullMaps = map.Where(x => x.SourceMember != null ).ToList(); foreach (var valuePair in obj) { diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index 7d3c5d691b..fbdd7107b4 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -83,6 +83,7 @@ public string ObjectOwnerFullName public IEnumerable DataProcessingRegistrations { get; set; } public Guid Uuid { get; set; } - public virtual OptionDTO CriticalityType { get; set; } + public int? CriticalityTypeId { get; set; } + public string CriticalityTypeName { get; set; } } } diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 2ffe3699fa..b345ee51b0 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -345,6 +345,7 @@ + diff --git a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts index cecc604971..e40816f048 100644 --- a/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts +++ b/Presentation.Web/app/components/data-processing/data-processing-registration-overview.controller.ts @@ -40,31 +40,13 @@ //Helper functions const getRoleKey = (role: Kitos.Models.DataProcessing.IDataProcessingRoleDTO) => `role${role.id}`; - - const extractOptionKey = (filterRequest: string, optionName: string): number => { - var pattern = new RegExp(`(.*\\(?${optionName} eq ')(\\d)('.*)`); - var matchedString = filterRequest.replace(pattern, "$2"); - return parseInt(matchedString); - } + const replaceRoleQuery = (filterUrl, roleName, roleId) => { var pattern = new RegExp(`(\\w+\\()${roleName}(,.*?\\))`, "i"); return filterUrl.replace(pattern, `RoleAssignments/any(c: $1c/UserFullName$2 and c/RoleId eq ${roleId})`); }; - const replaceOptionQuery = (filterUrl: string, optionName: string, emptyOptionKey: number): string => { - if (filterUrl.indexOf(optionName) === -1) { - return filterUrl; // optionName not found in filter so return original filter. Can be updated to .includes() instead of .indexOf() in later typescript versions - } - - var pattern = new RegExp(`(.+)?(${optionName} eq '\\d')( and .+'\\)|\\)|)`, "i"); - var key = extractOptionKey(filterUrl, optionName); - if (key === emptyOptionKey) { - return filterUrl.replace(pattern, `$1(${optionName} eq '${key}' or ${optionName} eq null)$3`); - } - return filterUrl; - }; - const replaceNullOptionQuery = (filterUrl: string): string => { if (filterUrl.indexOf("'null'") === -1) { return filterUrl; // 'null' not found in filter so return original filter. Can be updated to .includes() instead of .indexOf() in later typescript versions @@ -107,19 +89,19 @@ replaceRoleQuery(parameterMap.$filter, getRoleKey(role), role.id); }); - parameterMap.$filter = replaceOptionQuery(parameterMap.$filter, + parameterMap.$filter = Helpers.OdataQueryHelper.replaceOptionQuery(parameterMap.$filter, transferToInsecureThirdCountriesColumnName, Models.Api.Shared.YesNoUndecidedOption.Undecided); - parameterMap.$filter = replaceOptionQuery(parameterMap.$filter, + parameterMap.$filter = Helpers.OdataQueryHelper.replaceOptionQuery(parameterMap.$filter, isAgreementConcludedColumnName, Models.Api.Shared.YesNoIrrelevantOption.UNDECIDED); - parameterMap.$filter = replaceOptionQuery(parameterMap.$filter, + parameterMap.$filter = Helpers.OdataQueryHelper.replaceOptionQuery(parameterMap.$filter, oversightIntervalColumnName, Models.Api.Shared.YearMonthUndecidedIntervalOption.Undecided); - parameterMap.$filter = replaceOptionQuery(parameterMap.$filter, + parameterMap.$filter = Helpers.OdataQueryHelper.replaceOptionQuery(parameterMap.$filter, isOversightCompletedColumnName, Models.Api.Shared.YesNoUndecidedOption.Undecided); diff --git a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts index eed3f6d1b6..c880c793e7 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-edit.controller.ts @@ -20,7 +20,13 @@ hasWriteAccess: ["userAccessRights", (userAccessRights: Kitos.Models.Api.Authorization.EntityAccessRightsDTO) => userAccessRights.canEdit], uiState: [ "uiCustomizationStateService", (uiCustomizationStateService: Kitos.Services.UICustomization.IUICustomizationStateService) => uiCustomizationStateService.getCurrentState(Kitos.Models.UICustomization.CustomizableKitosModule.ItContract) - ] + ], + criticalityOptions: [ + "localOptionServiceFactory", + (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => + localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.CriticalityTypes) + .getAll() + ], } }); } diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index f950ceecb9..a06c7c0ca9 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -266,7 +266,7 @@ "AssociatedSystemUsages($expand=ItSystemUsage($select=Id;$expand=ItSystem($select=Name,Disabled)))," + "DataProcessingRegistrations($select=IsAgreementConcluded)," + "LastChangedByUser($select=Name,LastName)," + - "CriticalityType($select=Name)"; + "CriticalityType"; // if orgunit is set then the org unit filter is active var orgUnitId = self.$window.sessionStorage.getItem(self.orgUnitStorageKey); if (orgUnitId === null) { @@ -292,8 +292,9 @@ parameterMap.$filter = self .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); - parameterMap.$filter = - self.fixCriticalityFilter(parameterMap.$filter, "Criticality"); + parameterMap.$filter = Helpers.OdataQueryHelper.replaceOptionQuery(parameterMap.$filter, + "Criticality", + Models.Api.Shared.YesNoUndecidedOption.Undecided); parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 733f14db71..0847df7277 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -7,24 +7,28 @@ controller: 'contract.EditMainCtrl', resolve: { contractTypes: [ - 'localOptionServiceFactory', (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => - localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.ItContractTypes).getAll() + 'localOptionServiceFactory', + (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => + localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.ItContractTypes) + .getAll() ], contractTemplates: [ - 'localOptionServiceFactory', (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => - localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.ItContractTemplateTypes).getAll() + 'localOptionServiceFactory', + (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => + localOptionServiceFactory + .create(Kitos.Services.LocalOptions.LocalOptionType.ItContractTemplateTypes).getAll() ], purchaseForms: [ - "localOptionServiceFactory", (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => - localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.PurchaseFormTypes).getAll() + "localOptionServiceFactory", + (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => + localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.PurchaseFormTypes) + .getAll() ], procurementStrategies: [ - "localOptionServiceFactory", (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => - localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.ProcurementStrategyTypes).getAll() - ], - criticalities: [ - "localOptionServiceFactory", (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => - localOptionServiceFactory.create(Kitos.Services.LocalOptions.LocalOptionType.CriticalityTypes).getAll() + "localOptionServiceFactory", + (localOptionServiceFactory: Kitos.Services.LocalOptions.ILocalOptionServiceFactory) => + localOptionServiceFactory + .create(Kitos.Services.LocalOptions.LocalOptionType.ProcurementStrategyTypes).getAll() ], orgUnits: [ '$http', 'contract', function ($http, contract) { @@ -79,11 +83,20 @@ app.controller('contract.EditMainCtrl', [ - '$scope', '$http', '_', '$stateParams', 'notify', 'contract', 'contractTypes', 'contractTemplates', 'purchaseForms', 'procurementStrategies', 'orgUnits', 'hasWriteAccess', 'user', 'autofocus', 'kitosUsers', "uiState", "criticalities", - function ($scope, $http, _, $stateParams, notify, contract, contractTypes, contractTemplates, purchaseForms, procurementStrategies, orgUnits: Kitos.Models.ViewModel.Generic.Select2OptionViewModelWithIndentation[], hasWriteAccess, user: Kitos.Services.IUser, autofocus, kitosUsers, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI, criticalities) { + '$scope', '$http', '_', '$stateParams', + 'notify', 'contract', 'contractTypes', 'contractTemplates', + 'purchaseForms', 'procurementStrategies', 'orgUnits', 'hasWriteAccess', + 'user', 'autofocus', 'kitosUsers', "uiState", + "criticalityOptions", "select2LoadingService", + function ($scope, $http, _, $stateParams, + notify, contract, contractTypes, contractTemplates, + purchaseForms, procurementStrategies, orgUnits: Kitos.Models.ViewModel.Generic.Select2OptionViewModelWithIndentation[], hasWriteAccess, + user: Kitos.Services.IUser, autofocus, kitosUsers, uiState: Kitos.Models.UICustomization.ICustomizedModuleUI, + criticalityOptions: Kitos.Models.IOptionEntity[], select2LoadingService: Kitos.Services.ISelect2LoadingService) { const blueprint = Kitos.Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; + bindCriticalities(); $scope.autoSaveUrl = 'api/itcontract/' + $stateParams.id; $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; $scope.contract = contract; @@ -96,7 +109,6 @@ $scope.contractTemplates = contractTemplates; $scope.purchaseForms = purchaseForms; $scope.procurementStrategies = procurementStrategies; - $scope.criticalities = criticalities; $scope.orgUnits = orgUnits; $scope.allowClear = true; $scope.showprocurementPlanSelection = uiState.isBluePrintNodeAvailable(blueprint.children.frontPage.children.procurementPlan); @@ -145,6 +157,7 @@ $scope.procurementPlanId = plan; // select it } } + $scope.patchDate = (field, value) => { var date = moment(moment(value, Kitos.Constants.DateFormat.DanishDateFormat, true).format()); if(value === "") { @@ -264,10 +277,12 @@ } }; } + $scope.override = () => { isActive(); } + function isActive() { var today = moment(); let fromDate = moment($scope.contract.concluded, Kitos.Constants.DateFormat.DanishDateFormat).startOf('day'); @@ -282,6 +297,7 @@ $scope.contract.isActive = false; } } + $scope.checkContractValidity = (field, value) => { var expirationDate = $scope.contract.expirationDate; var concluded = $scope.contract.concluded; @@ -311,5 +327,46 @@ isActive(); } } + + function bindCriticalities() { + + const optionMap = criticalityOptions.reduce((acc, next, _) => { + acc[next.Id] = { + text: next.Name, + id: next.Id, + optionalObjectContext: { + id: next.Id, + name: next.Name, + description: next.Description + } + }; + return acc; + }, {}); + + //If selected state is expired, add it for presentation reasons + const existingChoice = $scope.criticality?.selectedElement; + if(existingChoice && !optionMap[existingChoice.id]) { + optionMap[existingChoice.id] = { + text: existingChoice.name, + id: existingChoice.id, + disabled: true, + optionalObjectContext: existingChoice + } + } + + const options = criticalityOptions.map(option => optionMap[option.Id]); + + $scope.criticality = { + selectedElement: existingChoice && optionMap[existingChoice.id], + select2Config: select2LoadingService.select2LocalDataNoSearch(() => options, true), + elementSelected: (newElement) => { + if (!newElement) + return; + + var payload = { criticalityId: newElement.id }; + patch(payload, $scope.autosaveUrl2 + '?organizationId=' + user.currentOrganizationId); + } + }; + } }]); })(angular, app); diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 8117041e19..448e529e6e 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -110,16 +110,21 @@

{{contract.name}}

- - + +
diff --git a/Presentation.Web/app/helpers/OdataQueryHelper.ts b/Presentation.Web/app/helpers/OdataQueryHelper.ts new file mode 100644 index 0000000000..be6c0fb35d --- /dev/null +++ b/Presentation.Web/app/helpers/OdataQueryHelper.ts @@ -0,0 +1,24 @@ +module Kitos.Helpers { + + export class OdataQueryHelper { + + static replaceOptionQuery = (filterUrl: string, optionName: string, emptyOptionKey: number): string => { + if (filterUrl.indexOf(optionName) === -1) { + return filterUrl; // optionName not found in filter so return original filter. Can be updated to .includes() instead of .indexOf() in later typescript versions + } + + var pattern = new RegExp(`(.+)?(${optionName} eq '\\d')( and .+'\\)|\\)|)`, "i"); + var key = OdataQueryHelper.extractOptionKey(filterUrl, optionName); + if (key === emptyOptionKey) { + return filterUrl.replace(pattern, `$1(${optionName} eq '${key}' or ${optionName} eq null)$3`); + } + return filterUrl; + }; + + private static extractOptionKey = (filterRequest: string, optionName: string): number => { + var pattern = new RegExp(`(.*\\(?${optionName} eq ')(\\d)('.*)`); + var matchedString = filterRequest.replace(pattern, "$2"); + return parseInt(matchedString); + } + } +} \ No newline at end of file From e5c073376b850fafa7b95864669c9934c4bb43ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 08:03:54 +0200 Subject: [PATCH 190/432] added test of the task --- ...mUsageReadModelsWhichChangesActiveState.cs | 8 ++ ...geReadModelsWhichChangesActiveStateTest.cs | 115 ++++++++++++++++++ .../Tests.Unit.Core.csproj | 1 + 3 files changed, 124 insertions(+) create mode 100644 Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs diff --git a/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs index 2fb8d90193..46c67661a5 100644 --- a/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs +++ b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs @@ -9,6 +9,14 @@ namespace Core.BackgroundJobs.Model.ReadModels { + /// + /// The purpose of this task is to: + /// - Query the current state of the read models for IT-System Usage and identify those who must be scheduled for an update since their Active state contains stale data + /// + /// Why do we need this?: + /// - Read models are normally updated whenever a change to it or one of its dependencies (or parents) change but if no user changes occur, the data will be stable + /// - Active state depends on the current time, and since read models are computed snapshots (to enable queries in the grid) we must keep them in sync using this job which is triggered daily (See Startup.cs) + /// public class ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState : IAsyncBackgroundJob { private readonly IItSystemUsageOverviewReadModelRepository _readModelRepository; diff --git a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs new file mode 100644 index 0000000000..bbd5f735b1 --- /dev/null +++ b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs @@ -0,0 +1,115 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Core.BackgroundJobs.Model.ReadModels; +using Core.DomainModel.BackgroundJobs; +using Core.DomainModel.ItSystemUsage; +using Core.DomainModel.ItSystemUsage.Read; +using Core.DomainServices.Repositories.BackgroundJobs; +using Core.DomainServices.Repositories.SystemUsage; +using Infrastructure.Services.DataAccess; +using Moq; +using Tests.Toolkit.Patterns; +using Xunit; + +namespace Tests.Unit.Core.BackgroundJobs +{ + public class ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest : WithAutoFixture + { + private readonly ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState _sut; + private readonly Mock _readModelRepositoryMock; + private readonly Mock _pendingReadModelUpdatesRepository; + private readonly Mock _transactionManagerMock; + private readonly Mock _databaseControlMock; + + public ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest() + { + _readModelRepositoryMock = new Mock(); + _pendingReadModelUpdatesRepository = new Mock(); + _transactionManagerMock = new Mock(); + _databaseControlMock = new Mock(); + _sut = new ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState( + _readModelRepositoryMock.Object, + _pendingReadModelUpdatesRepository.Object, + _transactionManagerMock.Object, + _databaseControlMock.Object); + } + + [Fact] + public async Task ExecuteAsync_Does_Not_Mutate_Db_If_All_ReadModels_Have_The_Right_State() + { + //Arrange + var transaction = SetupTransaction(); + SetupGetReadModelsWhichMustUpdateActiveState(Enumerable.Empty()); + + //Act + await _sut.ExecuteAsync(); + + //Assert + _databaseControlMock.Verify(x => x.SaveChanges(), Times.Never()); + transaction.Verify(x => x.Commit(), Times.Never()); + _pendingReadModelUpdatesRepository.Verify(x => x.AddMany(It.IsAny>()), Times.Never()); + } + + [Fact] + public async Task ExecuteAsync_Schedules_Updates_To_System_Usage_If_The_Read_Model_Should_Update_Active_State() + { + //Arrange - two read models for the same system usage and one for another + var transaction = SetupTransaction(); + //TODO: Test data helper - use it + + var readModel1ForSystemUsage1 = CreateReadModel(A()); + var readModel2ForSystemUsage1 = CreateReadModel(readModel1ForSystemUsage1.SourceEntity.Id); + var readModelForSystemUsage2 = CreateReadModel(A()); + + SetupGetReadModelsWhichMustUpdateActiveState(new[] { readModel1ForSystemUsage1, readModel2ForSystemUsage1, readModelForSystemUsage2 }); + + //Act + await _sut.ExecuteAsync(); + + //Assert + _databaseControlMock.Verify(x => x.SaveChanges(), Times.Once()); + transaction.Verify(x => x.Commit(), Times.Once()); + _pendingReadModelUpdatesRepository.Verify(x => x.AddMany(It.Is>(updates => VerifyExpectedUpdates(updates, new[] { readModel1ForSystemUsage1.SourceEntity.Id, readModelForSystemUsage2.SourceEntity.Id }))), Times.Once()); + } + + private static bool VerifyExpectedUpdates(IEnumerable updates, int[] expectedIds) + { + var pendingReadModelUpdates = updates.ToList(); + Assert.Equal(expectedIds.Length, pendingReadModelUpdates.Count); + foreach (var expectedId in expectedIds) + { + Assert.Contains(pendingReadModelUpdates, x => x.SourceId == expectedId); + } + Assert.All(pendingReadModelUpdates, x => Assert.Equal(PendingReadModelUpdateSourceCategory.ItSystemUsage, x.Category)); + return true; + } + + private void SetupGetReadModelsWhichMustUpdateActiveState(IEnumerable result) + { + _readModelRepositoryMock + .Setup(x => x.GetReadModelsMustUpdateToChangeActiveState()) + .Returns(result.AsQueryable()); + } + + private Mock SetupTransaction() + { + var transaction = new Mock(); + _transactionManagerMock.Setup(x => x.Begin()).Returns(transaction.Object); + return transaction; + } + + public ItSystemUsageOverviewReadModel CreateReadModel(int systemUsageId) + { + return new ItSystemUsageOverviewReadModel + { + Id = A(), + SourceEntity = new ItSystemUsage + { + Id = systemUsageId + }, + SourceEntityId = systemUsageId + }; + } + } +} diff --git a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj index 61b9ee9c52..910f833658 100644 --- a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj +++ b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj @@ -199,6 +199,7 @@ + From 1b43827c02510e0f119205ccab82a97035897576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 08:04:42 +0200 Subject: [PATCH 191/432] fix --- ...atesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs index bbd5f735b1..44fa0986a2 100644 --- a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs +++ b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs @@ -67,7 +67,7 @@ public async Task ExecuteAsync_Schedules_Updates_To_System_Usage_If_The_Read_Mod //Act await _sut.ExecuteAsync(); - //Assert + //Assert - only 2 updates are expected since two read models point to the same source. _databaseControlMock.Verify(x => x.SaveChanges(), Times.Once()); transaction.Verify(x => x.Commit(), Times.Once()); _pendingReadModelUpdatesRepository.Verify(x => x.AddMany(It.Is>(updates => VerifyExpectedUpdates(updates, new[] { readModel1ForSystemUsage1.SourceEntity.Id, readModelForSystemUsage2.SourceEntity.Id }))), Times.Once()); From d11da5b891b4cf3c545571d6f4a0b5c478c7ea93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 08:06:29 +0200 Subject: [PATCH 192/432] Fix overlapping job id --- Presentation.Web/Startup.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Presentation.Web/Startup.cs b/Presentation.Web/Startup.cs index 0992b7bc10..a15d3d72a4 100644 --- a/Presentation.Web/Startup.cs +++ b/Presentation.Web/Startup.cs @@ -9,7 +9,6 @@ using Infrastructure.Services.Http; using Microsoft.IdentityModel.Tokens; using Presentation.Web.Hangfire; -using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Infrastructure.Middleware; using Presentation.Web.Infrastructure.Model.Authentication; using Presentation.Web.Ninject; @@ -76,7 +75,7 @@ private static void InitializeHangfire(IAppBuilder app) timeZone: TimeZoneInfo.Local); recurringJobManager.AddOrUpdate( - recurringJobId: StandardJobIds.CheckExternalLinks, + recurringJobId: StandardJobIds.ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken.None)), cronExpression: Cron.Daily(), // Every night at 00:00 timeZone: TimeZoneInfo.Local); From 491dbadc417658102e6316cab934bf72dad0d246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 09:42:31 +0200 Subject: [PATCH 193/432] added remaining test --- ...tSystemUsageOverviewReadModelRepository.cs | 12 ++++- ...temUsageOverviewReadModelRepositoryTest.cs | 51 +++++++++++++++++++ .../ItSystemUsageOverviewReadModelTestData.cs | 4 ++ .../Tests.Unit.Presentation.Web.csproj | 1 + 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs diff --git a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs index 8be3a5c07c..da14af37eb 100644 --- a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs +++ b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs @@ -5,6 +5,7 @@ using Core.DomainModel.ItSystemUsage.Read; using Core.DomainServices.Extensions; using Core.DomainServices.Queries.SystemUsage; +using Core.DomainServices.Time; namespace Core.DomainServices.Repositories.SystemUsage @@ -125,8 +126,15 @@ public IQueryable GetByItInterfaceId(int interfa public IQueryable GetReadModelsMustUpdateToChangeActiveState() { var now = DateTime.Now; - var expiringReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldExpire(now).Apply).Select(x => x.Id).ToList(); - var activatingReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldBecomeActive(now).Apply).Select(x => x.Id).ToList(); + var expiringReadModelIds = _repository + .AsQueryable() + .Transform(new QueryReadModelsWhichShouldExpire(now).Apply) + .Select(x => x.Id); + + var activatingReadModelIds = _repository + .AsQueryable() + .Transform(new QueryReadModelsWhichShouldBecomeActive(now).Apply) + .Select(x => x.Id); var idsOfReadModelsWhichMustUpdate = expiringReadModelIds.Concat(activatingReadModelIds).Distinct().ToList(); diff --git a/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs new file mode 100644 index 0000000000..b8414ca07e --- /dev/null +++ b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs @@ -0,0 +1,51 @@ +using System; +using System.Linq; +using Core.DomainModel.ItSystemUsage.Read; +using Core.DomainServices; +using Core.DomainServices.Repositories.SystemUsage; +using Moq; +using Tests.Toolkit.Patterns; +using Xunit; +using static Tests.Unit.Presentation.Web.Helpers.ItSystemUsageOverviewReadModelTestData; + +namespace Tests.Unit.Presentation.Web.DomainServices.SystemUsage +{ + public class ItSystemUsageOverviewReadModelRepositoryTest : WithAutoFixture + { + private readonly Mock> _repositoryMock; + private readonly ItSystemUsageOverviewReadModelRepository _sut; + private readonly DateTime _now; + + public ItSystemUsageOverviewReadModelRepositoryTest() + { + _repositoryMock = new Mock>(); + _sut = new ItSystemUsageOverviewReadModelRepository(_repositoryMock.Object); + _now = DateTime.Now; + } + + [Fact] + public void GetReadModelsMustUpdateToChangeActiveState_Returns_ReadModels_Where_Active_State_Is_Stale() + { + //Arrange - 1 that must expire and 1 that must be activated + var includedSinceConcludedHasPassedAndNotExpired = CreateReadModel(false, false, _now.Date, _now.Date.AddDays(1)); + var excludedSinceConcludedSinceExpired = CreateReadModel(false, false, _now.Date.AddDays(-2), _now.Date.AddDays(-1)); + var excludedBecauseExpirationDateHasNotPassed = CreateReadModel(true, false, _now.AddDays(-2), _now); + var includedSinceExpired = CreateReadModel(true, false, null, _now.AddDays(-1)); + _repositoryMock.Setup(x => x.AsQueryable()).Returns(new[] + { + includedSinceExpired, + includedSinceConcludedHasPassedAndNotExpired, + excludedSinceConcludedSinceExpired, + excludedBecauseExpirationDateHasNotPassed + }.AsQueryable()); + + //Act + var result = _sut.GetReadModelsMustUpdateToChangeActiveState().ToList(); + + //Assert + Assert.Equal(2, result.Count); + Assert.Contains(includedSinceExpired, result); + Assert.Contains(includedSinceConcludedHasPassedAndNotExpired, result); + } + } +} diff --git a/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs index 7278396e4d..48f799bf9c 100644 --- a/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs +++ b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs @@ -1,4 +1,5 @@ using System; +using AutoFixture; using Core.DomainModel.ItSystemUsage; using Core.DomainModel.ItSystemUsage.Read; @@ -6,13 +7,16 @@ namespace Tests.Unit.Presentation.Web.Helpers { public static class ItSystemUsageOverviewReadModelTestData { + private static readonly Fixture Fixture = new(); public static ItSystemUsageOverviewReadModel CreateReadModel(bool isActive, bool sourceIsActive, DateTime? sourceConcluded, DateTime? sourceExpirationDate) { return new ItSystemUsageOverviewReadModel { + Id = Fixture.Create(), IsActive = isActive, SourceEntity = new ItSystemUsage { + Id = Fixture.Create(), Active = sourceIsActive, Concluded = sourceConcluded, ExpirationDate = sourceExpirationDate diff --git a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj index d5ca28f78e..9456adb2cd 100644 --- a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj +++ b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj @@ -215,6 +215,7 @@ + From 51d69cc88237eb4eb44d92977a8e33dde39500ca Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 21 Jun 2022 09:46:40 +0200 Subject: [PATCH 194/432] front page --- Core.DomainModel/ItContract/ItContract.cs | 2 +- .../Infrastructure.DataAccess.csproj | 10 +- .../Mapping/ItContractMap.cs | 2 +- .../202206160929335_AddCriticalityType.resx | 126 ------------------ ...6210625440_AddCriticalityType.Designer.cs} | 2 +- ... => 202206210625440_AddCriticalityType.cs} | 12 +- .../202206210625440_AddCriticalityType.resx | 126 ++++++++++++++++++ .../it-contract-overview.controller.ts | 21 +-- .../tabs/it-contract-tab-main.controller.ts | 13 +- .../tabs/it-contract-tab-main.view.html | 12 +- .../app/models/it-contract/it-contract.ts | 2 +- 11 files changed, 162 insertions(+), 166 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx rename Infrastructure.DataAccess/Migrations/{202206160929335_AddCriticalityType.Designer.cs => 202206210625440_AddCriticalityType.Designer.cs} (92%) rename Infrastructure.DataAccess/Migrations/{202206160929335_AddCriticalityType.cs => 202206210625440_AddCriticalityType.cs} (88%) create mode 100644 Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.resx diff --git a/Core.DomainModel/ItContract/ItContract.cs b/Core.DomainModel/ItContract/ItContract.cs index e2af853545..19059b4f16 100644 --- a/Core.DomainModel/ItContract/ItContract.cs +++ b/Core.DomainModel/ItContract/ItContract.cs @@ -334,7 +334,7 @@ public bool IsActive /// /// The criticality type identifier. /// - public int? CriticalityId { get; set; } + public int? CriticalityTypeId { get; set; } /// /// The criticality of ItContract diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index dd913c6151..667c837ea9 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -878,9 +878,9 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs - - - 202206160929335_AddCriticalityType.cs + + + 202206210625440_AddCriticalityType.cs @@ -1454,8 +1454,8 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs - - 202206160929335_AddCriticalityType.cs + + 202206210625440_AddCriticalityType.cs diff --git a/Infrastructure.DataAccess/Mapping/ItContractMap.cs b/Infrastructure.DataAccess/Mapping/ItContractMap.cs index 52884dde3a..a5db390d35 100644 --- a/Infrastructure.DataAccess/Mapping/ItContractMap.cs +++ b/Infrastructure.DataAccess/Mapping/ItContractMap.cs @@ -61,7 +61,7 @@ public ItContractMap() HasOptional(t => t.CriticalityType) .WithMany(t => t.References) - .HasForeignKey(d => d.CriticalityId); + .HasForeignKey(d => d.CriticalityTypeId); HasMany(t => t.AssociatedAgreementElementTypes) .WithRequired(t => t.ItContract) diff --git a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx b/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx deleted file mode 100644 index 8f51fbe60a..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.Designer.cs b/Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.Designer.cs similarity index 92% rename from Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.Designer.cs rename to Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.Designer.cs index 8057b23bd3..c70b3ba9f5 100644 --- a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.Designer.cs +++ b/Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.Designer.cs @@ -13,7 +13,7 @@ public sealed partial class AddCriticalityType : IMigrationMetadata string IMigrationMetadata.Id { - get { return "202206160929335_AddCriticalityType"; } + get { return "202206210625440_AddCriticalityType"; } } string IMigrationMetadata.Source diff --git a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.cs b/Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.cs similarity index 88% rename from Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.cs rename to Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.cs index 7028b7399d..a253965d56 100644 --- a/Infrastructure.DataAccess/Migrations/202206160929335_AddCriticalityType.cs +++ b/Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.cs @@ -51,9 +51,9 @@ public override void Up() .Index(t => t.ObjectOwnerId) .Index(t => t.LastChangedByUserId); - AddColumn("dbo.ItContract", "CriticalityId", c => c.Int()); - CreateIndex("dbo.ItContract", "CriticalityId"); - AddForeignKey("dbo.ItContract", "CriticalityId", "dbo.CriticalityTypes", "Id"); + AddColumn("dbo.ItContract", "CriticalityTypeId", c => c.Int()); + CreateIndex("dbo.ItContract", "CriticalityTypeId"); + AddForeignKey("dbo.ItContract", "CriticalityTypeId", "dbo.CriticalityTypes", "Id"); } public override void Down() @@ -61,7 +61,7 @@ public override void Down() DropForeignKey("dbo.LocalCriticalityTypes", "OrganizationId", "dbo.Organization"); DropForeignKey("dbo.LocalCriticalityTypes", "ObjectOwnerId", "dbo.User"); DropForeignKey("dbo.LocalCriticalityTypes", "LastChangedByUserId", "dbo.User"); - DropForeignKey("dbo.ItContract", "CriticalityId", "dbo.CriticalityTypes"); + DropForeignKey("dbo.ItContract", "CriticalityTypeId", "dbo.CriticalityTypes"); DropForeignKey("dbo.CriticalityTypes", "ObjectOwnerId", "dbo.User"); DropForeignKey("dbo.CriticalityTypes", "LastChangedByUserId", "dbo.User"); DropIndex("dbo.LocalCriticalityTypes", new[] { "LastChangedByUserId" }); @@ -70,8 +70,8 @@ public override void Down() DropIndex("dbo.CriticalityTypes", new[] { "LastChangedByUserId" }); DropIndex("dbo.CriticalityTypes", new[] { "ObjectOwnerId" }); DropIndex("dbo.CriticalityTypes", "UX_Option_Uuid"); - DropIndex("dbo.ItContract", new[] { "CriticalityId" }); - DropColumn("dbo.ItContract", "CriticalityId"); + DropIndex("dbo.ItContract", new[] { "CriticalityTypeId" }); + DropColumn("dbo.ItContract", "CriticalityTypeId"); DropTable("dbo.LocalCriticalityTypes"); DropTable("dbo.CriticalityTypes"); } diff --git a/Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.resx b/Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.resx new file mode 100644 index 0000000000..29aba9ac29 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206210625440_AddCriticalityType.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index a06c7c0ca9..223a2966a7 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -58,7 +58,8 @@ "needsWidthFixService", "exportGridToExcelService", "userAccessRights", - "uiState" + "uiState", + "criticalityOptions" ]; constructor( @@ -81,7 +82,8 @@ private needsWidthFixService, private exportGridToExcelService, private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO, - private uiState: Models.UICustomization.ICustomizedModuleUI) { + private uiState: Models.UICustomization.ICustomizedModuleUI, + private criticalityOptions: Kitos.Models.IOptionEntity[]) { this.$rootScope.page.title = "IT Kontrakt - Økonomi"; this.$scope.$on("kendoWidgetCreated", (event, widget) => { @@ -174,11 +176,6 @@ return filterUrl.replace(pattern, "AssociatedSystemUsages/any(c: $1c/ItSystemUsage/ItSystem/Name$2)"); } - private fixCriticalityFilter(filterUrl, column) { - const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); - return filterUrl.replace(pattern, `contains(CriticalityType/Name$2`); - } - // loads kendo grid options from localstorage private loadGridOptions() { this.gridState.loadGridOptions(this.mainGrid); @@ -293,7 +290,7 @@ .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); parameterMap.$filter = Helpers.OdataQueryHelper.replaceOptionQuery(parameterMap.$filter, - "Criticality", + "CriticalityType", Models.Api.Shared.YesNoUndecidedOption.Undecided); parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); @@ -757,7 +754,7 @@ filterable: false }, { - field: "Criticality", title: "Kritikalitet", width: 90, + field: "CriticalityType", title: "Kritikalitet", width: 90, persistId: "kritikalitet", template: dataItem => dataItem.CriticalityType ? dataItem.CriticalityType.Name : "", excelTemplate: dataItem => @@ -1002,6 +999,12 @@ ], uiState: [ "uiCustomizationStateService", (uiCustomizationStateService: Kitos.Services.UICustomization.IUICustomizationStateService) => uiCustomizationStateService.getCurrentState(Kitos.Models.UICustomization.CustomizableKitosModule.ItContract) + ], + criticalityOptions: [ + "localOptionServiceFactory", + (localOptionServiceFactory: Services.LocalOptions.ILocalOptionServiceFactory) => + localOptionServiceFactory.create(Services.LocalOptions.LocalOptionType.CriticalityTypes) + .getAll() ] } }); diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 0847df7277..68dd691c6d 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -329,7 +329,7 @@ } function bindCriticalities() { - + const optionMap = criticalityOptions.reduce((acc, next, _) => { acc[next.Id] = { text: next.Name, @@ -344,8 +344,11 @@ }, {}); //If selected state is expired, add it for presentation reasons - const existingChoice = $scope.criticality?.selectedElement; - if(existingChoice && !optionMap[existingChoice.id]) { + const existingChoice = { + id: $scope.contract.criticalityTypeId, + name: $scope.contract.criticalityTypeName + }; + if(existingChoice.id && !optionMap[existingChoice.id]) { optionMap[existingChoice.id] = { text: existingChoice.name, id: existingChoice.id, @@ -357,13 +360,13 @@ const options = criticalityOptions.map(option => optionMap[option.Id]); $scope.criticality = { - selectedElement: existingChoice && optionMap[existingChoice.id], + selectedElement: (existingChoice.id && optionMap[existingChoice.id]) ?? existingChoice, select2Config: select2LoadingService.select2LocalDataNoSearch(() => options, true), elementSelected: (newElement) => { if (!newElement) return; - var payload = { criticalityId: newElement.id }; + var payload = { criticalityTypeId: newElement.id }; patch(payload, $scope.autosaveUrl2 + '?organizationId=' + user.currentOrganizationId); } }; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 448e529e6e..23698f3c48 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -110,21 +110,11 @@

{{contract.name}}

+ -
diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index 8f3458aa62..d6d623322f 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -59,7 +59,7 @@ Children: Array; /** Gets or sets the chosen agreement elements. */ AgreementElements: Array; - CriticalityId: number, + CriticalityTypeId: number, CriticalityType: ICriticalityType, /** When the contract began. (indgået) */ From 75be38298839969d0b5696ba04a395cb0fa22f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 10:25:53 +0200 Subject: [PATCH 195/432] fixed odd hangfire issue - maybe due to long jobid (job showed as invalid and was not possible to start) --- Core.BackgroundJobs/Model/StandardJobIds.cs | 2 +- Core.BackgroundJobs/Services/BackgroundJobLauncher.cs | 2 +- .../BackgroundJobs/IBackgroundJobLauncher.cs | 2 +- Presentation.Web/Startup.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Core.BackgroundJobs/Model/StandardJobIds.cs b/Core.BackgroundJobs/Model/StandardJobIds.cs index 26c46833de..a5a9723d70 100644 --- a/Core.BackgroundJobs/Model/StandardJobIds.cs +++ b/Core.BackgroundJobs/Model/StandardJobIds.cs @@ -11,6 +11,6 @@ public static class StandardJobIds public static readonly string RebuildDataProcessingReadModels = $"{NamePrefix}rebuild-dpr-read-models"; public static readonly string RebuildItSystemUsageReadModels = $"{NamePrefix}rebuild-it-system-usage-read-models"; public static readonly string PurgeDuplicatePendingReadModelUpdates = $"{NamePrefix}purge-duplicate-read-model-updates"; - public static readonly string ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState = $"{NamePrefix}schedule-updates-for-it-system-usage-read-models-which-changes-active-state"; + public static readonly string ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState = $"{NamePrefix}fix-stale-itsystem-usage-rms"; } } diff --git a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs index cd35f521ff..47a4ca2d0e 100644 --- a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs +++ b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs @@ -81,7 +81,7 @@ public async Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token) await Launch(_purgeDuplicatePendingReadModelUpdates, token); } - public async Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default) + public async Task LaunchUpdateStaleSystemUsageRmAsync(CancellationToken token = default) { await Launch(_scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive, token); } diff --git a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs index 579e807e74..fe50d59c8b 100644 --- a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs +++ b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs @@ -12,6 +12,6 @@ public interface IBackgroundJobLauncher Task LaunchUpdateItSystemUsageOverviewReadModels(CancellationToken token = default); Task LaunchFullReadModelRebuild(ReadModelRebuildScope scope, CancellationToken token); Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token); - Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default); + Task LaunchUpdateStaleSystemUsageRmAsync(CancellationToken token = default); } } diff --git a/Presentation.Web/Startup.cs b/Presentation.Web/Startup.cs index a15d3d72a4..a12ab0361e 100644 --- a/Presentation.Web/Startup.cs +++ b/Presentation.Web/Startup.cs @@ -76,7 +76,7 @@ private static void InitializeHangfire(IAppBuilder app) recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState, - job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken.None)), + job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchUpdateStaleSystemUsageRmAsync(CancellationToken.None)), cronExpression: Cron.Daily(), // Every night at 00:00 timeZone: TimeZoneInfo.Local); From fbceee5ee08c50453808288f779e52df6c449a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 10:27:56 +0200 Subject: [PATCH 196/432] cleanup --- ...atesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs index 44fa0986a2..5b8cd1ac38 100644 --- a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs +++ b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs @@ -56,8 +56,6 @@ public async Task ExecuteAsync_Schedules_Updates_To_System_Usage_If_The_Read_Mod { //Arrange - two read models for the same system usage and one for another var transaction = SetupTransaction(); - //TODO: Test data helper - use it - var readModel1ForSystemUsage1 = CreateReadModel(A()); var readModel2ForSystemUsage1 = CreateReadModel(readModel1ForSystemUsage1.SourceEntity.Id); var readModelForSystemUsage2 = CreateReadModel(A()); From b723da0c815d0f5208fab6818191d3aade851d8d Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 21 Jun 2022 14:25:51 +0200 Subject: [PATCH 197/432] Overview and WriteModel tests --- ...ntractGeneralDataModificationParameters.cs | 2 + .../Mapping/ItContractWriteModelMapper.cs | 10 +- .../ContractGeneralDataWriteRequestDTO.cs | 11 +++ .../it-contract-overview.controller.ts | 91 ++++++++++++------- .../app/models/it-contract/it-contract.ts | 2 + .../V2/ItContractWriteModelMapperTest.cs | 28 ++++-- 6 files changed, 103 insertions(+), 41 deletions(-) diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs index b36761973c..037ffb307b 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs @@ -15,5 +15,7 @@ public class ItContractGeneralDataModificationParameters public OptionalValueChange> EnforceValid { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidFrom { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidTo { get; set; } = OptionalValueChange>.None; + public OptionalValueChange CriticalityTypeId { get; set; } = OptionalValueChange.None; + public OptionalValueChange CriticalityTypeUuid { get; set; } = OptionalValueChange.None; } } diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs index 31f545ce53..a8dbf7f9a9 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs @@ -302,7 +302,15 @@ private static ItContractGeneralDataModificationParameters MapGeneralData x.General.Validity.EnforcedValid) ? (dto.Validity?.EnforcedValid ?? Maybe.None).AsChangedValue() - : OptionalValueChange>.None + : OptionalValueChange>.None, + + CriticalityTypeId = rule.MustUpdate(x => x.General.CriticalityTypeId) + ? dto.CriticalityTypeId.AsChangedValue() + : OptionalValueChange.None, + + CriticalityTypeUuid = rule.MustUpdate(x => x.General.CriticalityTypeUuid) + ? dto.CriticalityTypeUuid.AsChangedValue() + : OptionalValueChange.None, }; } diff --git a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs index 49d143124d..612e7997be 100644 --- a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs +++ b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs @@ -37,5 +37,16 @@ public class ContractGeneralDataWriteRequestDTO /// Validity of the it-contract /// public ValidityWriteRequestDTO Validity { get; set; } + /// + /// User-assigned criticality type id + /// + public string CriticalityTypeId { get; set; } + /// + /// Optionally assigned criticality type + /// Constraints: + /// - If changed from current state, the option type must be available in the organization + /// + [NonEmptyGuid] + public Guid? CriticalityTypeUuid { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 223a2966a7..4efc4d459c 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -31,6 +31,7 @@ export class OverviewController implements IOverviewController { private storageKey = "it-contract-overview-options"; private orgUnitStorageKey = "it-contract-overview-orgunit"; + private criticalityTypeStorageKey = "it-contract-overview-criticalitytype"; private gridState = this.gridStateService.getService(this.storageKey, this.user); private roleSelectorDataSource; private uiBluePrint = Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; @@ -176,6 +177,11 @@ return filterUrl.replace(pattern, "AssociatedSystemUsages/any(c: $1c/ItSystemUsage/ItSystem/Name$2)"); } + private fixCriticalityFilter(filterUrl, column) { + const pattern = new RegExp(`(\\w+\\()${column}(.*?\\))`, "i"); + return filterUrl.replace(pattern, `contains(${column}$2`); + } + // loads kendo grid options from localstorage private loadGridOptions() { this.gridState.loadGridOptions(this.mainGrid); @@ -262,18 +268,25 @@ "Supplier($select=Name)," + "AssociatedSystemUsages($expand=ItSystemUsage($select=Id;$expand=ItSystem($select=Name,Disabled)))," + "DataProcessingRegistrations($select=IsAgreementConcluded)," + - "LastChangedByUser($select=Name,LastName)," + - "CriticalityType"; - // if orgunit is set then the org unit filter is active + "LastChangedByUser($select=Name,LastName)"; //+ + //"CriticalityType($select=Id)"; var orgUnitId = self.$window.sessionStorage.getItem(self.orgUnitStorageKey); + var query; + // if orgunit is set then the org unit filter is active if (orgUnitId === null) { - return `/odata/Organizations(${self.user.currentOrganizationId})/ItContracts` + - urlParameters; + query = `/odata/Organizations(${self.user.currentOrganizationId})/ItContracts`;// + urlParameters; } else { - return `/odata/Organizations(${self.user - .currentOrganizationId})/OrganizationUnits(${orgUnitId})/ItContracts` + - urlParameters; + query = `/odata/Organizations(${self.user + .currentOrganizationId})/OrganizationUnits(${orgUnitId})/ItContracts`; //+ urlParameters; } + var criticalityId = self.$window.sessionStorage.getItem(self.criticalityTypeStorageKey); + if (criticalityId === null) { + urlParameters += ",CriticalityType($select=Id)"; + } else { + urlParameters += `,CriticalityType($select=Id)&%24filter=CriticalityType/Id eq ${criticalityId}`; + } + + return query + urlParameters; }, dataType: "json" }, @@ -289,10 +302,9 @@ parameterMap.$filter = self .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); - parameterMap.$filter = Helpers.OdataQueryHelper.replaceOptionQuery(parameterMap.$filter, - "CriticalityType", - Models.Api.Shared.YesNoUndecidedOption.Undecided); - + /*parameterMap.$filter = + this.fixCriticalityFilter(parameterMap.$filter, "CriticalityType"); +*/ parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } @@ -754,18 +766,13 @@ filterable: false }, { - field: "CriticalityType", title: "Kritikalitet", width: 90, - persistId: "kritikalitet", - template: dataItem => dataItem.CriticalityType ? dataItem.CriticalityType.Name : "", - excelTemplate: dataItem => - dataItem.CriticalityType ? dataItem.CriticalityType.Name : "", - sortable: false, + field: "CriticalityType", title: "Kritikalitet", width: 150, + persistId: "criticalitytype", + template: dataItem => dataItem.CriticalityType ? this.getCriticalityName(dataItem.CriticalityType.Id) : "", filterable: { cell: { - template: customFilter, - dataSource: [], showOperators: false, - operator: "contains" + template: this.criticalityOptionsDropDownList } } } @@ -864,7 +871,11 @@ this.exportGridToExcelService.getExcel(e, this._, this.$timeout, this.mainGrid, this.excelConfig); } - private orgUnitDropDownList = (args) => { + private orgUnitDropDownList = (args) => this.createFilterDropDown(this.orgUnitStorageKey, this.orgUnits, args, false); + private criticalityOptionsDropDownList = (args) => this.createFilterDropDown(this.criticalityTypeStorageKey, this.criticalityOptions, args, true); + + private createFilterDropDown(key: string, dataSource: any, args: any, insertEmptyValue: boolean) + { var self = this; function indent(dataItem: any) { @@ -872,9 +883,16 @@ return htmlSpace.repeat(dataItem.$level) + dataItem.Name; } - function setDefaultOrgUnit() { + function setDefaultValue() { var kendoElem = this; - var idTofind = self.$window.sessionStorage.getItem(self.orgUnitStorageKey); + + var idTofind = self.$window.sessionStorage.getItem(key); + + if (insertEmptyValue && !idTofind) { + const defaultIndex = "0"; + dataSource.splice(defaultIndex, 0, { Id: defaultIndex, Name: "" }); + idTofind = defaultIndex; + } if (!idTofind) { // if no id was found then do nothing @@ -885,14 +903,14 @@ var index = self._.findIndex(kendoElem.dataItems(), (item: any) => (item.Id == idTofind)); // -1 = no match - // 0 = root org unit, which should display all. So remove org unit filter + // 0 = root value, which should display all. So remove org unit filter if (index > 0) { - // select the users default org unit + // select the users default value kendoElem.select(index); } } - function orgUnitChanged() { + function valueChanged() { var kendoElem = this; // can't use args.dataSource directly, // if we do then the view doesn't update. @@ -903,10 +921,10 @@ if (selectedIndex > 0) { // filter by selected - self.$window.sessionStorage.setItem(self.orgUnitStorageKey, selectedId.toString()); + self.$window.sessionStorage.setItem(key, selectedId.toString()); } else { // else clear filter because the 0th element should act like a placeholder - self.$window.sessionStorage.removeItem(self.orgUnitStorageKey); + self.$window.sessionStorage.removeItem(key); } // setting the above session value will cause the grid to fetch from a different URL // see the function part of this http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-transport.read.url @@ -917,12 +935,12 @@ // http://dojo.telerik.com/ODuDe/5 args.element.removeAttr("data-bind"); args.element.kendoDropDownList({ - dataSource: this.orgUnits, + dataSource: dataSource, dataValueField: "Id", dataTextField: "Name", template: indent, - dataBound: setDefaultOrgUnit, - change: orgUnitChanged + dataBound: setDefaultValue, + change: valueChanged }); } @@ -961,6 +979,15 @@ return concatRoles; } + + private getCriticalityName(id: number): string { + const criticalitiesWithSameId = this.criticalityOptions.filter(x => x.Id === id); + if (criticalitiesWithSameId.length < 1) + return ""; + + const criticality = criticalitiesWithSameId[0]; + return criticality.Name; + } } angular diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index d6d623322f..9a62710e8c 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -59,7 +59,9 @@ Children: Array; /** Gets or sets the chosen agreement elements. */ AgreementElements: Array; + /** Gets or sets the chosen criticality type id. */ CriticalityTypeId: number, + /** Gets or sets the chosen criticality type. */ CriticalityType: ICriticalityType, /** When the contract began. (indgået) */ diff --git a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs index 2b0b25abed..b767efd123 100644 --- a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs +++ b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs @@ -98,7 +98,7 @@ public static IEnumerable GetUndefinedSectionsInput() public static IEnumerable GetUndefinedGeneralDataPropertiesInput() { - return CreateGetUndefinedSectionsInput(8); + return CreateGetUndefinedSectionsInput(10); } public static IEnumerable GetUndefinedProcurementPropertiesInput() @@ -226,11 +226,13 @@ public void FromPOST_Ignores_Undefined_Properties_In_GeneralSection( bool noNotes, bool noEnforceValid, bool noValidFrom, - bool noValidTo) + bool noValidTo, + bool noCriticalityTypeId, + bool noCriticalityTypeUuid) { //Arrange var input = new CreateNewContractRequestDTO(); - ConfigureGeneralDataInputContext(noContractId, noContractTypeUuid, noContractTemplateUuid, noAgreementElementUuids, noNotes, noEnforceValid, noValidFrom, noValidTo); + ConfigureGeneralDataInputContext(noContractId, noContractTypeUuid, noContractTemplateUuid, noAgreementElementUuids, noNotes, noEnforceValid, noValidFrom, noValidTo, noCriticalityTypeId, noCriticalityTypeUuid); //Act var output = _sut.FromPOST(input).General.Value; @@ -256,11 +258,13 @@ public void FromPATCH_Ignores_Undefined_Properties_In_GeneralSection( bool noNotes, bool noEnforceValid, bool noValidFrom, - bool noValidTo) + bool noValidTo, + bool noCriticalityTypeId, + bool noCriticalityTypeUuid) { //Arrange var input = new UpdateContractRequestDTO(); - ConfigureGeneralDataInputContext(noContractId, noContractTypeUuid, noContractTemplateUuid, noAgreementElementUuids, noNotes, noEnforceValid, noValidFrom, noValidTo); + ConfigureGeneralDataInputContext(noContractId, noContractTypeUuid, noContractTemplateUuid, noAgreementElementUuids, noNotes, noEnforceValid, noValidFrom, noValidTo, noCriticalityTypeId, noCriticalityTypeUuid); //Act var output = _sut.FromPATCH(input).General.Value; @@ -286,11 +290,13 @@ public void FromPUT_Enforces_Undefined_Properties_In_GeneralSection( bool noNotes, bool noEnforceValid, bool noValidFrom, - bool noValidTo) + bool noValidTo, + bool noCriticalityTypeId, + bool noCriticalityTypeUuid) { //Arrange var input = new UpdateContractRequestDTO(); - ConfigureGeneralDataInputContext(noContractId, noContractTypeUuid, noContractTemplateUuid, noAgreementElementUuids, noNotes, noEnforceValid, noValidFrom, noValidTo); + ConfigureGeneralDataInputContext(noContractId, noContractTypeUuid, noContractTemplateUuid, noAgreementElementUuids, noNotes, noEnforceValid, noValidFrom, noValidTo, noCriticalityTypeId, noCriticalityTypeUuid); //Act var output = _sut.FromPUT(input).General.Value; @@ -1516,6 +1522,8 @@ private static void AssertGeneralData(ContractGeneralDataWriteRequestDTO input, Assert.Equal(input.Validity.ValidFrom, AssertPropertyContainsDataChange(output.ValidFrom)); Assert.Equal(input.Validity.ValidTo, AssertPropertyContainsDataChange(output.ValidTo)); Assert.Equal(input.Validity.EnforcedValid, AssertPropertyContainsDataChange(output.EnforceValid)); + Assert.Equal(input.CriticalityTypeId, AssertPropertyContainsDataChange(output.CriticalityTypeId)); + Assert.Equal(input.CriticalityTypeUuid, AssertPropertyContainsDataChange(output.CriticalityTypeUuid)); } private static void AssertProcurement(bool hasValues, ContractProcurementDataWriteRequestDTO expected, ItContractProcurementModificationParameters actual) @@ -1588,7 +1596,9 @@ private void ConfigureGeneralDataInputContext( bool noNotes, bool noEnforceValid, bool noValidFrom, - bool noValidTo) + bool noValidTo, + bool noCriticalityTypeId, + bool noCriticalityTypeUuid) { var sectionProperties = GetAllInputPropertyNames(); var validitySectionProperties = GetAllInputPropertyNames(); @@ -1598,6 +1608,8 @@ private void ConfigureGeneralDataInputContext( if (noContractTemplateUuid) sectionProperties.Remove(nameof(ItContractGeneralDataModificationParameters.ContractTemplateUuid)); if (noAgreementElementUuids) sectionProperties.Remove(nameof(ItContractGeneralDataModificationParameters.AgreementElementUuids)); if (noNotes) sectionProperties.Remove(nameof(ItContractGeneralDataModificationParameters.Notes)); + if (noCriticalityTypeId) sectionProperties.Remove(nameof(ItContractGeneralDataModificationParameters.CriticalityTypeId)); + if (noCriticalityTypeUuid) sectionProperties.Remove(nameof(ItContractGeneralDataModificationParameters.CriticalityTypeUuid)); if (noEnforceValid) validitySectionProperties.Remove(nameof(ValidityWriteRequestDTO.EnforcedValid)); if (noValidFrom) validitySectionProperties.Remove(nameof(ValidityWriteRequestDTO.ValidFrom)); From 3f0bb156e0eab1ae19bfcd1425da6f7c512a7834 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 21 Jun 2022 14:46:57 +0200 Subject: [PATCH 198/432] Revert unnecessary changes --- .../Controllers/API/V1/GenericApiController.cs | 2 +- .../it-contract/it-contract-overview.controller.ts | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Presentation.Web/Controllers/API/V1/GenericApiController.cs b/Presentation.Web/Controllers/API/V1/GenericApiController.cs index e74a9a51c2..8905458947 100644 --- a/Presentation.Web/Controllers/API/V1/GenericApiController.cs +++ b/Presentation.Web/Controllers/API/V1/GenericApiController.cs @@ -278,7 +278,7 @@ protected virtual TModel PatchQuery(TModel item, JObject obj) var itemType = item.GetType(); // get name of mapped property var map = Mapper.ConfigurationProvider.FindTypeMapFor().PropertyMaps; - var nonNullMaps = map.Where(x => x.SourceMember != null ).ToList(); + var nonNullMaps = map.Where(x => x.SourceMember != null).ToList(); foreach (var valuePair in obj) { diff --git a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts index 4efc4d459c..51a064d998 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-overview.controller.ts @@ -268,17 +268,18 @@ "Supplier($select=Name)," + "AssociatedSystemUsages($expand=ItSystemUsage($select=Id;$expand=ItSystem($select=Name,Disabled)))," + "DataProcessingRegistrations($select=IsAgreementConcluded)," + - "LastChangedByUser($select=Name,LastName)"; //+ - //"CriticalityType($select=Id)"; + "LastChangedByUser($select=Name,LastName)"; + var orgUnitId = self.$window.sessionStorage.getItem(self.orgUnitStorageKey); var query; // if orgunit is set then the org unit filter is active if (orgUnitId === null) { - query = `/odata/Organizations(${self.user.currentOrganizationId})/ItContracts`;// + urlParameters; + query = `/odata/Organizations(${self.user.currentOrganizationId})/ItContracts`; } else { query = `/odata/Organizations(${self.user - .currentOrganizationId})/OrganizationUnits(${orgUnitId})/ItContracts`; //+ urlParameters; + .currentOrganizationId})/OrganizationUnits(${orgUnitId})/ItContracts`; } + var criticalityId = self.$window.sessionStorage.getItem(self.criticalityTypeStorageKey); if (criticalityId === null) { urlParameters += ",CriticalityType($select=Id)"; @@ -301,10 +302,7 @@ parameterMap.$filter = self .fixSystemFilter(parameterMap.$filter, "AssociatedSystemUsages"); - - /*parameterMap.$filter = - this.fixCriticalityFilter(parameterMap.$filter, "CriticalityType"); -*/ + parameterMap.$filter = Helpers.fixODataUserByNameFilter(parameterMap.$filter, "LastChangedByUser/Name", "LastChangedByUser"); } From 023cdc608e802d3d6948b9733a4d694710ea551c Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 21 Jun 2022 15:33:23 +0200 Subject: [PATCH 199/432] changes after review --- ...ntractGeneralDataModificationParameters.cs | 2 - ...ntractProcurementModificationParameters.cs | 2 + .../Mapping/ItContractResponseMapper.cs | 5 ++- .../Mapping/ItContractWriteModelMapper.cs | 13 ++++--- .../ContractGeneralDataWriteRequestDTO.cs | 5 --- .../ContractProcurementDataWriteRequestDTO.cs | 5 +++ .../ContractGeneralDataResponseDTO.cs | 6 +-- .../ContractProcurementDataResponseDTO.cs | 5 +++ .../tabs/it-contract-tab-main.controller.ts | 3 +- .../tabs/it-contract-tab-main.view.html | 2 +- .../Contract/V2/ItContractsApiV2Test.cs | 37 +++++++++---------- 11 files changed, 43 insertions(+), 42 deletions(-) diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs index 0d420fcdf0..b36761973c 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using Core.Abstractions.Types; using Core.ApplicationServices.Model.Shared; -using Core.DomainModel.Shared; namespace Core.ApplicationServices.Model.Contracts.Write { @@ -16,6 +15,5 @@ public class ItContractGeneralDataModificationParameters public OptionalValueChange> EnforceValid { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidFrom { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidTo { get; set; } = OptionalValueChange>.None; - public OptionalValueChange> ProcurementInitiated { get; set; } = OptionalValueChange>.None; } } diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs index 15912865df..7a1bcd53e2 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs @@ -1,6 +1,7 @@ using System; using Core.Abstractions.Types; using Core.ApplicationServices.Model.Shared; +using Core.DomainModel.Shared; namespace Core.ApplicationServices.Model.Contracts.Write { @@ -9,5 +10,6 @@ public class ItContractProcurementModificationParameters public OptionalValueChange PurchaseTypeUuid { get; set; } = OptionalValueChange.None; public OptionalValueChange ProcurementStrategyUuid { get; set; } = OptionalValueChange.None; public OptionalValueChange> ProcurementPlan { get; set; } = OptionalValueChange>.None; + public OptionalValueChange> ProcurementInitiated { get; set; } = OptionalValueChange>.None; } } \ No newline at end of file diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs index d5386eac12..b624a4ff8f 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs @@ -10,6 +10,7 @@ using Presentation.Web.Models.API.V2.Response.Generic.Validity; using Presentation.Web.Models.API.V2.Types.Contract; using Presentation.Web.Models.API.V2.Types.Shared; +using Presentation.Web.Controllers.API.V2.External.DataProcessingRegistrations.Mapping; namespace Presentation.Web.Controllers.API.V2.External.ItContracts.Mapping { @@ -173,7 +174,8 @@ private static ContractProcurementDataResponseDTO MapProcurement(ItContract cont { ProcurementStrategy = contract.ProcurementStrategy?.MapIdentityNamePairDTO(), PurchaseType = contract.PurchaseForm?.MapIdentityNamePairDTO(), - ProcurementPlan = MapProcurementPlan(contract) + ProcurementPlan = MapProcurementPlan(contract), + ProcurementInitiated = contract.ProcurementInitiated?.ToYesNoUndecidedChoice(), }; } @@ -196,7 +198,6 @@ private static ContractGeneralDataResponseDTO MapGeneral(ItContract contract) { return new() { - ProcurementInitiated = contract.ProcurementInitiated, ContractId = contract.ItContractId, Notes = contract.Note, ContractTemplate = contract.ContractTemplate?.MapIdentityNamePairDTO(), diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs index 95a5d9bcd0..6af20831f8 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs @@ -17,6 +17,7 @@ using System.Linq; using System.Linq.Expressions; using Core.DomainModel.Shared; +using Presentation.Web.Controllers.API.V2.External.DataProcessingRegistrations.Mapping; namespace Presentation.Web.Controllers.API.V2.External.ItContracts.Mapping { @@ -303,11 +304,7 @@ private static ItContractGeneralDataModificationParameters MapGeneralData x.General.Validity.EnforcedValid) ? (dto.Validity?.EnforcedValid ?? Maybe.None).AsChangedValue() - : OptionalValueChange>.None, - - ProcurementInitiated = rule.MustUpdate(x => x.General.ProcurementInitiated) - ? (dto.ProcurementInitiated ?? Maybe.None).AsChangedValue() - : OptionalValueChange>.None + : OptionalValueChange>.None }; } @@ -325,7 +322,11 @@ private static ItContractProcurementModificationParameters MapProcurement x.Procurement.ProcurementPlan) ? MapProcurementPlan(dto.ProcurementPlan).AsChangedValue() - : OptionalValueChange>.None + : OptionalValueChange>.None, + + ProcurementInitiated = rule.MustUpdate(x => x.Procurement.ProcurementInitiated) + ? (dto.ProcurementInitiated?.ToYesNoUndecidedOption() ?? Maybe.None).AsChangedValue() + : OptionalValueChange>.None }; } diff --git a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs index 4f86b8411d..49d143124d 100644 --- a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs +++ b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using Core.DomainModel.Shared; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Request.Generic.Validity; @@ -38,9 +37,5 @@ public class ContractGeneralDataWriteRequestDTO /// Validity of the it-contract /// public ValidityWriteRequestDTO Validity { get; set; } - /// - /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) - /// - public YesNoUndecidedOption? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs b/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs index ea84fd2533..a5dcd0e947 100644 --- a/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs +++ b/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs @@ -1,6 +1,7 @@ using System; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Types.Contract; +using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Request.Contract { @@ -24,5 +25,9 @@ public class ContractProcurementDataWriteRequestDTO /// Procurement plan /// public ProcurementPlanDTO ProcurementPlan { get; set; } + /// + /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) + /// + public YesNoUndecidedChoice? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs index 10d9845f13..f78d944fdb 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs @@ -1,8 +1,8 @@ using System.Collections.Generic; -using Core.DomainModel.Shared; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Validity; +using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Response.Contract { @@ -31,9 +31,5 @@ public class ContractGeneralDataResponseDTO /// Validity of the it-contract /// public ValidityResponseDTO Validity { get; set; } - /// - /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) - /// - public YesNoUndecidedOption? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs index 3e93a19f80..2d70331455 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs @@ -1,6 +1,7 @@ using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Types.Contract; +using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Response.Contract { @@ -19,5 +20,9 @@ public class ContractProcurementDataResponseDTO /// Procurement plan /// public ProcurementPlanDTO ProcurementPlan { get; set; } + /// + /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) + /// + public YesNoUndecidedChoice? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index c2e83f81f2..cbc55f2a2e 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -86,8 +86,7 @@ $scope.yesNoUndecidedValues = yesNoUndecided.options; $scope.contract = contract; $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); - $scope.contract.procurementInitiated = yesNoUndecided.getById(contract.procurementInitiated); - $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); + $scope.procurementInitiated = yesNoUndecided.getById(contract.procurementInitiated); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index a15892bb2c..e341011468 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -113,7 +113,7 @@

{{contract.name}}

diff --git a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs index 407bd04d89..a2cab3103e 100644 --- a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs +++ b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs @@ -8,7 +8,6 @@ using System.Threading.Tasks; using AutoFixture; using Core.Abstractions.Extensions; -using Core.DomainModel.Shared; using Core.DomainServices.Extensions; using ExpectedObjects; using Presentation.Web.Models.API.V1; @@ -687,17 +686,17 @@ public async Task Can_PATCH_With_Procurement() } [Theory] - [InlineData(true, true, true, true)] - [InlineData(true, true, false, true)] - [InlineData(true, false, true, true)] - [InlineData(false, true, true, true)] - [InlineData(true, true, true, false)] - [InlineData(false, false, false, false)] - public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withProcurementInitiated) + [InlineData(true, true, true)] + [InlineData(true, true, false)] + [InlineData(true, false, true)] + [InlineData(false, true, true)] + [InlineData(true, true, true)] + [InlineData(false, false, false)] + public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements) { //Arrange var (token, user, organization) = await CreatePrerequisitesAsync(); - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements, withProcurementInitiated); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements); var request = new CreateNewContractRequestDTO { OrganizationUuid = organization.Uuid, @@ -726,7 +725,7 @@ public async Task Can_PATCH_With_GeneralData() var dto = await ItContractV2Helper.PostContractAsync(token, request); //Act - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, true, true, true); using var response1 = await ItContractV2Helper.SendPatchContractGeneralDataAsync(token, dto.Uuid, generalDataWriteRequestDto); Assert.Equal(HttpStatusCode.OK, response1.StatusCode); @@ -736,7 +735,7 @@ public async Task Can_PATCH_With_GeneralData() AssertGeneralDataSection(generalDataWriteRequestDto, contractType, contractTemplateType, agreementElements, freshDTO); //Act - new values - (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, false, true, false, false); + (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, false, true, false); using var response2 = await ItContractV2Helper.SendPatchContractGeneralDataAsync(token, dto.Uuid, generalDataWriteRequestDto); Assert.Equal(HttpStatusCode.OK, response2.StatusCode); @@ -1668,7 +1667,7 @@ public async Task Can_POST_Full_Contract() var (token, _, organization) = await CreatePrerequisitesAsync(); var parent = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest, procurementStrategy, purchaseType) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequest) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequest) = await CreateGeneralDataRequestDTO(organization, true, true, true); var contractResponsibleDataWriteRequest = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials = await CreateHandoverTrials(organization, true, true, true); @@ -1736,7 +1735,7 @@ public async Task Can_PUT_All() var parent1 = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest1, procurementStrategy1, purchaseType1) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType1, contractTemplateType1, agreementElements1, generalDataWriteRequest1) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType1, contractTemplateType1, agreementElements1, generalDataWriteRequest1) = await CreateGeneralDataRequestDTO(organization, true, true, true); var contractResponsibleDataWriteRequest1 = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest1 = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials1 = await CreateHandoverTrials(organization, true, true, true); @@ -1793,7 +1792,7 @@ public async Task Can_PUT_All() //Arrange - Put on filled var parent2 = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest2, procurementStrategy2, purchaseType2) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType2, contractTemplateType2, agreementElements2, generalDataWriteRequest2) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType2, contractTemplateType2, agreementElements2, generalDataWriteRequest2) = await CreateGeneralDataRequestDTO(organization, true, true, true); var contractResponsibleDataWriteRequest2 = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest2 = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials2 = await CreateHandoverTrials(organization, true, true, true); @@ -2111,7 +2110,7 @@ private async Task CreateContractSupplierDa return contractResponsibleDataWriteRequestDto; } - private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withProcurementInitiated) + private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements) { var contractType = withContractType ? (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractContractTypes, @@ -2132,7 +2131,6 @@ private async Task CreateContractSupplierDa ContractTypeUuid = contractType?.Uuid, ContractTemplateUuid = contractTemplateType?.Uuid, AgreementElementUuids = agreementElements?.Select(x => x.Uuid).ToList(), - ProcurementInitiated = A(), Validity = new ValidityWriteRequestDTO() { ValidFrom = DateTime.Now, @@ -2158,7 +2156,6 @@ private static void AssertGeneralDataSection( Assert.Equal(request?.Validity?.ValidTo?.Date, freshDTO.General.Validity?.ValidTo); Assert.Equal(request?.Validity?.ValidFrom?.Date, freshDTO.General.Validity?.ValidFrom); Assert.Equal(request?.Validity?.EnforcedValid == true, freshDTO.General.Validity?.EnforcedValid == true); - Assert.Equal(request?.ProcurementInitiated, freshDTO.General.ProcurementInitiated); if (expectedAgreementElements == null) Assert.Empty(freshDTO.General.AgreementElements); @@ -2294,6 +2291,7 @@ private static void AssertProcurement(ContractProcurementDataWriteRequestDTO exp { Assert.Equal(expected.ProcurementPlan.QuarterOfYear, actual.ProcurementPlan.QuarterOfYear); Assert.Equal(expected.ProcurementPlan.Year, actual.ProcurementPlan.Year); + Assert.Equal(expected.ProcurementInitiated, actual.ProcurementInitiated); } } @@ -2301,11 +2299,12 @@ private static void AssertProcurement(ContractProcurementDataWriteRequestDTO exp { var procurementStrategy = (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractProcurementStrategyTypes, organizationUuid, 10, 0)).RandomItem(); var purchaseType = (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractPurchaseTypes, organizationUuid, 10, 0)).RandomItem(); - var request = new ContractProcurementDataWriteRequestDTO() + var request = new ContractProcurementDataWriteRequestDTO { ProcurementStrategyUuid = procurementStrategy.Uuid, PurchaseTypeUuid = purchaseType.Uuid, - ProcurementPlan = new ProcurementPlanDTO() + ProcurementInitiated = A(), + ProcurementPlan = new ProcurementPlanDTO { QuarterOfYear = Convert.ToByte((A() % 4) + 1), Year = A() From eae9cc431e2934018387027bc37d65b064b1f44d Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 08:08:51 +0200 Subject: [PATCH 200/432] route string change --- .../ItContracts/ItContractCriticalityTypeV2Controller.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs index b79f062e0b..104cf779e2 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/ItContractCriticalityTypeV2Controller.cs @@ -43,7 +43,7 @@ public IHttpActionResult Get([NonEmptyGuid] Guid organizationUuid, [FromUri] Unb /// organization context for the criticality type availability /// A uuid and name pair with boolean to mark if the criticality type is available in the organization [HttpGet] - [Route("{purchaseTypeUuid}")] + [Route("{criticalityTypeUuid}")] [SwaggerResponse(HttpStatusCode.OK, Type = typeof(RegularOptionExtendedResponseDTO))] [SwaggerResponse(HttpStatusCode.BadRequest)] [SwaggerResponse(HttpStatusCode.Unauthorized)] From cdf7e684e14630d3ceb2e6c3fe1da4ae3ef718ef Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 08:52:51 +0200 Subject: [PATCH 201/432] changes after review --- .../Contract/Write/ItContractWriteService.cs | 9 ++++-- .../Contract/ItContractResponseDTO.cs | 1 - .../V2/ItContractWriteModelMapperTest.cs | 29 ++++++++++++------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs index bf6ebcaedb..534097c772 100644 --- a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs +++ b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs @@ -467,7 +467,6 @@ private Result UpdateGeneralData(ItContract contract .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTypeUuid, UpdateContractType)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTemplateUuid, UpdateContractTemplate)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.Notes, (c, newValue) => c.Note = newValue)) - .Bind(itContract => itContract.WithOptionalUpdate(generalData.ProcurementInitiated, (c, newValue) => c.ProcurementInitiated = newValue.GetValueOrFallback(YesNoUndecidedOption.Undecided))) .Bind(itContract => itContract.WithOptionalUpdate(generalData.EnforceValid, (c, newValue) => c.Active = newValue.GetValueOrFallback(false))) .Bind(itContract => UpdateValidityPeriod(itContract, generalData).Match>(error => error, () => itContract)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.AgreementElementUuids, UpdateAgreementElements)); @@ -542,8 +541,12 @@ private Result UpdateProcurement(ItContract contract { return contract .WithOptionalUpdate(procurementParameters.ProcurementStrategyUuid, UpdateProcurementStrategy) - .Bind(itContract => itContract.WithOptionalUpdate(procurementParameters.PurchaseTypeUuid, UpdatePurchaseType)) - .Bind(itContract => itContract.WithOptionalUpdate(procurementParameters.ProcurementPlan, UpdateProcurementPlan)); + .Bind(itContract => + itContract.WithOptionalUpdate(procurementParameters.PurchaseTypeUuid, UpdatePurchaseType)) + .Bind(itContract => + itContract.WithOptionalUpdate(procurementParameters.ProcurementPlan, UpdateProcurementPlan)) + .Bind(itContract => itContract.WithOptionalUpdate(procurementParameters.ProcurementInitiated, + (c, newValue) => c.ProcurementInitiated = newValue.GetValueOrFallback(YesNoUndecidedOption.Undecided))); } private static Maybe UpdateProcurementPlan(ItContract contract, Maybe<(byte half, int year)> plan) diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs index 8f6c547abf..96d7250df2 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs @@ -1,7 +1,6 @@ using Presentation.Web.Models.API.V2.SharedProperties; using System; using System.Collections.Generic; -using Core.DomainModel.Shared; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Roles; using Presentation.Web.Models.API.V2.Response.Organization; diff --git a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs index eaa971dd3e..adfa779eb2 100644 --- a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs +++ b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs @@ -16,6 +16,7 @@ using Presentation.Web.Models.API.V2.Types.Shared; using Tests.Toolkit.Extensions; using Xunit; +using Presentation.Web.Controllers.API.V2.External.DataProcessingRegistrations.Mapping; namespace Tests.Unit.Presentation.Web.Models.V2 { @@ -103,7 +104,7 @@ public static IEnumerable GetUndefinedGeneralDataPropertiesInput() public static IEnumerable GetUndefinedProcurementPropertiesInput() { - return CreateGetUndefinedSectionsInput(3); + return CreateGetUndefinedSectionsInput(4); } public static IEnumerable GetUndefinedResponsibleDataPropertiesInput() @@ -311,11 +312,12 @@ public void FromPUT_Enforces_Undefined_Properties_In_GeneralSection( public void FromPOST_Ignores_Undefined_Properties_In_ProcurementSection( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { //Arrange var input = new CreateNewContractRequestDTO(); - ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan); + ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan, noProcurementInitiated); //Act var output = _sut.FromPOST(input).Procurement.Value; @@ -331,11 +333,12 @@ public void FromPOST_Ignores_Undefined_Properties_In_ProcurementSection( public void FromPATCH_Ignores_Undefined_Properties_In_ProcurementSection( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { //Arrange var input = new UpdateContractRequestDTO(); - ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan); + ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan, noProcurementInitiated); //Act var output = _sut.FromPATCH(input).Procurement.Value; @@ -351,11 +354,12 @@ public void FromPATCH_Ignores_Undefined_Properties_In_ProcurementSection( public void FromPUT_Enforces_Undefined_Properties_In_ProcurementSection( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { //Arrange var input = new UpdateContractRequestDTO(); - ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan); + ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan, noProcurementInitiated); //Act var output = _sut.FromPUT(input).Procurement.Value; @@ -1516,22 +1520,24 @@ private static void AssertGeneralData(ContractGeneralDataWriteRequestDTO input, Assert.Equal(input.Validity.ValidFrom, AssertPropertyContainsDataChange(output.ValidFrom)); Assert.Equal(input.Validity.ValidTo, AssertPropertyContainsDataChange(output.ValidTo)); Assert.Equal(input.Validity.EnforcedValid, AssertPropertyContainsDataChange(output.EnforceValid)); - Assert.Equal(input.ProcurementInitiated, AssertPropertyContainsDataChange(output.ProcurementInitiated)); } private static void AssertProcurement(bool hasValues, ContractProcurementDataWriteRequestDTO expected, ItContractProcurementModificationParameters actual) { Assert.Equal(expected.ProcurementStrategyUuid, AssertPropertyContainsDataChange(actual.ProcurementStrategyUuid)); Assert.Equal(expected.PurchaseTypeUuid, AssertPropertyContainsDataChange(actual.PurchaseTypeUuid)); + if (hasValues) { var (half, year) = AssertPropertyContainsDataChange(actual.ProcurementPlan); Assert.Equal(expected.ProcurementPlan.QuarterOfYear, half); Assert.Equal(expected.ProcurementPlan.Year, year); + Assert.Equal(expected.ProcurementInitiated, AssertPropertyContainsDataChange(actual.ProcurementInitiated).ToYesNoUndecidedChoice()); } else { AssertPropertyContainsResetDataChange(actual.ProcurementPlan); + AssertPropertyContainsResetDataChange(actual.ProcurementInitiated); } } @@ -1541,8 +1547,9 @@ private ContractProcurementDataWriteRequestDTO CreateProcurementRequest(bool has { ProcurementStrategyUuid = hasValues ? A() : null, PurchaseTypeUuid = hasValues ? A() : null, + ProcurementInitiated = hasValues ? A() : null, ProcurementPlan = hasValues - ? new ProcurementPlanDTO() + ? new ProcurementPlanDTO { QuarterOfYear = Convert.ToByte(A() % 1 + 1), Year = A() @@ -1615,13 +1622,15 @@ private void ConfigureGeneralDataInputContext( private void ConfigureProcurementInputContext( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { var sectionProperties = GetAllInputPropertyNames(); if (noProcurementStrategyUuid) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.ProcurementStrategyUuid)); if (noPurchaseTypeUuid) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.PurchaseTypeUuid)); if (noProcurementPlan) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.ProcurementPlan)); + if (noProcurementInitiated) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.ProcurementInitiated)); _currentHttpRequestMock .Setup(x => x.GetDefinedJsonProperties(nameof(UpdateContractRequestDTO.Procurement).WrapAsEnumerable().AsParameterMatch())) From 265e467550c5b4b87d8bc54017fbcfcc3a588d63 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 11:20:02 +0200 Subject: [PATCH 202/432] changes aftert review --- .../app/services/helpTextService.ts | 7 +- .../app/shared/helpText/helpText.directive.ts | 68 +++++++++++-------- .../shared/helpText/helpTextModal.view.html | 2 +- 3 files changed, 44 insertions(+), 33 deletions(-) diff --git a/Presentation.Web/app/services/helpTextService.ts b/Presentation.Web/app/services/helpTextService.ts index d1ddbcff6d..9e440677c0 100644 --- a/Presentation.Web/app/services/helpTextService.ts +++ b/Presentation.Web/app/services/helpTextService.ts @@ -1,6 +1,7 @@ module Kitos.Services { export interface IHelpText { + id: number | null; title: string | null; htmlText: string | null; } @@ -34,7 +35,6 @@ deleteHelpText(id: number, key: string): ng.IPromise; updateHelpText(id: number, key: string, title: string, text: string): ng.IPromise; createHelpText(key: string, title: string): angular.IPromise; - getHelpTextFromApi(key: string): angular.IHttpPromise>; } class HelpTextService implements IHelpTextService { @@ -81,13 +81,14 @@ return this.$q.resolve(cachedValue); } } - return this.getHelpTextFromApi(key) + return this.sendGetHelpTextRequest(key) .then((result) => { let text: IHelpText | null = null; if (result.data.value.length > 0) { const translation = result.data.value[0]; text = { + id: translation.Id == undefined ? null : translation.Id, title: translation.Title == undefined ? null : translation.Title, htmlText: translation.Description == undefined ? null : this.$sce.trustAsHtml(translation.Description), } @@ -107,7 +108,7 @@ return this.$http.post(`odata/HelpTexts?organizationId=${user.$$state.value.currentOrganizationId}`, payload, { handleBusy: true }); } - getHelpTextFromApi(key: string): angular.IHttpPromise> { + private sendGetHelpTextRequest(key: string): angular.IHttpPromise> { return this.$http.get>(`odata/HelpTexts?$filter=Key eq '${key}'`); } diff --git a/Presentation.Web/app/shared/helpText/helpText.directive.ts b/Presentation.Web/app/shared/helpText/helpText.directive.ts index 39a8850e64..8fc4635b56 100644 --- a/Presentation.Web/app/shared/helpText/helpText.directive.ts +++ b/Presentation.Web/app/shared/helpText/helpText.directive.ts @@ -1,7 +1,8 @@ ((ng, app) => { "use strict"; - app.directive("helpText", [ + app + .directive("helpText", [ () => ({ templateUrl: "app/shared/helpText/helpText.view.html", scope: { @@ -10,7 +11,7 @@ noButtonLayout: "@" }, controller: [ - "$scope", "$uibModal", "helpTextService", "notify", ($scope, $uibModal, helpTextService: Kitos.Services.IHelpTextService, notify) => { + "$scope", "$uibModal", "helpTextService", "userService", ($scope, $uibModal, helpTextService: Kitos.Services.IHelpTextService, userService) => { var parent = $scope; $scope.showHelpTextModal = () => { @@ -20,37 +21,46 @@ controller: ["$scope", "$uibModalInstance", ($scope, $uibModalInstance) => { const helpTextKey = parent.key; - helpTextService.loadHelpText(helpTextKey) - .then(helpText => { - if (helpText != null) { - $scope.title = helpText.title; - $scope.description = helpText.htmlText; - } else { - $scope.title = parent.defaultTitle; - $scope.description = "Ingen hjælpetekst defineret."; - - helpTextService.createHelpText(helpTextKey, $scope.title); - } - }); - - $scope.navigateToHelpTextEdit = () => { - //TODO: Change text to danish - var msg = notify.addInfoMessage("CHANGE TO DANISH: Navigating to edit page", true); - - helpTextService.getHelpTextFromApi(helpTextKey) - .then((response) => { - if (response.data.value.length < 1) { - //TODO: Change text to danish - msg.toErrorMessage(`CHANGE TO DANISH: Failed to find "${helpTextKey}" help text`); + userService.getUser().then(result => { + $scope.canEditHelpTexts = result.isGlobalAdmin; + + helpTextService.loadHelpText(helpTextKey) + .then(helpText => { + if (helpText != null) { + $scope.title = helpText.title; + $scope.description = helpText.htmlText; + } else { + $scope.title = parent.defaultTitle; + $scope.description = "Ingen hjælpetekst defineret."; } + }); + + $scope.navigateToHelpTextEdit = () => { + helpTextService.loadHelpText(helpTextKey, true) + .then((helpText) => { + if (helpText === null || helpText === undefined) { + createHelpTextAndNavigateToEdit(helpTextKey); + return; + } - const helpText = response.data.value[0]; - const helpTextId = helpText.Id; - window.location.href = `/#/global-admin/help-texts/edit/${helpTextId}`; + navigateToEdit(helpText.id); + }); + } - $uibModalInstance.close(); + function createHelpTextAndNavigateToEdit(key: string) { + helpTextService.createHelpText(key, $scope.title).then((response: any) => { + if (response.data?.Id !== undefined) { + navigateToEdit(response.data.Id); + } }); - } + } + + function navigateToEdit(id: number) { + window.location.href = `/#/global-admin/help-texts/edit/${id}`; + + $uibModalInstance.close(); + } + }); }] }); } diff --git a/Presentation.Web/app/shared/helpText/helpTextModal.view.html b/Presentation.Web/app/shared/helpText/helpTextModal.view.html index aa2cb7f896..db21170f5a 100644 --- a/Presentation.Web/app/shared/helpText/helpTextModal.view.html +++ b/Presentation.Web/app/shared/helpText/helpTextModal.view.html @@ -5,7 +5,7 @@ From d530d14412f3622e8215b5757f70de8c66ffbb22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 22 Jun 2022 11:32:15 +0200 Subject: [PATCH 203/432] added endpoint to get all roles --- .../Core.ApplicationServices.csproj | 2 + .../Helpers/NamedEntityMappingHelper.cs | 13 ++ Core.ApplicationServices/IUserService.cs | 1 - .../Model/Users/UserRoleAssignments.cs | 33 ++++ .../Rights/IUserRightsService.cs | 2 + .../Rights/UserRightsService.cs | 46 ++++- .../System/ItSystemService.cs | 5 +- .../API/V1/UserRolesManagementController.cs | 144 ++++++++++++++++ .../Models/API/V1/Users/AssignedRightDTO.cs | 18 ++ .../Models/API/V1/Users/BusinessRoleScope.cs | 10 ++ .../OrganizationUserRoleAssignmentsDTO.cs | 11 ++ .../API/V1/Users/RemoveUserRightsRequest.cs | 9 + .../API/V1/Users/TransferRightsRequestDTO.cs | 13 ++ Presentation.Web/Presentation.Web.csproj | 8 + .../org/user/org-user-delete.controller.ts | 163 +++++++++--------- .../models/users/user-role-assignment-dto.ts | 20 +++ .../user-role-administration.service.ts | 68 ++++++++ .../UserRightsServiceTest.cs | 13 +- 18 files changed, 488 insertions(+), 91 deletions(-) create mode 100644 Core.ApplicationServices/Helpers/NamedEntityMappingHelper.cs create mode 100644 Core.ApplicationServices/Model/Users/UserRoleAssignments.cs create mode 100644 Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs create mode 100644 Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs create mode 100644 Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs create mode 100644 Presentation.Web/Models/API/V1/Users/OrganizationUserRoleAssignmentsDTO.cs create mode 100644 Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs create mode 100644 Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs create mode 100644 Presentation.Web/app/models/users/user-role-assignment-dto.ts create mode 100644 Presentation.Web/app/services/user-role-administration.service.ts diff --git a/Core.ApplicationServices/Core.ApplicationServices.csproj b/Core.ApplicationServices/Core.ApplicationServices.csproj index eb25d4516d..14e53a998e 100644 --- a/Core.ApplicationServices/Core.ApplicationServices.csproj +++ b/Core.ApplicationServices/Core.ApplicationServices.csproj @@ -121,6 +121,7 @@ + @@ -163,6 +164,7 @@ + diff --git a/Core.ApplicationServices/Helpers/NamedEntityMappingHelper.cs b/Core.ApplicationServices/Helpers/NamedEntityMappingHelper.cs new file mode 100644 index 0000000000..e4489e19a2 --- /dev/null +++ b/Core.ApplicationServices/Helpers/NamedEntityMappingHelper.cs @@ -0,0 +1,13 @@ +using Core.ApplicationServices.Model.Shared; +using Core.DomainModel; + +namespace Core.ApplicationServices.Helpers +{ + public static class NamedEntityMappingHelper + { + public static NamedEntity ToNamedEntity(this T entity) where T : IHasId, IHasName + { + return new NamedEntity(entity.Id, entity.Name); + } + } +} diff --git a/Core.ApplicationServices/IUserService.cs b/Core.ApplicationServices/IUserService.cs index 31db5081ee..f95a6e648b 100644 --- a/Core.ApplicationServices/IUserService.cs +++ b/Core.ApplicationServices/IUserService.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using Core.Abstractions.Types; using Core.DomainModel; diff --git a/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs b/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs new file mode 100644 index 0000000000..3fa50e4ab7 --- /dev/null +++ b/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Linq; +using Core.DomainModel.GDPR; +using Core.DomainModel.ItContract; +using Core.DomainModel.ItProject; +using Core.DomainModel.ItSystem; +using Core.DomainModel.Organization; + +namespace Core.ApplicationServices.Model.Users +{ + public class UserRoleAssignments + { + public IEnumerable AdministrativeAccessRoles { get; } + public IEnumerable DataProcessingRegistrationRoles { get; } + public IEnumerable SystemRoles { get; } + public IEnumerable ContractRoles { get; } + public IEnumerable ProjectRoles { get; } + + public UserRoleAssignments( + IEnumerable organizationRoles, + IEnumerable dataProcessingRegistrationRoles, + IEnumerable systemRoles, + IEnumerable contractRoles, + IEnumerable projectRoles) + { + AdministrativeAccessRoles = organizationRoles.ToList(); + DataProcessingRegistrationRoles = dataProcessingRegistrationRoles.ToList(); + SystemRoles = systemRoles.ToList(); + ContractRoles = contractRoles.ToList(); + ProjectRoles = projectRoles.ToList(); + } + } +} diff --git a/Core.ApplicationServices/Rights/IUserRightsService.cs b/Core.ApplicationServices/Rights/IUserRightsService.cs index c63900cbc4..7f2cf63cf9 100644 --- a/Core.ApplicationServices/Rights/IUserRightsService.cs +++ b/Core.ApplicationServices/Rights/IUserRightsService.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using Core.Abstractions.Types; using Core.ApplicationServices.Model.RightsHolder; +using Core.ApplicationServices.Model.Users; using Core.DomainModel.Organization; namespace Core.ApplicationServices.Rights @@ -8,5 +9,6 @@ namespace Core.ApplicationServices.Rights public interface IUserRightsService { Result, OperationError> GetUsersWithRoleAssignment(OrganizationRole role); + Result GetUserRoles(int userId, int organizationId); } } diff --git a/Core.ApplicationServices/Rights/UserRightsService.cs b/Core.ApplicationServices/Rights/UserRightsService.cs index 5b92b0baec..bda589bfd9 100644 --- a/Core.ApplicationServices/Rights/UserRightsService.cs +++ b/Core.ApplicationServices/Rights/UserRightsService.cs @@ -3,11 +3,14 @@ using System.Collections.Generic; using System.Linq; using Core.Abstractions.Types; +using Core.ApplicationServices.Helpers; using Core.ApplicationServices.Model.RightsHolder; +using Core.ApplicationServices.Model.Users; using Core.DomainModel; using Core.DomainModel.Organization; using Core.DomainServices.Authorization; using Core.DomainServices.Extensions; +using Core.DomainServices.Generic; namespace Core.ApplicationServices.Rights { @@ -16,14 +19,23 @@ public class UserRightsService : IUserRightsService private readonly IUserService _userService; private readonly IOrganizationService _organizationService; private readonly IAuthorizationContext _authorizationContext; + private readonly IOrganizationalUserContext _organizationalUserContext; + private readonly IEntityIdentityResolver _identityResolver; - public UserRightsService(IUserService userService, IOrganizationService organizationService, IAuthorizationContext authorizationContext) + public UserRightsService( + IUserService userService, + IOrganizationService organizationService, + IAuthorizationContext authorizationContext, + IOrganizationalUserContext organizationalUserContext, + IEntityIdentityResolver identityResolver) { _userService = userService; _organizationService = organizationService; _authorizationContext = authorizationContext; + _organizationalUserContext = organizationalUserContext; + _identityResolver = identityResolver; } - + public Result, OperationError> GetUsersWithRoleAssignment(OrganizationRole role) { if (_authorizationContext.GetCrossOrganizationReadAccess() < CrossOrganizationDataReadAccessLevel.All) @@ -36,6 +48,36 @@ public Result, OperationError> GetUsersWithR .Bind(users => MapOrganizationalRightsHolderRelation(users, role)); } + public Result GetUserRoles(int userId, int organizationId) + { + if (_authorizationContext.GetOrganizationReadAccessLevel(organizationId) < OrganizationDataReadAccessLevel.All) + { + return new OperationError(OperationFailure.Forbidden); + } + var orgUuid = _identityResolver.ResolveUuid(organizationId); + if (orgUuid.IsNone) + { + return new OperationError("Organization id is invalid", OperationFailure.BadInput); + } + var userUuid = _identityResolver.ResolveUuid(userId); + if (userUuid.IsNone) + { + return new OperationError("User id is invalid", OperationFailure.BadInput); + } + + return _userService + .GetUserInOrganization(orgUuid.Value, userUuid.Value) + .Select(user => new UserRoleAssignments + ( + user.GetRolesInOrganization(orgUuid.Value).Where(x => x != OrganizationRole.User), + user.DataProcessingRegistrationRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), + user.ItSystemRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), + user.ItContractRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), + user.ItProjectRights.Where(right => right.Object.OrganizationId == organizationId).ToList() + ) + ); + } + private Result, OperationError> MapOrganizationalRightsHolderRelation(IQueryable users, OrganizationRole role) { var result = new List(); diff --git a/Core.ApplicationServices/System/ItSystemService.cs b/Core.ApplicationServices/System/ItSystemService.cs index d64f59b2a9..d75e32ccec 100644 --- a/Core.ApplicationServices/System/ItSystemService.cs +++ b/Core.ApplicationServices/System/ItSystemService.cs @@ -6,6 +6,7 @@ using Core.Abstractions.Types; using Core.ApplicationServices.Authorization; using Core.ApplicationServices.Extensions; +using Core.ApplicationServices.Helpers; using Core.ApplicationServices.Interface; using Core.ApplicationServices.Model.Shared; using Core.ApplicationServices.Model.System; @@ -535,9 +536,7 @@ private static IEnumerable MapToUsingOrganization(IEnumerable return itSystemUsages.Select( itSystemUsage => new UsingOrganization( itSystemUsage.Id, - new NamedEntity( - itSystemUsage.Organization.Id, - itSystemUsage.Organization.Name))) + itSystemUsage.Organization.ToNamedEntity())) .ToList() .AsReadOnly(); } diff --git a/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs b/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs new file mode 100644 index 0000000000..595cb83aa9 --- /dev/null +++ b/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Web.Http; +using Core.ApplicationServices.Model.Users; +using Core.ApplicationServices.Rights; +using Presentation.Web.Controllers.API.V1.Mapping; +using Presentation.Web.Infrastructure.Attributes; +using Presentation.Web.Models.API.V1; +using Presentation.Web.Models.API.V1.Users; + +namespace Presentation.Web.Controllers.API.V1 +{ + [InternalApi] + [RoutePrefix("api/v1/organizations/{organizationId}/users/{userId}/roles")] + + public class UserRolesManagementController : BaseApiController + { + private readonly IUserRightsService _rightsService; + + public UserRolesManagementController(IUserRightsService rightsService) + { + _rightsService = rightsService; + } + + /// + /// Get all user roles in the organization + /// + /// + /// + /// + [HttpGet] + [Route] + public HttpResponseMessage Get(int organizationId, int userId) + { + return _rightsService + .GetUserRoles(userId, organizationId) + .Select(ToRoleAssignmentsDTO) + .Match(Ok, FromOperationError); + } + + /// + /// Delete all role assignments in the organization + /// + /// + /// + /// A new which represents the changes assigment state + [Route] + [HttpDelete] + public HttpResponseMessage Delete(int organizationId, int userId) + { + //TODO: Also remove the org unit roles + throw new NotImplementedException(); + } + + /// + /// Delete selected org roles + /// + /// + /// + /// + /// A new which represents the changes assigment state + [Route("range")] + [HttpDelete] + public HttpResponseMessage DeleteRange(int organizationId, int userId, [FromBody] RemoveUserRightsRequest assignmentsToDelete) + { + throw new NotImplementedException(); + } + + /// + /// Transfers the selected roles to another user + /// + /// + /// + /// + /// A new which represents the changes assigment state + [Route("range/transfer")] + [HttpPatch] + public HttpResponseMessage PatchTransferToAnotherUser(int organizationId, int userId, TransferRightsRequestDTO assignmentsToDelete) + { + throw new NotImplementedException(); + } + + private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleAssignments arg) + { + return new OrganizationUserRoleAssignmentsDTO + { + AdministrativeAccessRoles = arg.AdministrativeAccessRoles, + Rights = arg + .ContractRoles + .Select(x => new AssignedRightDTO + { + BusinessObjectName = x.Object.Name, + RightId = x.Id, + Scope = BusinessRoleScope.ItContract + + }) + .Concat + ( + arg + .ProjectRoles + .Select(x => new AssignedRightDTO + { + BusinessObjectName = x.Object.Name, + RightId = x.Id, + Scope = BusinessRoleScope.ItProject + + }) + ) + .Concat + ( + arg + .DataProcessingRegistrationRoles + .Select(x => new AssignedRightDTO + { + BusinessObjectName = x.Object.Name, + RightId = x.Id, + Scope = BusinessRoleScope.DataProcessingRegistration + + }) + ) + .Concat + ( + arg + .SystemRoles + .Select(x => new AssignedRightDTO + { + BusinessObjectName = x.Object.ItSystem.Name, + RightId = x.Id, + Scope = BusinessRoleScope.ItSystemUsage + + }) + ) + .ToList() + }; + } + + private static UserRoleAssignments FromRoleAssignmentsDTO(OrganizationUserRoleAssignmentsDTO arg) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs b/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs new file mode 100644 index 0000000000..5cb3582313 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs @@ -0,0 +1,18 @@ +namespace Presentation.Web.Models.API.V1.Users +{ + public class AssignedRightDTO + { + /// + /// The ID of the right, which is the assignment of the role to the business object. + /// + public int RightId { get; set; } + /// + /// The name of the business object for which the right is created + /// + public string BusinessObjectName { get; set; } + /// + /// The role scope of the right assignment + /// + public BusinessRoleScope Scope { get; set; } + } +} \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs b/Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs new file mode 100644 index 0000000000..cadd87fd57 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs @@ -0,0 +1,10 @@ +namespace Presentation.Web.Models.API.V1.Users +{ + public enum BusinessRoleScope + { + ItSystemUsage = 1, + ItContract = 2, + DataProcessingRegistration = 3, + ItProject = 4 + } +} \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/OrganizationUserRoleAssignmentsDTO.cs b/Presentation.Web/Models/API/V1/Users/OrganizationUserRoleAssignmentsDTO.cs new file mode 100644 index 0000000000..6cf7a833f7 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Users/OrganizationUserRoleAssignmentsDTO.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Core.DomainModel.Organization; + +namespace Presentation.Web.Models.API.V1.Users +{ + public class OrganizationUserRoleAssignmentsDTO + { + public IEnumerable AdministrativeAccessRoles { get; set; } + public IEnumerable Rights { get; set; } + } +} \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs b/Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs new file mode 100644 index 0000000000..19105cdaa8 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Presentation.Web.Models.API.V1.Users +{ + public class RemoveUserRightsRequest + { + public IEnumerable RightsToRemove { get; set; } + } +} \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs b/Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs new file mode 100644 index 0000000000..12851d3ba0 --- /dev/null +++ b/Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Presentation.Web.Models.API.V1.Users +{ + public class TransferRightsRequestDTO + { + [Required] + public int ToUserId { get; set; } + [Required] + public IEnumerable RightsToTransfer { get; set; } + } +} \ No newline at end of file diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 006acf4c10..667a82b06f 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -357,7 +357,13 @@ + + + + + + @@ -748,6 +754,7 @@ + @@ -817,6 +824,7 @@ + diff --git a/Presentation.Web/app/components/org/user/org-user-delete.controller.ts b/Presentation.Web/app/components/org/user/org-user-delete.controller.ts index cc3082f0f9..dc02bbc6a2 100644 --- a/Presentation.Web/app/components/org/user/org-user-delete.controller.ts +++ b/Presentation.Web/app/components/org/user/org-user-delete.controller.ts @@ -2,13 +2,13 @@ "use strict"; class UserRole { - public modul: any; - public rightId: any; - public objectId: any; + modul: any; + rightId: any; + objectId: any; } class Map { - public items: { [key: string]: T }; + items: { [key: string]: T }; constructor() { this.items = {}; @@ -33,43 +33,38 @@ //Controller til at vise en brugers roller i en organisation class DeleteOrganizationUserController { - public orgRoles: Map = new Map(); - public projectRoles: Map = new Map(); - public systemRoles: Map = new Map(); - public contractRoles: Map = new Map(); - public adminRoles: Map = new Map(); - public vmOrgRoles: Map = new Map(); - public vmProjectRoles: Map = new Map(); - public vmSystemRoles: Map = new Map(); - public vmContractRoles: Map = new Map(); - public vmAdminRoles: Map = new Map(); - - public vmOrgUnits: any; - public vmProject: any; - public vmSystem: any; - public vmItContracts: any; - public vmGetUsers: any; - public vmOrgAdmin: any; - public vmUsersInOrganization: any; - public selectedUser: any; - public isUserSelected: boolean; - public curOrganization: string; - public dirty: boolean; - public disabled: boolean; - - private userId: number; - private firstName: string; - private lastName: string; - private email: string; - private itemSelected: boolean; - private vmText: string; - - // injecter resolve request i ctoren - public static $inject: string[] = [ + orgRoles = new Map(); + projectRoles = new Map(); + systemRoles = new Map(); + contractRoles = new Map(); + adminRoles = new Map(); + vmOrgRoles = new Map(); + vmProjectRoles = new Map(); + vmSystemRoles = new Map(); + vmContractRoles = new Map(); + vmAdminRoles = new Map(); + + vmOrgUnits: any; + vmProject: any; + vmSystem: any; + vmItContracts: any; + vmGetUsers: any; + vmOrgAdmin: any; + vmUsersInOrganization: any; + selectedUser: any; + isUserSelected: boolean; + curOrganization: string; + dirty: boolean; + disabled: boolean; + + readonly firstName: string; + readonly lastName: string; + readonly email: string; + readonly vmText: string; + + static $inject: string[] = [ "$uibModalInstance", "$http", - "$q", - "$scope", "notify", "user", "usersInOrganization", @@ -79,25 +74,25 @@ "orgUnits", "orgAdmin", "_", - "text" - ]; - - constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, - private $http: IHttpServiceWithCustomConfig, - private $q: ng.IQService, - private $scope, - private notify, - private user: any, - private usersInOrganization: any, + "text", + "allRoles" + ]; + + constructor( + private readonly $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, + private readonly $http: IHttpServiceWithCustomConfig, + private readonly notify, + user: any, + usersInOrganization: any, public projects, public system, public itContracts, public orgUnits, public orgAdmin, - private _: ILoDashWithMixins, - private text) { + private readonly _: ILoDashWithMixins, + text, + allRoles: Models.Users.UserRoleAssigmentDTO) { - this.userId = user.Id; this.firstName = user.Name; this.lastName = user.LastName; this.email = user.Email; @@ -107,31 +102,30 @@ this.initCollections(system, this.vmSystemRoles); this.initCollections(itContracts, this.vmContractRoles); this.initCollections(orgAdmin, this.vmAdminRoles); - + this.vmUsersInOrganization = usersInOrganization.filter(x => x.Id !== user.Id); this.vmProject = projects; this.vmSystem = system; this.vmItContracts = itContracts; this.vmOrgUnits = orgUnits; - this.vmOrgAdmin = orgAdmin.filter(bar => (bar.Role !== "User")).filter(bar => (bar.Role !== "ReadOnly")); - this.itemSelected = false; + this.vmOrgAdmin = orgAdmin.filter(bar => (bar.Role !== "User")); this.isUserSelected = true; this.curOrganization = user.currentOrganizationName; this.disabled = true; this.vmText = text; } - public initCollections = (collection, output) => { + initCollections = (collection, output) => { for (var item of collection) { output.add(item.Id, item); } } - public disableBtns(val) { + disableBtns(val) { this.disabled = val; } - public collectionUpdate = (module, object, isChecked) => { + collectionUpdate = (module, object, isChecked) => { this.disableBtns(this.isUserSelected); if (isChecked) { this.dirty = false; @@ -177,7 +171,7 @@ } } - public setSelectedUser = () => { + setSelectedUser = () => { if (this.selectedUser == null) { this.isUserSelected = true; } else { @@ -186,12 +180,12 @@ } } - public patchData() { - var orgRoles = this.orgRoles; - var projRoles = this.projectRoles; - var sysRoles = this.systemRoles; - var contRoles = this.contractRoles; - var adminRoles = this.adminRoles; + patchData() { + const orgRoles = this.orgRoles; + const projRoles = this.projectRoles; + const sysRoles = this.systemRoles; + const contRoles = this.contractRoles; + const adminRoles = this.adminRoles; if (orgRoles != null) { _.each(orgRoles.items, @@ -255,9 +249,11 @@ } public delete(module, rightId) { + //TODO: Is this endpoint even used? var id = rightId.Id; this.$http.delete(`/odata/${module}(${id})`) .then(() => { + //TODO: Bind the object to the containing colletion in stead so we don't need this switch if (module === "OrganizationUnitRights") { this.orgRoles.del(id); this.vmOrgUnits = this.vmOrgUnits.filter(bar => (bar.Id !== id)); @@ -284,12 +280,14 @@ } public ok() { + //TODO: Should call a custom endpoint in stead and respect the promise this.patchData(); this.$uibModalInstance.close(); this.notify.addSuccessMessage("Brugerens roller er ændret"); } public assign() { + //TODO: Should call a custom endpoint in stead and respect the promise this.patchData(); this.notify.addSuccessMessage("Brugerens roller er ændret"); this.disableBtns(true); @@ -300,6 +298,7 @@ } public deleteUser() { + //TODO: Should respect the promise response i stead this.deleteAllUserRoles(this.vmOrgUnits, "OrganizationUnitRights"); this.deleteAllUserRoles(this.vmProject, "ItProjectRights"); this.deleteAllUserRoles(this.vmSystem, "ItSystemRights"); @@ -310,8 +309,7 @@ } public deleteSelectedRoles() { - if (!confirm('Er du sikker på du vil slette de valgte roller?')) - { + if (!confirm('Er du sikker på du vil slette de valgte roller?')) { return; } @@ -320,6 +318,7 @@ var sysRoles = this.systemRoles; var contRoles = this.contractRoles; var adminRoles = this.adminRoles; + //TODO: Should call a custom endpoint in stead if (orgRoles != null) { _.each(orgRoles.items, @@ -398,9 +397,9 @@ user: [ "$http", "userService", ($http: ng.IHttpService, userService) => - userService.getUser() - .then((currentUser) => $http.get(`/odata/Users(${$stateParams["id"]})?$expand=OrganizationRights($filter=OrganizationId eq ${currentUser.currentOrganizationId})`) - .then(result => result.data)) + userService.getUser() + .then((currentUser) => $http.get(`/odata/Users(${$stateParams["id"]})?$expand=OrganizationRights($filter=OrganizationId eq ${currentUser.currentOrganizationId})`) + .then(result => result.data)) ], usersInOrganization: [ "$http", "userService", "UserGetService", @@ -421,9 +420,9 @@ system: [ "$http", "ItSystemService", "userService", ($http: ng.IHttpService, itSystems, userService) => - userService.getUser() - .then((currentUser) => itSystems.GetSystemDataByIdFiltered($stateParams["id"], `${currentUser.currentOrganizationId}`) - .then(systemResult => systemResult.data.value)) + userService.getUser() + .then((currentUser) => itSystems.GetSystemDataByIdFiltered($stateParams["id"], `${currentUser.currentOrganizationId}`) + .then(systemResult => systemResult.data.value)) ], //Henter data for de forskellige collections ved brug er servicen "ItContractService" itContracts: [ @@ -456,8 +455,14 @@ } else { return "Ingen hjælpetekst defineret."; } - }); + }); } + ], + allRoles: ["userRoleAdministrationService", "userService", + (userRoleAdministrationService: Services.IUserRoleAdministrationService, userService: Services.IUserService) => + userService + .getUser() + .then(user => userRoleAdministrationService.getAssignedRoles(user.currentOrganizationId, $stateParams["id"])) ] } }) @@ -466,11 +471,11 @@ // GOTO parent state and reload $state.go("^", null, { reload: true }); }, - () => { - // Cancel - // GOTO parent state - $state.go("^", null, { reload: true }); - }); + () => { + // Cancel + // GOTO parent state + $state.go("^", null, { reload: true }); + }); } ] }); diff --git a/Presentation.Web/app/models/users/user-role-assignment-dto.ts b/Presentation.Web/app/models/users/user-role-assignment-dto.ts new file mode 100644 index 0000000000..91eeea5920 --- /dev/null +++ b/Presentation.Web/app/models/users/user-role-assignment-dto.ts @@ -0,0 +1,20 @@ +module Kitos.Models.Users { + + export enum BusinessRoleScope { + ItSystemUsage, + ItContract, + DataProcessingRegistration, + ItProject + } + + export interface IAssignedRightDTO { + rightId: number; + businessObjectName: string; + bBusinessRoleScope: BusinessRoleScope; + } + + export interface UserRoleAssigmentDTO { + administrativeAccessRoles: Array; + rights: Array; + } +} \ No newline at end of file diff --git a/Presentation.Web/app/services/user-role-administration.service.ts b/Presentation.Web/app/services/user-role-administration.service.ts new file mode 100644 index 0000000000..f4baddfa3e --- /dev/null +++ b/Presentation.Web/app/services/user-role-administration.service.ts @@ -0,0 +1,68 @@ +module Kitos.Services { + + export interface IUserRoleAdministrationService { + getAssignedRoles(organizationId: number, userId: number): ng.IPromise + } + + class UserRoleAdministrationService implements IUserRoleAdministrationService { + + private getBaseUri(organizationId: number, userId: number, additionalSegments: string = "") { + return `api/v1/organizations/${organizationId}/users/${userId}/roles${additionalSegments}`; + } + + + getAssignedRoles(organizationId: number, userId: number): angular.IPromise { + return this.genericApiWrapper + .getDataFromUrl(this.getBaseUri(organizationId, userId)) + .then(result => { + + const mappedRoles = new Array(); + for (let role of result.administrativeAccessRoles) { + if (typeof (role) === "number") { + let mappedRole: Models.OrganizationRole | null = null; + switch (role) { + case 1: + mappedRole = Models.OrganizationRole.LocalAdmin; + break; + case 2: + mappedRole = Models.OrganizationRole.OrganizationModuleAdmin; + break; + case 3: + mappedRole = Models.OrganizationRole.ProjectModuleAdmin; + break; + case 4: + mappedRole = Models.OrganizationRole.SystemModuleAdmin; + break; + case 5: + mappedRole = Models.OrganizationRole.ContractModuleAdmin; + break; + case 8: + mappedRole = Models.OrganizationRole.RightsHolderAccess; + break; + default: + //Ignored so not part of the final result + break; + + } + if (mappedRole !== null) { + mappedRoles.push(mappedRole); + } + } else { + mappedRoles.push(role); + } + } + result.administrativeAccessRoles = mappedRoles; + return result; + }); + + } + + static $inject = ["genericApiWrapper", "apiUseCaseFactory"]; + + constructor( + private readonly genericApiWrapper: Services.Generic.ApiWrapper, + private readonly apiUseCaseFactory: Services.Generic.IApiUseCaseFactory) { } + } + + app.service("userRoleAdministrationService", UserRoleAdministrationService); +} \ No newline at end of file diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserRightsServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserRightsServiceTest.cs index 53cb56136a..8b4436599d 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserRightsServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserRightsServiceTest.cs @@ -10,6 +10,7 @@ using Core.Abstractions.Types; using Core.ApplicationServices; using Core.DomainServices.Authorization; +using Core.DomainServices.Generic; using Tests.Toolkit.Patterns; using Xunit; @@ -28,7 +29,7 @@ public UserRightsServiceTest() _userServiceMock = new Mock(); _organizationServiceMock = new Mock(); _authServiceMock = new Mock(); - _sut = new UserRightsService(_userServiceMock.Object,_organizationServiceMock.Object, _authServiceMock.Object); + _sut = new UserRightsService(_userServiceMock.Object, _organizationServiceMock.Object, _authServiceMock.Object, Mock.Of(), Mock.Of()); } [Fact] @@ -47,7 +48,7 @@ public void GetUsersWithRoleAssignment_Returns_Users_And_Organization_Relations( ExpectUserHasCrossLevelAccess(CrossOrganizationDataReadAccessLevel.All); - SetupUserService(users,role); + SetupUserService(users, role); SetupOrganizationService(new List { org1, org2 }); //Act @@ -80,7 +81,7 @@ public void GetUsersWithRoleAssignment_Returns_Multiple_If_User_Is_RightsHolder_ ExpectUserHasCrossLevelAccess(CrossOrganizationDataReadAccessLevel.All); - SetupUserService(users,role); + SetupUserService(users, role); SetupOrganizationService(new List() { org1, org2 }); //Act @@ -147,8 +148,8 @@ public void GetUsersWithRoleAssignment_Returns_Error_If_GetOrganizations_Fails() ExpectUserHasCrossLevelAccess(CrossOrganizationDataReadAccessLevel.All); - SetupUserService(users,role); - + SetupUserService(users, role); + _organizationServiceMock .Setup(x => x.GetAllOrganizations()) .Returns(Result, OperationError>.Failure(operationError)); @@ -166,7 +167,7 @@ private void ExpectUserHasCrossLevelAccess(CrossOrganizationDataReadAccessLevel _authServiceMock.Setup(x => x.GetCrossOrganizationReadAccess()).Returns(value); } - private void SetupUserService(IEnumerable users,OrganizationRole role) + private void SetupUserService(IEnumerable users, OrganizationRole role) { _userServiceMock .Setup(x => x.GetUsersWithRoleAssignedInAnyOrganization(role)) From d1bdcf7a8cd14e0d342c6d8e167fc2ccb4499c96 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 12:46:37 +0200 Subject: [PATCH 204/432] fix --- .../tabs/it-contract-tab-main.controller.ts | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index defefbc1a5..18cc62793c 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -344,23 +344,27 @@ }, {}); //If selected state is expired, add it for presentation reasons - const existingChoice = { - id: $scope.contract.criticalityTypeId, - name: $scope.contract.criticalityTypeName - }; - if(existingChoice.id && !optionMap[existingChoice.id]) { - optionMap[existingChoice.id] = { - text: existingChoice.name, - id: existingChoice.id, - disabled: true, - optionalObjectContext: existingChoice + let existingChoice = null; + if ($scope.contract.criticalityTypeId !== undefined && $scope.contract.criticalityTypeId !== null) { + existingChoice = { + id: $scope.contract.criticalityTypeId, + name: $scope.contract.criticalityTypeName + }; + + if (!optionMap[$scope.contract.criticalityTypeId]) { + optionMap[existingChoice.id] = { + text: existingChoice.name, + id: existingChoice.id, + disabled: true, + optionalObjectContext: existingChoice + } } } const options = criticalityOptions.map(option => optionMap[option.Id]); $scope.criticality = { - selectedElement: (existingChoice.id && optionMap[existingChoice.id]) ?? existingChoice, + selectedElement: existingChoice && optionMap[existingChoice.id], select2Config: select2LoadingService.select2LocalDataNoSearch(() => options, true), elementSelected: (newElement) => { if (!newElement) From 06cb9251d3ffee4b399b2a3979558e344559f7f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 22 Jun 2022 14:48:04 +0200 Subject: [PATCH 205/432] Rewritten delete dialog to display only Missing: - delete user - transfer roles - delete roles Cleaned up: - old services which were not used or maintained --- .../Model/Users/UserRoleAssignments.cs | 5 +- .../Rights/UserRightsService.cs | 3 +- .../API/V1/UserRolesManagementController.cs | 25 +- .../Models/API/V1/Users/AssignedRightDTO.cs | 4 + .../Models/API/V1/Users/BusinessRoleScope.cs | 9 +- Presentation.Web/Presentation.Web.csproj | 3 - .../org/user/org-user-delete.controller.ts | 378 +++--------------- .../org/user/org-user-delete.modal.view.html | 122 +++--- .../models/users/user-role-assignment-dto.ts | 12 +- .../app/services/OrganizationService.ts | 27 -- .../app/services/itContractsService.ts | 24 +- .../app/services/itProjectService.ts | 60 --- .../app/services/itSystemService.ts | 64 --- 13 files changed, 165 insertions(+), 571 deletions(-) delete mode 100644 Presentation.Web/app/services/OrganizationService.ts delete mode 100644 Presentation.Web/app/services/itProjectService.ts delete mode 100644 Presentation.Web/app/services/itSystemService.ts diff --git a/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs b/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs index 3fa50e4ab7..aff8e00393 100644 --- a/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs +++ b/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs @@ -15,19 +15,22 @@ public class UserRoleAssignments public IEnumerable SystemRoles { get; } public IEnumerable ContractRoles { get; } public IEnumerable ProjectRoles { get; } + public IEnumerable OrganizationUnitRights { get; } public UserRoleAssignments( IEnumerable organizationRoles, IEnumerable dataProcessingRegistrationRoles, IEnumerable systemRoles, IEnumerable contractRoles, - IEnumerable projectRoles) + IEnumerable projectRoles, + IEnumerable organizationUnitRights) { AdministrativeAccessRoles = organizationRoles.ToList(); DataProcessingRegistrationRoles = dataProcessingRegistrationRoles.ToList(); SystemRoles = systemRoles.ToList(); ContractRoles = contractRoles.ToList(); ProjectRoles = projectRoles.ToList(); + OrganizationUnitRights = organizationUnitRights.ToList(); } } } diff --git a/Core.ApplicationServices/Rights/UserRightsService.cs b/Core.ApplicationServices/Rights/UserRightsService.cs index bda589bfd9..dc663ace92 100644 --- a/Core.ApplicationServices/Rights/UserRightsService.cs +++ b/Core.ApplicationServices/Rights/UserRightsService.cs @@ -73,7 +73,8 @@ public Result GetUserRoles(int userId, int user.DataProcessingRegistrationRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), user.ItSystemRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), user.ItContractRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), - user.ItProjectRights.Where(right => right.Object.OrganizationId == organizationId).ToList() + user.ItProjectRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), + user.OrganizationUnitRights.Where(right => right.Object.OrganizationId == organizationId).ToList() ) ); } diff --git a/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs b/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs index 595cb83aa9..9f43d57d32 100644 --- a/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs +++ b/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs @@ -1,13 +1,10 @@ using System; -using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Web.Http; using Core.ApplicationServices.Model.Users; using Core.ApplicationServices.Rights; -using Presentation.Web.Controllers.API.V1.Mapping; using Presentation.Web.Infrastructure.Attributes; -using Presentation.Web.Models.API.V1; using Presentation.Web.Models.API.V1.Users; namespace Presentation.Web.Controllers.API.V1 @@ -91,6 +88,7 @@ private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleA .ContractRoles .Select(x => new AssignedRightDTO { + RoleName = x.Role.Name, BusinessObjectName = x.Object.Name, RightId = x.Id, Scope = BusinessRoleScope.ItContract @@ -102,6 +100,7 @@ private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleA .ProjectRoles .Select(x => new AssignedRightDTO { + RoleName = x.Role.Name, BusinessObjectName = x.Object.Name, RightId = x.Id, Scope = BusinessRoleScope.ItProject @@ -114,6 +113,7 @@ private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleA .DataProcessingRegistrationRoles .Select(x => new AssignedRightDTO { + RoleName = x.Role.Name, BusinessObjectName = x.Object.Name, RightId = x.Id, Scope = BusinessRoleScope.DataProcessingRegistration @@ -126,19 +126,28 @@ private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleA .SystemRoles .Select(x => new AssignedRightDTO { + RoleName = x.Role.Name, BusinessObjectName = x.Object.ItSystem.Name, RightId = x.Id, Scope = BusinessRoleScope.ItSystemUsage }) ) + .Concat + ( + arg + .OrganizationUnitRights + .Select(x => new AssignedRightDTO + { + RoleName = x.Role.Name, + BusinessObjectName = x.Object.Name, + RightId = x.Id, + Scope = BusinessRoleScope.OrganizationUnit + + }) + ) .ToList() }; } - - private static UserRoleAssignments FromRoleAssignmentsDTO(OrganizationUserRoleAssignmentsDTO arg) - { - throw new NotImplementedException(); - } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs b/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs index 5cb3582313..8310a3e41d 100644 --- a/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs +++ b/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs @@ -7,6 +7,10 @@ public class AssignedRightDTO /// public int RightId { get; set; } /// + /// The name of the role associated with he right + /// + public string RoleName { get; set; } + /// /// The name of the business object for which the right is created /// public string BusinessObjectName { get; set; } diff --git a/Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs b/Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs index cadd87fd57..144f21562f 100644 --- a/Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs +++ b/Presentation.Web/Models/API/V1/Users/BusinessRoleScope.cs @@ -2,9 +2,10 @@ { public enum BusinessRoleScope { - ItSystemUsage = 1, - ItContract = 2, - DataProcessingRegistration = 3, - ItProject = 4 + ItSystemUsage = 0, + ItContract = 1, + DataProcessingRegistration = 2, + ItProject = 3, + OrganizationUnit = 4 } } \ No newline at end of file diff --git a/Presentation.Web/Presentation.Web.csproj b/Presentation.Web/Presentation.Web.csproj index 667a82b06f..4b0ab8fb96 100644 --- a/Presentation.Web/Presentation.Web.csproj +++ b/Presentation.Web/Presentation.Web.csproj @@ -1283,10 +1283,7 @@ - - - diff --git a/Presentation.Web/app/components/org/user/org-user-delete.controller.ts b/Presentation.Web/app/components/org/user/org-user-delete.controller.ts index dc02bbc6a2..0f70e9357a 100644 --- a/Presentation.Web/app/components/org/user/org-user-delete.controller.ts +++ b/Presentation.Web/app/components/org/user/org-user-delete.controller.ts @@ -1,61 +1,36 @@ module Kitos.Organization.Users { "use strict"; - class UserRole { - modul: any; - rightId: any; - objectId: any; + interface IHasSelection { + selected: boolean; } - class Map { - items: { [key: string]: T }; - constructor() { - this.items = {}; - } - - add(key: string, value: T): void { - this.items[key] = value; - } - - has(key: string): boolean { - return key in this.items; - } - - get(key: string): T { - return this.items[key]; - } + interface IAssignedRightViewModel extends IHasSelection { + right: Models.Users.IAssignedRightDTO; + } - del(key: string): void { - delete this.items[key]; - } + interface IAssignedAdminRoleViewModel extends IHasSelection { + role: Models.OrganizationRole; } //Controller til at vise en brugers roller i en organisation class DeleteOrganizationUserController { - orgRoles = new Map(); - projectRoles = new Map(); - systemRoles = new Map(); - contractRoles = new Map(); - adminRoles = new Map(); - vmOrgRoles = new Map(); - vmProjectRoles = new Map(); - vmSystemRoles = new Map(); - vmContractRoles = new Map(); - vmAdminRoles = new Map(); + vmOrgRights = new Array(); + vmProjectRights = new Array(); + vmAdminRights = new Array(); + vmSystemRights = new Array(); + vmContractRights = new Array(); + vmDprRights = new Array(); - vmOrgUnits: any; - vmProject: any; - vmSystem: any; - vmItContracts: any; vmGetUsers: any; - vmOrgAdmin: any; vmUsersInOrganization: any; selectedUser: any; isUserSelected: boolean; curOrganization: string; dirty: boolean; disabled: boolean; + noRights: boolean; readonly firstName: string; readonly lastName: string; @@ -64,15 +39,9 @@ static $inject: string[] = [ "$uibModalInstance", - "$http", "notify", "user", "usersInOrganization", - "projects", - "system", - "itContracts", - "orgUnits", - "orgAdmin", "_", "text", "allRoles" @@ -80,15 +49,9 @@ constructor( private readonly $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, - private readonly $http: IHttpServiceWithCustomConfig, private readonly notify, user: any, usersInOrganization: any, - public projects, - public system, - public itContracts, - public orgUnits, - public orgAdmin, private readonly _: ILoDashWithMixins, text, allRoles: Models.Users.UserRoleAssigmentDTO) { @@ -97,80 +60,42 @@ this.lastName = user.LastName; this.email = user.Email; - this.initCollections(orgUnits, this.vmOrgRoles); - this.initCollections(projects, this.vmProjectRoles); - this.initCollections(system, this.vmSystemRoles); - this.initCollections(itContracts, this.vmContractRoles); - this.initCollections(orgAdmin, this.vmAdminRoles); + this.vmAdminRights = allRoles.administrativeAccessRoles.map(role => { + return { + selected: false, + role: role + } + }); + this.noRights = allRoles.administrativeAccessRoles.length === 0 && allRoles.rights.length === 0; + this.vmOrgRights = this.createViewModel(allRoles.rights, Models.Users.BusinessRoleScope.OrganizationUnit); + this.vmContractRights = this.createViewModel(allRoles.rights, Models.Users.BusinessRoleScope.ItContract); + this.vmDprRights = this.createViewModel(allRoles.rights, Models.Users.BusinessRoleScope.DataProcessingRegistration); + this.vmProjectRights = this.createViewModel(allRoles.rights, Models.Users.BusinessRoleScope.ItProject); + this.vmSystemRights = this.createViewModel(allRoles.rights, Models.Users.BusinessRoleScope.ItSystemUsage); this.vmUsersInOrganization = usersInOrganization.filter(x => x.Id !== user.Id); - this.vmProject = projects; - this.vmSystem = system; - this.vmItContracts = itContracts; - this.vmOrgUnits = orgUnits; - this.vmOrgAdmin = orgAdmin.filter(bar => (bar.Role !== "User")); + this.isUserSelected = true; this.curOrganization = user.currentOrganizationName; this.disabled = true; this.vmText = text; } - initCollections = (collection, output) => { - for (var item of collection) { - output.add(item.Id, item); - } + createViewModel = (fullCollection: Array, roleScope: Models.Users.BusinessRoleScope) => { + return fullCollection + .filter(entry => entry.scope === roleScope) + .map(item => { + return { + right: item, + selected: false + }; + }); } disableBtns(val) { this.disabled = val; } - collectionUpdate = (module, object, isChecked) => { - this.disableBtns(this.isUserSelected); - if (isChecked) { - this.dirty = false; - - var userRoles: UserRole = { - modul: module, - rightId: object.Id, - objectId: object.ObjectId - }; - - if (module === "OrganizationUnitRights") { - this.orgRoles.add(object.Id, userRoles); - } - if (module === "ItProjectRights") { - this.projectRoles.add(object.Id, userRoles); - } - if (module === "ItSystemRights") { - this.systemRoles.add(object.Id, userRoles); - } - if (module === "ItContractRights") { - this.contractRoles.add(object.Id, userRoles); - } - if (module === "OrganizationRights") { - this.adminRoles.add(object.Id, userRoles); - } - } - if (!isChecked) { - if (module === "OrganizationUnitRights") { - this.orgRoles.del(object.Id); - } - if (module === "ItProjectRights") { - this.projectRoles.del(object.Id); - } - if (module === "ItSystemRights") { - this.systemRoles.del(object.Id); - } - if (module === "ItContractRights") { - this.contractRoles.del(object.Id); - } - if (module === "OrganizationRights") { - this.adminRoles.del(object.Id); - } - } - } - setSelectedUser = () => { if (this.selectedUser == null) { this.isUserSelected = true; @@ -180,200 +105,41 @@ } } - patchData() { - const orgRoles = this.orgRoles; - const projRoles = this.projectRoles; - const sysRoles = this.systemRoles; - const contRoles = this.contractRoles; - const adminRoles = this.adminRoles; - - if (orgRoles != null) { - _.each(orgRoles.items, - (value, key) => { - let payload = { - UserId: this.selectedUser.Id - } - this.$http.patch(`/odata/OrganizationUnitRights(${value.rightId})`, payload) - .then(() => this.orgRoles.del(value.rightId)); - this.vmOrgUnits = this.vmOrgUnits.filter(bar => (bar.Id !== value.rightId)); - }); - } - - if (projRoles != null) { - _.each(projRoles.items, - (value, key) => { - let payload = { - UserId: this.selectedUser.Id - } - this.$http.patch(`/odata/ItProjectRights(${value.rightId})`, payload) - .then(() => this.projectRoles.del(value.rightId)); - this.vmProject = this.vmProject.filter(bar => (bar.Id !== value.rightId)); - }); - } - - if (sysRoles != null) { - _.each(sysRoles.items, - (value, key) => { - let payload = { - UserId: this.selectedUser.Id - } - this.$http.patch(`/odata/ItSystemRights(${value.rightId})`, payload) - .then(() => this.systemRoles.del(value.rightId)); - this.vmSystem = this.vmSystem.filter(bar => (bar.Id !== value.rightId)); - }); - } - - if (contRoles != null) { - _.each(contRoles.items, - (value, key) => { - let payload = { - UserId: this.selectedUser.Id - } - this.$http.patch(`/odata/ItContractRights(${value.rightId})`, payload) - .then(() => this.contractRoles.del(value.rightId)); - this.vmItContracts = this.vmItContracts.filter(bar => (bar.Id !== value.rightId)); - }); - } - if (adminRoles != null) { - _.each(adminRoles.items, - (value, key) => { - let payload = { - UserId: this.selectedUser.Id - } - this.$http.patch(`/odata/OrganizationRights(${value.rightId})`, payload) - .then(() => this.adminRoles.del(value.rightId)); - this.vmOrgAdmin = this.vmOrgAdmin.filter(bar => (bar.Id !== value.rightId)); - this.orgAdmin = this.orgAdmin.filter(orgRoleRelation => (orgRoleRelation.Id !== value.rightId)); - }); - } - } - - public delete(module, rightId) { - //TODO: Is this endpoint even used? - var id = rightId.Id; - this.$http.delete(`/odata/${module}(${id})`) - .then(() => { - //TODO: Bind the object to the containing colletion in stead so we don't need this switch - if (module === "OrganizationUnitRights") { - this.orgRoles.del(id); - this.vmOrgUnits = this.vmOrgUnits.filter(bar => (bar.Id !== id)); - - } - if (module === "ItProjectRights") { - this.projectRoles.del(id); - this.vmProject = this.vmProject.filter(bar => (bar.Id !== id)); - - } - if (module === "ItSystemRights") { - this.systemRoles.del(id); - this.vmSystem = this.vmSystem.filter(bar => (bar.Id !== id)); - } - if (module === "ItContractRights") { - this.contractRoles.del(id); - this.vmItContracts = this.vmItContracts.filter(bar => (bar.Id !== id)); - } - if (module === "OrganizationRights") { - this.adminRoles.del(id); - this.vmOrgAdmin = this.vmOrgAdmin.filter(bar => (bar.Id !== id)); - } - }); + deleteRight(scope, rightId) { + //TODO: also confirm here! + //TODO: Invoke deleterights with some selected } - public ok() { - //TODO: Should call a custom endpoint in stead and respect the promise - this.patchData(); - this.$uibModalInstance.close(); - this.notify.addSuccessMessage("Brugerens roller er ændret"); + deleteAdminRole(role: Models.OrganizationRole) { + //TODO } - public assign() { + assign() { //TODO: Should call a custom endpoint in stead and respect the promise - this.patchData(); - this.notify.addSuccessMessage("Brugerens roller er ændret"); + //TODO: Run the scenario, and in the "then" update view models and disable btns + //TODO: also confirm here! this.disableBtns(true); } - public cancel() { + cancel() { this.$uibModalInstance.dismiss(); } - public deleteUser() { - //TODO: Should respect the promise response i stead - this.deleteAllUserRoles(this.vmOrgUnits, "OrganizationUnitRights"); - this.deleteAllUserRoles(this.vmProject, "ItProjectRights"); - this.deleteAllUserRoles(this.vmSystem, "ItSystemRights"); - this.deleteAllUserRoles(this.vmItContracts, "ItContractRights"); - this.deleteAllUserRoles(this.orgAdmin, "OrganizationRights"); + deleteUser() { + //TODO: Delete the user from org and then close the modal + //TODO: also confirm here! this.$uibModalInstance.close(); - this.notify.addSuccessMessage("Brugeren og dennes roller er slettet fra organisationen"); + } - public deleteSelectedRoles() { + deleteSelectedRoles() { if (!confirm('Er du sikker på du vil slette de valgte roller?')) { return; } - var orgRoles = this.orgRoles; - var projRoles = this.projectRoles; - var sysRoles = this.systemRoles; - var contRoles = this.contractRoles; - var adminRoles = this.adminRoles; - //TODO: Should call a custom endpoint in stead - - if (orgRoles != null) { - _.each(orgRoles.items, - (value, key) => { - this.$http.delete(`/odata/OrganizationUnitRights(${value.rightId})`) - .then(() => this.orgRoles.del(value.rightId)); - this.vmOrgUnits = this.vmOrgUnits.filter(bar => (bar.Id !== value.rightId)); - }); - } - - if (projRoles != null) { - _.each(projRoles.items, - (value, key) => { - this.$http.delete(`/odata/ItProjectRights(${value.rightId})`) - .then(() => this.projectRoles.del(value.rightId)); - this.vmProject = this.vmProject.filter(bar => (bar.Id !== value.rightId)); - }); - } - - if (sysRoles != null) { - _.each(sysRoles.items, - (value, key) => { - this.$http.delete(`/odata/ItSystemRights(${value.rightId})`) - .then(() => this.systemRoles.del(value.rightId)); - this.vmSystem = this.vmSystem.filter(bar => (bar.Id !== value.rightId)); - }); - } - - if (contRoles != null) { - _.each(contRoles.items, - (value, key) => { - this.$http.delete(`/odata/ItContractRights(${value.rightId})`) - .then(() => this.contractRoles.del(value.rightId)); - this.vmItContracts = this.vmItContracts.filter(bar => (bar.Id !== value.rightId)); - }); - } - if (adminRoles != null) { - _.each(adminRoles.items, - (value, key) => { - this.$http.delete(`/odata/OrganizationRights(${value.rightId})`) - .then(() => this.adminRoles.del(value.rightId)); - this.vmOrgAdmin = this.vmOrgAdmin.filter(bar => (bar.Id !== value.rightId)); - }); - } - - this.notify.addSuccessMessage("Rollerne er slettede."); + //TODO: Delete the selected view models, then remove them from the state if successful this.disableBtns(true); } - - public deleteAllUserRoles(roles: any, module: string) { - for (var obj of roles) { - var id = obj.Id; - this.$http.delete(`/odata/${module}(${id})`) - } - } } angular @@ -390,10 +156,6 @@ controller: DeleteOrganizationUserController, controllerAs: "ctrl", resolve: { - currentUser: [ - "userService", - (userService) => userService.getUser() - ], user: [ "$http", "userService", ($http: ng.IHttpService, userService) => @@ -408,44 +170,6 @@ .then((currentUser) => userGetService.GetAllUsersFromOrganizationById(`${currentUser.currentOrganizationId}`) .then(result => result.data.value)) ], - //Henter data for de forskellige collections ved brug er servicen "ItProjectService" - projects: [ - "$http", "ItProjectService", "userService", - ($http: ng.IHttpService, itProjects, userService) => - userService.getUser() - .then((currentUser) => itProjects.GetProjectDataById($stateParams["id"], `${currentUser.currentOrganizationId}`) - .then(projectResult => projectResult.data.value)) - ], - //Henter data for de forskellige collections ved brug er servicen "ItSystemService" - system: [ - "$http", "ItSystemService", "userService", - ($http: ng.IHttpService, itSystems, userService) => - userService.getUser() - .then((currentUser) => itSystems.GetSystemDataByIdFiltered($stateParams["id"], `${currentUser.currentOrganizationId}`) - .then(systemResult => systemResult.data.value)) - ], - //Henter data for de forskellige collections ved brug er servicen "ItContractService" - itContracts: [ - "$http", "ItContractsService", "userService", - ($http: ng.IHttpService, itContracts, userService) => - userService.getUser() - .then((currentUser) => itContracts.GetContractDataById($stateParams["id"], `${currentUser.currentOrganizationId}`) - .then(systemResult => systemResult.data.value)) - ], - //Henter data for de forskellige collections ved brug er servicen "OrganizationService" - orgUnits: [ - "$http", "organizationService", "userService", - ($http: ng.IHttpService, organizationService, userService) => - userService.getUser() - .then((currentUser) => organizationService.GetOrganizationUnitDataById($stateParams["id"], `${currentUser.currentOrganizationId}`) - .then(result => result.data.value)) - ], - orgAdmin: ["$http", "userService", "organizationService", - ($http: ng.IHttpService, userService, organizationService) => - userService.getUser() - .then((currentUser) => organizationService.GetOrganizationData($stateParams["id"], `${currentUser.currentOrganizationId}`) - .then(result => result.data.value)) - ], text: ["$http", "$sce", ($http: ng.IHttpService, $sce) => { return $http.get("odata/HelpTexts?$filter=Key eq 'user_deletion_modal_text'") diff --git a/Presentation.Web/app/components/org/user/org-user-delete.modal.view.html b/Presentation.Web/app/components/org/user/org-user-delete.modal.view.html index a27b3c2c9d..2990731b76 100644 --- a/Presentation.Web/app/components/org/user/org-user-delete.modal.view.html +++ b/Presentation.Web/app/components/org/user/org-user-delete.modal.view.html @@ -11,7 +11,7 @@
-
Brugeren har ikke nogen tildelte roller i denne organisation
+
Brugeren har ikke nogen tildelte roller i denne organisation
-
+
- - +
+ +
@@ -42,18 +42,18 @@
-
- - - - - - + + + + + + + +
Vælg{{orgUnit.Object.Name}}{{orgUnit.Role.Name}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
{{right.right.businessObjectName}}{{right.right.roleName}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
- +
@@ -64,18 +64,18 @@
-
- - - - - + + + + + + +
Vælg{{project.Object.Name}}{{project.Role.Name}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
{{right.right.businessObjectName}}{{right.right.roleName}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
- +
@@ -86,18 +86,18 @@
-
- - - - - + + + + + + +
Vælg{{system.Object.ItSystem.Name}}{{system.Role.Name}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
{{right.right.businessObjectName}}{{right.right.roleName}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
- +
@@ -108,18 +108,42 @@
-
- - - - - + + + + + + +
Vælg{{Contract.Object.Name}}{{Contract.Role.Name}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
{{right.right.businessObjectName}}{{right.right.roleName}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
+ + + + + + + + + + + + + + + + + + + + + + +
VælgDatabehandlingRolleTildel tilSlet
{{right.right.businessObjectName}}{{right.right.roleName}}{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
+ - +
@@ -129,34 +153,34 @@
-
+ + - - - + + +
Vælg
-
+
Lokal admin
-
+
Organisations admin
-
+
Projekt admin
-
+
System admin
-
+
Kontrakt admin
-
+
Global admin
-
+
Rettighedshaveradgang
{{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}} {{ctrl.selectedUser.Name}} {{ctrl.selectedUser.LastName}}
diff --git a/Presentation.Web/app/models/users/user-role-assignment-dto.ts b/Presentation.Web/app/models/users/user-role-assignment-dto.ts index 91eeea5920..f02010f38b 100644 --- a/Presentation.Web/app/models/users/user-role-assignment-dto.ts +++ b/Presentation.Web/app/models/users/user-role-assignment-dto.ts @@ -1,16 +1,18 @@ module Kitos.Models.Users { export enum BusinessRoleScope { - ItSystemUsage, - ItContract, - DataProcessingRegistration, - ItProject + ItSystemUsage = 0, + ItContract = 1, + DataProcessingRegistration = 2, + ItProject = 3, + OrganizationUnit = 4 } export interface IAssignedRightDTO { rightId: number; + roleName: string; businessObjectName: string; - bBusinessRoleScope: BusinessRoleScope; + scope: BusinessRoleScope; } export interface UserRoleAssigmentDTO { diff --git a/Presentation.Web/app/services/OrganizationService.ts b/Presentation.Web/app/services/OrganizationService.ts deleted file mode 100644 index 07a98f1a0a..0000000000 --- a/Presentation.Web/app/services/OrganizationService.ts +++ /dev/null @@ -1,27 +0,0 @@ -module Kitos.Services { - "use strict"; - - export class OrganizationService { - - static $inject: string[] = ["$http"]; - - constructor(private readonly $http: IHttpServiceWithCustomConfig) { - } - - GetOrganizationUnitDataById = (id: number, orgId: number) => { - return this.$http.get(`odata/OrganizationUnitRights?$expand=role,object&$filter=UserId eq (${id} )AND Object/OrganizationId eq (${orgId})`); - } - - GetOrganizationData = (userId: number, organizationId: number) => { - return this.$http.get(`odata/OrganizationRights?$expand=Organization&$filter=UserId eq (${userId}) AND OrganizationId eq (${organizationId})`); - } - - DeleteOrganizationAdminData = (user: any, adminRole: string, module: string) => { - var localRight = user.OrganizationRights.filter(x => x.Role === adminRole); - var localId = localRight[0].Id; - return this.$http.delete(`/odata/${module}(${localId})`); - } - } - - app.service("organizationService", OrganizationService); -} diff --git a/Presentation.Web/app/services/itContractsService.ts b/Presentation.Web/app/services/itContractsService.ts index 78d8951010..e22cb4f32f 100644 --- a/Presentation.Web/app/services/itContractsService.ts +++ b/Presentation.Web/app/services/itContractsService.ts @@ -78,29 +78,9 @@ } - public static $inject: string[] = ["$http"]; + static $inject: string[] = ["$http"]; - constructor(private $http: IHttpServiceWithCustomConfig) { - } - - GetItContractById = (id: number) => { - return this.$http.get(`odata/ItContracts(${id})`); - } - - GetItContractRoleById = (roleId: number) => { - return this.$http.get(`odata/ItContractRoles(${roleId})`); - } - - GetAllItContractRoles = () => { - return this.$http.get(`odata/ItContractRoles`); - } - - GetItContractRightsById = (id: number) => { - return this.$http.get(`odata/ItContractRights?$filter=UserId eq (${id})`); - } - - GetContractDataById = (id: number, orgId: number) => { - return this.$http.get(`odata/ItContractRights?$expand=role,object&$filter=UserId eq (${id}) AND Object/OrganizationId eq (${orgId})`); + constructor(private readonly $http: IHttpServiceWithCustomConfig) { } private getUriWithIdAndSuffix(id: number, suffix: string) { diff --git a/Presentation.Web/app/services/itProjectService.ts b/Presentation.Web/app/services/itProjectService.ts deleted file mode 100644 index fe893a7ea5..0000000000 --- a/Presentation.Web/app/services/itProjectService.ts +++ /dev/null @@ -1,60 +0,0 @@ -module Kitos.Services { - "use strict"; - - interface IProjectRoleModel { - Id: number; - HasReadAccess: boolean; - HasWriteAccess: boolean; - Name: string; - IsActive: boolean; - Description?: any; - ObjectOwnerId: number; - LastChanged: Date; - LastChangedByUserId: number; - } - - interface IProjectRightsModel { - Id: number; - UserId: number; - RoleId: number; - ObjectId: number; - ObjectOwnerId: number; - LastChanged: Date; - LastChangedByUserId: number; - } - - //laver kaldet til odata for at hente data kollektions ud af databasen - export class ItProjectService { - - public static $inject: string[] = ["$http"]; - - constructor(private $http: IHttpServiceWithCustomConfig) { - } - - GetProjectById = (id: number) => { - return this.$http.get(`odata/ItProjects(${id})`); - } - - GetAllProjects = () => { - return this.$http.get(`odata/ItProjects`); - } - - GetProjectRoleById = (roleId: number) => { - return this.$http.get(`odata/ItProjectRoles(${roleId})`); - } - - GetAllProjectRoles = () => { - return this.$http.get(`odata/ItProjectRoles`); - } - - GetProjectRightsById = (id: number) => { - return this.$http.get(`odata/ItProjectRights?$filter=UserId eq (${id})`); - } - - GetProjectDataById = (id: number, orgId: number) => { - return this.$http.get(`odata/ItProjectRights?$expand=role,object&$filter=UserId eq (${id}) AND Object/OrganizationId eq (${orgId})`); - } - } - - app.service("ItProjectService", ItProjectService); -} diff --git a/Presentation.Web/app/services/itSystemService.ts b/Presentation.Web/app/services/itSystemService.ts deleted file mode 100644 index 59f7ca773f..0000000000 --- a/Presentation.Web/app/services/itSystemService.ts +++ /dev/null @@ -1,64 +0,0 @@ -module Kitos.Services { - "use strict"; - - interface ISystemRoleModel { - Id: number; - HasReadAccess: boolean; - HasWriteAccess: boolean; - Name: string; - IsActive: boolean; - Description?: any; - ObjectOwnerId: number; - LastChanged: Date; - LastChangedByUserId: number; - } - - interface ISystemRightsModel { - Id: number; - UserId: number; - RoleId: number; - ObjectId: number; - ObjectOwnerId: number; - LastChanged: Date; - LastChangedByUserId: number; - } - - export class ItSystemService { - - public static $inject: string[] = ["$http"]; - - constructor(private $http: IHttpServiceWithCustomConfig) { - } - - GetSystemById = (id: number) => { - return this.$http.get(`odata/ItSystems(${id})`); - } - - GetAllSystems = () => { - return this.$http.get(`odata/ItSystems`); - } - - GetSystemRoleById = (roleId: number) => { - return this.$http.get(`odata/ItSystemRoles(${roleId})`); - } - - GetAllSystemRoles = () => { - return this.$http.get(`odata/ItSystemRoles`); - } - - GetSystemRightsById = (id: number) => { - return this.$http.get(`odata/ItSystemRights?$filter=UserId eq (${id})`); - } - - GetSystemDataById = (id: number) => { - return this.$http.get(`odata/ItSystemRights?$expand=role,object&$filter=UserId eq (${id})`); - } - - GetSystemDataByIdFiltered = (id: number, orgId: number) => { - return this.$http - .get(`odata/ItSystemRights?$expand=role($select=Name),object($select=Id;$expand=ItSystem($select=Id,Name))&$filter=Object/OrganizationId eq (${orgId}) AND UserId eq (${id})&$select=Id`); - } - } - - app.service("ItSystemService", ItSystemService); -} From 31200a2c3ac46deff3f3f1407a812757e5a65e89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Wed, 22 Jun 2022 15:19:02 +0200 Subject: [PATCH 206/432] added endpoints and draft service entries --- .../Core.ApplicationServices.csproj | 3 +- ...ssignments.cs => UserRightsAssignments.cs} | 8 +-- .../Model/Users/UserRightsChangeParameters.cs | 32 ++++++++++ .../Rights/IUserRightsService.cs | 5 +- .../Rights/UserRightsService.cs | 21 ++++++- .../API/V1/UserRolesManagementController.cs | 59 +++++++++++++++---- .../Models/API/V1/Users/AssignedRightDTO.cs | 6 +- .../API/V1/Users/RemoveUserRightsRequest.cs | 7 ++- .../API/V1/Users/TransferRightsRequestDTO.cs | 5 +- 9 files changed, 124 insertions(+), 22 deletions(-) rename Core.ApplicationServices/Model/Users/{UserRoleAssignments.cs => UserRightsAssignments.cs} (87%) create mode 100644 Core.ApplicationServices/Model/Users/UserRightsChangeParameters.cs diff --git a/Core.ApplicationServices/Core.ApplicationServices.csproj b/Core.ApplicationServices/Core.ApplicationServices.csproj index 14e53a998e..91a1cf69ec 100644 --- a/Core.ApplicationServices/Core.ApplicationServices.csproj +++ b/Core.ApplicationServices/Core.ApplicationServices.csproj @@ -164,7 +164,8 @@ - + + diff --git a/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs b/Core.ApplicationServices/Model/Users/UserRightsAssignments.cs similarity index 87% rename from Core.ApplicationServices/Model/Users/UserRoleAssignments.cs rename to Core.ApplicationServices/Model/Users/UserRightsAssignments.cs index aff8e00393..44bf92cb9b 100644 --- a/Core.ApplicationServices/Model/Users/UserRoleAssignments.cs +++ b/Core.ApplicationServices/Model/Users/UserRightsAssignments.cs @@ -8,16 +8,16 @@ namespace Core.ApplicationServices.Model.Users { - public class UserRoleAssignments + public class UserRightsAssignments { public IEnumerable AdministrativeAccessRoles { get; } - public IEnumerable DataProcessingRegistrationRoles { get; } + public IEnumerable DataProcessingRegistrationRights { get; } public IEnumerable SystemRoles { get; } public IEnumerable ContractRoles { get; } public IEnumerable ProjectRoles { get; } public IEnumerable OrganizationUnitRights { get; } - public UserRoleAssignments( + public UserRightsAssignments( IEnumerable organizationRoles, IEnumerable dataProcessingRegistrationRoles, IEnumerable systemRoles, @@ -26,7 +26,7 @@ public UserRoleAssignments( IEnumerable organizationUnitRights) { AdministrativeAccessRoles = organizationRoles.ToList(); - DataProcessingRegistrationRoles = dataProcessingRegistrationRoles.ToList(); + DataProcessingRegistrationRights = dataProcessingRegistrationRoles.ToList(); SystemRoles = systemRoles.ToList(); ContractRoles = contractRoles.ToList(); ProjectRoles = projectRoles.ToList(); diff --git a/Core.ApplicationServices/Model/Users/UserRightsChangeParameters.cs b/Core.ApplicationServices/Model/Users/UserRightsChangeParameters.cs new file mode 100644 index 0000000000..353be51051 --- /dev/null +++ b/Core.ApplicationServices/Model/Users/UserRightsChangeParameters.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.Linq; +using Core.DomainModel.Organization; + +namespace Core.ApplicationServices.Model.Users +{ + public class UserRightsChangeParameters + { + public IEnumerable AdministrativeAccessRoles { get; } + public IEnumerable DataProcessingRegistrationRightIds { get; } + public IEnumerable SystemRightIds { get; } + public IEnumerable ContractRightIds { get; } + public IEnumerable ProjectRightIds { get; } + public IEnumerable OrganizationUnitRightsIds { get; } + + public UserRightsChangeParameters( + IEnumerable organizationRoles, + IEnumerable dataProcessingRegistrationRoles, + IEnumerable systemRoles, + IEnumerable contractRoles, + IEnumerable projectRoles, + IEnumerable organizationUnitRights) + { + AdministrativeAccessRoles = organizationRoles.ToList(); + DataProcessingRegistrationRightIds = dataProcessingRegistrationRoles.ToList(); + SystemRightIds = systemRoles.ToList(); + ContractRightIds = contractRoles.ToList(); + ProjectRightIds = projectRoles.ToList(); + OrganizationUnitRightsIds = organizationUnitRights.ToList(); + } + } +} diff --git a/Core.ApplicationServices/Rights/IUserRightsService.cs b/Core.ApplicationServices/Rights/IUserRightsService.cs index 7f2cf63cf9..4d64ae3323 100644 --- a/Core.ApplicationServices/Rights/IUserRightsService.cs +++ b/Core.ApplicationServices/Rights/IUserRightsService.cs @@ -9,6 +9,9 @@ namespace Core.ApplicationServices.Rights public interface IUserRightsService { Result, OperationError> GetUsersWithRoleAssignment(OrganizationRole role); - Result GetUserRoles(int userId, int organizationId); + Result GetUserRights(int userId, int organizationId); + Maybe RemoveAllRights(int userId, int organizationId); + Maybe RemoveRights(int userId, int organizationId, UserRightsChangeParameters parameters); + Maybe TransferRights(int fromUserId, int toUserId, int organizationId, UserRightsChangeParameters parameters); } } diff --git a/Core.ApplicationServices/Rights/UserRightsService.cs b/Core.ApplicationServices/Rights/UserRightsService.cs index dc663ace92..79f11fc381 100644 --- a/Core.ApplicationServices/Rights/UserRightsService.cs +++ b/Core.ApplicationServices/Rights/UserRightsService.cs @@ -1,9 +1,9 @@ using Core.ApplicationServices.Authorization; using Core.ApplicationServices.Organizations; using System.Collections.Generic; +using System; using System.Linq; using Core.Abstractions.Types; -using Core.ApplicationServices.Helpers; using Core.ApplicationServices.Model.RightsHolder; using Core.ApplicationServices.Model.Users; using Core.DomainModel; @@ -48,7 +48,7 @@ public Result, OperationError> GetUsersWithR .Bind(users => MapOrganizationalRightsHolderRelation(users, role)); } - public Result GetUserRoles(int userId, int organizationId) + public Result GetUserRights(int userId, int organizationId) { if (_authorizationContext.GetOrganizationReadAccessLevel(organizationId) < OrganizationDataReadAccessLevel.All) { @@ -67,7 +67,7 @@ public Result GetUserRoles(int userId, int return _userService .GetUserInOrganization(orgUuid.Value, userUuid.Value) - .Select(user => new UserRoleAssignments + .Select(user => new UserRightsAssignments ( user.GetRolesInOrganization(orgUuid.Value).Where(x => x != OrganizationRole.User), user.DataProcessingRegistrationRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), @@ -79,6 +79,21 @@ public Result GetUserRoles(int userId, int ); } + public Maybe RemoveAllRights(int userId, int organizationId) + { + throw new NotImplementedException(); + } + + public Maybe RemoveRights(int userId, int organizationId, UserRightsChangeParameters parameters) + { + throw new NotImplementedException(); + } + + public Maybe TransferRights(int fromUserId, int toUserId, int organizationId, UserRightsChangeParameters parameters) + { + throw new NotImplementedException(); + } + private Result, OperationError> MapOrganizationalRightsHolderRelation(IQueryable users, OrganizationRole role) { var result = new List(); diff --git a/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs b/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs index 9f43d57d32..4e306f76f7 100644 --- a/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs +++ b/Presentation.Web/Controllers/API/V1/UserRolesManagementController.cs @@ -1,9 +1,10 @@ -using System; +using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Web.Http; using Core.ApplicationServices.Model.Users; using Core.ApplicationServices.Rights; +using Core.DomainModel.Organization; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V1.Users; @@ -32,7 +33,7 @@ public UserRolesManagementController(IUserRightsService rightsService) public HttpResponseMessage Get(int organizationId, int userId) { return _rightsService - .GetUserRoles(userId, organizationId) + .GetUserRights(userId, organizationId) .Select(ToRoleAssignmentsDTO) .Match(Ok, FromOperationError); } @@ -47,8 +48,9 @@ public HttpResponseMessage Get(int organizationId, int userId) [HttpDelete] public HttpResponseMessage Delete(int organizationId, int userId) { - //TODO: Also remove the org unit roles - throw new NotImplementedException(); + return _rightsService + .RemoveAllRights(userId, organizationId) + .Match(FromOperationError, Ok); } /// @@ -62,7 +64,15 @@ public HttpResponseMessage Delete(int organizationId, int userId) [HttpDelete] public HttpResponseMessage DeleteRange(int organizationId, int userId, [FromBody] RemoveUserRightsRequest assignmentsToDelete) { - throw new NotImplementedException(); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var changeParameters = CreateChangeParameters(assignmentsToDelete.AdminRoles, assignmentsToDelete.BusinessRights); + + return _rightsService + .RemoveRights(userId, organizationId, changeParameters) + .Match(FromOperationError, Ok); } /// @@ -70,16 +80,20 @@ public HttpResponseMessage DeleteRange(int organizationId, int userId, [FromBody /// /// /// - /// + /// /// A new which represents the changes assigment state [Route("range/transfer")] [HttpPatch] - public HttpResponseMessage PatchTransferToAnotherUser(int organizationId, int userId, TransferRightsRequestDTO assignmentsToDelete) + public HttpResponseMessage PatchTransferToAnotherUser(int organizationId, int userId, TransferRightsRequestDTO assignmentsToTransfer) { - throw new NotImplementedException(); + var changeParameters = CreateChangeParameters(assignmentsToTransfer.AdminRoles, assignmentsToTransfer.BusinessRights); + + return _rightsService + .TransferRights(userId, organizationId, assignmentsToTransfer.ToUserId, changeParameters) + .Match(FromOperationError, Ok); } - private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleAssignments arg) + private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRightsAssignments arg) { return new OrganizationUserRoleAssignmentsDTO { @@ -110,7 +124,7 @@ private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleA .Concat ( arg - .DataProcessingRegistrationRoles + .DataProcessingRegistrationRights .Select(x => new AssignedRightDTO { RoleName = x.Role.Name, @@ -149,5 +163,30 @@ private static OrganizationUserRoleAssignmentsDTO ToRoleAssignmentsDTO(UserRoleA .ToList() }; } + + private static UserRightsChangeParameters CreateChangeParameters(IEnumerable adminRoles, IEnumerable rightsToTransfer) + { + var rightIds = rightsToTransfer + .GroupBy(rights => rights.Scope) + .ToDictionary + ( + grp => grp.Key, + grp => grp.Select(x => x.RightId).ToList() + ); + + return new UserRightsChangeParameters( + adminRoles, + GetIdsByScope(rightIds, BusinessRoleScope.DataProcessingRegistration), + GetIdsByScope(rightIds, BusinessRoleScope.ItSystemUsage), + GetIdsByScope(rightIds, BusinessRoleScope.ItContract), + GetIdsByScope(rightIds, BusinessRoleScope.ItProject), + GetIdsByScope(rightIds, BusinessRoleScope.OrganizationUnit) + ); + } + + private static IEnumerable GetIdsByScope(Dictionary> rightIds, BusinessRoleScope scope) + { + return rightIds.TryGetValue(scope, out var result) ? result : new List(); + } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs b/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs index 8310a3e41d..e75e98ef87 100644 --- a/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs +++ b/Presentation.Web/Models/API/V1/Users/AssignedRightDTO.cs @@ -1,10 +1,13 @@ -namespace Presentation.Web.Models.API.V1.Users +using System.ComponentModel.DataAnnotations; + +namespace Presentation.Web.Models.API.V1.Users { public class AssignedRightDTO { /// /// The ID of the right, which is the assignment of the role to the business object. /// + [Required] public int RightId { get; set; } /// /// The name of the role associated with he right @@ -17,6 +20,7 @@ public class AssignedRightDTO /// /// The role scope of the right assignment /// + [Required] public BusinessRoleScope Scope { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs b/Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs index 19105cdaa8..20bfd41d03 100644 --- a/Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs +++ b/Presentation.Web/Models/API/V1/Users/RemoveUserRightsRequest.cs @@ -1,9 +1,14 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Core.DomainModel.Organization; namespace Presentation.Web.Models.API.V1.Users { public class RemoveUserRightsRequest { - public IEnumerable RightsToRemove { get; set; } + [Required] + public IEnumerable AdminRoles { get; set; } + [Required] + public IEnumerable BusinessRights { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs b/Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs index 12851d3ba0..964e03287a 100644 --- a/Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs +++ b/Presentation.Web/Models/API/V1/Users/TransferRightsRequestDTO.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using Core.DomainModel.Organization; namespace Presentation.Web.Models.API.V1.Users { @@ -8,6 +9,8 @@ public class TransferRightsRequestDTO [Required] public int ToUserId { get; set; } [Required] - public IEnumerable RightsToTransfer { get; set; } + public IEnumerable AdminRoles { get; set; } + [Required] + public IEnumerable BusinessRights { get; set; } } } \ No newline at end of file From b32b6b2ca37babfb748ca4647e7be0deac8ede84 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Thu, 16 Jun 2022 14:38:05 +0200 Subject: [PATCH 207/432] fix --- .../app/shared/typeahead/typeahead.directive.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Presentation.Web/app/shared/typeahead/typeahead.directive.ts b/Presentation.Web/app/shared/typeahead/typeahead.directive.ts index bd84eb077a..282a5683c7 100644 --- a/Presentation.Web/app/shared/typeahead/typeahead.directive.ts +++ b/Presentation.Web/app/shared/typeahead/typeahead.directive.ts @@ -45,12 +45,10 @@ }; scope.onBlur = function () { - if (angular.isUndefined(scope.model) || scope.model.length) { - scope.model = scope.searchInput; - $timeout(function () { - scope.showItems = false; - }, 200); - } + scope.model = scope.searchInput; + $timeout(function () { + scope.showItems = false; + }, 200); }; scope.onKeypress = function (keyEvent) { From f2f98cb50ca9e937bcd46ba82dc78d3784e3db3e Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 14 Jun 2022 10:43:11 +0200 Subject: [PATCH 208/432] Added LastUpdatedBy to contract --- Presentation.Web/App_Start/MappingConfig.cs | 1 + .../Models/API/V1/ItContractDTO.cs | 1 + .../tabs/it-contract-tab-main.view.html | 37 ++++++++++++++----- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index 1ff58b4c27..eafc20fe26 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -356,6 +356,7 @@ public MappingProfile() .ForMember(dest => dest.AssociatedSystemUsages, opt => opt.MapFrom(src => src.AssociatedSystemUsages.Select(x => x.ItSystemUsage))) .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) .ForMember(dest => dest.ObjectOwnerFullName, opt => opt.MapFrom(src => src.ObjectOwner.GetFullName())) + .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser.GetFullName())) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) diff --git a/Presentation.Web/Models/API/V1/ItContractDTO.cs b/Presentation.Web/Models/API/V1/ItContractDTO.cs index 4854fdb46b..2fc5303fd6 100644 --- a/Presentation.Web/Models/API/V1/ItContractDTO.cs +++ b/Presentation.Web/Models/API/V1/ItContractDTO.cs @@ -62,6 +62,7 @@ public class ItContractDTO public IEnumerable Advices { get; set; } public DateTime LastChanged { get; set; } + public string LastChangedByName { get; set; } public int LastChangedByUserId { get; set; } public string ObjectOwnerFullName { get; set; } diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 71bcaa4f1f..1f3cb0bd47 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -186,15 +186,15 @@

{{contract.name}}

- +
@@ -275,6 +275,25 @@

{{contract.name}}

+ +
+
+ + +
+
+ + +
+
From 81162601a25804aeb75cb01167101b47cdde3d51 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Fri, 17 Jun 2022 11:59:30 +0200 Subject: [PATCH 209/432] fixed date formatting --- .../it-contract/tabs/it-contract-tab-main.controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 16e52d88a0..d8f051c67f 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -85,7 +85,7 @@ $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; $scope.yesNoUndecidedValues = yesNoUndecided.options; $scope.contract = contract; - $scope.contract.procurementInitiated = yesNoUndecided.getById(contract.procurementInitiated); + $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate($scope.contract.lastChanged); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; From 37a3d2b8b3d2494c17738c3c51b56967f586ffd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 12:48:48 +0200 Subject: [PATCH 210/432] cleanup --- .../it-contract/tabs/it-contract-tab-main.controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index d8f051c67f..2e84d337bf 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -85,7 +85,7 @@ $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; $scope.yesNoUndecidedValues = yesNoUndecided.options; $scope.contract = contract; - $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate($scope.contract.lastChanged); + $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; From 3b78784eb489c0de958201cb801c148b0f861d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 14:33:07 +0200 Subject: [PATCH 211/432] fix --- .../tabs/it-contract-tab-main.controller.ts | 2 +- .../tabs/it-contract-tab-main.view.html | 2 +- .../it-system-usage-tab-main.controller.ts | 4 ++-- .../it-system-usage/system-usage-view-model.ts | 18 +++++------------- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 2e84d337bf..24441b4e71 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -85,7 +85,7 @@ $scope.autosaveUrl2 = 'api/itcontract/' + contract.id; $scope.yesNoUndecidedValues = yesNoUndecided.options; $scope.contract = contract; - $scope.contract.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); + $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index 1f3cb0bd47..a15892bb2c 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -289,7 +289,7 @@

{{contract.name}}

diff --git a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts index c99900f532..116b8feda0 100644 --- a/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-system/usage/tabs/it-system-usage-tab-main.controller.ts @@ -22,8 +22,8 @@ $scope.systemCategories = systemCategories; $scope.shouldShowCategories = systemCategories.length > 0; $scope.system = itSystemUsage.itSystem; - $scope.lastChangedBy = itSystemUsage.getLastChangedByUserFullName(); - $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(itSystemUsage.lastChanged); + $scope.lastChangedBy = itSystemUsage.lastChangedBy; + $scope.lastChanged = itSystemUsage.lastChanged; autofocus(); $scope.isValidUrl = (url: string) => Kitos.Utility.Validation.isValidExternalReference(url); diff --git a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts index c4c2f29377..b9c13840ea 100644 --- a/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts +++ b/Presentation.Web/app/models/ViewModel/it-system-usage/system-usage-view-model.ts @@ -119,9 +119,8 @@ DPIA: DataOption; answeringDataDPIA: DataOption; hostedAt: HostedAt; - lastChanged: string, - lastChangedByUserName: string, - lastChangedByUserLastName: string, + lastChanged: string; + lastChangedBy: string; } export class SystemUsageViewModel implements ISystemUsageViewModel { @@ -146,8 +145,7 @@ hostedAt: HostedAt; userCount: string; lastChanged: string; - lastChangedByUserName: string; - lastChangedByUserLastName: string; + lastChangedBy: string; constructor(itSystemUsage: any) { this.id = itSystemUsage.id; @@ -157,10 +155,8 @@ this.expirationDate = itSystemUsage.expirationDate; this.isActive = itSystemUsage.isActive; this.active = itSystemUsage.active; - this.lastChanged = itSystemUsage.lastChanged; - this.lastChangedByUserName = itSystemUsage.lastChangedByUserName; - this.lastChangedByUserLastName = itSystemUsage.lastChangedByUserLastName; - + this.lastChanged = Helpers.RenderFieldsHelper.renderDate(itSystemUsage.lastChanged); + this.lastChangedBy = `${itSystemUsage.lastChangedByUserName} ${itSystemUsage.lastChangedByUserLastName}`; const sensitiveDataLevels = _.map(itSystemUsage.sensitiveDataLevels, this.mapDataLevels); this.noDataSelected = _.some(sensitiveDataLevels, x => x === SensitiveDataLevelViewModel.levels.none.value); this.personalDataSelected = _.some(sensitiveDataLevels, x => x === SensitiveDataLevelViewModel.levels.personal.value); @@ -230,9 +226,5 @@ throw new RangeError(`${dataOption} is not a valid RiskLevel`); } } - - getLastChangedByUserFullName() { - return `${this.lastChangedByUserName} ${this.lastChangedByUserLastName}`; - } } } \ No newline at end of file From ba621a474a4d03fd9ee478064c24e6f2da68bcee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Sun, 19 Jun 2022 12:26:57 +0200 Subject: [PATCH 212/432] fix --- DeploymentScripts/DeployWebsiteToEnvironment.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DeploymentScripts/DeployWebsiteToEnvironment.ps1 b/DeploymentScripts/DeployWebsiteToEnvironment.ps1 index d86afd8654..fa446539e7 100644 --- a/DeploymentScripts/DeployWebsiteToEnvironment.ps1 +++ b/DeploymentScripts/DeployWebsiteToEnvironment.ps1 @@ -12,7 +12,7 @@ $ErrorActionPreference = "Stop" Setup-Environment -environmentName $targetEnvironment -Prepare-Package -environmentName $targetEnvironment -pathToArchive (Resolve-Path "$PSScriptRoot\..\WebPackage\Presentation.Web.csproj.zip") +Prepare-Package -environmentName $targetEnvironment -pathToArchive (Resolve-Path "$PSScriptRoot\..\WebPackage\Presentation.Web.zip") Deploy-Website -packageDirectory (Resolve-Path "$PSScriptRoot\..\WebPackage") ` -msDeployUrl "$Env:MsDeployUrl" ` From ea25ff2dfbc624bf28c99a2e32428c718906f161 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Sun, 19 Jun 2022 12:31:38 +0200 Subject: [PATCH 213/432] fix --- DeploymentScripts/DeployWebsite.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DeploymentScripts/DeployWebsite.ps1 b/DeploymentScripts/DeployWebsite.ps1 index f8a8adbedd..d4024d37a8 100644 --- a/DeploymentScripts/DeployWebsite.ps1 +++ b/DeploymentScripts/DeployWebsite.ps1 @@ -3,14 +3,14 @@ Function Deploy-Website($packageDirectory, $msDeployUrl, $msDeployUser, $msDeplo $msdeploy = "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"; $fullCommand=$(("`"{0}`" " + "-verb:sync " + - "-source:package=`"{1}\Presentation.Web.csproj.zip`" " + + "-source:package=`"{1}\Presentation.Web.zip`" " + "-dest:auto,computerName=`"{2}`",userName=`"{3}`",password=`"{4}`",authtype=`"Basic`",includeAcls=`"False`" " + "-disableLink:AppPoolExtension " + "-disableLink:ContentExtension " + "-disableLink:CertificateExtension " + "-skip:objectname=`"dirPath`",absolutepath=`"C:\\kitos_tmp\\app\\App_Data$`" " + "-skip:objectname=`"dirPath`",absolutepath=`"Default Web \Site\\App_Data$`" " + - "-setParamFile:`"{1}\Presentation.Web.csproj.SetParameters.xml`" -allowUntrusted " + + "-setParamFile:`"{1}\Presentation.Web.SetParameters.xml`" -allowUntrusted " + "-setParam:name=`"serilog:minimum-level`",value=`"{5}`" " + "-setParam:name=`"serilog:write-to:Elasticsearch.nodeUris`",value=`"{6}`" " + "-setParam:name=`"SecurityKeyString`",value=`"{7}`" " + From 3a0cf6297a119b532db86082a59321b1bea5f6ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 20 Jun 2022 08:09:41 +0200 Subject: [PATCH 214/432] added query for sytstems which will expire and systems which should become active --- .../Core.DomainServices.csproj | 2 + .../QueryReadModelsWhichShouldBecomeActive.cs | 41 +++++++++++++++++++ .../QueryReadModelsWhichShouldExpire.cs | 34 +++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs create mode 100644 Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs diff --git a/Core.DomainServices/Core.DomainServices.csproj b/Core.DomainServices/Core.DomainServices.csproj index 143556ea51..a9855ddf34 100644 --- a/Core.DomainServices/Core.DomainServices.csproj +++ b/Core.DomainServices/Core.DomainServices.csproj @@ -131,6 +131,8 @@ + + diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs new file mode 100644 index 0000000000..5e30c3b6f0 --- /dev/null +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs @@ -0,0 +1,41 @@ +using System; +using System.Linq; +using Core.DomainModel.ItSystemUsage.Read; + +namespace Core.DomainServices.Queries.SystemUsage +{ + public class QueryReadModelsWhichShouldBecomeActive : IDomainQuery + { + private readonly DateTime _currentTime; + + public QueryReadModelsWhichShouldBecomeActive(DateTime currentTime) + { + _currentTime = currentTime; + } + + public IQueryable Apply(IQueryable source) + { + var currentTime = _currentTime.Date; + return source.Where( + x => + + // 1: Common scenario + ( + // All currently inactive models + x.IsActive == false && + // Exclude those which were enforced as valid - dates have no effect + x.SourceEntity.Active == false && + // Include systems where concluded (start time) has passed or is not defined + (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded >= currentTime) && + // Include only if not expired or no expiration defined + (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) + ) || + + // 2: Out of sync scenario + // Source entity marked as active (forced) but read model state false, mark as target for update + x.SourceEntity.Active == true + + ); + } + } +} diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs new file mode 100644 index 0000000000..3ba08ba4fe --- /dev/null +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldExpire.cs @@ -0,0 +1,34 @@ +using System; +using System.Linq; +using Core.DomainModel.ItSystemUsage.Read; + +namespace Core.DomainServices.Queries.SystemUsage +{ + public class QueryReadModelsWhichShouldExpire : IDomainQuery + { + private readonly DateTime _currentTime; + + public QueryReadModelsWhichShouldExpire(DateTime currentTime) + { + _currentTime = currentTime; + } + + public IQueryable Apply(IQueryable source) + { + var currentTime = _currentTime.Date; + + return source.Where( + + x => + // All currently set as active in the read model + x.IsActive && + // Remove results where the date has no effect (active overrides all other logic) + x.SourceEntity.Active == false && + // Expiration data defined + x.SourceEntity.ExpirationDate != null && + // Expiration date has passed + x.SourceEntity.ExpirationDate < currentTime + ); + } + } +} From a3a29905773600e70d80ea54cba8d4b92db16e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 20 Jun 2022 13:29:07 +0200 Subject: [PATCH 215/432] added tests --- .../QueryReadModelsWhichShouldBecomeActive.cs | 2 +- ...ryReadModelsWhichShouldBecomeActiveTest.cs | 53 +++++++++++++++++++ .../QueryReadModelsWhichShouldExpireTest.cs | 49 +++++++++++++++++ .../ItSystemUsageOverviewReadModelTestData.cs | 23 ++++++++ .../Tests.Unit.Presentation.Web.csproj | 3 ++ 5 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs create mode 100644 Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs create mode 100644 Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs index 5e30c3b6f0..3c703d3160 100644 --- a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs @@ -26,7 +26,7 @@ public IQueryable Apply(IQueryable= currentTime) && + (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded <= currentTime) && // Include only if not expired or no expiration defined (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) ) || diff --git a/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs new file mode 100644 index 0000000000..d23f71c760 --- /dev/null +++ b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldBecomeActiveTest.cs @@ -0,0 +1,53 @@ +using System; +using System.Linq; +using Core.DomainServices.Queries.SystemUsage; +using Tests.Toolkit.Patterns; +using Xunit; +using static Tests.Unit.Presentation.Web.Helpers.ItSystemUsageOverviewReadModelTestData; + +namespace Tests.Unit.Presentation.Web.DomainServices.SystemUsage +{ + public class QueryReadModelsWhichShouldBecomeActiveTest : WithAutoFixture + { + private readonly DateTime _now; + private readonly QueryReadModelsWhichShouldBecomeActive _sut; + + public QueryReadModelsWhichShouldBecomeActiveTest() + { + this._now = DateTime.UtcNow.Date; + _sut = new QueryReadModelsWhichShouldBecomeActive(_now); + } + + [Fact] + public void Apply_Includes_Systems_Which_Are_Currently_Inactive_But_Should_Be_Active() + { + //Arrange + var excludedSinceReadModelIsCurrentlyActive = CreateReadModel(true, false, null, null); + var includedSinceSourceEntityIsActiveOverride = CreateReadModel(false, true, null, null); + var excludedSinceConcludedHasNotYetPassed = CreateReadModel(false, false, _now.Date.AddDays(1), null); + var includedSinceConcludedHasPassedAndNoExpiration = CreateReadModel(false, false, _now.Date, null); + var includedSinceConcludedHasPassedAndNotExpired = CreateReadModel(false, false, _now.Date, _now.Date.AddDays(1)); + var excludedSinceConcludedSinceExpired = CreateReadModel(false, false, _now.Date.AddDays(-2), _now.Date.AddDays(-1)); + + + var input = new[] + { + excludedSinceReadModelIsCurrentlyActive, + includedSinceSourceEntityIsActiveOverride, + excludedSinceConcludedHasNotYetPassed, + includedSinceConcludedHasPassedAndNoExpiration, + includedSinceConcludedHasPassedAndNotExpired, + excludedSinceConcludedSinceExpired + }; + + //Act + var result = _sut.Apply(input.AsQueryable()).ToList(); + + //Assert + Assert.Equal(3, result.Count); + Assert.Contains(includedSinceSourceEntityIsActiveOverride, result); + Assert.Contains(includedSinceConcludedHasPassedAndNoExpiration, result); + Assert.Contains(includedSinceConcludedHasPassedAndNotExpired, result); + } + } +} diff --git a/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs new file mode 100644 index 0000000000..9ced961207 --- /dev/null +++ b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/QueryReadModelsWhichShouldExpireTest.cs @@ -0,0 +1,49 @@ +using System; +using System.Linq; +using Core.DomainServices.Queries.SystemUsage; +using Tests.Toolkit.Patterns; +using Xunit; +using static Tests.Unit.Presentation.Web.Helpers.ItSystemUsageOverviewReadModelTestData; + +namespace Tests.Unit.Presentation.Web.DomainServices.SystemUsage +{ + public class QueryReadModelsWhichShouldExpireTest : WithAutoFixture + { + private readonly DateTime _now; + private readonly QueryReadModelsWhichShouldExpire _sut; + + public QueryReadModelsWhichShouldExpireTest() + { + _now = DateTime.UtcNow.Date; + _sut = new QueryReadModelsWhichShouldExpire(_now); + } + + [Fact] + public void Apply_Includes_Systems_Which_Are_Currently_Inactive_But_Should_Be_Active() + { + //Arrange + var excludedSinceReadModelIsCurrentlyInActive = CreateReadModel(false, false, _now.AddDays(-2), _now.AddDays(-1)); + var excludedSinceSourceModelIsForcedActive = CreateReadModel(true, true, _now.AddDays(-2), _now.AddDays(-1)); + var excludedBecauseExpirationDateIsNull = CreateReadModel(true, false, _now.AddDays(-2), null); + var excludedBecauseExpirationDateHasNotPassed = CreateReadModel(true, false, _now.AddDays(-2), _now); + var includedSinceExpired = CreateReadModel(true, false, null, _now.AddDays(-1)); + + + var input = new[] + { + excludedSinceReadModelIsCurrentlyInActive, + excludedSinceSourceModelIsForcedActive, + excludedBecauseExpirationDateIsNull, + excludedBecauseExpirationDateHasNotPassed, + includedSinceExpired + }; + + //Act + var result = _sut.Apply(input.AsQueryable()).ToList(); + + //Assert + var includedResult = Assert.Single(result); + Assert.Same(includedSinceExpired, includedResult); + } + } +} diff --git a/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs new file mode 100644 index 0000000000..7278396e4d --- /dev/null +++ b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs @@ -0,0 +1,23 @@ +using System; +using Core.DomainModel.ItSystemUsage; +using Core.DomainModel.ItSystemUsage.Read; + +namespace Tests.Unit.Presentation.Web.Helpers +{ + public static class ItSystemUsageOverviewReadModelTestData + { + public static ItSystemUsageOverviewReadModel CreateReadModel(bool isActive, bool sourceIsActive, DateTime? sourceConcluded, DateTime? sourceExpirationDate) + { + return new ItSystemUsageOverviewReadModel + { + IsActive = isActive, + SourceEntity = new ItSystemUsage + { + Active = sourceIsActive, + Concluded = sourceConcluded, + ExpirationDate = sourceExpirationDate + } + }; + } + } +} diff --git a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj index 6c71db161f..d5ca28f78e 100644 --- a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj +++ b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj @@ -234,6 +234,8 @@ + + @@ -256,6 +258,7 @@ + From 3f12c578b1bec718ae8cbfaa8470992f12a9a9a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Mon, 20 Jun 2022 14:47:59 +0200 Subject: [PATCH 216/432] added background job to trigger updates to systems which have become active or which have expired --- .../Core.BackgroundJobs.csproj | 1 + ...mUsageReadModelsWhichChangesActiveState.cs | 58 +++++++++++++++++++ Core.BackgroundJobs/Model/StandardJobIds.cs | 1 + .../Services/BackgroundJobLauncher.cs | 10 +++- .../QueryReadModelsWhichShouldBecomeActive.cs | 28 ++++----- ...tSystemUsageOverviewReadModelRepository.cs | 4 +- ...tSystemUsageOverviewReadModelRepository.cs | 13 +++++ .../BackgroundJobs/IBackgroundJobLauncher.cs | 1 + Presentation.Web/Ninject/KernelBuilder.cs | 1 + Presentation.Web/Startup.cs | 19 +++++- 10 files changed, 117 insertions(+), 19 deletions(-) create mode 100644 Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs diff --git a/Core.BackgroundJobs/Core.BackgroundJobs.csproj b/Core.BackgroundJobs/Core.BackgroundJobs.csproj index 5b9449f9ac..1b5db8ef23 100644 --- a/Core.BackgroundJobs/Core.BackgroundJobs.csproj +++ b/Core.BackgroundJobs/Core.BackgroundJobs.csproj @@ -77,6 +77,7 @@ + diff --git a/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs new file mode 100644 index 0000000000..2fb8d90193 --- /dev/null +++ b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs @@ -0,0 +1,58 @@ +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Core.Abstractions.Types; +using Core.DomainModel.BackgroundJobs; +using Core.DomainServices.Repositories.BackgroundJobs; +using Core.DomainServices.Repositories.SystemUsage; +using Infrastructure.Services.DataAccess; + +namespace Core.BackgroundJobs.Model.ReadModels +{ + public class ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState : IAsyncBackgroundJob + { + private readonly IItSystemUsageOverviewReadModelRepository _readModelRepository; + private readonly IPendingReadModelUpdateRepository _pendingReadModelUpdateRepository; + private readonly ITransactionManager _transactionManager; + private readonly IDatabaseControl _databaseControl; + public string Id => StandardJobIds.ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState; + + public ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState( + IItSystemUsageOverviewReadModelRepository readModelRepository, + IPendingReadModelUpdateRepository pendingReadModelUpdateRepository, + ITransactionManager transactionManager, + IDatabaseControl databaseControl) + { + _readModelRepository = readModelRepository; + _pendingReadModelUpdateRepository = pendingReadModelUpdateRepository; + _transactionManager = transactionManager; + _databaseControl = databaseControl; + } + + public Task> ExecuteAsync(CancellationToken token = default) + { + using var transaction = _transactionManager.Begin(); + + var idsOfSourceEntitiesWhichHaveChangedState = _readModelRepository + .GetReadModelsMustUpdateToChangeActiveState() + .Select(x => x.SourceEntity.Id) + .Distinct() + .ToList(); + + var pendingReadModelUpdates = idsOfSourceEntitiesWhichHaveChangedState + .Select(id => PendingReadModelUpdate.Create(id, PendingReadModelUpdateSourceCategory.ItSystemUsage)) + .ToList(); + + if (pendingReadModelUpdates.Any()) + { + _pendingReadModelUpdateRepository.AddMany(pendingReadModelUpdates); + + _databaseControl.SaveChanges(); + transaction.Commit(); + } + + return Task.FromResult(Result.Success($"Scheduled {idsOfSourceEntitiesWhichHaveChangedState.Count} updates")); + + } + } +} diff --git a/Core.BackgroundJobs/Model/StandardJobIds.cs b/Core.BackgroundJobs/Model/StandardJobIds.cs index 27faad024c..26c46833de 100644 --- a/Core.BackgroundJobs/Model/StandardJobIds.cs +++ b/Core.BackgroundJobs/Model/StandardJobIds.cs @@ -11,5 +11,6 @@ public static class StandardJobIds public static readonly string RebuildDataProcessingReadModels = $"{NamePrefix}rebuild-dpr-read-models"; public static readonly string RebuildItSystemUsageReadModels = $"{NamePrefix}rebuild-it-system-usage-read-models"; public static readonly string PurgeDuplicatePendingReadModelUpdates = $"{NamePrefix}purge-duplicate-read-model-updates"; + public static readonly string ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState = $"{NamePrefix}schedule-updates-for-it-system-usage-read-models-which-changes-active-state"; } } diff --git a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs index e95ddc8566..cd35f521ff 100644 --- a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs +++ b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs @@ -21,6 +21,7 @@ public class BackgroundJobLauncher : IBackgroundJobLauncher private readonly ScheduleItSystemUsageOverviewReadModelUpdates _scheduleItSystemUsageOverviewReadModelUpdates; private readonly IRebuildReadModelsJobFactory _rebuildReadModelsJobFactory; private readonly PurgeDuplicatePendingReadModelUpdates _purgeDuplicatePendingReadModelUpdates; + private readonly ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState _scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive; public BackgroundJobLauncher( ILogger logger, @@ -30,7 +31,8 @@ public BackgroundJobLauncher( RebuildItSystemUsageOverviewReadModelsBatchJob rebuildItSystemUsageOverviewReadModels, ScheduleItSystemUsageOverviewReadModelUpdates scheduleItSystemUsageOverviewReadModelUpdates, IRebuildReadModelsJobFactory rebuildReadModelsJobFactory, - PurgeDuplicatePendingReadModelUpdates purgeDuplicatePendingReadModelUpdates) + PurgeDuplicatePendingReadModelUpdates purgeDuplicatePendingReadModelUpdates, + ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive) { _logger = logger; _checkExternalLinksJob = checkExternalLinksJob; @@ -40,6 +42,7 @@ public BackgroundJobLauncher( _scheduleItSystemUsageOverviewReadModelUpdates = scheduleItSystemUsageOverviewReadModelUpdates; _rebuildReadModelsJobFactory = rebuildReadModelsJobFactory; _purgeDuplicatePendingReadModelUpdates = purgeDuplicatePendingReadModelUpdates; + _scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive = scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive; } public async Task LaunchLinkCheckAsync(CancellationToken token = default) @@ -78,6 +81,11 @@ public async Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token) await Launch(_purgeDuplicatePendingReadModelUpdates, token); } + public async Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default) + { + await Launch(_scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive, token); + } + private async Task Launch(IAsyncBackgroundJob job, CancellationToken token = default) { var jobId = job.Id; diff --git a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs index 3c703d3160..0638b638a9 100644 --- a/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs +++ b/Core.DomainServices/Queries/SystemUsage/QueryReadModelsWhichShouldBecomeActive.cs @@ -19,22 +19,22 @@ public IQueryable Apply(IQueryable - // 1: Common scenario + // All currently inactive models + x.IsActive == false && ( - // All currently inactive models - x.IsActive == false && - // Exclude those which were enforced as valid - dates have no effect - x.SourceEntity.Active == false && - // Include systems where concluded (start time) has passed or is not defined - (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded <= currentTime) && - // Include only if not expired or no expiration defined - (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) + ( + // 1: Common scenario + // Exclude those which were enforced as valid - dates have no effect + x.SourceEntity.Active == false && + // Include systems where concluded (start time) has passed or is not defined + (x.SourceEntity.Concluded == null || x.SourceEntity.Concluded <= currentTime) && + // Include only if not expired or no expiration defined + (x.SourceEntity.ExpirationDate == null || currentTime <= x.SourceEntity.ExpirationDate) ) || - - // 2: Out of sync scenario - // Source entity marked as active (forced) but read model state false, mark as target for update - x.SourceEntity.Active == true - + // 2: Out of sync scenario + // Source entity marked as active (forced) but read model state false, mark as target for update + x.SourceEntity.Active == true + ) ); } } diff --git a/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs b/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs index 2758efa776..490230010c 100644 --- a/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs +++ b/Core.DomainServices/Repositories/SystemUsage/IItSystemUsageOverviewReadModelRepository.cs @@ -1,5 +1,4 @@ -using System.Collections.Generic; -using System.Linq; +using System.Linq; using Core.Abstractions.Types; using Core.DomainModel.ItSystemUsage.Read; @@ -22,5 +21,6 @@ public interface IItSystemUsageOverviewReadModelRepository IQueryable GetByProjectId(int projectId); IQueryable GetByDataProcessingRegistrationId(int dataProcessingRegistrationId); IQueryable GetByItInterfaceId(int interfaceId); + IQueryable GetReadModelsMustUpdateToChangeActiveState(); } } diff --git a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs index 8c18365f07..8be3a5c07c 100644 --- a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs +++ b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs @@ -1,8 +1,10 @@ using System; using System.Linq; +using Core.Abstractions.Extensions; using Core.Abstractions.Types; using Core.DomainModel.ItSystemUsage.Read; using Core.DomainServices.Extensions; +using Core.DomainServices.Queries.SystemUsage; namespace Core.DomainServices.Repositories.SystemUsage @@ -119,5 +121,16 @@ public IQueryable GetByItInterfaceId(int interfa .AsQueryable() .Where(x => x.DependsOnInterfaces.Select(y => y.InterfaceId).Contains(interfaceId)); } + + public IQueryable GetReadModelsMustUpdateToChangeActiveState() + { + var now = DateTime.Now; + var expiringReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldExpire(now).Apply).Select(x => x.Id).ToList(); + var activatingReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldBecomeActive(now).Apply).Select(x => x.Id).ToList(); + + var idsOfReadModelsWhichMustUpdate = expiringReadModelIds.Concat(activatingReadModelIds).Distinct().ToList(); + + return _repository.AsQueryable().ByIds(idsOfReadModelsWhichMustUpdate); + } } } diff --git a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs index 013e40fabc..579e807e74 100644 --- a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs +++ b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs @@ -12,5 +12,6 @@ public interface IBackgroundJobLauncher Task LaunchUpdateItSystemUsageOverviewReadModels(CancellationToken token = default); Task LaunchFullReadModelRebuild(ReadModelRebuildScope scope, CancellationToken token); Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token); + Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default); } } diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index cb71495a99..79bcf1e242 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -627,6 +627,7 @@ private void RegisterBackgroundJobs(IKernel kernel) //Itsystemusage kernel.Bind().ToSelf().InCommandScope(Mode); kernel.Bind().ToSelf().InCommandScope(Mode); + kernel.Bind().ToSelf().InCommandScope(Mode); //Generic kernel.Bind().ToSelf().InCommandScope(Mode); diff --git a/Presentation.Web/Startup.cs b/Presentation.Web/Startup.cs index 852447d18a..0992b7bc10 100644 --- a/Presentation.Web/Startup.cs +++ b/Presentation.Web/Startup.cs @@ -65,19 +65,34 @@ private static void InitializeHangfire(IAppBuilder app) var recurringJobManager = new RecurringJobManager(); + /****************** + * RECURRING JOBS * + *****************/ + recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.CheckExternalLinks, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchLinkCheckAsync(CancellationToken.None)), cronExpression: Cron.Weekly(DayOfWeek.Sunday, 0), timeZone: TimeZoneInfo.Local); - new RecurringJobManager().AddOrUpdate( + recurringJobManager.AddOrUpdate( + recurringJobId: StandardJobIds.CheckExternalLinks, + job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken.None)), + cronExpression: Cron.Daily(), // Every night at 00:00 + timeZone: TimeZoneInfo.Local); + + + /****************** + * ON-DEMAND JOBS * + *****************/ + + recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.RebuildDataProcessingReadModels, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchFullReadModelRebuild(ReadModelRebuildScope.DataProcessingRegistration, CancellationToken.None)), cronExpression: Cron.Never(), //On demand timeZone: TimeZoneInfo.Local); - new RecurringJobManager().AddOrUpdate( + recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.RebuildItSystemUsageReadModels, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchFullReadModelRebuild(ReadModelRebuildScope.ItSystemUsage, CancellationToken.None)), cronExpression: Cron.Never(), //On demand From c55b4f52a950bc521a4779b2d6ab4b56ce80ecd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 08:03:54 +0200 Subject: [PATCH 217/432] added test of the task --- ...mUsageReadModelsWhichChangesActiveState.cs | 8 ++ ...geReadModelsWhichChangesActiveStateTest.cs | 115 ++++++++++++++++++ .../Tests.Unit.Core.csproj | 1 + 3 files changed, 124 insertions(+) create mode 100644 Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs diff --git a/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs index 2fb8d90193..46c67661a5 100644 --- a/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs +++ b/Core.BackgroundJobs/Model/ReadModels/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState.cs @@ -9,6 +9,14 @@ namespace Core.BackgroundJobs.Model.ReadModels { + /// + /// The purpose of this task is to: + /// - Query the current state of the read models for IT-System Usage and identify those who must be scheduled for an update since their Active state contains stale data + /// + /// Why do we need this?: + /// - Read models are normally updated whenever a change to it or one of its dependencies (or parents) change but if no user changes occur, the data will be stable + /// - Active state depends on the current time, and since read models are computed snapshots (to enable queries in the grid) we must keep them in sync using this job which is triggered daily (See Startup.cs) + /// public class ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState : IAsyncBackgroundJob { private readonly IItSystemUsageOverviewReadModelRepository _readModelRepository; diff --git a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs new file mode 100644 index 0000000000..bbd5f735b1 --- /dev/null +++ b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs @@ -0,0 +1,115 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Core.BackgroundJobs.Model.ReadModels; +using Core.DomainModel.BackgroundJobs; +using Core.DomainModel.ItSystemUsage; +using Core.DomainModel.ItSystemUsage.Read; +using Core.DomainServices.Repositories.BackgroundJobs; +using Core.DomainServices.Repositories.SystemUsage; +using Infrastructure.Services.DataAccess; +using Moq; +using Tests.Toolkit.Patterns; +using Xunit; + +namespace Tests.Unit.Core.BackgroundJobs +{ + public class ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest : WithAutoFixture + { + private readonly ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState _sut; + private readonly Mock _readModelRepositoryMock; + private readonly Mock _pendingReadModelUpdatesRepository; + private readonly Mock _transactionManagerMock; + private readonly Mock _databaseControlMock; + + public ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest() + { + _readModelRepositoryMock = new Mock(); + _pendingReadModelUpdatesRepository = new Mock(); + _transactionManagerMock = new Mock(); + _databaseControlMock = new Mock(); + _sut = new ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState( + _readModelRepositoryMock.Object, + _pendingReadModelUpdatesRepository.Object, + _transactionManagerMock.Object, + _databaseControlMock.Object); + } + + [Fact] + public async Task ExecuteAsync_Does_Not_Mutate_Db_If_All_ReadModels_Have_The_Right_State() + { + //Arrange + var transaction = SetupTransaction(); + SetupGetReadModelsWhichMustUpdateActiveState(Enumerable.Empty()); + + //Act + await _sut.ExecuteAsync(); + + //Assert + _databaseControlMock.Verify(x => x.SaveChanges(), Times.Never()); + transaction.Verify(x => x.Commit(), Times.Never()); + _pendingReadModelUpdatesRepository.Verify(x => x.AddMany(It.IsAny>()), Times.Never()); + } + + [Fact] + public async Task ExecuteAsync_Schedules_Updates_To_System_Usage_If_The_Read_Model_Should_Update_Active_State() + { + //Arrange - two read models for the same system usage and one for another + var transaction = SetupTransaction(); + //TODO: Test data helper - use it + + var readModel1ForSystemUsage1 = CreateReadModel(A()); + var readModel2ForSystemUsage1 = CreateReadModel(readModel1ForSystemUsage1.SourceEntity.Id); + var readModelForSystemUsage2 = CreateReadModel(A()); + + SetupGetReadModelsWhichMustUpdateActiveState(new[] { readModel1ForSystemUsage1, readModel2ForSystemUsage1, readModelForSystemUsage2 }); + + //Act + await _sut.ExecuteAsync(); + + //Assert + _databaseControlMock.Verify(x => x.SaveChanges(), Times.Once()); + transaction.Verify(x => x.Commit(), Times.Once()); + _pendingReadModelUpdatesRepository.Verify(x => x.AddMany(It.Is>(updates => VerifyExpectedUpdates(updates, new[] { readModel1ForSystemUsage1.SourceEntity.Id, readModelForSystemUsage2.SourceEntity.Id }))), Times.Once()); + } + + private static bool VerifyExpectedUpdates(IEnumerable updates, int[] expectedIds) + { + var pendingReadModelUpdates = updates.ToList(); + Assert.Equal(expectedIds.Length, pendingReadModelUpdates.Count); + foreach (var expectedId in expectedIds) + { + Assert.Contains(pendingReadModelUpdates, x => x.SourceId == expectedId); + } + Assert.All(pendingReadModelUpdates, x => Assert.Equal(PendingReadModelUpdateSourceCategory.ItSystemUsage, x.Category)); + return true; + } + + private void SetupGetReadModelsWhichMustUpdateActiveState(IEnumerable result) + { + _readModelRepositoryMock + .Setup(x => x.GetReadModelsMustUpdateToChangeActiveState()) + .Returns(result.AsQueryable()); + } + + private Mock SetupTransaction() + { + var transaction = new Mock(); + _transactionManagerMock.Setup(x => x.Begin()).Returns(transaction.Object); + return transaction; + } + + public ItSystemUsageOverviewReadModel CreateReadModel(int systemUsageId) + { + return new ItSystemUsageOverviewReadModel + { + Id = A(), + SourceEntity = new ItSystemUsage + { + Id = systemUsageId + }, + SourceEntityId = systemUsageId + }; + } + } +} diff --git a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj index 61b9ee9c52..910f833658 100644 --- a/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj +++ b/Tests.Unit.Core.ApplicationServices/Tests.Unit.Core.csproj @@ -199,6 +199,7 @@ + From 0a160bbb6c2da9935b7f8a16bc0f26117ffb9933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 08:04:42 +0200 Subject: [PATCH 218/432] fix --- ...atesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs index bbd5f735b1..44fa0986a2 100644 --- a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs +++ b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs @@ -67,7 +67,7 @@ public async Task ExecuteAsync_Schedules_Updates_To_System_Usage_If_The_Read_Mod //Act await _sut.ExecuteAsync(); - //Assert + //Assert - only 2 updates are expected since two read models point to the same source. _databaseControlMock.Verify(x => x.SaveChanges(), Times.Once()); transaction.Verify(x => x.Commit(), Times.Once()); _pendingReadModelUpdatesRepository.Verify(x => x.AddMany(It.Is>(updates => VerifyExpectedUpdates(updates, new[] { readModel1ForSystemUsage1.SourceEntity.Id, readModelForSystemUsage2.SourceEntity.Id }))), Times.Once()); From e3f8d049945332e506bbba0eb834bd6466960d18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 08:06:29 +0200 Subject: [PATCH 219/432] Fix overlapping job id --- Presentation.Web/Startup.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Presentation.Web/Startup.cs b/Presentation.Web/Startup.cs index 0992b7bc10..a15d3d72a4 100644 --- a/Presentation.Web/Startup.cs +++ b/Presentation.Web/Startup.cs @@ -9,7 +9,6 @@ using Infrastructure.Services.Http; using Microsoft.IdentityModel.Tokens; using Presentation.Web.Hangfire; -using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Infrastructure.Middleware; using Presentation.Web.Infrastructure.Model.Authentication; using Presentation.Web.Ninject; @@ -76,7 +75,7 @@ private static void InitializeHangfire(IAppBuilder app) timeZone: TimeZoneInfo.Local); recurringJobManager.AddOrUpdate( - recurringJobId: StandardJobIds.CheckExternalLinks, + recurringJobId: StandardJobIds.ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState, job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken.None)), cronExpression: Cron.Daily(), // Every night at 00:00 timeZone: TimeZoneInfo.Local); From 6f647ad2b78761afdbaa1542dbeec77a4f156608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 09:42:31 +0200 Subject: [PATCH 220/432] added remaining test --- ...tSystemUsageOverviewReadModelRepository.cs | 12 ++++- ...temUsageOverviewReadModelRepositoryTest.cs | 51 +++++++++++++++++++ .../ItSystemUsageOverviewReadModelTestData.cs | 4 ++ .../Tests.Unit.Presentation.Web.csproj | 1 + 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs diff --git a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs index 8be3a5c07c..da14af37eb 100644 --- a/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs +++ b/Core.DomainServices/Repositories/SystemUsage/ItSystemUsageOverviewReadModelRepository.cs @@ -5,6 +5,7 @@ using Core.DomainModel.ItSystemUsage.Read; using Core.DomainServices.Extensions; using Core.DomainServices.Queries.SystemUsage; +using Core.DomainServices.Time; namespace Core.DomainServices.Repositories.SystemUsage @@ -125,8 +126,15 @@ public IQueryable GetByItInterfaceId(int interfa public IQueryable GetReadModelsMustUpdateToChangeActiveState() { var now = DateTime.Now; - var expiringReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldExpire(now).Apply).Select(x => x.Id).ToList(); - var activatingReadModelIds = _repository.AsQueryable().Transform(new QueryReadModelsWhichShouldBecomeActive(now).Apply).Select(x => x.Id).ToList(); + var expiringReadModelIds = _repository + .AsQueryable() + .Transform(new QueryReadModelsWhichShouldExpire(now).Apply) + .Select(x => x.Id); + + var activatingReadModelIds = _repository + .AsQueryable() + .Transform(new QueryReadModelsWhichShouldBecomeActive(now).Apply) + .Select(x => x.Id); var idsOfReadModelsWhichMustUpdate = expiringReadModelIds.Concat(activatingReadModelIds).Distinct().ToList(); diff --git a/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs new file mode 100644 index 0000000000..b8414ca07e --- /dev/null +++ b/Tests.Unit.Presentation.Web/DomainServices/SystemUsage/ItSystemUsageOverviewReadModelRepositoryTest.cs @@ -0,0 +1,51 @@ +using System; +using System.Linq; +using Core.DomainModel.ItSystemUsage.Read; +using Core.DomainServices; +using Core.DomainServices.Repositories.SystemUsage; +using Moq; +using Tests.Toolkit.Patterns; +using Xunit; +using static Tests.Unit.Presentation.Web.Helpers.ItSystemUsageOverviewReadModelTestData; + +namespace Tests.Unit.Presentation.Web.DomainServices.SystemUsage +{ + public class ItSystemUsageOverviewReadModelRepositoryTest : WithAutoFixture + { + private readonly Mock> _repositoryMock; + private readonly ItSystemUsageOverviewReadModelRepository _sut; + private readonly DateTime _now; + + public ItSystemUsageOverviewReadModelRepositoryTest() + { + _repositoryMock = new Mock>(); + _sut = new ItSystemUsageOverviewReadModelRepository(_repositoryMock.Object); + _now = DateTime.Now; + } + + [Fact] + public void GetReadModelsMustUpdateToChangeActiveState_Returns_ReadModels_Where_Active_State_Is_Stale() + { + //Arrange - 1 that must expire and 1 that must be activated + var includedSinceConcludedHasPassedAndNotExpired = CreateReadModel(false, false, _now.Date, _now.Date.AddDays(1)); + var excludedSinceConcludedSinceExpired = CreateReadModel(false, false, _now.Date.AddDays(-2), _now.Date.AddDays(-1)); + var excludedBecauseExpirationDateHasNotPassed = CreateReadModel(true, false, _now.AddDays(-2), _now); + var includedSinceExpired = CreateReadModel(true, false, null, _now.AddDays(-1)); + _repositoryMock.Setup(x => x.AsQueryable()).Returns(new[] + { + includedSinceExpired, + includedSinceConcludedHasPassedAndNotExpired, + excludedSinceConcludedSinceExpired, + excludedBecauseExpirationDateHasNotPassed + }.AsQueryable()); + + //Act + var result = _sut.GetReadModelsMustUpdateToChangeActiveState().ToList(); + + //Assert + Assert.Equal(2, result.Count); + Assert.Contains(includedSinceExpired, result); + Assert.Contains(includedSinceConcludedHasPassedAndNotExpired, result); + } + } +} diff --git a/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs index 7278396e4d..48f799bf9c 100644 --- a/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs +++ b/Tests.Unit.Presentation.Web/Helpers/ItSystemUsageOverviewReadModelTestData.cs @@ -1,4 +1,5 @@ using System; +using AutoFixture; using Core.DomainModel.ItSystemUsage; using Core.DomainModel.ItSystemUsage.Read; @@ -6,13 +7,16 @@ namespace Tests.Unit.Presentation.Web.Helpers { public static class ItSystemUsageOverviewReadModelTestData { + private static readonly Fixture Fixture = new(); public static ItSystemUsageOverviewReadModel CreateReadModel(bool isActive, bool sourceIsActive, DateTime? sourceConcluded, DateTime? sourceExpirationDate) { return new ItSystemUsageOverviewReadModel { + Id = Fixture.Create(), IsActive = isActive, SourceEntity = new ItSystemUsage { + Id = Fixture.Create(), Active = sourceIsActive, Concluded = sourceConcluded, ExpirationDate = sourceExpirationDate diff --git a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj index d5ca28f78e..9456adb2cd 100644 --- a/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj +++ b/Tests.Unit.Presentation.Web/Tests.Unit.Presentation.Web.csproj @@ -215,6 +215,7 @@ + From eec16ffc57e6b46b2b08644b891976324f156235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 10:25:53 +0200 Subject: [PATCH 221/432] fixed odd hangfire issue - maybe due to long jobid (job showed as invalid and was not possible to start) --- Core.BackgroundJobs/Model/StandardJobIds.cs | 2 +- Core.BackgroundJobs/Services/BackgroundJobLauncher.cs | 2 +- .../BackgroundJobs/IBackgroundJobLauncher.cs | 2 +- Presentation.Web/Startup.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Core.BackgroundJobs/Model/StandardJobIds.cs b/Core.BackgroundJobs/Model/StandardJobIds.cs index 26c46833de..a5a9723d70 100644 --- a/Core.BackgroundJobs/Model/StandardJobIds.cs +++ b/Core.BackgroundJobs/Model/StandardJobIds.cs @@ -11,6 +11,6 @@ public static class StandardJobIds public static readonly string RebuildDataProcessingReadModels = $"{NamePrefix}rebuild-dpr-read-models"; public static readonly string RebuildItSystemUsageReadModels = $"{NamePrefix}rebuild-it-system-usage-read-models"; public static readonly string PurgeDuplicatePendingReadModelUpdates = $"{NamePrefix}purge-duplicate-read-model-updates"; - public static readonly string ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState = $"{NamePrefix}schedule-updates-for-it-system-usage-read-models-which-changes-active-state"; + public static readonly string ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState = $"{NamePrefix}fix-stale-itsystem-usage-rms"; } } diff --git a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs index cd35f521ff..47a4ca2d0e 100644 --- a/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs +++ b/Core.BackgroundJobs/Services/BackgroundJobLauncher.cs @@ -81,7 +81,7 @@ public async Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token) await Launch(_purgeDuplicatePendingReadModelUpdates, token); } - public async Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default) + public async Task LaunchUpdateStaleSystemUsageRmAsync(CancellationToken token = default) { await Launch(_scheduleUpdatesForItSystemUsageReadModelsWhichChangesActive, token); } diff --git a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs index 579e807e74..fe50d59c8b 100644 --- a/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs +++ b/Infrastructure.Services/BackgroundJobs/IBackgroundJobLauncher.cs @@ -12,6 +12,6 @@ public interface IBackgroundJobLauncher Task LaunchUpdateItSystemUsageOverviewReadModels(CancellationToken token = default); Task LaunchFullReadModelRebuild(ReadModelRebuildScope scope, CancellationToken token); Task LaunchPurgeDuplicatedReadModelUpdates(CancellationToken token); - Task LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken token = default); + Task LaunchUpdateStaleSystemUsageRmAsync(CancellationToken token = default); } } diff --git a/Presentation.Web/Startup.cs b/Presentation.Web/Startup.cs index a15d3d72a4..a12ab0361e 100644 --- a/Presentation.Web/Startup.cs +++ b/Presentation.Web/Startup.cs @@ -76,7 +76,7 @@ private static void InitializeHangfire(IAppBuilder app) recurringJobManager.AddOrUpdate( recurringJobId: StandardJobIds.ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveState, - job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchScheduleUpdatesItSystemUsagesWhichChangesActiveStateAsync(CancellationToken.None)), + job: Job.FromExpression((IBackgroundJobLauncher launcher) => launcher.LaunchUpdateStaleSystemUsageRmAsync(CancellationToken.None)), cronExpression: Cron.Daily(), // Every night at 00:00 timeZone: TimeZoneInfo.Local); From dd68809878c361e135e7d1abcacc5fc04a33d9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Tue, 21 Jun 2022 10:27:56 +0200 Subject: [PATCH 222/432] cleanup --- ...atesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs index 44fa0986a2..5b8cd1ac38 100644 --- a/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs +++ b/Tests.Unit.Core.ApplicationServices/BackgroundJobs/ScheduleUpdatesForItSystemUsageReadModelsWhichChangesActiveStateTest.cs @@ -56,8 +56,6 @@ public async Task ExecuteAsync_Schedules_Updates_To_System_Usage_If_The_Read_Mod { //Arrange - two read models for the same system usage and one for another var transaction = SetupTransaction(); - //TODO: Test data helper - use it - var readModel1ForSystemUsage1 = CreateReadModel(A()); var readModel2ForSystemUsage1 = CreateReadModel(readModel1ForSystemUsage1.SourceEntity.Id); var readModelForSystemUsage2 = CreateReadModel(A()); From 787089471823b626fd026706c0ed948a11755a79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Fri, 17 Jun 2022 15:17:36 +0200 Subject: [PATCH 223/432] fix error --- Presentation.Web/App_Start/MappingConfig.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index eafc20fe26..4c0862640a 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -356,7 +356,7 @@ public MappingProfile() .ForMember(dest => dest.AssociatedSystemUsages, opt => opt.MapFrom(src => src.AssociatedSystemUsages.Select(x => x.ItSystemUsage))) .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) .ForMember(dest => dest.ObjectOwnerFullName, opt => opt.MapFrom(src => src.ObjectOwner.GetFullName())) - .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser.GetFullName())) + .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser != null ? src.LastChangedByUser.GetFullName() : "")) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) From c6cdd002a56c3ab12f667d418ddc5dfa176911ef Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Tue, 21 Jun 2022 15:33:23 +0200 Subject: [PATCH 224/432] changes after review --- ...ntractGeneralDataModificationParameters.cs | 2 - ...ntractProcurementModificationParameters.cs | 2 + .../Mapping/ItContractResponseMapper.cs | 5 ++- .../Mapping/ItContractWriteModelMapper.cs | 13 ++++--- .../ContractGeneralDataWriteRequestDTO.cs | 5 --- .../ContractProcurementDataWriteRequestDTO.cs | 5 +++ .../ContractGeneralDataResponseDTO.cs | 6 +-- .../ContractProcurementDataResponseDTO.cs | 5 +++ .../tabs/it-contract-tab-main.controller.ts | 1 + .../tabs/it-contract-tab-main.view.html | 2 +- .../Contract/V2/ItContractsApiV2Test.cs | 37 +++++++++---------- 11 files changed, 43 insertions(+), 40 deletions(-) diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs index 0d420fcdf0..b36761973c 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractGeneralDataModificationParameters.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using Core.Abstractions.Types; using Core.ApplicationServices.Model.Shared; -using Core.DomainModel.Shared; namespace Core.ApplicationServices.Model.Contracts.Write { @@ -16,6 +15,5 @@ public class ItContractGeneralDataModificationParameters public OptionalValueChange> EnforceValid { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidFrom { get; set; } = OptionalValueChange>.None; public OptionalValueChange> ValidTo { get; set; } = OptionalValueChange>.None; - public OptionalValueChange> ProcurementInitiated { get; set; } = OptionalValueChange>.None; } } diff --git a/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs b/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs index 15912865df..7a1bcd53e2 100644 --- a/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs +++ b/Core.ApplicationServices/Model/Contracts/Write/ItContractProcurementModificationParameters.cs @@ -1,6 +1,7 @@ using System; using Core.Abstractions.Types; using Core.ApplicationServices.Model.Shared; +using Core.DomainModel.Shared; namespace Core.ApplicationServices.Model.Contracts.Write { @@ -9,5 +10,6 @@ public class ItContractProcurementModificationParameters public OptionalValueChange PurchaseTypeUuid { get; set; } = OptionalValueChange.None; public OptionalValueChange ProcurementStrategyUuid { get; set; } = OptionalValueChange.None; public OptionalValueChange> ProcurementPlan { get; set; } = OptionalValueChange>.None; + public OptionalValueChange> ProcurementInitiated { get; set; } = OptionalValueChange>.None; } } \ No newline at end of file diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs index d5386eac12..b624a4ff8f 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractResponseMapper.cs @@ -10,6 +10,7 @@ using Presentation.Web.Models.API.V2.Response.Generic.Validity; using Presentation.Web.Models.API.V2.Types.Contract; using Presentation.Web.Models.API.V2.Types.Shared; +using Presentation.Web.Controllers.API.V2.External.DataProcessingRegistrations.Mapping; namespace Presentation.Web.Controllers.API.V2.External.ItContracts.Mapping { @@ -173,7 +174,8 @@ private static ContractProcurementDataResponseDTO MapProcurement(ItContract cont { ProcurementStrategy = contract.ProcurementStrategy?.MapIdentityNamePairDTO(), PurchaseType = contract.PurchaseForm?.MapIdentityNamePairDTO(), - ProcurementPlan = MapProcurementPlan(contract) + ProcurementPlan = MapProcurementPlan(contract), + ProcurementInitiated = contract.ProcurementInitiated?.ToYesNoUndecidedChoice(), }; } @@ -196,7 +198,6 @@ private static ContractGeneralDataResponseDTO MapGeneral(ItContract contract) { return new() { - ProcurementInitiated = contract.ProcurementInitiated, ContractId = contract.ItContractId, Notes = contract.Note, ContractTemplate = contract.ContractTemplate?.MapIdentityNamePairDTO(), diff --git a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs index 95a5d9bcd0..6af20831f8 100644 --- a/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs +++ b/Presentation.Web/Controllers/API/V2/External/ItContracts/Mapping/ItContractWriteModelMapper.cs @@ -17,6 +17,7 @@ using System.Linq; using System.Linq.Expressions; using Core.DomainModel.Shared; +using Presentation.Web.Controllers.API.V2.External.DataProcessingRegistrations.Mapping; namespace Presentation.Web.Controllers.API.V2.External.ItContracts.Mapping { @@ -303,11 +304,7 @@ private static ItContractGeneralDataModificationParameters MapGeneralData x.General.Validity.EnforcedValid) ? (dto.Validity?.EnforcedValid ?? Maybe.None).AsChangedValue() - : OptionalValueChange>.None, - - ProcurementInitiated = rule.MustUpdate(x => x.General.ProcurementInitiated) - ? (dto.ProcurementInitiated ?? Maybe.None).AsChangedValue() - : OptionalValueChange>.None + : OptionalValueChange>.None }; } @@ -325,7 +322,11 @@ private static ItContractProcurementModificationParameters MapProcurement x.Procurement.ProcurementPlan) ? MapProcurementPlan(dto.ProcurementPlan).AsChangedValue() - : OptionalValueChange>.None + : OptionalValueChange>.None, + + ProcurementInitiated = rule.MustUpdate(x => x.Procurement.ProcurementInitiated) + ? (dto.ProcurementInitiated?.ToYesNoUndecidedOption() ?? Maybe.None).AsChangedValue() + : OptionalValueChange>.None }; } diff --git a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs index 4f86b8411d..49d143124d 100644 --- a/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs +++ b/Presentation.Web/Models/API/V2/Request/Contract/ContractGeneralDataWriteRequestDTO.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using Core.DomainModel.Shared; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Request.Generic.Validity; @@ -38,9 +37,5 @@ public class ContractGeneralDataWriteRequestDTO /// Validity of the it-contract ///
public ValidityWriteRequestDTO Validity { get; set; } - /// - /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) - /// - public YesNoUndecidedOption? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs b/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs index ea84fd2533..a5dcd0e947 100644 --- a/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs +++ b/Presentation.Web/Models/API/V2/Request/Contract/ContractProcurementDataWriteRequestDTO.cs @@ -1,6 +1,7 @@ using System; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Types.Contract; +using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Request.Contract { @@ -24,5 +25,9 @@ public class ContractProcurementDataWriteRequestDTO /// Procurement plan ///
public ProcurementPlanDTO ProcurementPlan { get; set; } + /// + /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) + /// + public YesNoUndecidedChoice? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs index 10d9845f13..f78d944fdb 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs @@ -1,8 +1,8 @@ using System.Collections.Generic; -using Core.DomainModel.Shared; using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Validity; +using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Response.Contract { @@ -31,9 +31,5 @@ public class ContractGeneralDataResponseDTO /// Validity of the it-contract /// public ValidityResponseDTO Validity { get; set; } - /// - /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) - /// - public YesNoUndecidedOption? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs index 3e93a19f80..2d70331455 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs @@ -1,6 +1,7 @@ using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Types.Contract; +using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Response.Contract { @@ -19,5 +20,9 @@ public class ContractProcurementDataResponseDTO /// Procurement plan /// public ProcurementPlanDTO ProcurementPlan { get; set; } + /// + /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) + /// + public YesNoUndecidedChoice? ProcurementInitiated { get; set; } } } \ No newline at end of file diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index 24441b4e71..cbc55f2a2e 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -86,6 +86,7 @@ $scope.yesNoUndecidedValues = yesNoUndecided.options; $scope.contract = contract; $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); + $scope.procurementInitiated = yesNoUndecided.getById(contract.procurementInitiated); $scope.hasWriteAccess = hasWriteAccess; $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index a15892bb2c..e341011468 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -113,7 +113,7 @@

{{contract.name}}

diff --git a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs index 407bd04d89..a2cab3103e 100644 --- a/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs +++ b/Tests.Integration.Presentation.Web/Contract/V2/ItContractsApiV2Test.cs @@ -8,7 +8,6 @@ using System.Threading.Tasks; using AutoFixture; using Core.Abstractions.Extensions; -using Core.DomainModel.Shared; using Core.DomainServices.Extensions; using ExpectedObjects; using Presentation.Web.Models.API.V1; @@ -687,17 +686,17 @@ public async Task Can_PATCH_With_Procurement() } [Theory] - [InlineData(true, true, true, true)] - [InlineData(true, true, false, true)] - [InlineData(true, false, true, true)] - [InlineData(false, true, true, true)] - [InlineData(true, true, true, false)] - [InlineData(false, false, false, false)] - public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withProcurementInitiated) + [InlineData(true, true, true)] + [InlineData(true, true, false)] + [InlineData(true, false, true)] + [InlineData(false, true, true)] + [InlineData(true, true, true)] + [InlineData(false, false, false)] + public async Task Can_POST_With_GeneralData(bool withContractType, bool withContractTemplate, bool withAgreementElements) { //Arrange var (token, user, organization) = await CreatePrerequisitesAsync(); - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements, withProcurementInitiated); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, withContractType, withContractTemplate, withAgreementElements); var request = new CreateNewContractRequestDTO { OrganizationUuid = organization.Uuid, @@ -726,7 +725,7 @@ public async Task Can_PATCH_With_GeneralData() var dto = await ItContractV2Helper.PostContractAsync(token, request); //Act - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, true, true, true); using var response1 = await ItContractV2Helper.SendPatchContractGeneralDataAsync(token, dto.Uuid, generalDataWriteRequestDto); Assert.Equal(HttpStatusCode.OK, response1.StatusCode); @@ -736,7 +735,7 @@ public async Task Can_PATCH_With_GeneralData() AssertGeneralDataSection(generalDataWriteRequestDto, contractType, contractTemplateType, agreementElements, freshDTO); //Act - new values - (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, false, true, false, false); + (contractType, contractTemplateType, agreementElements, generalDataWriteRequestDto) = await CreateGeneralDataRequestDTO(organization, false, true, false); using var response2 = await ItContractV2Helper.SendPatchContractGeneralDataAsync(token, dto.Uuid, generalDataWriteRequestDto); Assert.Equal(HttpStatusCode.OK, response2.StatusCode); @@ -1668,7 +1667,7 @@ public async Task Can_POST_Full_Contract() var (token, _, organization) = await CreatePrerequisitesAsync(); var parent = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest, procurementStrategy, purchaseType) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType, contractTemplateType, agreementElements, generalDataWriteRequest) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType, contractTemplateType, agreementElements, generalDataWriteRequest) = await CreateGeneralDataRequestDTO(organization, true, true, true); var contractResponsibleDataWriteRequest = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials = await CreateHandoverTrials(organization, true, true, true); @@ -1736,7 +1735,7 @@ public async Task Can_PUT_All() var parent1 = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest1, procurementStrategy1, purchaseType1) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType1, contractTemplateType1, agreementElements1, generalDataWriteRequest1) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType1, contractTemplateType1, agreementElements1, generalDataWriteRequest1) = await CreateGeneralDataRequestDTO(organization, true, true, true); var contractResponsibleDataWriteRequest1 = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest1 = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials1 = await CreateHandoverTrials(organization, true, true, true); @@ -1793,7 +1792,7 @@ public async Task Can_PUT_All() //Arrange - Put on filled var parent2 = await ItContractV2Helper.PostContractAsync(token, CreateNewSimpleRequest(organization.Uuid)); var (procurementRequest2, procurementStrategy2, purchaseType2) = await CreateProcurementRequestAsync(organization.Uuid); - var (contractType2, contractTemplateType2, agreementElements2, generalDataWriteRequest2) = await CreateGeneralDataRequestDTO(organization, true, true, true, true); + var (contractType2, contractTemplateType2, agreementElements2, generalDataWriteRequest2) = await CreateGeneralDataRequestDTO(organization, true, true, true); var contractResponsibleDataWriteRequest2 = await CreateContractResponsibleDataRequestDTO(token, organization, true, true, true); var supplierRequest2 = await CreateContractSupplierDataRequestDTO(true, true, true); var handoverTrials2 = await CreateHandoverTrials(organization, true, true, true); @@ -2111,7 +2110,7 @@ private async Task CreateContractSupplierDa return contractResponsibleDataWriteRequestDto; } - private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements, bool withProcurementInitiated) + private async Task<(IdentityNamePairResponseDTO contractType, IdentityNamePairResponseDTO contractTemplateType, List agreementElements, ContractGeneralDataWriteRequestDTO generalDataWriteRequestDto)> CreateGeneralDataRequestDTO(OrganizationDTO organization, bool withContractType, bool withContractTemplate, bool withAgreementElements) { var contractType = withContractType ? (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractContractTypes, @@ -2132,7 +2131,6 @@ private async Task CreateContractSupplierDa ContractTypeUuid = contractType?.Uuid, ContractTemplateUuid = contractTemplateType?.Uuid, AgreementElementUuids = agreementElements?.Select(x => x.Uuid).ToList(), - ProcurementInitiated = A(), Validity = new ValidityWriteRequestDTO() { ValidFrom = DateTime.Now, @@ -2158,7 +2156,6 @@ private static void AssertGeneralDataSection( Assert.Equal(request?.Validity?.ValidTo?.Date, freshDTO.General.Validity?.ValidTo); Assert.Equal(request?.Validity?.ValidFrom?.Date, freshDTO.General.Validity?.ValidFrom); Assert.Equal(request?.Validity?.EnforcedValid == true, freshDTO.General.Validity?.EnforcedValid == true); - Assert.Equal(request?.ProcurementInitiated, freshDTO.General.ProcurementInitiated); if (expectedAgreementElements == null) Assert.Empty(freshDTO.General.AgreementElements); @@ -2294,6 +2291,7 @@ private static void AssertProcurement(ContractProcurementDataWriteRequestDTO exp { Assert.Equal(expected.ProcurementPlan.QuarterOfYear, actual.ProcurementPlan.QuarterOfYear); Assert.Equal(expected.ProcurementPlan.Year, actual.ProcurementPlan.Year); + Assert.Equal(expected.ProcurementInitiated, actual.ProcurementInitiated); } } @@ -2301,11 +2299,12 @@ private static void AssertProcurement(ContractProcurementDataWriteRequestDTO exp { var procurementStrategy = (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractProcurementStrategyTypes, organizationUuid, 10, 0)).RandomItem(); var purchaseType = (await OptionV2ApiHelper.GetOptionsAsync(OptionV2ApiHelper.ResourceName.ItContractPurchaseTypes, organizationUuid, 10, 0)).RandomItem(); - var request = new ContractProcurementDataWriteRequestDTO() + var request = new ContractProcurementDataWriteRequestDTO { ProcurementStrategyUuid = procurementStrategy.Uuid, PurchaseTypeUuid = purchaseType.Uuid, - ProcurementPlan = new ProcurementPlanDTO() + ProcurementInitiated = A(), + ProcurementPlan = new ProcurementPlanDTO { QuarterOfYear = Convert.ToByte((A() % 4) + 1), Year = A() From 92efd6db57f3a60117a41c67d5d30521d09dbf98 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 08:52:51 +0200 Subject: [PATCH 225/432] changes after review --- .../Contract/Write/ItContractWriteService.cs | 9 ++++-- .../Contract/ItContractResponseDTO.cs | 1 - .../V2/ItContractWriteModelMapperTest.cs | 29 ++++++++++++------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs index bf6ebcaedb..534097c772 100644 --- a/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs +++ b/Core.ApplicationServices/Contract/Write/ItContractWriteService.cs @@ -467,7 +467,6 @@ private Result UpdateGeneralData(ItContract contract .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTypeUuid, UpdateContractType)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.ContractTemplateUuid, UpdateContractTemplate)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.Notes, (c, newValue) => c.Note = newValue)) - .Bind(itContract => itContract.WithOptionalUpdate(generalData.ProcurementInitiated, (c, newValue) => c.ProcurementInitiated = newValue.GetValueOrFallback(YesNoUndecidedOption.Undecided))) .Bind(itContract => itContract.WithOptionalUpdate(generalData.EnforceValid, (c, newValue) => c.Active = newValue.GetValueOrFallback(false))) .Bind(itContract => UpdateValidityPeriod(itContract, generalData).Match>(error => error, () => itContract)) .Bind(itContract => itContract.WithOptionalUpdate(generalData.AgreementElementUuids, UpdateAgreementElements)); @@ -542,8 +541,12 @@ private Result UpdateProcurement(ItContract contract { return contract .WithOptionalUpdate(procurementParameters.ProcurementStrategyUuid, UpdateProcurementStrategy) - .Bind(itContract => itContract.WithOptionalUpdate(procurementParameters.PurchaseTypeUuid, UpdatePurchaseType)) - .Bind(itContract => itContract.WithOptionalUpdate(procurementParameters.ProcurementPlan, UpdateProcurementPlan)); + .Bind(itContract => + itContract.WithOptionalUpdate(procurementParameters.PurchaseTypeUuid, UpdatePurchaseType)) + .Bind(itContract => + itContract.WithOptionalUpdate(procurementParameters.ProcurementPlan, UpdateProcurementPlan)) + .Bind(itContract => itContract.WithOptionalUpdate(procurementParameters.ProcurementInitiated, + (c, newValue) => c.ProcurementInitiated = newValue.GetValueOrFallback(YesNoUndecidedOption.Undecided))); } private static Maybe UpdateProcurementPlan(ItContract contract, Maybe<(byte half, int year)> plan) diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs index 8f6c547abf..96d7250df2 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ItContractResponseDTO.cs @@ -1,7 +1,6 @@ using Presentation.Web.Models.API.V2.SharedProperties; using System; using System.Collections.Generic; -using Core.DomainModel.Shared; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Roles; using Presentation.Web.Models.API.V2.Response.Organization; diff --git a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs index eaa971dd3e..adfa779eb2 100644 --- a/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs +++ b/Tests.Unit.Presentation.Web/Models/V2/ItContractWriteModelMapperTest.cs @@ -16,6 +16,7 @@ using Presentation.Web.Models.API.V2.Types.Shared; using Tests.Toolkit.Extensions; using Xunit; +using Presentation.Web.Controllers.API.V2.External.DataProcessingRegistrations.Mapping; namespace Tests.Unit.Presentation.Web.Models.V2 { @@ -103,7 +104,7 @@ public static IEnumerable GetUndefinedGeneralDataPropertiesInput() public static IEnumerable GetUndefinedProcurementPropertiesInput() { - return CreateGetUndefinedSectionsInput(3); + return CreateGetUndefinedSectionsInput(4); } public static IEnumerable GetUndefinedResponsibleDataPropertiesInput() @@ -311,11 +312,12 @@ public void FromPUT_Enforces_Undefined_Properties_In_GeneralSection( public void FromPOST_Ignores_Undefined_Properties_In_ProcurementSection( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { //Arrange var input = new CreateNewContractRequestDTO(); - ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan); + ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan, noProcurementInitiated); //Act var output = _sut.FromPOST(input).Procurement.Value; @@ -331,11 +333,12 @@ public void FromPOST_Ignores_Undefined_Properties_In_ProcurementSection( public void FromPATCH_Ignores_Undefined_Properties_In_ProcurementSection( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { //Arrange var input = new UpdateContractRequestDTO(); - ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan); + ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan, noProcurementInitiated); //Act var output = _sut.FromPATCH(input).Procurement.Value; @@ -351,11 +354,12 @@ public void FromPATCH_Ignores_Undefined_Properties_In_ProcurementSection( public void FromPUT_Enforces_Undefined_Properties_In_ProcurementSection( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { //Arrange var input = new UpdateContractRequestDTO(); - ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan); + ConfigureProcurementInputContext(noProcurementStrategyUuid, noPurchaseTypeUuid, noProcurementPlan, noProcurementInitiated); //Act var output = _sut.FromPUT(input).Procurement.Value; @@ -1516,22 +1520,24 @@ private static void AssertGeneralData(ContractGeneralDataWriteRequestDTO input, Assert.Equal(input.Validity.ValidFrom, AssertPropertyContainsDataChange(output.ValidFrom)); Assert.Equal(input.Validity.ValidTo, AssertPropertyContainsDataChange(output.ValidTo)); Assert.Equal(input.Validity.EnforcedValid, AssertPropertyContainsDataChange(output.EnforceValid)); - Assert.Equal(input.ProcurementInitiated, AssertPropertyContainsDataChange(output.ProcurementInitiated)); } private static void AssertProcurement(bool hasValues, ContractProcurementDataWriteRequestDTO expected, ItContractProcurementModificationParameters actual) { Assert.Equal(expected.ProcurementStrategyUuid, AssertPropertyContainsDataChange(actual.ProcurementStrategyUuid)); Assert.Equal(expected.PurchaseTypeUuid, AssertPropertyContainsDataChange(actual.PurchaseTypeUuid)); + if (hasValues) { var (half, year) = AssertPropertyContainsDataChange(actual.ProcurementPlan); Assert.Equal(expected.ProcurementPlan.QuarterOfYear, half); Assert.Equal(expected.ProcurementPlan.Year, year); + Assert.Equal(expected.ProcurementInitiated, AssertPropertyContainsDataChange(actual.ProcurementInitiated).ToYesNoUndecidedChoice()); } else { AssertPropertyContainsResetDataChange(actual.ProcurementPlan); + AssertPropertyContainsResetDataChange(actual.ProcurementInitiated); } } @@ -1541,8 +1547,9 @@ private ContractProcurementDataWriteRequestDTO CreateProcurementRequest(bool has { ProcurementStrategyUuid = hasValues ? A() : null, PurchaseTypeUuid = hasValues ? A() : null, + ProcurementInitiated = hasValues ? A() : null, ProcurementPlan = hasValues - ? new ProcurementPlanDTO() + ? new ProcurementPlanDTO { QuarterOfYear = Convert.ToByte(A() % 1 + 1), Year = A() @@ -1615,13 +1622,15 @@ private void ConfigureGeneralDataInputContext( private void ConfigureProcurementInputContext( bool noProcurementStrategyUuid, bool noPurchaseTypeUuid, - bool noProcurementPlan) + bool noProcurementPlan, + bool noProcurementInitiated) { var sectionProperties = GetAllInputPropertyNames(); if (noProcurementStrategyUuid) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.ProcurementStrategyUuid)); if (noPurchaseTypeUuid) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.PurchaseTypeUuid)); if (noProcurementPlan) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.ProcurementPlan)); + if (noProcurementInitiated) sectionProperties.Remove(nameof(ContractProcurementDataWriteRequestDTO.ProcurementInitiated)); _currentHttpRequestMock .Setup(x => x.GetDefinedJsonProperties(nameof(UpdateContractRequestDTO.Procurement).WrapAsEnumerable().AsParameterMatch())) From da1c1b1d479ceaa4b9679c071dbd49b17583c227 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 15:58:06 +0200 Subject: [PATCH 226/432] changes after review 2 --- ...97_AddProcurmentInitiatedToitContract.resx | 126 ------------------ ...ocurmentInitiatedToItContract.Designer.cs} | 6 +- ...555_AddProcurmentInitiatedToItContract.cs} | 2 +- ...55_AddProcurmentInitiatedToItContract.resx | 126 ++++++++++++++++++ Presentation.Web/App_Start/WebApiConfig.cs | 2 + .../ContractGeneralDataResponseDTO.cs | 1 - .../ContractProcurementDataResponseDTO.cs | 2 +- .../it-contract-plan.controller.ts | 74 ++++++---- .../tabs/it-contract-tab-main.view.html | 84 ++++++------ .../app/models/it-contract/it-contract.ts | 2 +- 10 files changed, 231 insertions(+), 194 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx rename Infrastructure.DataAccess/Migrations/{202206171137197_AddProcurmentInitiatedToitContract.Designer.cs => 202206221211555_AddProcurmentInitiatedToItContract.Designer.cs} (77%) rename Infrastructure.DataAccess/Migrations/{202206171137197_AddProcurmentInitiatedToitContract.cs => 202206221211555_AddProcurmentInitiatedToItContract.cs} (89%) create mode 100644 Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx diff --git a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx b/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx deleted file mode 100644 index 508a51ea9f..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.Designer.cs b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.Designer.cs similarity index 77% rename from Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.Designer.cs rename to Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.Designer.cs index 576af357e1..5c0deed1a2 100644 --- a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.Designer.cs +++ b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.Designer.cs @@ -7,13 +7,13 @@ namespace Infrastructure.DataAccess.Migrations using System.Resources; [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddProcurmentInitiatedToitContract : IMigrationMetadata + public sealed partial class AddProcurmentInitiatedToItContract : IMigrationMetadata { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddProcurmentInitiatedToitContract)); + private readonly ResourceManager Resources = new ResourceManager(typeof(AddProcurmentInitiatedToItContract)); string IMigrationMetadata.Id { - get { return "202206171137197_AddProcurmentInitiatedToitContract"; } + get { return "202206221211555_AddProcurmentInitiatedToItContract"; } } string IMigrationMetadata.Source diff --git a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.cs b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.cs similarity index 89% rename from Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.cs rename to Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.cs index f9a72c831c..7aa4d6136a 100644 --- a/Infrastructure.DataAccess/Migrations/202206171137197_AddProcurmentInitiatedToitContract.cs +++ b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.cs @@ -3,7 +3,7 @@ using System; using System.Data.Entity.Migrations; - public partial class AddProcurmentInitiatedToitContract : DbMigration + public partial class AddProcurmentInitiatedToItContract : DbMigration { public override void Up() { diff --git a/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx new file mode 100644 index 0000000000..ba7ef929df --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Presentation.Web/App_Start/WebApiConfig.cs b/Presentation.Web/App_Start/WebApiConfig.cs index 1d96b81e58..327539162a 100644 --- a/Presentation.Web/App_Start/WebApiConfig.cs +++ b/Presentation.Web/App_Start/WebApiConfig.cs @@ -28,6 +28,7 @@ using DataType = Core.DomainModel.ItSystem.DataType; using HelpText = Core.DomainModel.HelpText; using Core.DomainModel.Shared; +using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web { @@ -61,6 +62,7 @@ public static void Register(HttpConfiguration config) config.Filters.Add(new RequireValidatedCSRFAttributed()); config.Filters.Add(new ValidateActionParametersAttribute()); config.Filters.Add(new DenyRightsHoldersAccessAttribute()); //By default block all actions for users with rights holders access in one or more organizations + config.Count().Filter().OrderBy().Expand().Select().MaxTop(null); } diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs index f78d944fdb..b2e1899630 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs @@ -2,7 +2,6 @@ using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Validity; -using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Response.Contract { diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs index 2d70331455..3bfcf9d08e 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractProcurementDataResponseDTO.cs @@ -21,7 +21,7 @@ public class ContractProcurementDataResponseDTO /// public ProcurementPlanDTO ProcurementPlan { get; set; } /// - /// Repurchase Initiated for IT-Contract. (Genanskaffelse igangsat) + /// Procurement Initiated for IT-Contract. (Genanskaffelse igangsat) /// public YesNoUndecidedChoice? ProcurementInitiated { get; set; } } diff --git a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts index 8820820484..015efd5dbe 100644 --- a/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts +++ b/Presentation.Web/app/components/it-contract/it-contract-plan.controller.ts @@ -20,6 +20,7 @@ export class OverviewPlanController implements IOverviewPlanController { private storageKey = "it-contract-plan-options"; private orgUnitStorageKey = "it-contract-plan-orgunit"; + private procurementInitiatedStorageKey = "it-contract-overview-procuremeninitiated"; private gridState = this.gridStateService.getService(this.storageKey, this.user); private roleSelectorDataSource; private uiBluePrint = Models.UICustomization.Configs.BluePrints.ItContractUiCustomizationBluePrint; @@ -70,8 +71,7 @@ private userAccessRights: Models.Api.Authorization.EntitiesAccessRightsDTO, private uiState: Models.UICustomization.ICustomizedModuleUI) { this.$rootScope.page.title = "IT Kontrakt - Tid"; - - + $scope.$on("kendoWidgetCreated", (event, widget) => { // the event is emitted for every widget; if we have multiple @@ -240,16 +240,25 @@ "AssociatedSystemRelations($select=Id)," + //Only using the length, so select 1 field "Reference($select=URL,Title,ExternalReferenceId)," + "LastChangedByUser($select=Name,LastName)"; + // if orgunit is set then the org unit filter is active var orgUnitId = this.$window.sessionStorage.getItem(this.orgUnitStorageKey); + var filterParameters = ""; + var query; + // if orgunit is set then the org unit filter is active if (orgUnitId === null) { - return `/odata/Organizations(${this.user.currentOrganizationId})/ItContracts` + - urlParameters; + query = `/odata/Organizations(${this.user.currentOrganizationId})/ItContracts`; } else { - return `/odata/Organizations(${this.user.currentOrganizationId - })/OrganizationUnits(${orgUnitId})/ItContracts` + - urlParameters; + query = `/odata/Organizations(${this.user + .currentOrganizationId})/OrganizationUnits(${orgUnitId})/ItContracts`; + } + + var procurementId = this.$window.sessionStorage.getItem(this.procurementInitiatedStorageKey); + if (procurementId !== null) { + filterParameters += `&%24filter=ProcurementInitiated eq '${procurementId}'`; } + + return query + urlParameters + filterParameters; }, dataType: "json" }, @@ -805,10 +814,8 @@ hidden: true, filterable: { cell: { - template: customFilter, - dataSource: [], showOperators: false, - operator: "contains" + template: this.procurementInitiatedOptionsDropDownList } } }, @@ -994,7 +1001,18 @@ return concatRoles; } - private orgUnitDropDownList = (args) => { + private orgUnitDropDownList = (args) => this.createFilterDropDown(this.orgUnitStorageKey, this.orgUnits, args, false); + private procurementInitiatedOptionsDropDownList = (args) => { + const yesNoUndecided = new Models.ViewModel.Shared.YesNoUndecidedOptions(); + var options = []; + yesNoUndecided.options.forEach((value) => { + options.push({ Id: value.id, Name: value.text }); + }); + + this.createFilterDropDown(this.procurementInitiatedStorageKey, options, args, true); + }; + + private createFilterDropDown(key: string, dataSource: any, args: any, insertEmptyValue: boolean, customDefaultIndex?: number) { var self = this; function indent(dataItem: any) { @@ -1002,9 +1020,20 @@ return htmlSpace.repeat(dataItem.$level) + dataItem.Name; } - function setDefaultOrgUnit() { + function setDefaultValue() { var kendoElem = this; - var idTofind = self.$window.sessionStorage.getItem(self.orgUnitStorageKey); + + var idTofind = self.$window.sessionStorage.getItem(key); + + if (insertEmptyValue && !idTofind) { + const defaultIndex = `${customDefaultIndex}` ?? "0"; + const valueWithIndexZero = dataSource.filter(x => x.Id == defaultIndex); + if (valueWithIndexZero === null) { + dataSource.splice(defaultIndex, 0, { Id: defaultIndex, Name: "" }); + } + + idTofind = defaultIndex; + } if (!idTofind) { // if no id was found then do nothing @@ -1012,17 +1041,17 @@ } // find the index of the org unit that matches the users default org unit - var index = self._.findIndex(kendoElem.dataItems(), (item: any) => item.Id == idTofind); + var index = self._.findIndex(kendoElem.dataItems(), (item: any) => (item.Id == idTofind)); // -1 = no match - // 0 = root org unit, which should display all. So remove org unit filter + // 0 = root value, which should display all. So remove org unit filter if (index > 0) { - // select the users default org unit + // select the users default value kendoElem.select(index); } } - function orgUnitChanged() { + function valueChanged() { var kendoElem = this; // can't use args.dataSource directly, // if we do then the view doesn't update. @@ -1033,10 +1062,10 @@ if (selectedIndex > 0) { // filter by selected - self.$window.sessionStorage.setItem(self.orgUnitStorageKey, selectedId.toString()); + self.$window.sessionStorage.setItem(key, selectedId.toString()); } else { // else clear filter because the 0th element should act like a placeholder - self.$window.sessionStorage.removeItem(self.orgUnitStorageKey); + self.$window.sessionStorage.removeItem(key); } // setting the above session value will cause the grid to fetch from a different URL // see the function part of this http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-transport.read.url @@ -1047,14 +1076,13 @@ // http://dojo.telerik.com/ODuDe/5 args.element.removeAttr("data-bind"); args.element.kendoDropDownList({ - dataSource: this.orgUnits, + dataSource: dataSource, dataValueField: "Id", dataTextField: "Name", template: indent, - dataBound: setDefaultOrgUnit, - change: orgUnitChanged + dataBound: setDefaultValue, + change: valueChanged }); - } public roleSelectorOptions = (): kendo.ui.DropDownListOptions => { diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index e341011468..efc62ec4ed 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -31,30 +31,39 @@

{{contract.name}}

+ data-label="Kontrakttype" + data-placeholder="Vælg kontrakttype" + data-selected-text="{{ contract.contractTypeName }}" + data-ng-disabled="!hasWriteAccess" + data-ng-model="contract.contractTypeId" + data-options="contractTypes" + data-auto-save-url="{{ autoSaveUrl }}" + data-field="contractTypeId">
+ data-label="Kontraktskabelon" + data-placeholder="Vælg kontraktskabelon" + data-selected-text="{{ contract.contractTemplateName }}" + data-ng-disabled="!hasWriteAccess" + data-ng-model="contract.contractTemplateId" + data-options="contractTemplates" + data-auto-save-url="{{ autoSaveUrl }}" + data-field="contractTemplateId">
+ + +
+ + +
@@ -70,28 +79,28 @@

{{contract.name}}

+ data-label="Indkøbsform" + data-placeholder="Vælg indkøbsform" + data-selected-text="{{ contract.purchaseFormName }}" + data-ng-disabled="!hasWriteAccess" + data-ng-model="contract.purchaseFormId" + data-options="purchaseForms" + data-auto-save-url="{{ autoSaveUrl }}" + data-field="purchaseFormId">
+ data-label="Genanskaffelsesstrategi" + data-placeholder="Vælg genanskaffelsesstrategi" + data-selected-text="{{ contract.procurementStrategyName }}" + data-ng-disabled="!hasWriteAccess" + data-ng-model="contract.procurementStrategyId" + data-options="procurementStrategies" + data-auto-save-url="{{ autoSaveUrl }}" + data-field="procurementStrategyId">
@@ -106,16 +115,15 @@

{{contract.name}}

data-ng-disabled="!hasWriteAccess">
- - -
+ +
- - Genanskaffelse igangsat + + data-ng-disabled="!hasWriteAccess" />
diff --git a/Presentation.Web/app/models/it-contract/it-contract.ts b/Presentation.Web/app/models/it-contract/it-contract.ts index 879aa5e3b1..3fced6614f 100644 --- a/Presentation.Web/app/models/it-contract/it-contract.ts +++ b/Presentation.Web/app/models/it-contract/it-contract.ts @@ -120,6 +120,6 @@ AssociatedAgreementElementTypes: Array; DataProcessingRegistrations: Models.DataProcessing.IDataProcessingRegistration[]; - ProcurementInitiated: Models.Api.Shared.YesNoUndecidedOption; + ProcurementInitiated: Models.Api.Shared.YesNoUndecidedOption | null; } } From d3b99f9a9c754728010a31692bc9b0fa3426f48d Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 16:16:17 +0200 Subject: [PATCH 227/432] removed lines from unnused commit --- .../it-contract/tabs/it-contract-tab-main.view.html | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index efc62ec4ed..dc76bc2f8e 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -55,15 +55,6 @@

{{contract.name}}

data-field="contractTemplateId">
- - -
- - -
From 1f2aa6f0b8b8d2fb9476432811f11aa69146ccef Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 16:21:29 +0200 Subject: [PATCH 228/432] removed unnessecary changes from Procurement --- Presentation.Web/App_Start/MappingConfig.cs | 1 - Presentation.Web/App_Start/WebApiConfig.cs | 2 -- 2 files changed, 3 deletions(-) diff --git a/Presentation.Web/App_Start/MappingConfig.cs b/Presentation.Web/App_Start/MappingConfig.cs index 39b3b477a9..4d2ffdc87f 100644 --- a/Presentation.Web/App_Start/MappingConfig.cs +++ b/Presentation.Web/App_Start/MappingConfig.cs @@ -357,7 +357,6 @@ public MappingProfile() .ForMember(dest => dest.AgreementElements, opt => opt.MapFrom(src => src.AssociatedAgreementElementTypes.Select(x => x.AgreementElementType))) .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser.GetFullName())) .ForMember(dest => dest.ObjectOwnerFullName, opt => opt.MapFrom(src => src.ObjectOwner.GetFullName())) - .ForMember(dest => dest.LastChangedByName, opt => opt.MapFrom(src => src.LastChangedByUser != null ? src.LastChangedByUser.GetFullName() : "")) .ReverseMap() .ForMember(contract => contract.AssociatedSystemUsages, opt => opt.Ignore()) .ForMember(contract => contract.AssociatedAgreementElementTypes, opt => opt.Ignore()) diff --git a/Presentation.Web/App_Start/WebApiConfig.cs b/Presentation.Web/App_Start/WebApiConfig.cs index 327539162a..1d96b81e58 100644 --- a/Presentation.Web/App_Start/WebApiConfig.cs +++ b/Presentation.Web/App_Start/WebApiConfig.cs @@ -28,7 +28,6 @@ using DataType = Core.DomainModel.ItSystem.DataType; using HelpText = Core.DomainModel.HelpText; using Core.DomainModel.Shared; -using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web { @@ -62,7 +61,6 @@ public static void Register(HttpConfiguration config) config.Filters.Add(new RequireValidatedCSRFAttributed()); config.Filters.Add(new ValidateActionParametersAttribute()); config.Filters.Add(new DenyRightsHoldersAccessAttribute()); //By default block all actions for users with rights holders access in one or more organizations - config.Count().Filter().OrderBy().Expand().Select().MaxTop(null); } From 8f2bad7b34a892275cfa8ce83296f3922d6c22e0 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 16:45:00 +0200 Subject: [PATCH 229/432] fixed build error --- .../Infrastructure.DataAccess.csproj | 10 +- ...rocurmentInitiatedToItContract.Designer.cs | 29 ++++ ...1060_AddProcurmentInitiatedToItContract.cs | 20 +++ ...60_AddProcurmentInitiatedToItContract.resx | 126 ++++++++++++++++++ 4 files changed, 180 insertions(+), 5 deletions(-) create mode 100644 Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.Designer.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.cs create mode 100644 Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.resx diff --git a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj index 867c28c9ec..3b08302860 100644 --- a/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj +++ b/Infrastructure.DataAccess/Infrastructure.DataAccess.csproj @@ -877,9 +877,9 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs - - - 202206171137197_AddProcurmentInitiatedToitContract.cs + + + 202206221441060_AddProcurmentInitiatedToItContract.cs @@ -1453,8 +1453,8 @@ 202206131047556_AddDprReadModelLastUpdatedBy.cs - - 202206171137197_AddProcurmentInitiatedToitContract.cs + + 202206221441060_AddProcurmentInitiatedToItContract.cs diff --git a/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.Designer.cs b/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.Designer.cs new file mode 100644 index 0000000000..6b6b247a65 --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Infrastructure.DataAccess.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class AddProcurmentInitiatedToItContract : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddProcurmentInitiatedToItContract)); + + string IMigrationMetadata.Id + { + get { return "202206221441060_AddProcurmentInitiatedToItContract"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.cs b/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.cs new file mode 100644 index 0000000000..7aa4d6136a --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.cs @@ -0,0 +1,20 @@ +namespace Infrastructure.DataAccess.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddProcurmentInitiatedToItContract : DbMigration + { + public override void Up() + { + AddColumn("dbo.ItContract", "ProcurementInitiated", c => c.Int()); + CreateIndex("dbo.ItContract", "ProcurementInitiated"); + } + + public override void Down() + { + DropIndex("dbo.ItContract", new[] { "ProcurementInitiated" }); + DropColumn("dbo.ItContract", "ProcurementInitiated"); + } + } +} diff --git a/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.resx b/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.resx new file mode 100644 index 0000000000..508a51ea9f --- /dev/null +++ b/Infrastructure.DataAccess/Migrations/202206221441060_AddProcurmentInitiatedToItContract.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + + dbo + + \ No newline at end of file From a9982847aa0a53d3caa4e586e5e8e31e5bf78593 Mon Sep 17 00:00:00 2001 From: Aleksander Naskret Date: Wed, 22 Jun 2022 16:45:54 +0200 Subject: [PATCH 230/432] removed unused files --- ...rocurmentInitiatedToItContract.Designer.cs | 29 ---- ...1555_AddProcurmentInitiatedToItContract.cs | 20 --- ...55_AddProcurmentInitiatedToItContract.resx | 126 ------------------ 3 files changed, 175 deletions(-) delete mode 100644 Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.Designer.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.cs delete mode 100644 Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx diff --git a/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.Designer.cs b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.Designer.cs deleted file mode 100644 index 5c0deed1a2..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -namespace Infrastructure.DataAccess.Migrations -{ - using System.CodeDom.Compiler; - using System.Data.Entity.Migrations; - using System.Data.Entity.Migrations.Infrastructure; - using System.Resources; - - [GeneratedCode("EntityFramework.Migrations", "6.4.4")] - public sealed partial class AddProcurmentInitiatedToItContract : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(AddProcurmentInitiatedToItContract)); - - string IMigrationMetadata.Id - { - get { return "202206221211555_AddProcurmentInitiatedToItContract"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.cs b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.cs deleted file mode 100644 index 7aa4d6136a..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Infrastructure.DataAccess.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class AddProcurmentInitiatedToItContract : DbMigration - { - public override void Up() - { - AddColumn("dbo.ItContract", "ProcurementInitiated", c => c.Int()); - CreateIndex("dbo.ItContract", "ProcurementInitiated"); - } - - public override void Down() - { - DropIndex("dbo.ItContract", new[] { "ProcurementInitiated" }); - DropColumn("dbo.ItContract", "ProcurementInitiated"); - } - } -} diff --git a/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx b/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx deleted file mode 100644 index ba7ef929df..0000000000 --- a/Infrastructure.DataAccess/Migrations/202206221211555_AddProcurmentInitiatedToItContract.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 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 - - - dbo - - \ No newline at end of file From 16d1f72d7a1a5808b7eaae51f3d761ccf8694cc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 23 Jun 2022 08:39:34 +0200 Subject: [PATCH 231/432] added the "remove all" implementation --- .../Core.ApplicationServices.csproj | 2 +- ...ministrativeAccessRightsChangedHandler.cs} | 6 +- .../OrganizationRoleService.cs | 2 +- .../OrganizationRightsService.cs | 4 +- .../Rights/UserRightsService.cs | 170 +++++++++++++++++- Core.ApplicationServices/UserService.cs | 2 +- Core.DomainModel/Core.DomainModel.csproj | 2 +- ...s => AdministrativeAccessRightsChanged.cs} | 4 +- Core.DomainModel/User.cs | 27 ++- .../Role/RoleAssignmentService.cs | 14 +- .../API/V1/GlobalAdminController.cs | 4 +- Presentation.Web/Ninject/KernelBuilder.cs | 2 +- .../ApplicationServices/UserServiceTest.cs | 2 +- 13 files changed, 216 insertions(+), 25 deletions(-) rename Core.ApplicationServices/Model/EventHandler/{ClearCacheOnAccessRightsChangedHandler.cs => ClearCacheOnAdministrativeAccessRightsChangedHandler.cs} (61%) rename Core.DomainModel/Organization/DomainEvents/{AccessRightsChanged.cs => AdministrativeAccessRightsChanged.cs} (59%) diff --git a/Core.ApplicationServices/Core.ApplicationServices.csproj b/Core.ApplicationServices/Core.ApplicationServices.csproj index 91a1cf69ec..8be2496ab4 100644 --- a/Core.ApplicationServices/Core.ApplicationServices.csproj +++ b/Core.ApplicationServices/Core.ApplicationServices.csproj @@ -192,7 +192,7 @@ - + diff --git a/Core.ApplicationServices/Model/EventHandler/ClearCacheOnAccessRightsChangedHandler.cs b/Core.ApplicationServices/Model/EventHandler/ClearCacheOnAdministrativeAccessRightsChangedHandler.cs similarity index 61% rename from Core.ApplicationServices/Model/EventHandler/ClearCacheOnAccessRightsChangedHandler.cs rename to Core.ApplicationServices/Model/EventHandler/ClearCacheOnAdministrativeAccessRightsChangedHandler.cs index c04dc5cd27..3b3b6a288d 100644 --- a/Core.ApplicationServices/Model/EventHandler/ClearCacheOnAccessRightsChangedHandler.cs +++ b/Core.ApplicationServices/Model/EventHandler/ClearCacheOnAdministrativeAccessRightsChangedHandler.cs @@ -5,16 +5,16 @@ namespace Core.ApplicationServices.Model.EventHandler { - public class ClearCacheOnAccessRightsChangedHandler : IDomainEventHandler + public class ClearCacheOnAdministrativeAccessRightsChangedHandler : IDomainEventHandler { private readonly IObjectCache _objectCache; - public ClearCacheOnAccessRightsChangedHandler(IObjectCache objectCache) + public ClearCacheOnAdministrativeAccessRightsChangedHandler(IObjectCache objectCache) { _objectCache = objectCache; } - public void Handle(AccessRightsChanged domainEvent) + public void Handle(AdministrativeAccessRightsChanged domainEvent) { _objectCache.Clear(OrganizationalUserContextCacheKeyFactory.Create(domainEvent.UserId)); } diff --git a/Core.ApplicationServices/OrganizationRoleService.cs b/Core.ApplicationServices/OrganizationRoleService.cs index 0ab01e1243..b71bfaddc1 100644 --- a/Core.ApplicationServices/OrganizationRoleService.cs +++ b/Core.ApplicationServices/OrganizationRoleService.cs @@ -31,7 +31,7 @@ private OrganizationRight AddOrganizationRoleToUser(User user, Organization orga }); _organizationRights.Save(); - _domainEvents.Raise(new AccessRightsChanged(user.Id)); + _domainEvents.Raise(new AdministrativeAccessRightsChanged(user.Id)); return result; } diff --git a/Core.ApplicationServices/Organizations/OrganizationRightsService.cs b/Core.ApplicationServices/Organizations/OrganizationRightsService.cs index e2abb4e685..fc33567b84 100644 --- a/Core.ApplicationServices/Organizations/OrganizationRightsService.cs +++ b/Core.ApplicationServices/Organizations/OrganizationRightsService.cs @@ -44,7 +44,7 @@ public Result AssignRole(int organizationId right = _organizationRightRepository.Insert(right); _organizationRightRepository.Save(); - _domainEvents.Raise(new AccessRightsChanged(userId)); + _domainEvents.Raise(new AdministrativeAccessRightsChanged(userId)); return right; } @@ -86,7 +86,7 @@ private Result RemoveRight(OrganizationRigh _organizationRightRepository.DeleteByKey(right.Id); _organizationRightRepository.Save(); - _domainEvents.Raise(new AccessRightsChanged(right.UserId)); + _domainEvents.Raise(new AdministrativeAccessRightsChanged(right.UserId)); return right; } diff --git a/Core.ApplicationServices/Rights/UserRightsService.cs b/Core.ApplicationServices/Rights/UserRightsService.cs index 79f11fc381..e9fab72c9a 100644 --- a/Core.ApplicationServices/Rights/UserRightsService.cs +++ b/Core.ApplicationServices/Rights/UserRightsService.cs @@ -7,10 +7,18 @@ using Core.ApplicationServices.Model.RightsHolder; using Core.ApplicationServices.Model.Users; using Core.DomainModel; +using Core.DomainModel.GDPR; +using Core.DomainModel.ItContract; +using Core.DomainModel.ItProject; +using Core.DomainModel.ItSystem; +using Core.DomainModel.ItSystemUsage; using Core.DomainModel.Organization; using Core.DomainServices.Authorization; using Core.DomainServices.Extensions; using Core.DomainServices.Generic; +using Core.DomainServices.Role; +using Infrastructure.Services.DataAccess; +using Serilog; namespace Core.ApplicationServices.Rights { @@ -21,19 +29,46 @@ public class UserRightsService : IUserRightsService private readonly IAuthorizationContext _authorizationContext; private readonly IOrganizationalUserContext _organizationalUserContext; private readonly IEntityIdentityResolver _identityResolver; + private readonly IOrganizationRightsService _organizationRightsService; + private readonly IRoleAssignmentService _itContractRightService; + private readonly IRoleAssignmentService _itSystemRightService; + private readonly IRoleAssignmentService _itProjectRightService; + private readonly IRoleAssignmentService _organizationUnitRightService; + private readonly IRoleAssignmentService _dprRoleAssignmentsService; + private readonly ITransactionManager _transactionManager; + private readonly IDatabaseControl _databaseControl; + private readonly ILogger _logger; public UserRightsService( IUserService userService, IOrganizationService organizationService, IAuthorizationContext authorizationContext, IOrganizationalUserContext organizationalUserContext, - IEntityIdentityResolver identityResolver) + IEntityIdentityResolver identityResolver, + IOrganizationRightsService organizationRightsService, + IRoleAssignmentService itContractRightService, + IRoleAssignmentService itSystemRightService, + IRoleAssignmentService itProjectRightService, + IRoleAssignmentService organizationUnitRightService, + IRoleAssignmentService dprRoleAssignmentsService, + ITransactionManager transactionManager, + IDatabaseControl databaseControl, + ILogger logger) { _userService = userService; _organizationService = organizationService; _authorizationContext = authorizationContext; _organizationalUserContext = organizationalUserContext; _identityResolver = identityResolver; + _organizationRightsService = organizationRightsService; + _itContractRightService = itContractRightService; + _itSystemRightService = itSystemRightService; + _itProjectRightService = itProjectRightService; + _organizationUnitRightService = organizationUnitRightService; + _dprRoleAssignmentsService = dprRoleAssignmentsService; + _transactionManager = transactionManager; + _databaseControl = databaseControl; + _logger = logger; } public Result, OperationError> GetUsersWithRoleAssignment(OrganizationRole role) @@ -70,18 +105,37 @@ public Result GetUserRights(int userId, i .Select(user => new UserRightsAssignments ( user.GetRolesInOrganization(orgUuid.Value).Where(x => x != OrganizationRole.User), - user.DataProcessingRegistrationRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), - user.ItSystemRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), - user.ItContractRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), - user.ItProjectRights.Where(right => right.Object.OrganizationId == organizationId).ToList(), - user.OrganizationUnitRights.Where(right => right.Object.OrganizationId == organizationId).ToList() + user.GetDataProcessingRegistrationRights(organizationId).ToList(), + user.GetItSystemRights(organizationId).ToList(), + user.GetItContractRights(organizationId).ToList(), + user.GetItProjectRights(organizationId).ToList(), + user.GetOrganizationUnitRights(organizationId).ToList() ) ); } public Maybe RemoveAllRights(int userId, int organizationId) { - throw new NotImplementedException(); + var transaction = _transactionManager.Begin(); + var uuidResult = _identityResolver.ResolveUuid(organizationId); + + if (uuidResult.IsNone) + { + return new OperationError(nameof(organizationId), OperationFailure.BadInput); + } + + var removeAllRightsError = _organizationService + .GetOrganization(uuidResult.Value, OrganizationDataReadAccessLevel.All) + .Bind(WithWriteAccess) + .Match(organization => RemoveAllRights(userId, organization), error => error); + + if (removeAllRightsError.IsNone) + { + _databaseControl.SaveChanges(); + transaction.Commit(); + } + + return removeAllRightsError; } public Maybe RemoveRights(int userId, int organizationId, UserRightsChangeParameters parameters) @@ -117,5 +171,107 @@ private Result, OperationError> MapOrganizat return result; } + + private Maybe RemoveAllRights(int userId, Organization organization) + { + return _userService + .GetUsersInOrganization(organization.Uuid).Select(users => users.ById(userId)) + .Match(user => RemoveAllRights(user, organization), error => error); + } + + private Maybe RemoveAllRights(User user, Organization organization) + { + var dprRights = user.GetDataProcessingRegistrationRights(organization.Id).ToList(); + var contractRights = user.GetItContractRights(organization.Id).ToList(); + var projectRights = user.GetItProjectRights(organization.Id).ToList(); + var systemRights = user.GetItSystemRights(organization.Id).ToList(); + var organizationUnitRights = user.GetOrganizationUnitRights(organization.Id).ToList(); + var rolesInOrganization = user.GetRolesInOrganization(organization.Uuid); + + return RemoveBusinessRights(user, organization, dprRights, _dprRoleAssignmentsService) + .Match + ( + error => error, + () => RemoveBusinessRights(user, organization, contractRights, _itContractRightService) + ) + .Match + ( + error => error, + () => RemoveBusinessRights(user, organization, projectRights, _itProjectRightService) + ) + .Match + ( + error => error, + () => RemoveBusinessRights(user, organization, systemRights, _itSystemRightService) + ) + .Match + ( + error => error, + () => RemoveBusinessRights(user, organization, organizationUnitRights, + _organizationUnitRightService) + ) + .Match + ( + error => error, + () => RemoveAdministrativeRoles(user, organization, rolesInOrganization) + ); + } + + private Maybe RemoveAdministrativeRoles(User user, Organization organization, IEnumerable rolesInOrganization) + { + foreach (var organizationRole in rolesInOrganization) + { + var removeRoleResult = _organizationRightsService.RemoveRole(organization.Id, user.Id, organizationRole); + if (removeRoleResult.Failed) + { + var operationFailure = removeRoleResult.Error; + _logger.Error( + "Failed to remove role {role} from user {userId} in organization {organizationId}. Failed with {errorCode}", + organizationRole, user.Id, organization.Id, operationFailure); + { + return new OperationError("Failed removing organization role:" + organizationRole.ToString("G"), operationFailure); + } + } + } + + return Maybe.None; + } + + private Maybe RemoveBusinessRights( + User user, + Organization organization, + IEnumerable rights, + IRoleAssignmentService assignmentService) + where TRight : Entity, IRight + where TRole : OptionEntity, IRoleEntity, IOptionReference + where TModel : HasRightsEntity, IOwnedByOrganization + { + foreach (var right in rights) + { + var removeRoleResult = assignmentService.RemoveRole(right.Object, right.RoleId, right.UserId); + if (removeRoleResult.Failed) + { + _logger.Error( + "Failed to remove right {rightType}:{rightId} located on object: {objectType}:{objectId} from user {userId} in organization {organizationId}. Failed with {error}", + right.GetType().Name, right.Id, right.Object.GetType().Name, right.ObjectId, user.Id, organization.Id, removeRoleResult.Error.ToString() + ); + { + return new OperationError($"Failed to remove right of type {right.GetType().Name} with rightId {right.Id}:{removeRoleResult.Error}", removeRoleResult.Error.FailureType); + } + } + } + + return Maybe.None; + } + + private Result WithWriteAccess(Organization organization) + { + if (_authorizationContext.AllowModify(organization)) + { + return organization; + } + + return new OperationError(OperationFailure.Forbidden); + } } } diff --git a/Core.ApplicationServices/UserService.cs b/Core.ApplicationServices/UserService.cs index 65b7e5b801..d85bdff64f 100644 --- a/Core.ApplicationServices/UserService.cs +++ b/Core.ApplicationServices/UserService.cs @@ -326,7 +326,7 @@ public Maybe DeleteUserFromKitos(Guid userUuid) _userRepository.Save(); transaction.Commit(); - _domainEvents.Raise(new AccessRightsChanged(user.Id)); + _domainEvents.Raise(new AdministrativeAccessRightsChanged(user.Id)); return Maybe.None; } diff --git a/Core.DomainModel/Core.DomainModel.csproj b/Core.DomainModel/Core.DomainModel.csproj index f397d23679..8a070bb735 100644 --- a/Core.DomainModel/Core.DomainModel.csproj +++ b/Core.DomainModel/Core.DomainModel.csproj @@ -184,7 +184,7 @@ - + diff --git a/Core.DomainModel/Organization/DomainEvents/AccessRightsChanged.cs b/Core.DomainModel/Organization/DomainEvents/AdministrativeAccessRightsChanged.cs similarity index 59% rename from Core.DomainModel/Organization/DomainEvents/AccessRightsChanged.cs rename to Core.DomainModel/Organization/DomainEvents/AdministrativeAccessRightsChanged.cs index 1c505acfd6..c049b0907e 100644 --- a/Core.DomainModel/Organization/DomainEvents/AccessRightsChanged.cs +++ b/Core.DomainModel/Organization/DomainEvents/AdministrativeAccessRightsChanged.cs @@ -2,11 +2,11 @@ namespace Core.DomainModel.Organization.DomainEvents { - public class AccessRightsChanged : IDomainEvent + public class AdministrativeAccessRightsChanged : IDomainEvent { public int UserId { get; } - public AccessRightsChanged(int userId) + public AdministrativeAccessRightsChanged(int userId) { UserId = userId; } diff --git a/Core.DomainModel/User.cs b/Core.DomainModel/User.cs index c4424147ef..d8b6c61248 100644 --- a/Core.DomainModel/User.cs +++ b/Core.DomainModel/User.cs @@ -36,7 +36,7 @@ public User() HandoverParticipants = new List(); LockedOutDate = null; FailedAttempts = 0; - Uuid = Guid.NewGuid(); + Uuid = Guid.NewGuid(); } public string Name { get; set; } @@ -75,21 +75,41 @@ public bool CanAuthenticate() /// public virtual ICollection OrganizationUnitRights { get; set; } + public IEnumerable GetOrganizationUnitRights(int organiztionId) + { + return OrganizationUnitRights.Where(x => x.Object.OrganizationId == organiztionId); + } + /// /// The project rights for the user /// public virtual ICollection ItProjectRights { get; set; } + public IEnumerable GetItProjectRights(int organizationId) + { + return ItProjectRights.Where(x => x.Object.OrganizationId == organizationId); + } + /// /// The system rights for the user /// public virtual ICollection ItSystemRights { get; set; } + public IEnumerable GetItSystemRights(int organizationId) + { + return ItSystemRights.Where(x => x.Object.OrganizationId == organizationId); + } + /// /// The system rights for the user /// public virtual ICollection ItContractRights { get; set; } + public IEnumerable GetItContractRights(int organizationId) + { + return ItContractRights.Where(x => x.Object.OrganizationId == organizationId); + } + /// /// Passwords reset request issued for the user /// @@ -122,6 +142,11 @@ public bool CanAuthenticate() /// public virtual ICollection DataProcessingRegistrationRights { get; set; } + public IEnumerable GetDataProcessingRegistrationRights(int organizationId) + { + return DataProcessingRegistrationRights.Where(x => x.Object.OrganizationId == organizationId); + } + public DateTime? LockedOutDate { get; set; } public int FailedAttempts { get; set; } diff --git a/Core.DomainServices/Role/RoleAssignmentService.cs b/Core.DomainServices/Role/RoleAssignmentService.cs index 90f9724a30..27873fa846 100644 --- a/Core.DomainServices/Role/RoleAssignmentService.cs +++ b/Core.DomainServices/Role/RoleAssignmentService.cs @@ -4,6 +4,7 @@ using Core.Abstractions.Extensions; using Core.Abstractions.Types; using Core.DomainModel; +using Core.DomainModel.Events; using Core.DomainServices.Extensions; using Core.DomainServices.Options; using Infrastructure.Services.DataAccess; @@ -20,17 +21,20 @@ public class RoleAssignmentService : IRoleAssignmentServi private readonly IUserRepository _userRepository; private readonly IGenericRepository _rightsRepository; private readonly ITransactionManager _transactionManager; + private readonly IDomainEvents _domainEvents; public RoleAssignmentService( IOptionsService localRoleOptionsService, IUserRepository userRepository, IGenericRepository rightsRepository, - ITransactionManager transactionManager) + ITransactionManager transactionManager, + IDomainEvents domainEvents) { _localRoleOptionsService = localRoleOptionsService; _userRepository = userRepository; _rightsRepository = rightsRepository; _transactionManager = transactionManager; + _domainEvents = domainEvents; } public IEnumerable GetApplicableRoles(TModel model) @@ -83,7 +87,12 @@ public Result AssignRole(TModel model, int roleId, int u if (role.IsNone) return new OperationError("Invalid role id", OperationFailure.BadInput); - return model.AssignRole(role.Value, user.Value); + var assignRoleResult = model.AssignRole(role.Value, user.Value); + if (assignRoleResult.Ok) + { + _domainEvents.Raise(new EntityUpdatedEvent(model)); + } + return assignRoleResult; } public Result AssignRole(TModel model, Guid roleUuid, Guid userUuid) @@ -124,6 +133,7 @@ private Result RemoveRole(TModel model, TRole role, User return removeResult.Error; _rightsRepository.Delete(removeResult.Value); + _domainEvents.Raise(new EntityUpdatedEvent(model)); _rightsRepository.Save(); return removeResult.Value; } diff --git a/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs b/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs index 8c4e888289..0d4ee66893 100644 --- a/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs +++ b/Presentation.Web/Controllers/API/V1/GlobalAdminController.cs @@ -72,7 +72,7 @@ public HttpResponseMessage Post(CreateGlobalAdminDTO dto) user.IsGlobalAdmin = true; _userRepository.Save(); - _domainEvents.Raise(new AccessRightsChanged(dto.UserId)); + _domainEvents.Raise(new AdministrativeAccessRightsChanged(dto.UserId)); var outDto = Mapper.Map(user); @@ -100,7 +100,7 @@ public HttpResponseMessage Delete([FromUri] int userId) user.IsGlobalAdmin = false; _userRepository.Save(); - _domainEvents.Raise(new AccessRightsChanged(userId)); + _domainEvents.Raise(new AdministrativeAccessRightsChanged(userId)); var outDto = Mapper.Map(user); diff --git a/Presentation.Web/Ninject/KernelBuilder.cs b/Presentation.Web/Ninject/KernelBuilder.cs index cb71495a99..f81e05b129 100644 --- a/Presentation.Web/Ninject/KernelBuilder.cs +++ b/Presentation.Web/Ninject/KernelBuilder.cs @@ -327,7 +327,7 @@ private void RegisterDomainEventsEngine(IKernel kernel) RegisterDomainEvent(kernel); RegisterDomainEvent, RelationSpecificInterfaceEventsHandler>(kernel); RegisterDomainEvent, UnbindBrokenReferenceReportsOnSourceDeletedHandler>(kernel); - RegisterDomainEvent(kernel); + RegisterDomainEvent(kernel); RegisterDomainEvent, UpdateRelationsOnSystemUsageDeletedHandler>(kernel); RegisterDomainEvent, UnbindBrokenReferenceReportsOnSourceDeletedHandler>(kernel); RegisterDomainEvent, CleanupDataProcessingRegistrationsOnSystemUsageDeletedEvent>(kernel); diff --git a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs index 89bc5037df..87bc37c389 100644 --- a/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs +++ b/Tests.Unit.Core.ApplicationServices/ApplicationServices/UserServiceTest.cs @@ -266,7 +266,7 @@ public void DeleteUserFromKitos_Raises_EntityBeingDeletedEvent_And_AccessRights_ //Assert Assert.True(result.IsNone); _domainEventsMock.Verify(x => x.Raise(It.Is>(deleteEvent => deleteEvent.Entity.Id == user.Id)), Times.Once); - _domainEventsMock.Verify(x => x.Raise(It.Is(changedEvent => changedEvent.UserId == user.Id)), Times.Once); + _domainEventsMock.Verify(x => x.Raise(It.Is(changedEvent => changedEvent.UserId == user.Id)), Times.Once); transaction.Verify(x => x.Commit(), Times.Once); } From 81b3c4d1e106c337eb5045326e566580653f208f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 23 Jun 2022 09:03:15 +0200 Subject: [PATCH 232/432] fix --- .../Rights/UserRightsService.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Core.ApplicationServices/Rights/UserRightsService.cs b/Core.ApplicationServices/Rights/UserRightsService.cs index e9fab72c9a..8b126e68af 100644 --- a/Core.ApplicationServices/Rights/UserRightsService.cs +++ b/Core.ApplicationServices/Rights/UserRightsService.cs @@ -188,6 +188,19 @@ private Maybe RemoveAllRights(User user, Organization organizati var organizationUnitRights = user.GetOrganizationUnitRights(organization.Id).ToList(); var rolesInOrganization = user.GetRolesInOrganization(organization.Uuid); + return RemoveRights(user, organization, dprRights, contractRights, projectRights, systemRights, organizationUnitRights, rolesInOrganization); + } + + private Maybe RemoveRights( + User user, + Organization organization, + IEnumerable dprRights, + IEnumerable contractRights, + IEnumerable projectRights, + IEnumerable systemRights, + IEnumerable organizationUnitRights, + IEnumerable rolesInOrganization) + { return RemoveBusinessRights(user, organization, dprRights, _dprRoleAssignmentsService) .Match ( From 4504b7c3feb270166e3b7a8dd539712c463c5aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Remb=C3=B8l=20Jacobsen?= Date: Thu, 23 Jun 2022 09:32:31 +0200 Subject: [PATCH 233/432] additional fixes --- .../API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs | 1 - .../it-contract/tabs/it-contract-tab-main.controller.ts | 1 - .../components/it-contract/tabs/it-contract-tab-main.view.html | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs index f78d944fdb..b2e1899630 100644 --- a/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs +++ b/Presentation.Web/Models/API/V2/Response/Contract/ContractGeneralDataResponseDTO.cs @@ -2,7 +2,6 @@ using Presentation.Web.Infrastructure.Attributes; using Presentation.Web.Models.API.V2.Response.Generic.Identity; using Presentation.Web.Models.API.V2.Response.Generic.Validity; -using Presentation.Web.Models.API.V2.Types.Shared; namespace Presentation.Web.Models.API.V2.Response.Contract { diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts index cbc55f2a2e..3c274a0136 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.controller.ts @@ -88,7 +88,6 @@ $scope.lastChanged = Kitos.Helpers.RenderFieldsHelper.renderDate(contract.lastChanged); $scope.procurementInitiated = yesNoUndecided.getById(contract.procurementInitiated); $scope.hasWriteAccess = hasWriteAccess; - $scope.hasViewAccess = user.currentOrganizationId == contract.organizationId; $scope.kitosUsers = kitosUsers; autofocus(); $scope.contractTypes = contractTypes; diff --git a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html index dc76bc2f8e..1eca27fccf 100644 --- a/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html +++ b/Presentation.Web/app/components/it-contract/tabs/it-contract-tab-main.view.html @@ -117,7 +117,7 @@

{{contract.name}}

data-ng-disabled="!hasWriteAccess" /> -
+