/// <inheritdoc/>
        public Domain.Entities.Application GetApplication(string clientId)
        {
            if (clientId == null || clientId == string.Empty)
            {
                throw new ArgumentNullException(nameof(clientId));
            }

            var application = _applicationRepository.FindByClientId(clientId);

            if (application == null || application.Status != ApplicationStatus.NORMAL.ToString())
            {
                return(null);
            }

            var result = new Domain.Entities.Application
            {
                ApplicationId          = application.ApplicationId,
                ClientId               = application.ClientId,
                ClientSecret           = application.ClientSecret,
                Name                   = application.Name,
                Description            = application.Description,
                Roles                  = JsonUtil.Deserialize <List <string> >(application.Roles),
                Scopes                 = JsonUtil.Deserialize <List <string> >(application.Scopes),
                GrantTypes             = JsonUtil.Deserialize <List <string> >(application.GrantTypes),
                RedirectUris           = JsonUtil.Deserialize <List <string> >(application.RedirectUris),
                PostLogoutRedirectUris = JsonUtil.Deserialize <List <string> >(application.PostLogoutRedirectUris),
                Status                 = (ApplicationStatus)Enum.Parse(typeof(ApplicationStatus), application.Status),
                CreateTime             = application.CreateTime,
                UpdateTime             = application.UpdateTime,
            };

            return(result);
        }
        CreateEnvironmentCommandHandler_Handle_ShouldThrowExceptionIfEnvironmentAlreadyExistsInApplication()
        {
            var applicationId     = Guid.Parse("346AD95F-3B37-453A-B6E1-07F625BCB0CC");
            var createEnvironment = new CreateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Prod",
                Description   = "Description"
            };
            var application = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "Application",
            };

            Context.Applications.Add(application);
            Context.Environments.Add(new Domain.Entities.Environment
            {
                Id            = Guid.NewGuid(),
                Application   = application,
                ApplicationId = applicationId,
                Name          = "Prod",
                IsActive      = true
            });
            await Context.SaveChangesAsync();

            var command = new CreateEnvironmentCommand(createEnvironment);
            await Assert.ThrowsAsync <RecordAlreadyExistsException>(() =>
                                                                    _createEnvironmentsCommandHandler.Handle(command, CancellationToken.None));
        }
        CreateEnvironmentCommandHandler_Handle_ShouldAddNewEnvironmentInApplication()
        {
            var applicationId     = Guid.Parse("346AD95F-3B37-453A-B6E1-07F625BCB0CC");
            var createEnvironment = new CreateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Development",
                Description   = "Description"
            };
            var application = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "Application",
            };

            Context.Applications.Add(application);
            Context.Environments.Add(new Domain.Entities.Environment
            {
                Id            = Guid.NewGuid(),
                ApplicationId = applicationId,
                Name          = "Prod",
                IsActive      = true
            });
            await Context.SaveChangesAsync();

            var command = new CreateEnvironmentCommand(createEnvironment);
            await _createEnvironmentsCommandHandler.Handle(command, CancellationToken.None);

            var actualEnvironmentCount = await
                                         Context.Environments.Where(env => env.ApplicationId == applicationId)
                                         ?.CountAsync(CancellationToken.None);

            Assert.Equal(2, actualEnvironmentCount);
        }
        private void Validate(Domain.Entities.Application entity)
        {
            if (entity == null)
            {
                throw new DeleteFailedException("Record not found.");
            }

            if (entity.Environments.Any())
            {
                throw new DeleteFailedException($"Application has {entity.Environments.Count} environment");
            }
        }
        public async Task UpdateEnvironmentCommandHandler_Handle_ShouldUpdateTheEnvironmentById()
        {
            var applicationId = Guid.NewGuid();
            var application   = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "App"
            };

            Context.Applications.Add(application);
            var env = new Domain.Entities.Environment
            {
                Name          = "Prod",
                ApplicationId = applicationId,
                Id            = Guid.Parse("8B20CDFD-204C-4610-8E6F-B3861457152E")
            };

            Context.Environments.Add(env);

            env = new Domain.Entities.Environment
            {
                Name          = "Dev",
                ApplicationId = applicationId,
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            };
            Context.Environments.Add(env);
            await Context.SaveChangesAsync(CancellationToken.None);

            var command = new UpdateEnvironmentCommand(new UpdateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Local",
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3"),
                IsActive      = true
            });
            await _updateEnvironmentCommandHandler.Handle(command, CancellationToken.None);

            var actualEnvironmentEntity =
                Context.Environments.FirstOrDefault(e =>
                                                    e.Id == Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3"));

            Assert.Equal("Local", actualEnvironmentEntity?.Name);
        }
        public async Task UpdateEnvironmentCommandHandler_Handle_ShouldThrowExceptionIfRecordNotFound()
        {
            var applicationId = Guid.NewGuid();
            var application   = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "App"
            };

            Context.Applications.Add(application);
            var env = new Domain.Entities.Environment
            {
                Name          = "Prod",
                ApplicationId = applicationId,
                Id            = Guid.Parse("8B20CDFD-204C-4610-8E6F-B3861457152E")
            };

            Context.Environments.Add(env);

            env = new Domain.Entities.Environment
            {
                Name          = "Dev",
                ApplicationId = applicationId,
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            };
            Context.Environments.Add(env);
            await Context.SaveChangesAsync(CancellationToken.None);

            var command = new UpdateEnvironmentCommand(new UpdateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Local",
                Id            = Guid.Parse("4843AC32-47F9-464F-9A2C-8716AD22F9D3")
            });
            await Assert.ThrowsAsync <NotFoundException>(() =>
                                                         _updateEnvironmentCommandHandler.Handle(command, CancellationToken.None));
        }
        UpdateEnvironmentCommandHandler_Handle_ShouldThrowExceptionIfEnvironmentNameAlreadyExistsInApplication()
        {
            var applicationId = Guid.NewGuid();
            var application   = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "App"
            };

            Context.Applications.Add(application);
            var env = new Domain.Entities.Environment
            {
                Name          = "Prod",
                ApplicationId = applicationId,
                Id            = Guid.Parse("8B20CDFD-204C-4610-8E6F-B3861457152E")
            };

            Context.Environments.Add(env);

            env = new Domain.Entities.Environment
            {
                Name = "Dev", ApplicationId = applicationId,
                Id   = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            };
            Context.Environments.Add(env);
            await Context.SaveChangesAsync(CancellationToken.None);

            var command = new UpdateEnvironmentCommand(new UpdateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Prod",
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            });
            await Assert.ThrowsAsync <RecordAlreadyExistsException>(() =>
                                                                    _updateEnvironmentCommandHandler.Handle(command, CancellationToken.None));
        }
 public Task CreateApplicationReviewAsync(Domain.Entities.Application application)
 {
     return(_messaging.SendCommandAsync(new CreateApplicationReviewCommand {
         Application = application
     }));
 }
Example #9
0
 public static DataContracts.Application ToContract(this Domain.Entities.Application source)
 => ToContract <Domain.Entities.Application, DataContracts.Application>(CurrentMapper, source);