예제 #1
0
        public async Task <OrganizationApplicationKey> Execute(CreateApplicationKey command,
                                                               CancellationToken cancellationToken = new CancellationToken())
        {
            GetApplication query = new GetApplicationQuery(command.UserId, command.ApplicationId);

            UserOrganizationApplication application = await _getApplication.Execute(query, cancellationToken);

            CloudTable appKeyTable = _tableProvider.GetTable(_settings.OrganizationApplicationKeyTableName);

            string key = GenerateKey();

            var appKeyEntity = new OrganizationApplicationKeyEntity(key, application.OrganizationId, application.OrganizationName, command.ApplicationId,
                                                                    application.ApplicationName, command.Timestamp);

            await appKeyTable.ExecuteAsync(TableOperation.Insert(appKeyEntity), cancellationToken);

            var indexEntity = new KeyOrganizationApplicationIndexEntity(key, application.OrganizationId, application.OrganizationName,
                                                                        application.ApplicationId, application.ApplicationName, command.Timestamp);

            CloudTable indexTable = _tableProvider.GetTable(_settings.KeyOrganizationApplicationIndexTableName);

            await indexTable.ExecuteAsync(TableOperation.Insert(indexEntity), cancellationToken);

            return(appKeyEntity);
        }
예제 #2
0
        public async Task <ActionResult> Create(ApplicationViewModel model, CancellationToken cancellationToken)
        {
            if (ModelState.IsValid)
            {
                CreateApplication command = new CreateApplicationCommand(User.Identity.GetUserId(), model.OrganizationId, model.Name);

                UserOrganizationApplication application = await _createApplication.Execute(command, cancellationToken);

                return(RedirectToAction("Details", new { id = application.ApplicationId }));
            }

            return(View());
        }
예제 #3
0
        public async Task <ActionResult> Details(string id, CancellationToken cancellationToken)
        {
            var query = new GetApplicationQuery(User.Identity.GetUserId(), id);

            UserOrganizationApplication application = await _getApplication.Execute(query, cancellationToken);

            IEnumerable <OrganizationApplicationKey> applicationKeys = await _listApplicationKeys.Execute(query, cancellationToken);

            IEnumerable <ICodeFeatureState> codeFeatures =
                await _listApplicationCodeFeatures.Execute(new ListApplicationCodeFeatures(User.Identity.GetUserId(), id),
                                                           cancellationToken);

            return(View(new ApplicationViewModel
            {
                Id = application.ApplicationId,
                Name = application.ApplicationName,
                OrganizationId = application.OrganizationId,
                Keys = applicationKeys.Select(x => x.Key).ToList(),
                Features = codeFeatures.ToList(),
            }));
        }