public async Task <bool> SalvarSala(SalaViewModel salaVM)
        {
            try
            {
                var sala           = Mapper.Map <Sala>(salaVM);
                var idsProfessores = salaVM.IdsProfessores;
                //Salvar Sala
                await BeginTransaction();

                if (sala.Id == 0)
                {
                    sala = await Task.Run(() => _salaRepository.AddReturn(sala));
                }
                else
                {
                    await Task.Run(() => _salaRepository.Update(sala));
                }
                await Commit();

                //Deletar SalaProfessorRelacional
                var salasProfessoresRalacionais = await _salaProfessorRelacionalRepository.Get(x => x.IdSala == sala.Id);

                foreach (var relacional in salasProfessoresRalacionais)
                {
                    await BeginTransaction();

                    await Task.Run(() => _salaProfessorRelacionalRepository.Delete(relacional));
                    await Commit();
                }
                //Inserir SalaProfessorRelacional
                foreach (int idProfessor in idsProfessores)
                {
                    SalaProfessorRelacional salaProfessor = new SalaProfessorRelacional
                    {
                        IdProfessor = idProfessor,
                        IdSala      = sala.Id
                    };
                    await BeginTransaction();

                    await Task.Run(() => _salaProfessorRelacionalRepository.Add(salaProfessor));
                    await Commit();
                }
                return(true);
            }
            catch (Exception e)
            {
                throw e;
            }
        }