using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using PersonalFinance; using System.ComponentModel; using System.Windows; using System.Data.Entity; using PersonalFinance.Entity; namespace PersonalFinanceWindow.ViewModel { class UserViewModel : ViewModelBase { public static int loggedUserId; public static User loggedUser; UserService usrsrv; BindingList users; public BindingList Users { get { return users; } set { Set(ref users, value); } } User selected; public User Selected { get { return selected; } set { Set(ref selected, value); } } public BindingList Sexs { get; set; } Sex selectedSex; public Sex SelectedSex { get { return selectedSex; } set { Set(ref selectedSex, value); } } public RelayCommand AddUser { get; set; } public RelayCommand DeleteUser { get; set; } public UserViewModel() { AddUser = new RelayCommand(AddUserAction); DeleteUser = new RelayCommand(DeleteUserAction); Sexs = new BindingList(); Sexs.Add(Sex.Male); Sexs.Add(Sex.Female); if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) { //dummy data Users = new BindingList(new List { new User("123456") {UserId = 1, Name="Antonín", Lastname="Neumann", Login="tonda", Sex = Sex.Male} }); }else { Database.SetInitializer(new EntityContextInit()); usrsrv = new UserService(ctx); Users = new BindingList(usrsrv.GetAllUsers()); } if (Users.Count > 0) { Selected = Users[0]; SelectedSex = Selected.Sex; } } public void AddUserAction() { User u = new User("123456") { UserId = Users.Max(i => i.UserId) + 1, Login = "NEW_USER", Name = "NEW", Lastname = "USER" }; Users.Add(u); usrsrv.AddUser(u); Selected = u; } bool AddUserCanExecute() { return true; } public void DeleteUserAction() { User u = Selected as User; Users.Remove(u); usrsrv.DeleteUser(u); } } }