Esempio n. 1
0
        public async Task Delete(Guid id)
        {
            var patient = await _patientRepository.GetAsync(id);

            if (patient is null)
            {
                Notify("Dados do Paciente não encontrado.");
                return;
            }

            var scheduling = await _schedulingRepository.GetAllByPatientAsync(id);

            if (scheduling.Any())
            {
                Notify("Não é possível excluir o paciente, pois existem agendamentos cadastrados para ele.");
                return;
            }

            patient.Delete();

            _patientRepository.Update(patient);

            if (await CommitAsync())
            {
                var userManager = await _userManager.FindByIdAsync(id.ToString());

                if (userManager is not null)
                {
                    await _userManager.DeleteAsync(userManager);
                }
            }
            else
            {
                Notify("Erro ao salvar dados.");
            }
        }