Ejemplo n.º 1
0
        public DocenteResponse Handle(DocenteRequest request)
        {
            if (_docenteRepository.FindDocente(request.Identificacion) != null)
            {
                return(new DocenteResponse("Ya existe el docente con esa identificacion", "Error"));
            }
            var departamento = _departamentoRepository.Find(request.departamentoId);

            if (departamento == null)
            {
                return(new DocenteResponse("Se debe asignar un departamento al docente", "Error"));
            }
            var docente = new Docente();
            var errors  = docente.CanDeliver(request.Identificacion,
                                             request.Nombres,
                                             request.Apellidos,
                                             request.Email,
                                             request.Sexo,
                                             departamento);

            if (errors.Any())
            {
                var result = String.Join(", ", errors.ToArray());
                return(new DocenteResponse(result, "Error"));
            }
            docente.Deliver(request.Identificacion,
                            request.Nombres,
                            request.Apellidos,
                            request.Email,
                            request.Sexo,
                            departamento);
            string response = "";

            try
            {
                _docenteRepository.Add(docente);
                response = $"Se registró correctamente el docente {docente.Nombres}";
            }
            catch (Exception e)
            {
                response = "No se pudo registrar";
            }
            _unitOfWork.Commit();
            _emailServer.Send("Registro en AppAC", "Se registro en el sistema", docente.Email);
            return(new DocenteResponse(response, "Ok"));
        }