示例#1
0
        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 }));
        }
示例#2
0
        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));
        }