private void refreshListsOfFriends() { Friends.Clear(); using (var db = new GoalMasterDatabaseContext()) { var user = db.Users.FirstOrDefault(x => x.ID == User.ID); var relations = db.Relationships.Where(x => x.UserOne.ID == user.ID || x.UserTwo.ID == user.ID); var relatedUsers = new List <User>(); var friends = new List <Tuple <string, string> >(); foreach (var relation in relations) { if (relation.UserOne != user) { relatedUsers.Add(relation.UserOne); friends.Add(new Tuple <string, string>(relation.UserOne.Login, relation.Status.Description)); } if (relation.UserTwo != user) { relatedUsers.Add(relation.UserTwo); friends.Add(new Tuple <string, string>(relation.UserTwo.Login, relation.Status.Description)); } } _users = db.Users.Where(x => x.Login != User.Login).ToList(); _users = _users.Except(relatedUsers).ToList(); PossibleFriends = new ObservableCollection <User>(_users); Friends = new ObservableCollection <Tuple <string, string> >(friends); } }
private void DeleteGoalRecord() { if (existingGoalRecord != null) { using (var db = new GoalMasterDatabaseContext()) { var record = db.GoalRecords.FirstOrDefault(x => x.ID == existingGoalRecord.ID); if (record == null) { MessageBox.Show("No record selected"); return; } db.GoalRecords.Remove(record); db.SaveChanges(); } Value = null; Note = null; if (CloseWindowEvent != null) { CloseWindowEvent(this, null); } } else { MessageBox.Show("No record selected"); } //throw new NotImplementedException(); }
private void refreshListsOfFriends() { Friends.Clear(); using (var db = new GoalMasterDatabaseContext()) { var user = db.Users.FirstOrDefault(x => x.ID == User.ID); var relations = db.Relationships.Where(x => (x.UserOne.ID == user.ID || x.UserTwo.ID == user.ID) && x.Status.ID == (int)RelationshipStatusDefined.Accepted ); var invitedUsers = db.GoalDefinitions.FirstOrDefault(x => x.ID == _goalDefinition.ID).Users.Where(x => x.ID != User.ID); var relatedUsers = new List <User>(); var friends = new List <User>(); foreach (var relation in relations) { if (relation.UserOne != user) { friends.Add(relation.UserOne); } if (relation.UserTwo != user) { friends.Add(relation.UserTwo); } } friends = friends.Except(invitedUsers).ToList(); Friends = new ObservableCollection <User>(friends); InvitedFriends = new ObservableCollection <User>(invitedUsers); } }
private void Registration() { try { new Thread(() => { // Thread.CurrentThread.IsBackground = true; bool passIdentical = arePasswordsIdentical(); bool validMail = isMailValidAndFree(Email).Result; bool loginValid = isLoginValidAndFree(Login).Result; if (passIdentical && validMail && loginValid) { using (var db = new GoalMasterDatabaseContext()) { var users = db.Users; var user = new User(_login, _password, _email); users.Add(user); db.SaveChangesAsync(); MessageBox_Show(null, "Registration complete!", "Info"); Back(); } } else { MessageBox_Show(null, "Error", "Something went wrong. Try again."); } }).Start(); } catch (Exception e) { MessageBox_Show(null, "Error", e.ToString()); } }
private void refreshGoalRecords() { using (var db = new GoalMasterDatabaseContext()) { var resultGoals = db.GoalRecords.Where(x => x.GoalDefinition.ID == FirstGoalDefinition.ID); //db.Users.FirstOrDefault(x => x.ID == User.ID).GoalRecords.Where(x => x.GoalDefinition.ID == FirstGoalDefinition.ID); //if (resultGoals == null) // return; //GoalRecords = new ObservableCollection<GoalRecord>(resultGoals); GoalRecords2 = new SeriesCollection(); if (FirstGoalDefinition == null) { return; } var goalDefinitionUsers = db.GoalDefinitions.FirstOrDefault(x => x.ID == FirstGoalDefinition.ID).Users; Dates = new ObservableCollection <string>(); foreach (var goal in resultGoals) { if (!Dates.Contains(goal.OnlyDate)) { Dates.Add(goal.OnlyDate); } } var orderedList = Dates.OrderBy(x => DateTime.Parse(x)).ToList(); Dates = new ObservableCollection <string>(orderedList); foreach (var user in goalDefinitionUsers) { var lineSerie = new LiveCharts.Wpf.LineSeries(); lineSerie.Title = user.Login; lineSerie.DataLabels = true; var userGoals = db.GoalRecords.Where(x => x.User.ID == user.ID && x.GoalDefinition.ID == FirstGoalDefinition.ID); lineSerie.Values = new ChartValues <ObservablePoint>(); for (int i = 0; i < Dates.Count; i++) { bool isAdded = false; foreach (var goal in userGoals) { if (Dates[i] == goal.OnlyDate) { lineSerie.Values.Add(new ObservablePoint(i, goal.Value)); break; } } } lineSerie.LineSmoothness = 0; GoalRecords2.Add(lineSerie); } } }
private void DeleteGoal() { using (var db = new GoalMasterDatabaseContext()) { if (IsOwner) { var goalDef = db.GoalDefinitions.FirstOrDefault(gd => gd.ID == _goalDefinition.ID); var goalRecords = db.GoalRecords.Where(gr => gr.GoalDefinition.ID == goalDef.ID); db.GoalRecords.RemoveRange(goalRecords); db.GoalDefinitions.Remove(goalDef); db.SaveChanges(); } else { var goalDef = db.GoalDefinitions.FirstOrDefault(gd => gd.ID == _goalDefinition.ID); var user = db.Users.FirstOrDefault(x => x.ID == User.ID); goalDef.Users.Remove(user); db.SaveChanges(); //unsubscribe totdo } } if (this.CloseWindowEvent != null) { CloseWindowEvent(this, null); } }
private void ListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) { //sender.selectedVAlue if (sender is ListBox send) { //send = (ListBox)sender; if (send.SelectedItem is User user) { var optionsWindow = new OptionsWindow(user, false); optionsWindow.ShowDialog(); } else if (send.SelectedItem is Tuple <string, string> userName) { using (var db = new GoalMasterDatabaseContext()) { var userFromDB = db.Users.FirstOrDefault(us => us.Login == userName.Item1); var optionsWindow = new OptionsWindow(userFromDB, false); optionsWindow.ShowDialog(); } } } else if (sender is DataGrid dgSend) { var user = (Tuple <string, string>)dgSend.SelectedItem; using (var db = new GoalMasterDatabaseContext()) { var userFromDB = db.Users.FirstOrDefault(us => us.Login == user.Item1); var optionsWindow = new OptionsWindow(userFromDB, false); optionsWindow.ShowDialog(); } } }
private void Save() { using (var db = new GoalMasterDatabaseContext()) { var userInfo = db.UsersInfo.FirstOrDefault(ui => ui.User.ID == _user.ID); if (userInfo == null) //dodać nowe userInfo { var newUserInfo = new UserInfo(); newUserInfo.ProfileImage = UserImage; newUserInfo.UserDescription = Description; newUserInfo.Address = Address; newUserInfo.BirthDate = BirthDate; db.UsersInfo.Add(newUserInfo); newUserInfo.User = db.Users.First(us => us.ID == _user.ID); db.SaveChanges(); } else //updateować userInfo { userInfo.UserDescription = Description; userInfo.Address = Address; userInfo.ProfileImage = UserImage; userInfo.BirthDate = BirthDate; db.SaveChanges(); } if (CloseWindowEvent != null) { CloseWindowEvent(this, null); } } }
public void ShouldReturnTwoGoalTypes() { using (var db = new GoalMasterDatabaseContext()) { var res = db.GoalTypes; Assert.AreEqual(2, res.Count()); } }
public AddGoalRecordViewModel(User user, GoalDefinition goalDefinition, DateTime dateTime) { SelectedDate = dateTime; ActivityBtnMessage = "Add activity"; using (var db = new GoalMasterDatabaseContext()) { var goalDef = db.GoalDefinitions.FirstOrDefault( x => x.ID == goalDefinition.ID); existingGoalRecord = db.GoalRecords.FirstOrDefault(x => x.Date == SelectedDate && x.GoalDefinition.ID == goalDefinition.ID && x.User.ID == user.ID); if (existingGoalRecord != null) { isInEditMode = true; ActivityBtnMessage = "Edit activity"; editModeValue = existingGoalRecord.Value; Note = existingGoalRecord.Note; } GoalDefinition = goalDef; GoalDefinition.GoalType = goalDef.GoalType; } User = user; AddNewGoalRecordCommand = new RelayCommand(AddNewGoalRecord); DeleteGoalRecordCommand = new RelayCommand(DeleteGoalRecord); _goalTypeID = GoalDefinition.GoalType.ID; if (GoalDefinition.GoalType.ID == 1)//DoneOrNotDone { VisibilityValueBox = Visibility.Hidden; VisibilityBoolBox = Visibility.Visible; TrueFalseOptions = new ObservableCollection <BoolHelper>(); TrueFalseOptions.Add(new BoolHelper(true, "Done")); TrueFalseOptions.Add(new BoolHelper(false, "Not done")); if (isInEditMode) { TrueOption = TrueFalseOptions.FirstOrDefault(x => x.Value == Convert.ToBoolean(editModeValue));//editModeValue ? 1 : 0; } else { TrueOption = TrueFalseOptions.First(); } } else//Numeric values { VisibilityValueBox = Visibility.Visible; VisibilityBoolBox = Visibility.Hidden; if (isInEditMode) { _value = editModeValue.ToString(); } } }
private void AddNewGoalRecord() { if (isInEditMode) { using (var db = new GoalMasterDatabaseContext()) { var result = db.GoalRecords.FirstOrDefault(x => x.ID == existingGoalRecord.ID); if (_goalTypeID == 1) { result.Value = TrueOption.Value ? 1 : 0; } else { if (NumericHelper.isLastLetterDotOrComma(Value)) { ErrorMessage = "Invalid numeric value!"; return; } result.Value = Double.Parse(Value.Replace('.', ',')); } result.Note = Note; db.SaveChanges(); } } else { var goalRecord = new GoalRecord(); goalRecord.Date = SelectedDate; goalRecord.Note = Note; if (_goalTypeID == 1) { goalRecord.Value = TrueOption.Value ? 1 : 0; } else { if (NumericHelper.isLastLetterDotOrComma(Value)) { ErrorMessage = "Invalid numeric value!"; return; } goalRecord.Value = Double.Parse(Value.Replace('.', ',')); } using (var db = new GoalMasterDatabaseContext()) { db.GoalRecords.Add(goalRecord); goalRecord.User = db.Users.FirstOrDefault(x => x.ID == User.ID); goalRecord.GoalDefinition = db.GoalDefinitions.FirstOrDefault(x => x.ID == GoalDefinition.ID); db.SaveChanges(); } } if (CloseWindowEvent != null) { CloseWindowEvent(this, null); } }
private void AddNewGoal() { //todo Zrobić dodawanie do goalDefinitions zaproszonych userów us.GoalDefinitions.Add/// GoalDefinition goalDefinition = new GoalDefinition(); if (InvitedFriends.Count == 0) { goalDefinition.Shared = false; } else { goalDefinition.Shared = true; } goalDefinition.Name = Name; goalDefinition.Description = Description; using (var db = new GoalMasterDatabaseContext()) { var gt = db.GoalTypes.FirstOrDefault(x => x.ID == FirstGoalType.ID); var us = db.Users.FirstOrDefault(x => x.ID == User.ID); //Important db.GoalDefinitions.Add(goalDefinition); db.SaveChanges(); goalDefinition.OwnerUserID = us; goalDefinition.GoalType = gt; goalDefinition.Users.Add(us); //friends todo! //us.GoalDefinitions.Add(goalDefinition); //db.SaveChanges(); foreach (var invitedFriend in InvitedFriends) { var friend = db.Users.FirstOrDefault(x => x.ID == invitedFriend.ID); goalDefinition.Users.Add(friend); //var goalDef = new GoalDefinition(); //friend.GoalDefinitions.Add(goalDef); //goalDef = goalDefinition; //friend.GoalDefinitions.Add(goalDefinition); //dodaje tylko do ostatniego usera //db.SaveChanges(); } db.SaveChanges(); } if (CloseWindowEvent != null) { CloseWindowEvent(this, null); } }
private async Task <bool> isLoginValidAndFree(string login) { if (login != null && login.Count() > 3) { using (var db = new GoalMasterDatabaseContext()) { var usersLogin = await db.Users.FirstOrDefaultAsync <User>(x => x.Login == login); if (usersLogin == null) { return(true); } } } return(false); }
private async Task <bool> isMailValidAndFree(string mail) { if (mail != null && new RegexUtilities().IsValidEmail(mail)) { using (var db = new GoalMasterDatabaseContext()) { var usersMails = await db.Users.FirstOrDefaultAsync <User>(x => x.Mail == mail);//(db.Users.Where(x => x.Mail == mail)).FirstOrDefaultAsync<User>(); if (usersMails == null) { return(true); } } } return(false); }
private void InviteFriend() { var relationship = new Relationship(); using (var db = new GoalMasterDatabaseContext()) { db.Relationships.Add(relationship); relationship.ActionUser = db.Users.FirstOrDefault(x => x.ID == User.ID); relationship.Status = db.RelationshipStatuses.FirstOrDefault( x => x.ID == (int)RelationshipStatusDefined.Pending); relationship.UserOne = db.Users.FirstOrDefault(x => x.ID == User.ID); relationship.UserTwo = db.Users.FirstOrDefault(x => x.Login == SelectedPossibleFriend.Login); var user = db.Users.FirstOrDefault(x => x.ID == User.ID); user.Relations.Add(relationship); db.SaveChanges(); } refreshListsOfFriends(); }
public OptionsViewModel(User user, bool isOwner = true) { UploadCommand = new RelayCommand(Upload); SaveCommand = new RelayCommand(Save); CancelCommand = new RelayCommand(Cancel); this.IsOwner = isOwner; this._user = user; var placeholderImage = Resources.no_image_available; UserImage = ImageToByte(placeholderImage); using (var db = new GoalMasterDatabaseContext()) { var name = db.Users.FirstOrDefault(us => us.ID == this._user.ID).Login; var email = db.Users.FirstOrDefault(us => us.ID == this._user.ID).Mail; Name = name; Email = email; var userInfo = db.UsersInfo.FirstOrDefault(ui => ui.User.ID == _user.ID); if (userInfo == null) { return; } var description = userInfo.UserDescription; var address = userInfo.Address; var image = userInfo.ProfileImage; var birthDate = userInfo.BirthDate; Description = description; Address = address; UserImage = image; if (UserImage == null) { UserImage = ImageToByte(placeholderImage); } BirthDate = birthDate; } }
public AddGoalDefinitionViewModel(User user) { User = user; AddNewGoalCommand = new RelayCommand(AddNewGoal); AddFriendCommand = new RelayCommand(AddFriend); RemoveFriendCommand = new RelayCommand(RemoveFriend); Friends = new ObservableCollection <User>(); InvitedFriends = new ObservableCollection <User>(); using (var db = new GoalMasterDatabaseContext()) { var result = db.GoalTypes; GoalTypes = new ObservableCollection <GoalType>(result); FirstGoalType = GoalTypes.First(); } refreshListsOfFriends(); SelectedFriend = Friends.FirstOrDefault(); SelectedInvitedFriend = InvitedFriends.FirstOrDefault(); }
private void EditOrDeleteGoal() { var editOrDeleteGoalWindow = new EditOrDeleteGoalDefWindow(FirstGoalDefinition, User); editOrDeleteGoalWindow.ShowDialog(); using (var db = new GoalMasterDatabaseContext()) { var result = db.Users.FirstOrDefault(x => x.ID == User.ID).GoalDefinitions;//db.GoalDefinitions.Where(x => x.Users.Contains(user));// GoalDefinitions = new ObservableCollection <GoalDefinition>(result); if (GoalDefinitions.Count <= 0) { AddnewGoal(); } else { FirstGoalDefinition = GoalDefinitions.First(); } refreshGoalRecords(); } //throw new NotImplementedException(); }
private void EditGoal() { using (var db = new GoalMasterDatabaseContext()) { var goalDef = db.GoalDefinitions.FirstOrDefault(gd => gd.ID == _goalDefinition.ID); var user = db.Users.FirstOrDefault(x => x.ID == User.ID); goalDef.Name = Name; goalDef.Description = Description; goalDef.Users.Clear(); goalDef.Users.Add(user); foreach (var invitedFriend in InvitedFriends) { var friend = db.Users.FirstOrDefault(x => x.ID == invitedFriend.ID); goalDef.Users.Add(friend); } db.SaveChanges(); } if (this.CloseWindowEvent != null) { CloseWindowEvent(this, null); } }
private void DataClick(object obj) { var point = (ChartPoint)obj; var userName = point.SeriesView.Title; var serie = GoalRecords2.FirstOrDefault(view => view.Title == userName); var date = Dates.ElementAt((int)point.X); date = date.Replace('.', '-'); DateTime result = DateTime.ParseExact(date, "dd-MM-yyyy", CultureInfo.InvariantCulture); string note; using (var db = new GoalMasterDatabaseContext()) { var user = db.Users.FirstOrDefault(us => us.Login == userName); var goalRecord = db.GoalRecords.FirstOrDefault(gr => gr.Date == result && gr.User.ID == user.ID); note = goalRecord.Note; } MessageBox_Show(null, $"{note}", "Note"); }
private void RejectFriend() { if (SelectedInvitation == null) { return; } using (var db = new GoalMasterDatabaseContext()) { var relationshipStatus = db.RelationshipStatuses.FirstOrDefault(x => x.ID == (int)RelationshipStatusDefined.Declined); var user = db.Users.FirstOrDefault(x => x.ID == User.ID); var relationship = db.Relationships.FirstOrDefault( x => x.ActionUser.Login == SelectedInvitation.Item1 && (x.UserOne.ID == user.ID || x.UserTwo.ID == user.ID)); relationship.Status = relationshipStatus; db.SaveChanges(); } refreshListsOfFriends(); refreshListsOfInvitesToFriends(); }
private void refreshListsOfInvitesToFriends()//todo niech nie pokazuje nawzajem się zaporoszą { InvitesToFriends.Clear(); using (var db = new GoalMasterDatabaseContext()) { var user = db.Users.FirstOrDefault(x => x.ID == User.ID); var relations = db.Relationships; var relatedUsers = new List <User>(); var invitesToFriends = new List <Tuple <string, string> >(); foreach (var relation in relations) { if (relation.Status.ID == (int)RelationshipStatusDefined.Pending && relation.ActionUser.ID != user.ID) { if (relation.UserOne == user || relation.UserTwo == user) { if (relation.UserOne != user) { relatedUsers.Add(relation.UserOne); invitesToFriends.Add(new Tuple <string, string>(relation.UserOne.Login, relation.Status.Description)); } if (relation.UserTwo != user) { relatedUsers.Add(relation.UserTwo); invitesToFriends.Add(new Tuple <string, string>(relation.UserTwo.Login, relation.Status.Description)); } } } } InvitesToFriends = new ObservableCollection <Tuple <string, string> >(invitesToFriends); SelectedInvitation = InvitesToFriends.FirstOrDefault(); } }
public MainUserWindowViewModel(User user, EventHandler closeEvent) { User = user; AddNewGoalCommand = new RelayCommand(AddnewGoal); FriendsCommand = new RelayCommand(Friends); AddNewActivityCommand = new RelayCommand(AddNewActivity); OptionsCommand = new RelayCommand(Options); DataClickCommand = new RelayCommand <object>(DataClick); EditOrDeleteGoalCommand = new RelayCommand(EditOrDeleteGoal); SelectedDate = DateTime.Today; GoalRecords = new ObservableCollection <GoalRecord>(); CloseWindowEvent += closeEvent; UserInfo = $"User info: {User.Login} {User.Mail}"; //DataClickCommand = new CustomCommand<ChartPoint> //{ // ExecuteDelegate = p => MessageBox_Show(null, $"Kliknięto {p.X} {p.Y} ", "") //}; //TODO sprawdzać internet using (var db = new GoalMasterDatabaseContext()) { var result = db.Users.FirstOrDefault(x => x.ID == user.ID).GoalDefinitions;//db.GoalDefinitions.Where(x => x.Users.Contains(user));// GoalDefinitions = new ObservableCollection <GoalDefinition>(result); if (GoalDefinitions.Count <= 0) { AddnewGoal(); } else { FirstGoalDefinition = GoalDefinitions.First(); } refreshGoalRecords(); } }
public EditOrDeleteGoalDefViewModel(GoalDefinition goalDefinition, User user) { DeleteGoalCommand = new RelayCommand(DeleteGoal); EditGoalCommand = new RelayCommand(EditGoal); RemoveFriendCommand = new RelayCommand(RemoveFriend); AddFriendCommand = new RelayCommand(AddFriend); Friends = new ObservableCollection <User>(); InvitedFriends = new ObservableCollection <User>(); User = user; using (var db = new GoalMasterDatabaseContext()) { var goalDef = db.GoalDefinitions.FirstOrDefault(gd => gd.ID == goalDefinition.ID); _goalDefinition = goalDef; Name = goalDef.Name; Description = goalDef.Description; if (goalDef.OwnerUserID.ID == user.ID) { IsOwner = true; DelOrUnsubscribeMessage = "Delete goal"; } else { IsOwner = false; DelOrUnsubscribeMessage = "Unsubscribe from goal"; Info = "Only goal owner can edit invited friends"; } } refreshListsOfFriends(); SelectedFriend = Friends.FirstOrDefault(); SelectedInvitedFriend = InvitedFriends.FirstOrDefault(); }