private void LoginButton_Click(object sender, RoutedEventArgs e) { using (var context = new ExpansesManagerContext()) { if (context.Users.Any(u => u.Username == UsernameTextBox.Text && u.Password == PasswordBox.Password)) { MessageBox.Show("Successfully logged in!"); } else { ErrorLabel.Content = ("Username or password is invalid."); return; } AuthenticationManager.Login(UsernameTextBox.Text, PasswordBox.Password); UsernameTextBox.Clear(); PasswordBox.Clear(); } MainApp mainApp = new MainApp(); this.Close(); mainApp.ShowDialog(); }
private void SaveButton_Click(object sender, RoutedEventArgs e) { bool isPasswordDiff = OldPasswordBox.Password != PasswordBox.Password && OldPasswordBox.Password != RepeatPasswordBox.Password; bool isOldPassCorrect = _user.Password == OldPasswordBox.Password; bool isPasswordSame = PasswordBox.Password == RepeatPasswordBox.Password; if (isOldPassCorrect && isPasswordDiff && isPasswordSame) { using (var context = new ExpansesManagerContext()) { _user.Password = PasswordBox.Password; context.Users.AddOrUpdate(_user); context.SaveChanges(); } UsernameTextBox.Clear(); PasswordBox.Clear(); RepeatPasswordBox.Clear(); OldPasswordBox.Clear(); ErrorLabel.Content = "Successfully Changed Password !"; } else { ErrorLabel.Content = Checks.PasswordsDoNotMatch; } }
public MainGroups() { InitializeComponent(); var vm = new MainAppViewModel(); User currentUser = AuthenticationManager.GetCurrentUser(); using (var context = new ExpansesManagerContext()) { var groups = context.Groups.Where(c => c.UserId == currentUser.Id); var list = new List <StatisticsViewModel>(); foreach (var gr in groups) { foreach (var item in gr.SubGroups) { list.Add(new StatisticsViewModel() { GroupName = gr.Name, SubGroupName = item.Name, TotalSubGroupPrice = item.Elements.Sum(e => e.Price), DayPrice = item.Elements.Where(e => e.DateBought.Date == DateTime.Today.Date).Sum(e => e.Price), WeekPrice = item.Elements.Where(e => e.DateBought <= DateTime.Today.AddDays(-7) && e.DateBought <= DateTime.Today).Sum(e => e.Price), MonthPrice = item.Elements.Where(e => e.DateBought <= DateTime.Today.AddMonths(-1) && e.DateBought <= DateTime.Today).Sum(e => e.Price), YearPrice = item.Elements.Where(e => e.DateBought.Year <= DateTime.Today.AddYears(-1).Year&& e.DateBought.Date <= DateTime.Today.Date).Sum(e => e.Price), }); } } this.lvUsers.ItemsSource = list; } }
private void AddSubGroupButton_Click_1(object sender, RoutedEventArgs e) { using (var context = new ExpansesManagerContext()) { AddWindow addWindow = new AddWindow(); addWindow.ShowDialog(); SubGroup subGroup = new SubGroup() { Name = addWindow.textBox.Text, }; context.Groups.FirstOrDefault(g => g.Name == TreeView1.SelectedItem.ToString()).SubGroups.Add(subGroup); context.SaveChanges(); TreeViewItem group = new TreeViewItem() { Header = TreeView1.SelectedItem.ToString(), }; TreeViewItem newSubGroup = new TreeViewItem(); newSubGroup.Header = addWindow.textBox.Text; group.Items.Add(newSubGroup); } }
public static Group GetGroupById(int id) { using (var context = new ExpansesManagerContext()) { currentGroup = context.Groups.FirstOrDefault(gr => gr.Id == id); } return(currentGroup); }
public static bool UsernameIsTaken(string username) { using (var context = new ExpansesManagerContext()) { if (context.Users.Any(u => u.Username == username)) { return(true); } return(false); } }
private void button_Import(object sender, RoutedEventArgs e) { if (!File.Exists(pathOfFile)) { throw new FileNotFoundException(string.Format(Checks.ErrorMessages.FileNotFound, pathOfFile)); } var context = new ExpansesManagerContext(); var json = File.ReadAllText(pathOfFile); var groups = JsonConvert.DeserializeObject <IEnumerable <GroupDto> >(json); }
private void EditGroup_Click(object sender, RoutedEventArgs e) { using (var ex = new ExpansesManagerContext()) { // ex.Groups } EditModeMainApp ed = new EditModeMainApp(); this.Close(); ed.ShowDialog(); }
public EditModeMainApp() { InitializeComponent(); var vm = new MainAppViewModel(); User currentUser = AuthenticationManager.GetCurrentUser(); using (var contex = new ExpansesManagerContext()) { textBox.Text = "Welcome " + " " + currentUser.Username; var user = contex.Users.Find(currentUser.Id); vm.Groups = new ObservableCollection <GroupViewModel>(Mapper.Instance.Map <IEnumerable <Group>, ObservableCollection <GroupViewModel> >(user.Groups)); this.GroupsGrid.DataContext = vm; this.GroupsGrid.ItemsSource = vm.Groups; } }
private void RegisterButton_Click(object sender, RoutedEventArgs e) { if (Checks.UsernameIsTaken(UsernameTextBox.Text)) { ErrorLabel.Content = Checks.UsernameIsAlreadyTaken; return; } if (PasswordBox.Password != RepeatPasswordBox.Password) { ErrorLabel.Content = Checks.PasswordsDoNotMatch; return; } if (!Checks.PasswordIsValid(PasswordBox.Password)) { ErrorLabel.Content = Checks.PasswordIsInvalid; return; } if (Checks.EmailIsValid(EmailtextBox.Text)) { ErrorLabel.Content = Checks.EmailIsNotValid; return; } using (var context = new ExpansesManagerContext()) { User user = new User() { Username = UsernameTextBox.Text, Password = PasswordBox.Password, Email = EmailtextBox.Text, DateRegistered = DateTime.UtcNow, }; context.Users.Add(user); context.SaveChanges(); } UsernameTextBox.Clear(); PasswordBox.Clear(); RepeatPasswordBox.Clear(); EmailtextBox.Clear(); ErrorLabel.Content = "Successfully registered!"; }
public MainApp() { InitializeComponent(); var vm = new MainAppViewModel(); User currentUser = AuthenticationManager.GetCurrentUser(); using (var contex = new ExpansesManagerContext()) { var user = contex.Users.Find(currentUser.Id); vm.Groups = new ObservableCollection <GroupViewModel>(Mapper.Instance.Map <IEnumerable <Group>, ObservableCollection <GroupViewModel> >(user.Groups)); foreach (var group in contex.Groups.Where(g => g.IsActive == true)) { TreeViewGroups.Items.Add(group.Name); } } }
public static void Login(User user) { using (var context = new ExpansesManagerContext()) { // user = context.Users.SingleOrDefault(u => u.Username == username && u.Password == password); if (currentUser != null) { throw new ArgumentException("You should logout first!"); } if (user == null) { throw new ArgumentException("Invalid username or password!"); } currentUser = user; } }
private void AddGroupButton_Click(object sender, EventArgs e) { using (var context = new ExpansesManagerContext()) { AddWindow addWindow = new AddWindow(); addWindow.ShowDialog(); Group group = new Group(); group.Name = addWindow.textBox.Text; group.UserId = AuthenticationManager.GetCurrentUser().Id; context.Groups.Add(group); context.SaveChanges(); TreeViewItem newGroup = new TreeViewItem(); newGroup.Header = addWindow.textBox.Text; TreeViewGroups.Items.Add(newGroup); } }
private void DeleteSubGroup_OnClick(object sender, RoutedEventArgs e) { var btn = sender as Button; var subGroup = btn?.Tag as SubGroupViewModel; if (subGroup != null) { using (var db = new ExpansesManagerContext()) { (this.SubGroupsGrid.ItemsSource as ObservableCollection <SubGroupViewModel>).Remove(subGroup); var removeDbSubGroup = db.SubGroups.Find(subGroup.Id); if (removeDbSubGroup != null) { db.SubGroups.Remove(removeDbSubGroup); db.SaveChanges(); } } } }
private void DeleteElement_OnClick(object sender, RoutedEventArgs e) { var btn = sender as Button; var element = btn?.Tag as ElementViewModel; if (element != null) { using (var db = new ExpansesManagerContext()) { (this.ElementsGrid.ItemsSource as ObservableCollection <ElementViewModel>).Remove(element); var removeDbelement = db.Elements.Find(element.Id); if (removeDbelement != null) { db.Elements.Remove(removeDbelement); db.SaveChanges(); } } } }
private void ExportGroup(Group group) { using (var context = new ExpansesManagerContext()) { var selectedGrop = context.Groups.Find(group.Id); string json = JsonConvert.SerializeObject(new { Name = selectedGrop.Name, IsActive = selectedGrop.IsActive, SubGroups = selectedGrop.SubGroups.Count > 0 ? selectedGrop.SubGroups.Select(u => new { Name = u.Name, IsActive = u.IsActive, Elemnet = u.Elements.Count > 0 ? u.Elements.Select(e => new { Name = e.Name, Price = e.Price, Date = e.DateBought }) : null, }) : null }, Formatting.Indented); string path = @"Groups.json"; if (!File.Exists(path)) { File.WriteAllText(path, json); } else { string appendGroup = json; File.AppendAllText(path, appendGroup); } MessageLabel.Content = ("Export was successful"); } }
private void RemoveGroupButton_Click(object sender, RoutedEventArgs e) { using (var context = new ExpansesManagerContext()) { if (TreeView1.SelectedItem == null) { MessageBox.Show("Please select first."); return; } //context.Groups.FirstOrDefault(g => g.Name == TreeView1.SelectedItem.ToString() && g.IsActive == true).IsActive = false; var group = context.Groups.FirstOrDefault(g => g.Name == TreeView1.SelectedItem.ToString() && g.IsActive == true); context.Groups.Remove(group); context.SaveChanges(); } TreeViewItem newGroup = new TreeViewItem(); newGroup.Name = TreeView1.SelectedItem.ToString(); MainApp mApp = new MainApp(); this.Close(); mApp.ShowDialog(); }
private void DeleteGroup_OnClick(object sender, RoutedEventArgs e) { var btn = sender as Button; var group = btn?.Tag as GroupViewModel; if (group != null) { using (var db = new ExpansesManagerContext()) { var removeDbGroup = db.Groups.Find(group.Id); if (removeDbGroup != null) { db.Groups.Remove(removeDbGroup); db.SaveChanges(); var currentUser = db.Users.Find(AuthenticationManager.GetCurrentUser().Id); var vm = this.GroupsGrid.DataContext as MainAppViewModel; vm.Groups = new ObservableCollection <GroupViewModel>(Mapper.Instance.Map <IEnumerable <Group>, ObservableCollection <GroupViewModel> >(currentUser.Groups)); this.GroupsGrid.ItemsSource = null; this.GroupsGrid.ItemsSource = vm.Groups; } } } }
private void ButtonSaveChanges_OnClick(object sender, RoutedEventArgs e) { var vm = this.GroupsGrid.DataContext as MainAppViewModel; var gridGroups = Mapper.Instance.Map <ObservableCollection <GroupViewModel>, IEnumerable <Group> >(vm.Groups); using (var db = new ExpansesManagerContext()) { foreach (var group in gridGroups) { if (group.Id > 0) { var dbGroup = db.Groups.Find(group.Id); if (dbGroup != null) { if (dbGroup.Name != group.Name) { dbGroup.Name = group.Name; db.SaveChanges(); } var existingSubGroups = group.SubGroups.Where(s => s.Id != 0).ToList(); existingSubGroups.ForEach(eg => { var dbSubGroup = dbGroup.SubGroups.FirstOrDefault(g => g.Id == eg.Id); if (dbSubGroup != null) { if (dbSubGroup.Name != eg.Name) { dbSubGroup.Name = eg.Name; db.SaveChanges(); } foreach (var element in eg.Elements) { var dbElement = dbSubGroup.Elements.FirstOrDefault(el => el.Id == element.Id); if (dbElement != null && element.Id > 0) { if (dbElement.Name != element.Name || dbElement.Price != element.Price || dbElement.DateBought != element.DateBought) { dbElement.Name = element.Name; dbElement.Price = element.Price; dbElement.DateBought = element.DateBought; db.SaveChanges(); } } else { dbSubGroup.Elements.Add(element); db.SaveChanges(); } } } }); var newSubGroups = group.SubGroups.Where(s => s.Id == 0).ToList(); if (newSubGroups.Count > 0) { newSubGroups.ForEach(sg => { dbGroup.SubGroups.Add(sg); db.SaveChanges(); foreach (var element in sg.Elements) { var dbElement = sg.Elements.FirstOrDefault(el => el.Id == element.Id); if (dbElement != null && element.Id > 0) { if (dbElement.Name != element.Name || dbElement.Price != element.Price || dbElement.DateBought != element.DateBought) { dbElement.Name = element.Name; dbElement.Price = element.Price; dbElement.DateBought = element.DateBought; db.SaveChanges(); } } else { sg.Elements.Add(element); db.SaveChanges(); } } }); } } } } var newGroups = gridGroups.Where(g => g.Id == 0).ToList(); var currentUser = db.Users.Find(AuthenticationManager.GetCurrentUser().Id); newGroups.ForEach(g => { currentUser.Groups.Add(g); db.SaveChanges(); }); vm.Groups = new ObservableCollection <GroupViewModel>(Mapper.Instance.Map <IEnumerable <Group>, ObservableCollection <GroupViewModel> >(currentUser.Groups)); } this.GroupsGrid.UpdateLayout(); MessageBox.Show("Successfully saved"); }