コード例 #1
0
        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"));
        }
コード例 #2
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 }));
        }