/// <summary> /// Добавляет сущность. /// </summary> /// <param name="entity">Экземпляр сущности для добавления</param> public T Add(T entity) { T result; try { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } result = _dataSession.Set <T>().Add(entity); _dataSession.SaveChanges(); } catch (DbEntityValidationException dbEx) { var errorMessage = GetErrorMessage(dbEx); throw new Exception(errorMessage, dbEx); } catch (Exception e) { _logger.Error(e.Message); _dataSession.RollbackTransaction(); throw; } return(result); }
public int Add(T entity, bool commit = true) { Entities.Add(entity); if (commit) { _db.SaveChanges(); } return(entity.ID); }
public override async Task <SaveUserCommand> HandleAsync( SaveUserCommand command, CancellationToken cancellationToken = default(CancellationToken)) { var updatedUser = command.User; var getUserQueryResult = await _queryProcessor.ExecuteAsync(new GetUserQuery(updatedUser.UserId)); var dbUser = getUserQueryResult.User; dbUser.Username = updatedUser.Username; dbUser.FirstName = updatedUser.FirstName; dbUser.LastName = updatedUser.LastName; dbUser.UserRoles.ToList() .ForEach(userRole => { if (!updatedUser.UserRoles.Any(ur => ur.RoleId == userRole.RoleId)) { dbUser.UserRoles.Remove(userRole); } }); var rolesToAdd = from userRole in updatedUser.UserRoles where userRole.RoleId > 0 && !dbUser.UserRoles.Any(ur => ur.RoleId == userRole.RoleId) join role in getUserQueryResult.Roles on userRole.RoleId equals role.RoleId select role; foreach (var role in rolesToAdd) { dbUser.UserRoles.Add(new UserRole { User = dbUser, Role = role }); } _dataSession.SaveChanges(); return(command); }