public async Task <ActionResult> AddAppInstance(AppInstanceInfoModel model)
        {
            var validationMessage = await AppManagementValidationLogic.AddAppInstanceValidation(model, _dbContext);

            if (!string.IsNullOrEmpty(validationMessage))
            {
                return(StatusCode(400, validationMessage));
            }
            var appInstance = new AppInstance
            {
                AppTypeId              = model.AppTypeId,
                DatabaseProviderId     = model.DatabaseProviderId,
                GeneratedCodeNamespace = model.GeneratedCodeNamespace,
                DbContextName          = model.DbContextName,
                IsEnabled              = model.IsEnabled,
                IsProduction           = model.IsProduction,
                Name  = model.Name,
                Title = model.Title,
                DataConnectionStringTemplateName = model.DataConnectionStringTemplateName,
                LobConnectionStringTemplateName  = model.LobConnectionStringTemplateName,
                MainDatabaseName      = model.MainDatabaseName,
                LobDatabaseName       = model.LobDatabaseName,
                MetadataReleaseId     = model.MetadataReleaseId,
                MigrateDatabase       = model.MigrateDatabase,
                UseUnreleasedMetadata = model.UseUnreleasedMetadata,
                SortOrder             = model.SortOrder,
            };

            _dbContext.AppInstances.Add(appInstance);
            await _dbContext.SaveChangesAsync();

            ((RequestLogModel)HttpContext.Items["RequestLog"]).AppInstanceId = appInstance.Id;
            return(Ok());
        }
        public async Task <ActionResult> EditAppInstance(AppInstanceInfoModel model)
        {
            var validationMessage = await AppManagementValidationLogic.EditAppInstanceValidation(model, _dbContext);

            if (!string.IsNullOrEmpty(validationMessage))
            {
                return(StatusCode(400, validationMessage));
            }

            var appInstance = await _dbContext.AppInstances.FindAsync(model.Id);

            appInstance.AppTypeId              = model.AppTypeId;
            appInstance.DatabaseProviderId     = model.DatabaseProviderId;
            appInstance.GeneratedCodeNamespace = model.GeneratedCodeNamespace;
            appInstance.DbContextName          = model.DbContextName;
            appInstance.IsEnabled              = model.IsEnabled;
            appInstance.IsProduction           = model.IsProduction;
            appInstance.Name  = model.Name;
            appInstance.Title = model.Title;
            appInstance.DataConnectionStringTemplateName = model.DataConnectionStringTemplateName;
            appInstance.LobConnectionStringTemplateName  = model.LobConnectionStringTemplateName;
            appInstance.MainDatabaseName      = model.MainDatabaseName;
            appInstance.LobDatabaseName       = model.LobDatabaseName;
            appInstance.MetadataReleaseId     = model.MetadataReleaseId;
            appInstance.UseUnreleasedMetadata = model.UseUnreleasedMetadata;
            appInstance.SortOrder             = model.SortOrder;
            await _dbContext.SaveChangesAsync();

            ((RequestLogModel)HttpContext.Items["RequestLog"]).AppInstanceId = appInstance.Id;
            return(Ok());
        }
        public async Task <ActionResult> DeleteAppType(AppTypeModel model)
        {
            var validationMessage = await AppManagementValidationLogic.DeleteAppTypeValidation(model, _dbContext);

            if (!string.IsNullOrEmpty(validationMessage))
            {
                return(StatusCode(400, validationMessage));
            }
            var appType = await _dbContext.AppTypes.FindAsync(model.Id);

            _dbContext.AppTypes.Remove(appType);
            await _dbContext.SaveChangesAsync();

            ((RequestLogModel)HttpContext.Items["RequestLog"]).AppTypeId = appType.Id;
            return(Ok());
        }
        public async Task <ActionResult> AddAppType(AppTypeModel model)
        {
            var validationMessage = await AppManagementValidationLogic.AddAppTypeValidation(model, _dbContext);

            if (!string.IsNullOrEmpty(validationMessage))
            {
                return(StatusCode(400, validationMessage));
            }
            var appType = new AppType
            {
                Title = model.Title,
                Name  = model.Name,
                Id    = model.Id
            };

            _dbContext.AppTypes.Add(appType);
            await _dbContext.SaveChangesAsync();

            ((RequestLogModel)HttpContext.Items["RequestLog"]).AppTypeId = appType.Id;
            return(Ok());
        }