public AppUser SaveOrUpdate(UserSectorsModel userSectorsModel) { using (var tran = UnitOfWork.Context.Database.BeginTransaction()) { try { int id; if (userSectorsModel.IsNew) { var user = _appUserRepository.Add(new AppUser() { Name = userSectorsModel.Name, TermsIsAccepted = userSectorsModel.TermsIsAccepted }); foreach (var sector in userSectorsModel.Sectors) { _userSectorsRepository.Add(new UsersSector() { SectorId = sector.Id, UserId = user.Id }); } id = user.Id; } else { _appUserRepository.Update(new AppUser() { Id = userSectorsModel.Id, Name = userSectorsModel.Name, TermsIsAccepted = true, UsersSectors = null }); _userSectorsRepository.DeleteWhere(x => x.UserId == userSectorsModel.Id); foreach (var sector in userSectorsModel.Sectors) { _userSectorsRepository.Add(new UsersSector() { SectorId = sector.Id, UserId = userSectorsModel.Id }); } id = userSectorsModel.Id; } tran.Commit(); var result = _appUserRepository.Get(id); return(result); } catch (Exception) { tran.Rollback(); throw; } } }
public AppUser Create([FromBody] UserSectorsModel model) { if (!ModelState.IsValid) { throw new InvalidOperationException( "All fields are required"); } var result = _appUserService.SaveOrUpdate(model); return(result); }