public async Task <IActionResult> EditRelative(EditRelativeModel editRelativeModel) { if (editRelativeModel.FromPersonId != 0) { var relative = _db.UserRelatives.FirstOrDefault(n => n.ToUserId == editRelativeModel.ToPersonId && n.FromUserId == editRelativeModel.FromPersonId && n.RelativeTypeId == editRelativeModel.RelativeTypeId) ?? _db.UserRelatives.FirstOrDefault(n => n.ToUserId == editRelativeModel.FromPersonId && n.FromUserId == editRelativeModel.ToPersonId && n.RelativeTypeId == editRelativeModel.RelativeTypeId); if (relative is null) { return(RedirectToAction("Profile")); } _db.UserRelatives.Remove(relative); await _db.SaveChangesAsync(); } UserRelative userRelative = new UserRelative() { ToUserId = editRelativeModel.ToPersonId, FromUserId = editRelativeModel.NewFromPersonId, RelativeTypeId = editRelativeModel.RelativeTypeId }; await _db.UserRelatives.AddAsync(userRelative); await _db.SaveChangesAsync(); return(RedirectToAction("Profile")); }
public async Task <IActionResult> AddRelative(AddRelativeModel addRelativeModel) { if (addRelativeModel.RelativeTypeId == 1) { var toPerson = _db.Persons.FirstOrDefault(n => n.Id == addRelativeModel.ToPersonId); var fromPerson = _db.Persons.FirstOrDefault(n => n.Id == addRelativeModel.FromPersonId); if (toPerson is null || fromPerson is null) { return(RedirectToAction("Profile")); } Marriage marriage = new Marriage() { WeddDate = addRelativeModel.WeddDate, IsDivorced = addRelativeModel.IsDivorced, DivorceDate = addRelativeModel.DivorceDate, Description = $"{toPerson.Firstname} и {fromPerson.Firstname}" }; try { await _db.Marriages.AddAsync(marriage); await _db.SaveChangesAsync(); addRelativeModel.MarriageId = marriage.Id; } catch (InvalidOperationException ex) { return(RedirectToAction("Profile")); } } var relative = new UserRelative() { ToUserId = addRelativeModel.ToPersonId, FromUserId = addRelativeModel.FromPersonId, RelativeTypeId = addRelativeModel.RelativeTypeId, MarriageId = addRelativeModel.MarriageId }; try { await _db.UserRelatives.AddAsync(relative); await _db.SaveChangesAsync(); } catch (InvalidOperationException ex) { return(RedirectToAction("Profile")); } return(RedirectToAction("Profile", "User", new { id = addRelativeModel.ToPersonId })); }