Ejemplo n.º 1
0
 public ChannelCollectionConverter(ICacheContext cacheContext, IDatas datas, IRestContext restContext, ILogger logger)
 {
     _cacheContext = cacheContext;
     _datas        = datas;
     _restContext  = restContext;
     _logger       = logger;
 }
Ejemplo n.º 2
0
        public async Task RunAsync(IRestContext context)
        {
            ICustomSettingsApi settingsApi = context.Factory.CreateUserCustomSettingsApi();

            // Setting some preferences
            UserPreferences preferences = new UserPreferences
            {
                flag   = true,
                array  = new[] { "a", "b", "c" },
                entity = new UserPreferences.Entity {
                    rank = 4, role = "user"
                }
            };

            if (await settingsApi.SetCustomSettingAsync("preferences", preferences))
            {
                Console.WriteLine("Created custom settings: preferences");
            }

            // Retrieving custom settings names
            IEnumerable <string> names = await settingsApi.GetCustomSettingsAsync();

            string flatList = string.Join(", ", names);

            Console.WriteLine("Retrieved available setting names: [{0}]", flatList);

            // Retrieving preferences back
            UserPreferences instance = await settingsApi.GetCustomSettingAsync <UserPreferences>("preferences");

            Console.WriteLine("Retrieved preferences back:");
            Console.WriteLine("\tpreferences.flag={0}, preferences.entity.rank={1}", instance.flag, instance.entity.rank);
        }
Ejemplo n.º 3
0
        public async Task RunAsync(IRestContext context)
        {
            IUserApi userApi = context.Factory.CreateUserApi();
            bool     success = await userApi.LogoutAsync();

            Console.WriteLine("Logged out, success={0}", success);
        }
Ejemplo n.º 4
0
        public async Task RunAsync(IRestContext context)
        {
            // List available services
            IEnumerable <Service> services = context.GetServicesAsync().Result;

            Console.WriteLine("Available services:");
            foreach (Service service in services)
            {
                Console.WriteLine("{0}:\t{1}", service.api_name, service.name);
            }

            // List resources
            IEnumerable <Resource> resources = await context.GetResourcesAsync("user");

            Console.WriteLine();
            Console.WriteLine("/user resources:");
            foreach (Resource resource in resources)
            {
                Console.WriteLine("\t/{0}", resource.name);
            }

            resources = await context.GetResourcesAsync("files");

            Console.WriteLine();
            Console.WriteLine("/files resources:");
            foreach (Resource resource in resources)
            {
                Console.WriteLine("\t/{0}", resource.name);
            }
        }
Ejemplo n.º 5
0
        public async Task RunAsync(IRestContext context)
        {
            ICustomSettingsApi settingsApi = context.Factory.CreateUserCustomSettingsApi();

            // Setting some preferences
            UserPreferences preferences = new UserPreferences
            {
                flag = true,
                array = new[] { "a", "b", "c" },
                entity = new UserPreferences.Entity { rank = 4, role = "user" }
            };

            if (await settingsApi.SetCustomSettingAsync("preferences", preferences))
            {
                Console.WriteLine("Created custom settings: preferences");
            }

            // Retrieving custom settings names
            IEnumerable<string> names = await settingsApi.GetCustomSettingsAsync();
            string flatList = string.Join(", ", names);
            Console.WriteLine("Retrieved available setting names: [{0}]", flatList);

            // Retrieving preferences back
            UserPreferences instance = await settingsApi.GetCustomSettingAsync<UserPreferences>("preferences");
            Console.WriteLine("Retrieved preferences back:");
            Console.WriteLine("\tpreferences.flag={0}, preferences.entity.rank={1}", instance.flag, instance.entity.rank);
        }
Ejemplo n.º 6
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            // Read
            SqlQuery query = new SqlQuery {
                fields = "*", related = "services,roles",
            };
            IEnumerable <AppResponse> apps = await systemApi.GetAppsAsync(query);

            Console.WriteLine("Apps: {0}", apps.Select(x => x.api_name).ToStringList());

            // Cloning
            AppResponse todoApp        = apps.Single(x => x.api_name == "todoangular");
            AppRequest  todoAppRequest = todoApp.Convert <AppResponse, AppRequest>();

            todoAppRequest.name     = todoApp.name + "clone";
            todoAppRequest.api_name = todoApp.api_name + "clone";

            // Creating a clone
            apps = await systemApi.CreateAppsAsync(new SqlQuery(), todoAppRequest);

            AppResponse todoAppClone = apps.Single(x => x.api_name == "todoangularclone");

            Console.WriteLine("Created a clone app={0}", todoAppClone.api_name);

            // Deleting the clone
            Debug.Assert(todoAppClone.id.HasValue);
            await systemApi.DeleteAppsAsync(true, todoAppClone.id.Value);

            Console.WriteLine("Created clone has been deleted");
        }
Ejemplo n.º 7
0
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            IUserApi userApi = context.Factory.CreateUserApi();

            // getSession()
            Session session = await userApi.GetSessionAsync();

            Console.WriteLine("Session ID: {0}", session.session_id);

            // getProfile()
            ProfileResponse profile = await userApi.GetProfileAsync();

            Console.WriteLine("Email from your profile: {0}", profile.email);

            // changePassword()
            const string newPassword = Program.Password + "new";
            bool         ok          = await userApi.ChangePasswordAsync(Program.Password, newPassword);

            if (ok)
            {
                // Changing password back
                if (await userApi.ChangePasswordAsync(newPassword, Program.Password))
                {
                    Console.WriteLine("Password was changed and reverted");
                }
            }
        }
Ejemplo n.º 8
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();
            
            IEnumerable<DeviceResponse> devices = await systemApi.GetDevicesAsync(new SqlQuery());
            await DeleteAnyDevices(devices, systemApi);

            IUserApi userApi = context.Factory.CreateUserApi();
            DeviceRequest device = new DeviceRequest
            {
                uuid = "1",
                model = "model",
                platform = "windows",
                version = "1.0"
            };

            bool ok = await userApi.SetDeviceAsync(device);
            Console.WriteLine("SetDeviceAsync(): success={0}", ok);

            SqlQuery query = new SqlQuery { filter = "platform=\"windows\"", fields = "*" };
            devices = await systemApi.GetDevicesAsync(query);
            Console.WriteLine("GetDevicesAsync(): {0}", context.ContentSerializer.Serialize(devices.Single()));

            await DeleteAnyDevices(devices, systemApi);
        }
Ejemplo n.º 9
0
        public async Task RunAsync(IRestContext context)
        {
            IFilesApi filesApi = context.Factory.CreateFilesApi("files");

            // Display existing containers
            IEnumerable<string> names = await filesApi.GetContainerNamesAsync();
            Console.WriteLine("GetContainerNamesAsync(): {0}", names.ToStringList());

            // Creating a test container - tank
            await filesApi.CreateContainersAsync(false, TestContainer);

            // Creating a file
            FileResponse response = await filesApi.CreateFileAsync(TestContainer, "test.txt", "test", false);
            Console.WriteLine("Created file: {0}", response.path);

            // Reading the file
            string content = await filesApi.GetTextFileAsync(TestContainer, "test.txt");
            Console.WriteLine("GetFile content: {0}", content);

            // Deleting the file
            response = await filesApi.DeleteFileAsync(TestContainer, "test.txt");
            Console.WriteLine("Deleted file: {0}", response.path);

            // Deleting the container
            await filesApi.DeleteContainersAsync(TestContainer);
            Console.WriteLine("Container '{0}' deleted.", TestContainer);

            // Downloading a container
            Console.WriteLine("Downloading 'applications' container as zip archive...");
            byte[] zip = await filesApi.DownloadContainerAsync("applications");
            File.WriteAllBytes("applications-container.zip", zip);
            Console.WriteLine("Open applications-container.zip to see the contents.");
        }
Ejemplo n.º 10
0
        public async Task RunAsync(IRestContext context)
        {
            // List available services
            IEnumerable<Service> services = context.GetServicesAsync().Result;
            Console.WriteLine("Available services:");
            foreach (Service service in services)
            {
                Console.WriteLine("{0}:\t{1}", service.api_name, service.name);
            }

            // List resources
            IEnumerable<Resource> resources = await context.GetResourcesAsync("user");
            Console.WriteLine();
            Console.WriteLine("/user resources:");
            foreach (Resource resource in resources)
            {
                Console.WriteLine("\t/{0}", resource.name);
            }

            resources = await context.GetResourcesAsync("files");
            Console.WriteLine();
            Console.WriteLine("/files resources:");
            foreach (Resource resource in resources)
            {
                Console.WriteLine("\t/{0}", resource.name);
            }
        }
Ejemplo n.º 11
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            SqlQuery query = new SqlQuery { fields = "*", related = "apps,users,services" };
            IEnumerable<RoleResponse> roles = await systemApi.GetRolesAsync(query);
            Console.WriteLine("GetRolesAsync(): {0}", roles.Select(x => x.name).ToStringList());

            RoleResponse role = roles.SingleOrDefault(x => x.name == NewRole);
            if (role != null)
            {
                await DeleteRole(role, systemApi);
            }

            RoleRequest newRole = new RoleRequest
            {
                name = NewRole,
                description = "new role",
                is_active = true
            };
                
            roles = await systemApi.CreateRolesAsync(new SqlQuery(), newRole);
            role = roles.Single(x => x.name == NewRole);
            Console.WriteLine("CreateRolesAsync(): {0}", context.ContentSerializer.Serialize(role));

            newRole.id = role.id;
            newRole.description = "new description";
            role = (await systemApi.UpdateRolesAsync(new SqlQuery(), newRole)).Single(x => x.name == NewRole);
            Console.WriteLine("UpdateUsersAsync(): new description={0}", role.description);

            await DeleteRole(role, systemApi);
        }
Ejemplo n.º 12
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemAppApi appApi = context.Factory.CreateSystemAppApi();

            // Read
            SqlQuery query = new SqlQuery {
                Fields = "*",
                Related = String.Join(",", RelatedResources.App.StorageService, RelatedResources.App.Roles)
            };
            IEnumerable<AppResponse> apps = (await appApi.GetAppsAsync(query)).ToList();
            Console.WriteLine("Apps:");
            foreach (AppResponse app in apps)
            {
                Console.WriteLine("\tName: {0}, ApiKey: {1}", app.Name, app.ApiKey);
            }

            // Cloning
            AppResponse adminApp = apps.Single(x => x.Name == "admin");
            AppRequest adminAppRequest = adminApp.Convert<AppResponse, AppRequest>();
            adminAppRequest.Id = null;
            adminAppRequest.Name = adminApp.Name + "clone";

            // Creating a clone
            apps = await appApi.CreateAppsAsync(new SqlQuery(), adminAppRequest);
            AppResponse adminAppClone = apps.Single(x => x.Name == "adminclone");
            Console.WriteLine("Created a clone app Name:{0}, ApiKey:{1}", adminAppClone.Name, adminAppClone.ApiKey);

            // Deleting the clone
            Debug.Assert(adminAppClone.Id.HasValue);
            await appApi.DeleteAppsAsync(new SqlQuery(), adminAppClone.Id.Value);
            Console.WriteLine("Created clone has been deleted");
        }
Ejemplo n.º 13
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            // Read
            SqlQuery query = new SqlQuery { fields = "*", related = "services,roles", };
            IEnumerable<AppResponse> apps = await systemApi.GetAppsAsync(query);
            Console.WriteLine("Apps: {0}", apps.Select(x => x.api_name).ToStringList());

            // Cloning
            AppResponse todoApp = apps.Single(x => x.api_name == "todoangular");
            AppRequest todoAppRequest = todoApp.Convert<AppResponse, AppRequest>();
            todoAppRequest.name = todoApp.name + "clone";
            todoAppRequest.api_name = todoApp.api_name + "clone";

            // Creating a clone
            apps = await systemApi.CreateAppsAsync(new SqlQuery(), todoAppRequest);
            AppResponse todoAppClone = apps.Single(x => x.api_name == "todoangularclone");
            Console.WriteLine("Created a clone app={0}", todoAppClone.api_name);

            // Deleting the clone
            Debug.Assert(todoAppClone.id.HasValue);
            await systemApi.DeleteAppsAsync(true, todoAppClone.id.Value);
            Console.WriteLine("Created clone has been deleted");
        }
Ejemplo n.º 14
0
        public async Task RunAsync(IRestContext context)
        {
            IFilesApi filesApi = context.Factory.CreateFilesApi("files");

            // Display resources
            IEnumerable<string> names = await filesApi.GetResourceNamesAsync();
            Console.WriteLine("GetResourcesAsync():");
            foreach (string name in names)
            {
                Console.WriteLine("\t{0}", name);
            }

            // Creating a folder
            await filesApi.CreateFolderAsync("test", true);
            Console.WriteLine("Folder 'test' created.");

            // Creating a file
            FileResponse response = await filesApi.CreateFileAsync("test/test.txt", "test", true);
            Console.WriteLine("Created file: {0}", response.Path);

            // Reading the file
            string content = await filesApi.GetTextFileAsync("test/test.txt");
            Console.WriteLine("GetFile content: {0}", content);

            // Deleting the file
            response = await filesApi.DeleteFileAsync("test/test.txt");
            Console.WriteLine("Deleted file: {0}", response.Path);

            // Deleting the folder
            await filesApi.DeleteFolderAsync("test", true);
            Console.WriteLine("Folder 'test' deleted.");
        }
Ejemplo n.º 15
0
        // ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable <ScriptResponse> scripts = await systemApi.GetScriptsAsync(true);

            Console.WriteLine("GetScriptsAsync(): {0}", scripts.Select(x => x.script_id).ToStringList());

            if (scripts.Any(x => x.script_id == ScriptId))
            {
                await DeleteDummyScript(systemApi);
            }

            const string   scriptText = @"return Number(event.n1) + Number(event.n2);";
            ScriptResponse response   = await systemApi.WriteScriptAsync(ScriptId, scriptText);

            Console.WriteLine("WriteScriptAsync(): id={0}", response.script_id);

            Dictionary <string, object> p = new Dictionary <string, object> {
                { "n1", 3 }, { "n2", 5 }
            };
            string output = await systemApi.RunScriptAsync(ScriptId, p);

            Console.WriteLine("RunScriptAsync(): {0}", context.ContentSerializer.Serialize(output));

            await DeleteDummyScript(systemApi);
        }
Ejemplo n.º 16
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable <DeviceResponse> devices = await systemApi.GetDevicesAsync(new SqlQuery());

            await DeleteAnyDevices(devices, systemApi);

            IUserApi      userApi = context.Factory.CreateUserApi();
            DeviceRequest device  = new DeviceRequest
            {
                uuid     = "1",
                model    = "model",
                platform = "windows",
                version  = "1.0"
            };

            bool ok = await userApi.SetDeviceAsync(device);

            Console.WriteLine("SetDeviceAsync(): success={0}", ok);

            SqlQuery query = new SqlQuery {
                filter = "platform=\"windows\"", fields = "*"
            };

            devices = await systemApi.GetDevicesAsync(query);

            Console.WriteLine("GetDevicesAsync(): {0}", context.ContentSerializer.Serialize(devices.Single()));

            await DeleteAnyDevices(devices, systemApi);
        }
Ejemplo n.º 17
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable<UserResponse> users = await systemApi.GetUsersAsync(new SqlQuery());
            Console.WriteLine("GetUsersAsync(): {0}", users.Select(x => x.display_name).ToStringList());

            UserResponse user = users.SingleOrDefault(x => x.email == NewEmail);
            if (user != null)
            {
                await DeleteUser(user, systemApi);
            }

            UserRequest newUser = new UserRequest
            {
                first_name = "Andrei",
                last_name = "Smirnov",
                display_name = "pinebit",
                email = NewEmail,
                password = "******",
                is_active = true
            };

            users = await systemApi.CreateUsersAsync(new SqlQuery(), newUser);
            user = users.Single(x => x.email == NewEmail);
            Console.WriteLine("CreateUsersAsync(): {0}", context.ContentSerializer.Serialize(user));

            newUser.id = user.id;
            newUser.display_name = "Andrei Smirnov";
            user = (await systemApi.UpdateUsersAsync(new SqlQuery(), newUser)).Single(x => x.email == NewEmail);
            Console.WriteLine("UpdateUsersAsync(): new display_name={0}", user.display_name);

            await DeleteUser(user, systemApi);
        }
Ejemplo n.º 18
0
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            IUserApi userApi = context.Factory.CreateUserApi();

            // getSession()
            Session session = await userApi.GetSessionAsync();
            Console.WriteLine("Session ID: [{0}...]", session.SessionId.Substring(0, 32));

            // getProfile()
            ProfileResponse profile = await userApi.GetProfileAsync();
            Console.WriteLine("Email from your profile: {0}", profile.Email);

            // register()
            string guid = Guid.NewGuid().ToString();
            Register register = new Register
            {
                FirstName = guid.Substring(0, 6),
                LastName = guid.Substring(0, 6),
                Email = guid.Substring(0, 6) + "@factory.com",
                Name = guid.Substring(0, 6),
                NewPassword = guid.Substring(0, 6)
            };
            bool ok = await userApi.RegisterAsync(register, true);

            if (ok)
            {
                Console.WriteLine("Successfully registered user: {0}", guid.Substring(0,8));
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Unfortunately, something went wrong.");
            }
        }
Ejemplo n.º 19
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemUserApi userApi = context.Factory.CreateSystemUserApi();

            IEnumerable<UserResponse> users = (await userApi.GetUsersAsync(new SqlQuery())).ToList();
            Console.WriteLine("GetUsersAsync(): {0}", users.Select(x => x.Name).ToStringList());

            UserResponse user = users.SingleOrDefault(x => x.Email == NewEmail);
            if (user != null)
            {
                await DeleteUser(user, userApi);
            }

            UserRequest newUser = new UserRequest
            {
                FirstName = "Andrei",
                LastName = "Smirnov",
                Name = "pinebit",
                Email = NewEmail,
                IsActive = true
            };

            users = await userApi.CreateUsersAsync(new SqlQuery(), newUser);
            user = users.Single(x => x.Email == NewEmail);
            Console.WriteLine("CreateUsersAsync(): {0}", context.ContentSerializer.Serialize(user));

            newUser.Id = user.Id;
            newUser.Name = "Andrei Smirnov";
            user = (await userApi.UpdateUsersAsync(new SqlQuery(), newUser)).Single(x => x.Email == NewEmail);
            Console.WriteLine("UpdateUsersAsync(): new name={0}", user.Name);

            await DeleteUser(user, userApi);
        }
Ejemplo n.º 20
0
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            IUserApi userApi = context.Factory.CreateUserApi();

            // getSession()
            Session session = await userApi.GetSessionAsync();
            Console.WriteLine("Session ID: {0}", session.session_id);

            // getProfile()
            ProfileResponse profile = await userApi.GetProfileAsync();
            Console.WriteLine("Email from your profile: {0}", profile.email);

            // changePassword()
            const string newPassword = Program.Password + "new";
            bool ok = await userApi.ChangePasswordAsync(Program.Password, newPassword);
            if (ok)
            {
                // Changing password back
                if (await userApi.ChangePasswordAsync(newPassword, Program.Password))
                {
                    Console.WriteLine("Password was changed and reverted");
                }
            }
        }
Ejemplo n.º 21
0
        public async Task RunAsync(IRestContext context)
        {
            // Getting database interface
            IDatabaseApi databaseApi = context.Factory.CreateDatabaseApi(ServiceName);

            // List available tables
            IEnumerable<TableInfo> tables = (await databaseApi.GetTableNamesAsync(true)).ToList();
            Console.WriteLine("Existing tables: {0}", tables.Select(x => x.Name).ToStringList());
            foreach (TableInfo table in tables)
            {
                Console.WriteLine("\t{0}", table.Name);
            }

            // Delete staff table if it exists
            if (tables.Any(x => x.Name == TableName))
            {
                Console.WriteLine("Deleting table {0}...", TableName);
                if (await databaseApi.DeleteTableAsync(TableName))
                {
                    Console.WriteLine("Table deleted.");
                }
            }

            Console.WriteLine("Creating {0} table schema...", TableName);
            TableSchema staffTableSchema = CreateTestTableSchema();
            await databaseApi.CreateTableAsync(staffTableSchema);

            // Describe table
            staffTableSchema = await databaseApi.DescribeTableAsync(TableName);
            Console.WriteLine("Got {0} table schema, table's label is {1}", TableName, staffTableSchema.Label);

            // Create new record
            Console.WriteLine("Creating {0} records...", TableName);
            List<StaffRecord> records = CreateStaffRecords().ToList();
            records = (await databaseApi.CreateRecordsAsync(TableName, records, new SqlQuery())).Records;

            // Update record
            Console.WriteLine("Updating {0} records...", TableName);
            StaffRecord firstRecord = records.First();
            firstRecord.FirstName = "Andrei 2";
            await databaseApi.UpdateRecordsAsync(TableName, records, new SqlQuery());

            SqlQuery query = new SqlQuery { Filter = "Age > 30", Order = "Age", Fields = "*" };
            IEnumerable<StaffRecord> selection = (await databaseApi.GetRecordsAsync<StaffRecord>(TableName, query)).Records;
            string ages = selection.Select(x => x.Age.ToString(CultureInfo.InvariantCulture)).ToStringList();
            Console.WriteLine("Get records with SqlQuery: ages={0}", ages);

            // Deleting one record
            Console.WriteLine("Deleting second record...");
            await databaseApi.DeleteRecordsAsync(TableName, records.Skip(1).Take(1), new SqlQuery());

            // Get table records
            records = (await databaseApi.GetRecordsAsync<StaffRecord>(TableName, new SqlQuery())).Records;
            Console.WriteLine("Retrieved {0} records:", TableName);
            foreach (StaffRecord item in records)
            {
                Console.WriteLine("\t{0}", item);
            }
        }
        public void ShouldThrowIfSetApplicationNameArgumentIsNull()
        {
            // Arrange
            IRestContext context = CreateRestContext();

            // Act & Assert
            Should.Throw <ArgumentNullException>(() => context.SetApplicationName(null));
        }
Ejemplo n.º 23
0
        public async Task RunAsync(IRestContext context)
        {
            // Getting database interface
            IDatabaseApi databaseApi = context.Factory.CreateDatabaseApi("db");

            // List available tables
            List <string> tables = new List <string>(await databaseApi.GetTableNamesAsync());

            Console.WriteLine("Existing tables: {0}", tables.ToStringList());

            // Delete staff table if it exists
            if (tables.Contains(TableName))
            {
                Console.WriteLine("Deleting table {0}...", TableName);
                if (await databaseApi.DeleteTableAsync(TableName))
                {
                    Console.WriteLine("Table deleted.");
                }
            }

            Console.WriteLine("Creating {0} table schema...", TableName);
            TableSchema staffTableSchema = CreateTestTableSchema();
            await databaseApi.CreateTableAsync(staffTableSchema);

            // Describe table
            staffTableSchema = await databaseApi.DescribeTableAsync(TableName);

            Console.WriteLine("Got {0} table schema, table's label is {1}", TableName, staffTableSchema.label);

            // Create new record
            Console.WriteLine("Creating {0} records...", TableName);
            List <StaffRecord> records = CreateStaffRecords().ToList();

            records = new List <StaffRecord>(await databaseApi.CreateRecordsAsync(TableName, records, new SqlQuery()));

            SqlQuery query = new SqlQuery {
                filter = "age > 30", order = "age", fields = "*"
            };
            var selection = await databaseApi.GetRecordsAsync <StaffRecord>(TableName, query);

            var ages = selection.Select(x => x.age.ToString(CultureInfo.InvariantCulture)).ToStringList();

            Console.WriteLine("Get records with SqlQuery: ages={0}", ages);

            // Deleting one record
            Console.WriteLine("Deleting second record...");
            await databaseApi.DeleteRecordsAsync(TableName, records.Skip(1).Take(1));

            // Get table records
            records = new List <StaffRecord>(await databaseApi.GetRecordsAsync <StaffRecord>(TableName, new SqlQuery()));
            Console.WriteLine("Retrieved {0} records:", TableName);
            foreach (StaffRecord item in records)
            {
                Console.WriteLine("\t{0}", item);
            }
        }
Ejemplo n.º 24
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();
            bool success = await systemApi.LogoutAdminAsync();
            Console.WriteLine("Logged out, success={0}", success);

            //IUserApi userApi = context.Factory.CreateUserApi();
            //bool success = await userApi.LogoutAsync();
            //Console.WriteLine("Logged out, success={0}", success);
        }
Ejemplo n.º 25
0
        public void ShouldGetServicesAsync()
        {
            // Arrange
            IRestContext context = CreateRestContext();

            // Act
            List <Service> services = context.GetServicesAsync().Result.ToList();

            // Assert
            services.ShouldNotBeEmpty();
            services.ShouldContain(x => x.api_name == "files");
            services.ShouldContain(x => x.api_name == "email");
        }
Ejemplo n.º 26
0
        public void ShouldSetApplicationName()
        {
            // Arrange
            IRestContext context = CreateRestContext();

            // Act
            context.SetApplicationName("foo");

            // Assert
            Dictionary <string, object> headers = context.BaseHeaders.Build();

            headers[HttpHeaders.DreamFactoryApplicationHeader].ShouldBe("foo");
        }
Ejemplo n.º 27
0
        public void ShouldGetResourcesAsync()
        {
            // Arrange
            IRestContext context = CreateRestContext();

            // Act
            List <Resource> resources = context.GetResourcesAsync("user").Result.ToList();

            // Assert
            resources.ShouldNotBeEmpty();
            resources.ShouldContain(x => x.name == "password");
            resources.ShouldContain(x => x.name == "profile");
            resources.ShouldContain(x => x.name == "session");
        }
Ejemplo n.º 28
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            // List apps
            SqlQuery query = new SqlQuery {
                filter = "is_active=true", fields = "*", related = "services,roles",
            };
            IEnumerable <AppResponse> apps = await systemApi.GetAppsAsync(query);

            Console.WriteLine("Apps: {0}", apps.Select(x => x.api_name).ToStringList());

            // Check todoangular app
            AppResponse todoAngular = apps.Single(x => x.api_name == "todoangular");
            RelatedRole role        = todoAngular.roles.First();

            Console.WriteLine("todoangular app has first role: {0}", role.name);
            RelatedService service = todoAngular.services.First();

            Console.WriteLine("todoangular app has first service: {0}", service.name);

            // List users with roles
            IEnumerable <UserResponse> users = await systemApi.GetUsersAsync(new SqlQuery());

            Console.WriteLine("Users: {0}", users.Select(x => x.display_name).ToStringList());

            // Download app package & SDK
            Console.WriteLine("Downloading app package and SDK...");
            byte[] package = await systemApi.DownloadApplicationPackageAsync(1);

            byte[] sdk = await systemApi.DownloadApplicationSdkAsync(1);

            File.WriteAllBytes("todojquery-package.zip", package);
            File.WriteAllBytes("todojquery-sdk.zip", sdk);

            // Get environment info - does not work for WAMP, uncomment when using linux hosted DSP.
            // EnvironmentResponse environment = await systemApi.GetEnvironmentAsync();
            // Console.WriteLine("DreamFactory Server is running on {0}", environment.server.server_os);

            // Get config
            ConfigResponse config = await systemApi.GetConfigAsync();

            Console.WriteLine("config.install_name = {0}", config.install_name);

            // Get constant
            Dictionary <string, string> contentTypes = await systemApi.GetConstantAsync("content_types");

            Console.WriteLine("Content Types: {0}", contentTypes.Keys.ToStringList());
        }
Ejemplo n.º 29
0
        public async Task RunAsync(IRestContext context)
        {
            // Getting database interface
            IDatabaseApi databaseApi = context.Factory.CreateDatabaseApi("db");

            // List available tables
            List<string> tables = new List<string>(await databaseApi.GetTableNamesAsync());
            Console.WriteLine("Existing tables: {0}", tables.ToStringList());

            // Delete staff table if it exists
            if (tables.Contains(TableName))
            {
                Console.WriteLine("Deleting table {0}...", TableName);
                if (await databaseApi.DeleteTableAsync(TableName))
                {
                    Console.WriteLine("Table deleted.");
                }
            }

            Console.WriteLine("Creating {0} table schema...", TableName);
            TableSchema staffTableSchema = CreateTestTableSchema();
            await databaseApi.CreateTableAsync(staffTableSchema);

            // Describe table
            staffTableSchema = await databaseApi.DescribeTableAsync(TableName);
            Console.WriteLine("Got {0} table schema, table's label is {1}", TableName, staffTableSchema.label);

            // Create new record
            Console.WriteLine("Creating {0} records...", TableName);
            List<StaffRecord> records = CreateStaffRecords().ToList();
            records = new List<StaffRecord>(await databaseApi.CreateRecordsAsync(TableName, records, new SqlQuery()));

            SqlQuery query = new SqlQuery { filter = "age > 30", order = "age", fields = "*" };
            var selection = await databaseApi.GetRecordsAsync<StaffRecord>(TableName, query);
            var ages = selection.Select(x => x.age.ToString(CultureInfo.InvariantCulture)).ToStringList();
            Console.WriteLine("Get records with SqlQuery: ages={0}", ages);

            // Deleting one record
            Console.WriteLine("Deleting second record...");
            await databaseApi.DeleteRecordsAsync(TableName, records.Skip(1).Take(1));

            // Get table records
            records = new List<StaffRecord>(await databaseApi.GetRecordsAsync<StaffRecord>(TableName, new SqlQuery()));
            Console.WriteLine("Retrieved {0} records:", TableName);
            foreach (StaffRecord item in records)
            {
                Console.WriteLine("\t{0}", item);
            }
        }
Ejemplo n.º 30
0
        public async Task RunAsync(IRestContext context)
        {
            /*
             * Get random bytes as hex string from random.org
             */

            const string url        = "https://www.random.org/cgi-bin/randbyte?nbytes=16&format=h";
            IHttpRequest request    = new HttpRequest(HttpMethod.Get, url, new HttpHeaders());
            IHttpFacade  httpFacade = new UnirestHttpFacade();

            Console.WriteLine("Sending GET request: {0}", url);
            IHttpResponse response = await httpFacade.RequestAsync(request);

            Console.WriteLine("Response CODE = {0}, BODY = {1}", response.Code, response.Body.Trim());
        }
Ejemplo n.º 31
0
        public async Task RunAsync(IRestContext context)
        {
            /*
             * Get random bytes as hex string from random.org
             */

            const string url = "https://www.random.org/cgi-bin/randbyte?nbytes=16&format=h";
            IHttpRequest request = new HttpRequest(HttpMethod.Get, url, new HttpHeaders());
            IHttpFacade httpFacade = new UnirestHttpFacade();

            Console.WriteLine("Sending GET request: {0}", url);
            IHttpResponse response = await httpFacade.RequestAsync(request);

            Console.WriteLine("Response CODE = {0}, BODY = {1}", response.Code, response.Body.Trim());
        }
Ejemplo n.º 32
0
        public async Task RunAsync(IRestContext context)
        {
            // Send an email
            Console.WriteLine("Sending email...");

            // Using the builder is good for simple emails
            EmailRequest request = new EmailRequestBuilder().AddTo("*****@*****.**")
                                                            .WithSubject("Hello")
                                                            .WithBody("Hello, world!")
                                                            .Build();

            IEmailApi emailApi = context.Factory.CreateEmailApi("email");
            int count = await emailApi.SendEmailAsync(request);

            Console.WriteLine("{0} email(s) sent.", count);
        }
Ejemplo n.º 33
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable<EventCacheResponse> events = await systemApi.GetEventsAsync(true);
            Console.WriteLine("User events:");
            var paths = events.Single(x => x.name == "user").paths;
            IEnumerable<string> userEvents = from p in paths
                                             from v in p.verbs
                                             from fv in FlattenVerbs(v)
                                             select p.path + " " + fv;
            foreach (string userEvent in userEvents)
            {
                Console.WriteLine("\t{0}", userEvent);
            }
        }
Ejemplo n.º 34
0
        public async Task RunAsync(IRestContext context)
        {
            // Send an email
            Console.WriteLine("Sending email...");

            // Using the builder is good for simple emails
            EmailRequest request = new EmailRequestBuilder().AddTo("*****@*****.**")
                                   .WithSubject("Hello")
                                   .WithBody("Hello, world!")
                                   .Build();

            IEmailApi emailApi = context.Factory.CreateEmailApi("email");
            int       count    = await emailApi.SendEmailAsync(request);

            Console.WriteLine("{0} email(s) sent.", count);
        }
Ejemplo n.º 35
0
        public static void Initialize()
        {
            Container container = new Container();

            IRestContext context = DreamFactoryContext.Create();

            container.Register <IDatabaseApi>(() => context.Factory.CreateDatabaseApi(DreamFactoryContext.DbServiceName), Lifestyle.Transient);
            container.Register <ISystemAdminApi>(() => context.Factory.CreateSystemAdminApi(), Lifestyle.Transient);
            container.Register <IUserApi>(() => context.Factory.CreateUserApi(), Lifestyle.Transient);
            container.Register <IFilesApi>(() => context.Factory.CreateFilesApi(DreamFactoryContext.FileServiceName), Lifestyle.Transient);

            container.RegisterMvcControllers();
            container.Verify();

            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
        }
Ejemplo n.º 36
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable <EventCacheResponse> events = await systemApi.GetEventsAsync(true);

            Console.WriteLine("User events:");
            var paths = events.Single(x => x.name == "user").paths;
            IEnumerable <string> userEvents = from p in paths
                                              from v in p.verbs
                                              from fv in FlattenVerbs(v)
                                              select p.path + " " + fv;

            foreach (string userEvent in userEvents)
            {
                Console.WriteLine("\t{0}", userEvent);
            }
        }
Ejemplo n.º 37
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemEventApi eventApi = context.Factory.CreateSystemEventApi();

            IEnumerable<string> events = (await eventApi.GetEventsAsync()).ToList();
            Console.WriteLine("GetEventsAsync(): Found {0} events", events.Count());

            string eventName = events.First();

            // create
            EventScriptRequest createRequest = CreateEventScript();
            EventScriptResponse createResponse = await eventApi.CreateEventScriptAsync(eventName, new SqlQuery(), createRequest);
            Console.WriteLine("CreateEventScriptAsync(): Created script {0}", createResponse.Name);
            
            // delete
            EventScriptResponse deleteResponse = await eventApi.DeleteEventScriptAsync(eventName, new SqlQuery());
            Console.WriteLine("DeleteEventScriptAsync(): Deleted script {0}", deleteResponse.Name);
        }
        public async Task RunAsync(IRestContext context)
        {
            ICustomSettingsApi settingsApi = context.Factory.CreateUserCustomSettingsApi();

            // Setting some preferences
            List <CustomRequest> customSettings = new List <CustomRequest>
            {
                new CustomRequest
                {
                    Name  = "Language",
                    Value = "en-us"
                },
                new CustomRequest
                {
                    Name  = "TimeZone",
                    Value = "ET"
                }
            };

            if ((await settingsApi.SetCustomSettingsAsync(customSettings)).Records.Any())
            {
                Console.WriteLine("Created custom settings: preferences");
            }

            // Retrieving custom settings names
            IEnumerable <string> names = (await settingsApi.GetCustomSettingsAsync()).Records.Select(x => x.Name);
            string flatList            = string.Join(", ", names);

            Console.WriteLine("Retrieved available setting names: [{0}]", flatList);

            // Retrieving preferences back
            CustomResponse custom = await settingsApi.GetCustomSettingAsync("Language");

            Console.WriteLine("Retrieved preferences back:");
            Console.WriteLine("\tName={0}, Value={1}", "Language", custom.Value);

            // Deleting preferences
            await settingsApi.DeleteCustomSettingAsync("Language");

            Console.WriteLine("Deleted Language preferences!");
            await settingsApi.DeleteCustomSettingAsync("TimeZone");

            Console.WriteLine("Deleted TimeZone preferences!");
        }
Ejemplo n.º 39
0
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            // List apps
            SqlQuery query = new SqlQuery {
                Filter = "is_active=true", Fields = "*", Related = "service_by_storage_service_id,role_by_user_to_app_to_role",
            };
            IEnumerable <AppResponse> apps = (await systemApi.GetAppsAsync(query)).ToList();

            Console.WriteLine("Apps: {0}", apps.Select(x => x.Name).ToStringList());

            // Check admin app
            AppResponse adminApp = apps.Single(x => x.Name == "admin");
            RelatedRole role     = adminApp.Roles.FirstOrDefault();

            if (role != null)
            {
                Console.WriteLine("admin app has first role: {0}", role.Name);
            }
            else
            {
                Console.WriteLine("admin app has no roles.");
            }
            RelatedService service = adminApp.StorageService;

            Console.WriteLine("admin app has {0} {1}", service != null ? "service" : "no service", service != null ? service.Name : "");

            // List users with roles
            IEnumerable <UserResponse> users = await systemApi.GetUsersAsync(new SqlQuery());

            Console.WriteLine("Users: {0}", users.Select(x => x.Name).ToStringList());

            // Get environment info - does not work for WAMP, uncomment when using linux hosted DSP.
            // EnvironmentResponse environment = await systemApi.GetEnvironmentAsync();
            // Console.WriteLine("DreamFactory Server is running on {0}", environment.Server);

            // Get constant //TODO: see about constants
            // var contentTypes = await systemApi.GetConstantAsync("content_types");
            // Console.WriteLine("Content Types: {0}", contentTypes.Keys.ToStringList());
        }
Ejemplo n.º 40
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemEventApi eventApi = context.Factory.CreateSystemEventApi();

            IEnumerable <string> events = (await eventApi.GetEventsAsync()).ToList();

            Console.WriteLine("GetEventsAsync(): Found {0} events", events.Count());

            string eventName = events.First();

            // create
            EventScriptRequest  createRequest  = CreateEventScript();
            EventScriptResponse createResponse = await eventApi.CreateEventScriptAsync(eventName, new SqlQuery(), createRequest);

            Console.WriteLine("CreateEventScriptAsync(): Created script {0}", createResponse.Name);

            // delete
            EventScriptResponse deleteResponse = await eventApi.DeleteEventScriptAsync(eventName, new SqlQuery());

            Console.WriteLine("DeleteEventScriptAsync(): Deleted script {0}", deleteResponse.Name);
        }
        public async Task RunAsync(IRestContext context)
        {
            ICustomSettingsApi settingsApi = context.Factory.CreateUserCustomSettingsApi();

            // Setting some preferences
            List<CustomRequest> customSettings = new List<CustomRequest>
            {
                new CustomRequest
                {
                    Name = "Language",
                    Value = "en-us"
                },
                new CustomRequest
                {
                    Name = "TimeZone",
                    Value = "ET"
                }
            };

            if ((await settingsApi.SetCustomSettingsAsync(customSettings)).Records.Any())
            {
                Console.WriteLine("Created custom settings: preferences");
            }

            // Retrieving custom settings names
            IEnumerable<string> names = (await settingsApi.GetCustomSettingsAsync()).Records.Select(x => x.Name);
            string flatList = string.Join(", ", names);
            Console.WriteLine("Retrieved available setting names: [{0}]", flatList);

            // Retrieving preferences back
            CustomResponse custom = await settingsApi.GetCustomSettingAsync("Language");
            Console.WriteLine("Retrieved preferences back:");
            Console.WriteLine("\tName={0}, Value={1}", "Language", custom.Value);

            // Deleting preferences
            await settingsApi.DeleteCustomSettingAsync("Language");
            Console.WriteLine("Deleted Language preferences!");
            await settingsApi.DeleteCustomSettingAsync("TimeZone");
            Console.WriteLine("Deleted TimeZone preferences!");
        }
Ejemplo n.º 42
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            // List apps
            SqlQuery query = new SqlQuery { filter = "is_active=true", fields = "*", related = "services,roles", };
            IEnumerable<AppResponse> apps = await systemApi.GetAppsAsync(query);
            Console.WriteLine("Apps: {0}", apps.Select(x => x.api_name).ToStringList());

            // Check todoangular app
            AppResponse todoAngular = apps.Single(x => x.api_name == "todoangular");
            RelatedRole role = todoAngular.roles.First();
            Console.WriteLine("todoangular app has first role: {0}", role.name);
            RelatedService service = todoAngular.services.First();
            Console.WriteLine("todoangular app has first service: {0}", service.name);

            // List users with roles
            IEnumerable<UserResponse> users = await systemApi.GetUsersAsync(new SqlQuery());
            Console.WriteLine("Users: {0}", users.Select(x => x.display_name).ToStringList());

            // Download app package & SDK
            Console.WriteLine("Downloading app package and SDK...");
            byte[] package = await systemApi.DownloadApplicationPackageAsync(1);
            byte[] sdk = await systemApi.DownloadApplicationSdkAsync(1);
            File.WriteAllBytes("todojquery-package.zip", package);
            File.WriteAllBytes("todojquery-sdk.zip", sdk);

            // Get environment info - does not work for WAMP, uncomment when using linux hosted DSP.
            // EnvironmentResponse environment = await systemApi.GetEnvironmentAsync();
            // Console.WriteLine("DreamFactory Server is running on {0}", environment.server.server_os);

            // Get config
            ConfigResponse config = await systemApi.GetConfigAsync();
            Console.WriteLine("config.install_name = {0}", config.install_name);

            // Get constant
            Dictionary<string, string> contentTypes = await systemApi.GetConstantAsync("content_types");
            Console.WriteLine("Content Types: {0}", contentTypes.Keys.ToStringList());
        }
Ejemplo n.º 43
0
        public async Task RunAsync(IRestContext context)
        {
            IFilesApi filesApi = context.Factory.CreateFilesApi("files");

            // Display existing containers
            IEnumerable <string> names = await filesApi.GetContainerNamesAsync();

            Console.WriteLine("GetContainerNamesAsync(): {0}", names.ToStringList());

            // Creating a test container - tank
            await filesApi.CreateContainersAsync(false, TestContainer);

            // Creating a file
            FileResponse response = await filesApi.CreateFileAsync(TestContainer, "test.txt", "test", false);

            Console.WriteLine("Created file: {0}", response.path);

            // Reading the file
            string content = await filesApi.GetTextFileAsync(TestContainer, "test.txt");

            Console.WriteLine("GetFile content: {0}", content);

            // Deleting the file
            response = await filesApi.DeleteFileAsync(TestContainer, "test.txt");

            Console.WriteLine("Deleted file: {0}", response.path);

            // Deleting the container
            await filesApi.DeleteContainersAsync(TestContainer);

            Console.WriteLine("Container '{0}' deleted.", TestContainer);

            // Downloading a container
            Console.WriteLine("Downloading 'applications' container as zip archive...");
            byte[] zip = await filesApi.DownloadContainerAsync("applications");

            File.WriteAllBytes("applications-container.zip", zip);
            Console.WriteLine("Open applications-container.zip to see the contents.");
        }
Ejemplo n.º 44
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemRoleApi roleApi = context.Factory.CreateSystemRoleApi();

            SqlQuery query = new SqlQuery
            {
                Fields  = "*",
                Related = string.Join(",", RelatedResources.Role.Apps, RelatedResources.Role.UsersInApps, RelatedResources.Role.ServicesInApps)
            };
            IEnumerable <RoleResponse> roles = (await roleApi.GetRolesAsync(query)).ToList();

            Console.WriteLine("GetRolesAsync(): {0}", roles.Select(x => x.Name).ToStringList());

            RoleResponse role = roles.SingleOrDefault(x => x.Name == NewRole);

            if (role != null)
            {
                await DeleteRole(role, roleApi);
            }

            RoleRequest newRole = new RoleRequest
            {
                Name        = NewRole,
                Description = "new role",
                IsActive    = true
            };

            roles = await roleApi.CreateRolesAsync(new SqlQuery(), newRole);

            role = roles.Single(x => x.Name == NewRole);
            Console.WriteLine("CreateRolesAsync(): {0}", context.ContentSerializer.Serialize(role));

            newRole.Id          = role.Id;
            newRole.Description = "new description";
            role = (await roleApi.UpdateRolesAsync(new SqlQuery(), newRole)).Single(x => x.Name == NewRole);
            Console.WriteLine("UpdateUsersAsync(): new description={0}", role.Description);

            await DeleteRole(role, roleApi);
        }
Ejemplo n.º 45
0
        // ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable<ScriptResponse> scripts = await systemApi.GetScriptsAsync(true);
            Console.WriteLine("GetScriptsAsync(): {0}", scripts.Select(x => x.script_id).ToStringList());

            if (scripts.Any(x => x.script_id == ScriptId))
            {
                await DeleteDummyScript(systemApi);
            }

            const string scriptText = @"return Number(event.n1) + Number(event.n2);";
            ScriptResponse response = await systemApi.WriteScriptAsync(ScriptId, scriptText);
            Console.WriteLine("WriteScriptAsync(): id={0}", response.script_id);

            Dictionary<string, object> p = new Dictionary<string, object> { { "n1", 3 }, { "n2", 5 } };
            string output = await systemApi.RunScriptAsync(ScriptId, p);
            Console.WriteLine("RunScriptAsync(): {0}", context.ContentSerializer.Serialize(output));

            await DeleteDummyScript(systemApi);
        }
Ejemplo n.º 46
0
        public async Task RunAsync(IRestContext context)
        {
            IUserApi userApi = context.Factory.CreateUserApi();

            try
            {
                Session session = await userApi.LoginAsync(Program.DefaultApp, Program.Email, Program.Password);
                Console.WriteLine("Logged in as {0}", session.display_name);
            }
            catch (Exception)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Unfortunately, something went wrong.");
                Console.WriteLine("Please check the following:");
                Console.WriteLine("\t- your DSP is listening: {0}", Program.BaseAddress);
                Console.WriteLine("\t- you have created user '{0}' with password '{1}'", Program.Email, Program.Password);
                Console.WriteLine();
                Console.ResetColor();

                throw;
            }
        }
Ejemplo n.º 47
0
        public async Task RunAsync(IRestContext context)
        {
            IFilesApi filesApi = context.Factory.CreateFilesApi("files");

            // Display resources
            IEnumerable <string> names = await filesApi.GetResourceNamesAsync();

            Console.WriteLine("GetResourcesAsync():");
            foreach (string name in names)
            {
                Console.WriteLine("\t{0}", name);
            }

            // Creating a folder
            await filesApi.CreateFolderAsync("test", true);

            Console.WriteLine("Folder 'test' created.");

            // Creating a file
            FileResponse response = await filesApi.CreateFileAsync("test/test.txt", "test", true);

            Console.WriteLine("Created file: {0}", response.Path);

            // Reading the file
            string content = await filesApi.GetTextFileAsync("test/test.txt");

            Console.WriteLine("GetFile content: {0}", content);

            // Deleting the file
            response = await filesApi.DeleteFileAsync("test/test.txt");

            Console.WriteLine("Deleted file: {0}", response.Path);

            // Deleting the folder
            await filesApi.DeleteFolderAsync("test", true);

            Console.WriteLine("Folder 'test' deleted.");
        }
Ejemplo n.º 48
0
        public async Task RunAsync(IRestContext context)
        {
            IUserApi userApi = context.Factory.CreateUserApi();

            try
            {
                Session session = await userApi.LoginAsync(Program.DefaultApp, Program.Email, Program.Password);

                Console.WriteLine("Logged in as {0}", session.display_name);
            }
            catch (Exception)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Unfortunately, something went wrong.");
                Console.WriteLine("Please check the following:");
                Console.WriteLine("\t- your DSP is listening: {0}", Program.BaseAddress);
                Console.WriteLine("\t- you have created user '{0}' with password '{1}'", Program.Email, Program.Password);
                Console.WriteLine();
                Console.ResetColor();

                throw;
            }
        }
Ejemplo n.º 49
0
 private void StartConfig(ClientConfig clientConfig)
 {
     _clientConfig = clientConfig;
     _restContext  = clientConfig.GetRest();
     _restContext.Init();
     _cacheContext      = clientConfig.CacheContext;
     _serializerOptions = new JsonSerializerOptions()
     {
         Converters =
         {
             new MemberCollectionConverter(_cacheContext,  this,         Logger),
             new UserCollectionConverter(_cacheContext,    this,         Logger),
             new ChannelCollectionConverter(_cacheContext, this,         _restContext,Logger),
             new ChannelConverter(_cacheContext,           _restContext, Logger),
             new ULongConverter(),
             new TimeSpanConverter()
         }
     };
     _gatewayContext = clientConfig.GetGateway();
     Logger          = clientConfig.Logger;
     Logger.Log(LoggingLevel.Dcs, "DiscosCs v0.1-dev");
     InitCollections();
 }
Ejemplo n.º 50
0
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            IUserApi userApi = context.Factory.CreateUserApi();

            // getSession()
            Session session = await userApi.GetSessionAsync();

            Console.WriteLine("Session ID: [{0}...]", session.SessionId.Substring(0, 32));

            // getProfile()
            ProfileResponse profile = await userApi.GetProfileAsync();

            Console.WriteLine("Email from your profile: {0}", profile.Email);

            // register()
            string   guid     = Guid.NewGuid().ToString();
            Register register = new Register
            {
                FirstName   = guid.Substring(0, 6),
                LastName    = guid.Substring(0, 6),
                Email       = guid.Substring(0, 6) + "@factory.com",
                Name        = guid.Substring(0, 6),
                NewPassword = guid.Substring(0, 6)
            };
            bool ok = await userApi.RegisterAsync(register, true);

            if (ok)
            {
                Console.WriteLine("Successfully registered user: {0}", guid.Substring(0, 8));
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Unfortunately, something went wrong.");
            }
        }
Ejemplo n.º 51
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable <UserResponse> users = await systemApi.GetUsersAsync(new SqlQuery());

            Console.WriteLine("GetUsersAsync(): {0}", users.Select(x => x.display_name).ToStringList());

            UserResponse user = users.SingleOrDefault(x => x.email == NewEmail);

            if (user != null)
            {
                await DeleteUser(user, systemApi);
            }

            UserRequest newUser = new UserRequest
            {
                first_name   = "Andrei",
                last_name    = "Smirnov",
                display_name = "pinebit",
                email        = NewEmail,
                password     = "******",
                is_active    = true
            };

            users = await systemApi.CreateUsersAsync(new SqlQuery(), newUser);

            user = users.Single(x => x.email == NewEmail);
            Console.WriteLine("CreateUsersAsync(): {0}", context.ContentSerializer.Serialize(user));

            newUser.id           = user.id;
            newUser.display_name = "Andrei Smirnov";
            user = (await systemApi.UpdateUsersAsync(new SqlQuery(), newUser)).Single(x => x.email == NewEmail);
            Console.WriteLine("UpdateUsersAsync(): new display_name={0}", user.display_name);

            await DeleteUser(user, systemApi);
        }
Ejemplo n.º 52
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemAppApi appApi = context.Factory.CreateSystemAppApi();

            // Read
            SqlQuery query = new SqlQuery {
                Fields  = "*",
                Related = String.Join(",", RelatedResources.App.StorageService, RelatedResources.App.Roles)
            };
            IEnumerable <AppResponse> apps = (await appApi.GetAppsAsync(query)).ToList();

            Console.WriteLine("Apps:");
            foreach (AppResponse app in apps)
            {
                Console.WriteLine("\tName: {0}, ApiKey: {1}", app.Name, app.ApiKey);
            }

            // Cloning
            AppResponse adminApp        = apps.Single(x => x.Name == "admin");
            AppRequest  adminAppRequest = adminApp.Convert <AppResponse, AppRequest>();

            adminAppRequest.Id   = null;
            adminAppRequest.Name = adminApp.Name + "clone";

            // Creating a clone
            apps = await appApi.CreateAppsAsync(new SqlQuery(), adminAppRequest);

            AppResponse adminAppClone = apps.Single(x => x.Name == "adminclone");

            Console.WriteLine("Created a clone app Name:{0}, ApiKey:{1}", adminAppClone.Name, adminAppClone.ApiKey);

            // Deleting the clone
            Debug.Assert(adminAppClone.Id.HasValue);
            await appApi.DeleteAppsAsync(new SqlQuery(), adminAppClone.Id.Value);

            Console.WriteLine("Created clone has been deleted");
        }
Ejemplo n.º 53
0
// ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            SqlQuery query = new SqlQuery {
                fields = "*", related = "apps,users,services"
            };
            IEnumerable <RoleResponse> roles = await systemApi.GetRolesAsync(query);

            Console.WriteLine("GetRolesAsync(): {0}", roles.Select(x => x.name).ToStringList());

            RoleResponse role = roles.SingleOrDefault(x => x.name == NewRole);

            if (role != null)
            {
                await DeleteRole(role, systemApi);
            }

            RoleRequest newRole = new RoleRequest
            {
                name        = NewRole,
                description = "new role",
                is_active   = true
            };

            roles = await systemApi.CreateRolesAsync(new SqlQuery(), newRole);

            role = roles.Single(x => x.name == NewRole);
            Console.WriteLine("CreateRolesAsync(): {0}", context.ContentSerializer.Serialize(role));

            newRole.id          = role.id;
            newRole.description = "new description";
            role = (await systemApi.UpdateRolesAsync(new SqlQuery(), newRole)).Single(x => x.name == NewRole);
            Console.WriteLine("UpdateUsersAsync(): new description={0}", role.description);

            await DeleteRole(role, systemApi);
        }
Ejemplo n.º 54
0
        public async Task RunAsync(IRestContext context)
        {
            ISystemRoleApi roleApi = context.Factory.CreateSystemRoleApi();

            SqlQuery query = new SqlQuery
            {
                Fields = "*",
                Related = string.Join(",", RelatedResources.Role.Apps, RelatedResources.Role.UsersInApps, RelatedResources.Role.ServicesInApps)
            };
            IEnumerable<RoleResponse> roles = (await roleApi.GetRolesAsync(query)).ToList();
            Console.WriteLine("GetRolesAsync(): {0}", roles.Select(x => x.Name).ToStringList());

            RoleResponse role = roles.SingleOrDefault(x => x.Name == NewRole);
            if (role != null)
            {
                await DeleteRole(role, roleApi);
            }

            RoleRequest newRole = new RoleRequest
            {
                Name = NewRole,
                Description = "new role",
                IsActive = true
            };
                
            roles = await roleApi.CreateRolesAsync(new SqlQuery(), newRole);
            role = roles.Single(x => x.Name == NewRole);
            Console.WriteLine("CreateRolesAsync(): {0}", context.ContentSerializer.Serialize(role));

            newRole.Id = role.Id;
            newRole.Description = "new description";
            role = (await roleApi.UpdateRolesAsync(new SqlQuery(), newRole)).Single(x => x.Name == NewRole);
            Console.WriteLine("UpdateUsersAsync(): new description={0}", role.Description);

            await DeleteRole(role, roleApi);
        }
Ejemplo n.º 55
0
        public async Task RunAsync(IRestContext context)
        {
            // IUserApi provides all functions for user management
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            // List apps
            SqlQuery query = new SqlQuery { Filter = "is_active=true", Fields = "*", Related = "service_by_storage_service_id,role_by_user_to_app_to_role", };
            IEnumerable<AppResponse> apps = (await systemApi.GetAppsAsync(query)).ToList();
            Console.WriteLine("Apps: {0}", apps.Select(x => x.Name).ToStringList());

            // Check admin app
            AppResponse adminApp = apps.Single(x => x.Name == "admin");
            RelatedRole role = adminApp.Roles.FirstOrDefault();
            if (role != null)
            {
                Console.WriteLine("admin app has first role: {0}", role.Name);
            }
            else
            {
                Console.WriteLine("admin app has no roles.");
            }
            RelatedService service = adminApp.StorageService;
            Console.WriteLine("admin app has {0} {1}", service != null ? "service" : "no service", service != null ? service.Name : "");

            // List users with roles
            IEnumerable<UserResponse> users = await systemApi.GetUsersAsync(new SqlQuery());
            Console.WriteLine("Users: {0}", users.Select(x => x.Name).ToStringList());

            // Get environment info - does not work for WAMP, uncomment when using linux hosted DSP.
            // EnvironmentResponse environment = await systemApi.GetEnvironmentAsync();
            // Console.WriteLine("DreamFactory Server is running on {0}", environment.Server);
            
            // Get constant //TODO: see about constants
            // var contentTypes = await systemApi.GetConstantAsync("content_types");
            // Console.WriteLine("Content Types: {0}", contentTypes.Keys.ToStringList());
        }