/// <summary> /// Gets the user repository. /// </summary> /// <returns>Task{IUserRepository}.</returns> private async Task <IUserRepository> GetUserRepository() { var repo = new SqliteUserRepository(JsonSerializer, LogManager, ApplicationPaths); await repo.Initialize().ConfigureAwait(false); return(repo); }
public static void PrintUsers(SqliteUserRepository repository) { var people = repository.GetUsers(); foreach (var person in people) { Console.WriteLine(person.FirstName + " " + person.LastName); } }
private async Task <IUserRepository> GetUserRepository() { var dbFile = Path.Combine(ApplicationPaths.DataPath, "users.db"); var connection = await ConnectToDb(dbFile).ConfigureAwait(false); var repo = new SqliteUserRepository(connection, JsonSerializer, LogManager); repo.Initialize(); return(repo); }
public void CanGetEntityByIdNotFound() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); // Act var result = repo.GetById(0); // Assert Assert.IsFalse(result.IsValid); }
public void AddOrUpdateEntityIsRequired() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); // Act var result = repo.AddOrUpdate(null); // Assert Assert.IsFalse(result.IsValid); Assert.IsTrue(result.Exception is ArgumentNullException); }
public void CanListEntitiesByNameOrSurname() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); var entity1 = new User(0, "email1", new byte[] { 0x1, 0x1 }, "NameB", "Surname1", false, false); var entity2 = new User(0, "email2", new byte[] { 0x2, 0x2 }, "Name2", "SurnameA", true, true); var entity3 = new User(0, "email2", new byte[] { 0x2, 0x2 }, "Name3", "SurnameB", true, true); var savedEntity1 = repo.AddOrUpdate(entity1); repo.AddOrUpdate(entity2); var savedEntity3 = repo.AddOrUpdate(entity3); var filters = ImmutableList.Create(new[]
public void AddOrUpdateIsSafe() { // Arrange var conn = GetConnectionString(); var entity = new User(0, "email", new byte[] { 0x1, 0x2 }, "Name", "Surname"); var repo = new SqliteUserRepository(conn); // Act _conn.Dispose(); var newEntity = repo.AddOrUpdate(entity); // Assert Assert.IsFalse(newEntity.IsValid); }
public void CanGetEntityById() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); var entity = new User(0, "email", new byte[] { 0x1, 0x2 }, "Name"); var savedEntity = repo.AddOrUpdate(entity); // Act var result = repo.GetById(savedEntity.Value.Id); // Assert Assert.IsTrue(result.IsValid); Assert.IsTrue(result.Value.Equals(savedEntity.Value)); }
public void CanCreateEntity() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); var entity = new User(0, "email", new byte[] { 0x1, 0x2 }, "Name"); // Act var newEntity = repo.AddOrUpdate(entity); // Assert Assert.IsTrue(newEntity.IsValid); Assert.IsTrue(newEntity.Value.Id == 1); }
public void CanListEntities() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); var entity = new User(0, "email", new byte[] { 0x1, 0x2 }, "Name"); var savedEntity = repo.AddOrUpdate(entity); // Act var listEntities = repo.ListEntities(); // Assert Assert.IsTrue(listEntities.IsValid); Assert.IsTrue(listEntities.Value.Any()); Assert.IsTrue(savedEntity.Value.Equals(listEntities.Value.First())); }
public void CanListEntitiesByIdAndNameNotFound() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); var entity1 = new User(0, "email1", new byte[] { 0x1, 0x1 }, "Name1", "Surname1", false, false); var entity2 = new User(0, "email2", new byte[] { 0x2, 0x2 }, "Name2", "Surname2", true, true); repo.AddOrUpdate(entity1); repo.AddOrUpdate(entity2); var filters = ImmutableList.Create(new[] { new Filter <User>("Id", (uint)1), new Filter <User>("Name", "Name2") }); // Act var listEntities = repo.ListEntities(filters); // Assert Assert.IsTrue(listEntities.IsValid); Assert.IsFalse(listEntities.Value.Any()); }
public void CanListEntitiesActive() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); var entity1 = new User(0, "email1", new byte[] { 0x1, 0x2 }, "Name1", isActive: true); var savedEntity1 = repo.AddOrUpdate(entity1); var entity2 = new User(0, "email2", new byte[] { 0x2, 0x1 }, "Name2", isActive: false); _ = repo.AddOrUpdate(entity2); // Act var listEntities = repo.ListEntities(status: Status.Active); // Assert Assert.IsTrue(listEntities.IsValid); Assert.IsTrue(listEntities.Value.Count == 1); Assert.IsTrue(savedEntity1.Value.Equals(listEntities.Value.First())); }
public void CanListEntitiesByEmail() { // Arrange var conn = GetConnectionString(); var repo = new SqliteUserRepository(conn); var entity1 = new User(0, "email1", new byte[] { 0x1, 0x1 }, "Name1", "Surname1", false, false); var entity2 = new User(0, "email2", new byte[] { 0x2, 0x2 }, "Name2", "Surname2", true, true); repo.AddOrUpdate(entity1); var savedEntity2 = repo.AddOrUpdate(entity2); var filters = ImmutableList.Create(new Filter <User>("Email", "email2")); // Act var listEntities = repo.ListEntities(filters); // Assert Assert.IsTrue(listEntities.IsValid); Assert.IsTrue(listEntities.Value.Any()); Assert.IsTrue(savedEntity2.Value.Equals(listEntities.Value.First())); }
static void Main(string[] args) { var repo = new SqliteInitialization(); repo.PrintVersion(); var postRepo = new SqlitePostRepository(); var threadRepo = new SqliteThreadRepository(); var userRepo = new SqliteUserRepository(); while (true) { Console.WriteLine("Write 1 to show all threads. \n" + "Write 2 to show all users. \n"); string x = ""; x = Console.ReadLine(); if (x == "1") { Console.Clear(); threadRepo.GetThreads(); while (true) { PrintThreads(threadRepo); var people = threadRepo.GetThreads(); Console.WriteLine("Write the id of the thread you want to view." + "\nWrite c to create a new thread." + "\nWrite x to go back."); string input = Console.ReadLine(); if (input == "x") { Console.Clear(); break; } if (input == "c") { Console.Clear(); Thread newThread = new Thread(); Console.WriteLine("Write a topic:"); newThread.Topic = Console.ReadLine(); Console.WriteLine("Write a text:"); newThread.Text = Console.ReadLine(); newThread.PostCount = 100; threadRepo.AddThread(newThread); Console.WriteLine("Thread added!"); continue; } int threadId = int.Parse(input); Console.Clear(); var threadCreator = userRepo.GetPersonWithIdWhoCreatedThread(threadId); Console.WriteLine("User: "******"Write 1 to add a post"); Console.WriteLine("Write 2 to edit a post"); Console.WriteLine("Write 3 to delete a post"); Console.WriteLine("Write x to go back."); string threadInput = Console.ReadLine(); if (threadInput == "x") { Console.Clear(); break; } if (threadInput == "1") { Console.WriteLine(threadId); Post newPost = new Post(); Console.WriteLine("Write a text:"); newPost.Text = Console.ReadLine(); Console.WriteLine("Write the owners ID:"); newPost.UserId = Console.ReadLine(); newPost.ThreadId = threadId.ToString(); postRepo.AddPost(newPost); var obj = threadRepo.GetThreadWithId(threadId); obj.PostCount = obj.PostCount + 1; threadRepo.UpdateThreadPostCount(obj); Console.Clear(); break; } if (threadInput == "2") { Console.WriteLine("What is the ID of the post you want to edit?"); string editPostId = Console.ReadLine(); int editPostInt = int.Parse(editPostId); Post postObject = new Post(); postObject = postRepo.GetPostWithId(editPostInt); Console.WriteLine("Write the new text."); string newText = Console.ReadLine(); postObject.Text = newText; postRepo.UpdatePost(postObject); } if (threadInput == "3") { Console.WriteLine("What is the ID of the post you want to delete?"); string deletePostId = Console.ReadLine(); int editPostInt = int.Parse(deletePostId); Post postObject = new Post(); postObject = postRepo.GetPostWithId(editPostInt); postRepo.DeletePost(postObject); var obj = threadRepo.GetThreadWithId(threadId); obj.PostCount = obj.PostCount - 1; threadRepo.UpdateThreadPostCount(obj); Console.Clear(); break; } } } continue; } if (x == "2") { Console.Clear(); userRepo.GetUsers(); PrintUsers(userRepo); continue; } x = ""; } }
/// <summary> /// Registers resources that classes will depend on /// </summary> /// <returns>Task.</returns> protected override async Task RegisterResources() { ServerKernel = new Kernel(); await base.RegisterResources().ConfigureAwait(false); RegisterSingleInstance <IHttpResultFactory>(new HttpResultFactory(LogManager)); RegisterSingleInstance <IServerApplicationHost>(this); RegisterSingleInstance <IServerApplicationPaths>(ApplicationPaths); RegisterSingleInstance(ServerKernel); RegisterSingleInstance(ServerConfigurationManager); RegisterSingleInstance <IWebSocketServer>(() => new AlchemyServer(Logger)); RegisterSingleInstance <IIsoManager>(() => new PismoIsoManager(Logger)); RegisterSingleInstance <IBlurayExaminer>(() => new BdInfoExaminer()); ZipClient = new DotNetZipClient(); RegisterSingleInstance(ZipClient); UserDataRepository = new SqliteUserDataRepository(ApplicationPaths, JsonSerializer, LogManager); RegisterSingleInstance(UserDataRepository); UserRepository = new SqliteUserRepository(ApplicationPaths, JsonSerializer, LogManager); RegisterSingleInstance(UserRepository); DisplayPreferencesRepository = new SqliteDisplayPreferencesRepository(ApplicationPaths, JsonSerializer, LogManager); RegisterSingleInstance(DisplayPreferencesRepository); ItemRepository = new SqliteItemRepository(ApplicationPaths, JsonSerializer, LogManager); RegisterSingleInstance(ItemRepository); UserManager = new UserManager(Logger, ServerConfigurationManager); RegisterSingleInstance(UserManager); LibraryManager = new LibraryManager(Logger, TaskManager, UserManager, ServerConfigurationManager, UserDataRepository, () => DirectoryWatchers); RegisterSingleInstance(LibraryManager); DirectoryWatchers = new DirectoryWatchers(LogManager, TaskManager, LibraryManager, ServerConfigurationManager); RegisterSingleInstance(DirectoryWatchers); ProviderManager = new ProviderManager(HttpClient, ServerConfigurationManager, DirectoryWatchers, LogManager, LibraryManager); RegisterSingleInstance(ProviderManager); RegisterSingleInstance <ILibrarySearchEngine>(() => new LuceneSearchEngine(ApplicationPaths, LogManager, LibraryManager)); MediaEncoder = new MediaEncoder(LogManager.GetLogger("MediaEncoder"), ZipClient, ApplicationPaths, JsonSerializer); RegisterSingleInstance(MediaEncoder); var clientConnectionManager = new SessionManager(UserDataRepository, ServerConfigurationManager, Logger, UserRepository); RegisterSingleInstance <ISessionManager>(clientConnectionManager); HttpServer = await _httpServerCreationTask.ConfigureAwait(false); RegisterSingleInstance(HttpServer, false); ServerManager = new ServerManager(this, JsonSerializer, Logger, ServerConfigurationManager); RegisterSingleInstance(ServerManager); LocalizationManager = new LocalizationManager(ServerConfigurationManager); RegisterSingleInstance(LocalizationManager); var displayPreferencesTask = Task.Run(async() => await ConfigureDisplayPreferencesRepositories().ConfigureAwait(false)); var itemsTask = Task.Run(async() => await ConfigureItemRepositories().ConfigureAwait(false)); var userdataTask = Task.Run(async() => await ConfigureUserDataRepositories().ConfigureAwait(false)); var userTask = Task.Run(async() => await ConfigureUserRepositories().ConfigureAwait(false)); await ConfigureNotificationsRepository().ConfigureAwait(false); await Task.WhenAll(itemsTask, userTask, displayPreferencesTask, userdataTask).ConfigureAwait(false); SetKernelProperties(); }