private async void Window_Loaded(object sender, RoutedEventArgs e) { async Task <IClient> CreateClient() { var exists = File.Exists(SettingsPath); var settingsFile = exists ? Some(SettingsPath) : None <string>(); var storage = new SqliteStorage($"{nameof(Chatter)}.db"); var dispatcher = new SynchronizationDispatcher(TaskScheduler.FromCurrentSynchronizationContext(), Application.Current.Dispatcher); var result = await TryAsync(() => LinkFactory.CreateClientAsync(dispatcher, storage, settingsFile)).NoticeOnErrorAsync(); var client = result.UnwrapOrDefault(); if (exists == false && client != null) { client.Profile.Name = $"{Environment.UserName}@{Environment.MachineName}"; } if (result.IsError()) { Application.Current.Shutdown(); } return(client); } this.IsEnabled = false; using var _0 = Disposable.Create(() => this.IsEnabled = true); this.client = App.CurrentClient ?? await CreateClient(); this.DataContext = this.client?.Profile; }
public void InitializeTest() { SqliteStorage Storage = new SqliteStorage("Data Source=:memory:", true); bool Status = Storage.Initialize(); Assert.IsTrue(Status); }
public void UpdateOnePreferenceTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreatePreferenceTable()); List <UserPreference> preferences = new List <UserPreference>(); // When is the primary key set, at inserion or object creation? UserPreference u1 = new UserPreference("movies", 0.0, 0.0); UserPreference u2 = new UserPreference("games", 0.0, 100.0); preferences.Add(u1); preferences.Add(u2); bool result = storage.InsertUserPreferences(preferences); Assert.True(result); u1._category = "gardening"; u1._minPrice = 95.0; u1._maxPrice = 165.75; result = storage.UpdateUserPreference(u1); Assert.True(result); UserPreference updatedPref = storage.GetUserPreference("gardening"); Assert.NotNull(updatedPref); Assert.Equal(95.0, updatedPref._minPrice); Assert.Equal(165.75, updatedPref._maxPrice); }
private async void Window_Opened(object sender, EventArgs e) { this.AddHandler(Button.ClickEvent, Button_Click); async Task <IClient> CreateClient() { var exists = File.Exists(SettingsPath); var settingsFile = exists ? Some(SettingsPath) : None <string>(); var storage = new SqliteStorage($"{nameof(Chatter)}.db"); var dispatcher = new SynchronizationDispatcher(Dispatcher.UIThread); var result = await TryAsync(() => LinkFactory.CreateClientAsync(dispatcher, storage, settingsFile)).NoticeOnErrorAsync(); var client = result.UnwrapOrDefault(); if (exists == false && client != null) { client.Profile.Name = $"{Environment.UserName}@{Environment.MachineName}"; } if (result.IsError()) { this.Close(); } return(client); } this.IsEnabled = false; using var _0 = Disposable.Create(() => this.IsEnabled = true); client = App.CurrentClient ?? await CreateClient(); DataContext = client?.Profile; }
private void Button_Clicked(object sender, EventArgs e) { var password = ViewModel.MasterPassword; var serviceName = ServicePersistor.GetServiceName(ViewModel.ServiceName); if (!String.IsNullOrEmpty(password) && !String.IsNullOrEmpty(serviceName)) { // Use one set of database vs a new database for a different master password var encryptedMaster = ServicePersistor.GetEncryptedFileName("DFtIETN"); // ServicePersistor.GetEncryptedFileName(password); var requirement = PasswordRequirements.None; SqliteStorage.InitializeStorage(IoCProviders.GetProvider <IKnowStorage>().GetStoragePath(), encryptedMaster); var serviceEntity = ServicePersistor.GetPasswordSettings(serviceName); if (serviceEntity != null) { requirement = (PasswordRequirements)serviceEntity.Requirements; ViewModel.IncludeNumbers = (requirement & PasswordRequirements.NumberRequired) > 0; ViewModel.IncludeSymbols = (requirement & PasswordRequirements.SymbolRequired) > 0; ViewModel.IncludeUppercase = (requirement & PasswordRequirements.UpperCaseRequired) > 0; } else { requirement |= ViewModel.IncludeNumbers ? PasswordRequirements.NumberRequired : PasswordRequirements.NoNumber; requirement |= ViewModel.IncludeSymbols ? PasswordRequirements.SymbolRequired : PasswordRequirements.NoSymbol; requirement |= ViewModel.IncludeUppercase ? PasswordRequirements.UpperCaseRequired : PasswordRequirements.None; } GeneratePassword(password, serviceName, requirement); } }
/// <summary> /// Retrieve ServiceEntity based on service name /// </summary> public static ServicesEntity GetPasswordSettings(string service) { var processedServiceName = GetServiceName(service); var entity = SqliteStorage.GetEntity <ServicesEntity>().FirstOrDefault(x => x.Service.Equals(processedServiceName)); return(entity); }
public void AddingOnePreferenceTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreatePreferenceTable()); bool result = storage.InsertUserPreference(new UserPreference("headphones")); Assert.True(result); }
public void ActivityFromStringTest() { SqliteStorage Storage = new SqliteStorage("Data Source=:memory:"); Storage.Initialize(); Activity act1 = new Activity("Test activity 1", Storage); Assert.AreEqual(0, act1.ActivityId); Assert.AreEqual("Test activity 1", act1.Name); Assert.AreEqual("", act1.Description); Assert.AreEqual("", act1.Tags); Activity act2 = new Activity("Test activity 2@Project name", Storage); Assert.AreEqual("Test activity 2", act2.Name); Assert.AreEqual("", act2.Description); Assert.AreEqual("", act2.Tags); Activity act3 = new Activity("Test activity 3@Project name;tag1,tag2", Storage); Assert.AreEqual("Test activity 3", act3.Name); Assert.AreEqual("", act3.Description); Assert.AreEqual("tag1,tag2", act3.Tags); Activity act4 = new Activity("Test activity 4@Project name;tag1,tag2,tag3#Some description", Storage); Assert.AreEqual("Test activity 4", act4.Name); Assert.AreEqual("Some description", act4.Description); Assert.AreEqual("tag1,tag2,tag3", act4.Tags); Activity act5 = new Activity("Test activity 5;tag1,tag2", Storage); Assert.AreEqual("Test activity 5", act5.Name); Assert.AreEqual("", act5.Description); Assert.AreEqual("tag1,tag2", act5.Tags); Activity act6 = new Activity("Test activity 6;tag3#Some description", Storage); Assert.AreEqual("Test activity 6", act6.Name); Assert.AreEqual("Some description", act6.Description); Assert.AreEqual("tag3", act6.Tags); Activity act7 = new Activity("Test activity 7@Project name#Some description", Storage); Assert.AreEqual("Test activity 7", act7.Name); Assert.AreEqual("Some description", act7.Description); Assert.AreEqual("", act7.Tags); Activity act8 = new Activity("Test activity 8#Some description", Storage); Assert.AreEqual("Test activity 8", act8.Name); Assert.AreEqual("Some description", act8.Description); Assert.AreEqual("", act8.Tags); }
public void SQLiteGetItemTest() { SqliteStorage storage = new SqliteStorage(); StorageModel model = new StorageModel() { Name = "name1", Value = "value1" }; string key = "Person/1"; storage.AddItem(key, model); StorageModel result = storage.GetItem<StorageModel>(key); Assert.AreEqual(model, result); }
public void SQLiteDelteItemTest() { SqliteStorage storage = new SqliteStorage(); StorageModel model = new StorageModel() { Name = "name1", Value = "value1" }; string key = "Person/1"; storage.AddItem(key, model); Assert.IsTrue(storage.ContainItem(key)); storage.RemoveItem(key); Assert.IsFalse(storage.ContainItem(key)); }
public void RemovingOnePreferenceTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreatePreferenceTable()); UserPreference preference = new UserPreference("headphones"); bool result = storage.InsertUserPreference(preference); Assert.True(result); result = storage.DeleteUserPreference(preference); Assert.True(result); }
public void SQLiteGetItemTest() { SqliteStorage storage = new SqliteStorage(); StorageModel model = new StorageModel() { Name = "name1", Value = "value1" }; string key = "Person/1"; storage.AddItem(key, model); StorageModel result = storage.GetItem <StorageModel>(key); Assert.AreEqual(model, result); }
public void SQLiteUpdateItemTest() { SqliteStorage storage = new SqliteStorage(); StorageModel model = new StorageModel() { Name = "name1", Value = "value1" }; string key = "Person/1"; storage.AddItem(key, model); model.Value = "value2"; storage.UpdateItem(key, model); StorageModel reust = storage.GetItem<StorageModel>(key); Assert.AreEqual(reust.Value, "value2"); }
public void AddingNullPreferenceTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreateTables()); Assert.Throws <ArgumentNullException>(() => { storage.InsertUserPreference(null); }); Assert.Throws <ArgumentNullException>(() => { storage.InsertUserPreferences(null); }); }
public void AddingPreferencesTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreateTables()); List <UserPreference> preferences = new List <UserPreference>(); preferences.Add(new UserPreference("electronics")); preferences.Add(new UserPreference("books", 10.0, 1900.0)); preferences.Add(new UserPreference("gardening", 50.0, 100.0)); bool result = storage.InsertUserPreferences(preferences); Assert.True(result); }
public void UpdateNullPreferencesTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreatePreferenceTable()); Assert.Throws <ArgumentNullException>(() => { _storage.UpdateUserPreference(null); }); Assert.Throws <ArgumentNullException>(() => { _storage.UpdateUserPreferences(null); }); }
public void SQLiteGetItemsTest() { SqliteStorage storage = new SqliteStorage(); StorageModel model = new StorageModel() { Name = "name1", Value = "value1" }; string key1 = "Person1/1"; string key2 = "Person1/2"; string key3 = "Person1/3"; storage.AddItem(key1, model); storage.AddItem(key2, model); storage.AddItem(key3, model); List<StorageModel> models = storage.GetItems<StorageModel>("Person1/0"); Assert.AreEqual(models.Count, 3); storage.FlushAll(); }
public void SQLiteUpdateItemTest() { SqliteStorage storage = new SqliteStorage(); StorageModel model = new StorageModel() { Name = "name1", Value = "value1" }; string key = "Person/1"; storage.AddItem(key, model); model.Value = "value2"; storage.UpdateItem(key, model); StorageModel reust = storage.GetItem <StorageModel>(key); Assert.AreEqual(reust.Value, "value2"); }
public void InsertTest() { SqliteStorage Storage = new SqliteStorage("Data Source=:memory:", true); Storage.Initialize(); List <Project> lp = Storage.SelectProjects(); Assert.AreEqual(1, lp.Count); // Insert old activity without own project Activity a1 = new Activity(); a1.Name = "Test activity"; a1.Created = DateTime.Parse("2015-01-01 01:00:00"); a1.Stopped = DateTime.Parse("2015-01-01 01:30:00"); Assert.AreEqual(0, a1.ActivityId); a1 = Storage.InsertActivity(a1); Assert.AreEqual(1, a1.ActivityId); //Assert.AreNotEqual(a1.ActivityId, au1.ActivityId); Assert.AreEqual(1, a1.ProjectId); Assert.AreEqual("Test activity", a1.Name); Assert.AreEqual("", a1.Description); Assert.AreEqual("", a1.Tags); Assert.AreEqual(DateTime.Parse("2015-01-01 01:00:00"), a1.Created); Assert.AreEqual(DateTime.Parse("2015-01-01 01:30:00"), a1.Stopped); Assert.IsFalse(a1.IsRunning()); // Insert running activity with project (should be created). Activity a2 = new Activity("Second test activity@Test project", Storage); Assert.AreEqual(0, a2.ActivityId); a2 = Storage.InsertActivity(a2); Assert.AreEqual(2, a2.ActivityId); Assert.IsTrue(a2.IsRunning()); }
public void RemovingNullPreferenceTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreatePreferenceTable()); bool result = storage.InsertUserPreference(new UserPreference("headphones")); Assert.True(result); Assert.Throws <ArgumentNullException>(() => { storage.DeleteUserPreference(null); }); Assert.Throws <ArgumentNullException>(() => { storage.DeleteUserPreferences(null); }); }
public void GetUserPreferenceNullTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreateTables()); List <UserPreference> preferences = new List <UserPreference>(); preferences.Add(new UserPreference("movies", 0.0, 0.0)); preferences.Add(new UserPreference("games", 0.0, 100.0)); preferences.Add(new UserPreference("tools", 0.0, 100.0)); bool result = storage.InsertUserPreferences(preferences); Assert.True(result); Assert.True(storage.GetNumberOfRows() == preferences.Count); UserPreference userPreference = storage.GetUserPreference("garden"); Assert.Null(userPreference); }
public void SQLiteGetItemsTest() { SqliteStorage storage = new SqliteStorage(); StorageModel model = new StorageModel() { Name = "name1", Value = "value1" }; string key1 = "Person1/1"; string key2 = "Person1/2"; string key3 = "Person1/3"; storage.AddItem(key1, model); storage.AddItem(key2, model); storage.AddItem(key3, model); List <StorageModel> models = storage.GetItems <StorageModel>("Person1/0"); Assert.AreEqual(models.Count, 3); storage.FlushAll(); }
public void GetUserPreferenceTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreateTables()); List <UserPreference> preferences = new List <UserPreference>(); preferences.Add(new UserPreference("movies", 0.0, 0.0)); preferences.Add(new UserPreference("games", 0.0, 100.0)); preferences.Add(new UserPreference("tools", 0.0, 100.0)); bool result = storage.InsertUserPreferences(preferences); Assert.True(result); Assert.True(storage.GetNumberOfRows() == preferences.Count); UserPreference userPreference = storage.GetUserPreference("games"); Assert.NotNull(userPreference); Assert.Equal("games", userPreference._category); Assert.True(userPreference._minPrice == 0.0); Assert.True(userPreference._maxPrice == 100.0); }
public void GetNumberOfRowsTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreateTables()); List <UserPreference> preferences = new List <UserPreference>(); preferences.Add(new UserPreference("movies", 0.0, 0.0)); preferences.Add(new UserPreference("games", 0.0, 100.0)); preferences.Add(new UserPreference("tools", 0.0, 100.0)); bool result = storage.InsertUserPreferences(preferences); Assert.True(result); Assert.True(storage.GetNumberOfRows() == preferences.Count); int numItems = preferences.Count; preferences.RemoveAt(2); result = storage.DeleteUserPreferences(preferences); Assert.True(result); Assert.True(storage.GetNumberOfRows() == (numItems - preferences.Count)); }
public void RetievePreferencesTest() { SqliteStorage storage = _storage; Assert.True(_storage.CreateTables()); List <UserPreference> preferences = new List <UserPreference>(); preferences.Add(new UserPreference("movies", 0.0, 0.0)); preferences.Add(new UserPreference("games", 0.0, 100.0)); bool result = storage.InsertUserPreferences(preferences); Assert.True(result); List <UserPreference> myPreferences = storage.GetUserPreferences(); Assert.True(myPreferences.Count == preferences.Count); for (int i = 0; i < myPreferences.Count; i++) { Assert.Equal(preferences[i], myPreferences[i]); } }
/// <summary> /// Store password requirement for a given service /// </summary> public static void Persist(string service, PasswordRequirements req) { SqliteStorage.Store(GetServiceName(service), req); }
public StorageTests() { _storage = new SqliteStorage(TEST_DB_FOLDER, TEST_DB_FILE); }
/// <summary> /// Initializes a new instance of the <see cref="odTimeTracker.Model.Activity"/> class /// from string describing the activity. /// </summary> /// <description> /// Here are some examples of valid activity strings: /// /// - "Updating README.md@odTimeTracker;Projects#Updating README.md with examples of usage." /// - "Simple activity without any values" /// - "Activity with project specified@Project name" /// - "Activity with some tags;tag1,tag2" /// /// Order of values (name, project, tags, description) is important. But the only /// required value is `name`. /// </description> /// <param name="activityString">Activity string.</param> public Activity(string activityString, SqliteStorage storage) { string name = ""; string projectName = ""; string tags = ""; string description = ""; string rest = activityString; string[] parts; bool hasProjectName = (rest.IndexOf('@') >= 0); bool hasTags = (rest.IndexOf(';') >= 0); bool hasDescription = (rest.IndexOf('#') >= 0); // Project name if (hasProjectName == true) { parts = activityString.Split('@'); name = parts[0]; rest = parts[1]; } // Tags if (hasTags) { parts = rest.Split(';'); if (hasProjectName == true) { projectName = parts[0]; } else { name = parts[0]; } rest = parts[1]; } // Description if (hasDescription == true) { parts = rest.Split('#'); if (hasProjectName == false && hasTags == false) { name = parts[0]; } else if (hasProjectName == false && hasTags == true) { tags = parts[0]; } else if (hasProjectName == true && hasTags == false) { projectName = parts[0]; } else /*if (hasProjectName == true && hasTags == true)*/ { tags = parts[0]; } description = parts[1]; } if (hasTags == true && tags.Length == 0) { tags = rest; } else if (hasProjectName == true && projectName.Length == 0) { projectName = rest; } else if (name.Length == 0) { name = rest; } // Check if project with given name exists and if no create it! long projectId = 0; if (hasProjectName == true && projectName.Length > 0) { var fProject = storage.SelectProjectByName(projectName); if (fProject[0] == null) { Project newProject = new Project(); newProject.Name = projectName; newProject.Created = DateTime.UtcNow; newProject = storage.InsertProject(newProject); projectId = newProject.ProjectId; } else { projectId = fProject[0].ProjectId; } ProjectId = projectId; } ProjectId = projectId; Name = name; Description = description; Tags = tags; Created = DateTime.UtcNow; }