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 })); }
public IActionResult AddRelative(int toPersonId, int fromPersonId, int relativeTypeId, int gender, int marriageId) { AddRelativeModel addRelativeModel = new AddRelativeModel() { ToPersonId = toPersonId, FromPersonId = fromPersonId, RelativeTypeId = relativeTypeId, RelativeTypes = _db.RelativeTypes.ToList(), FromPersons = relativeTypeId == 1? _db.Persons.Where(n => n.GenderId == gender).ToList() : _db.Persons.ToList(), ToPersons = _db.Persons.ToList(), MarriageId = marriageId }; return(View(addRelativeModel)); }