public ActividadResponse Handle(ActividadRequest request)
        {
            var tipoActividad = _tipoActividadRepository.Find(request.TipoActividadId);

            if (tipoActividad == null)
            {
                return(new ActividadResponse("No existe ese tipo de actividad", null, "Error"));
            }
            var asignador = _usuarioRepository.FindJefeDpto(request.IdentificacionAsignador);

            if (asignador == null)
            {
                return(new ActividadResponse("No se encontró el Jefe de departamento", null, "Error"));
            }
            var responsable = _usuarioRepository.FindDocente(request.IdentificacionResponsable);

            if (responsable == null)
            {
                return(new ActividadResponse("No se encontró el docente", null, "Error"));
            }
            var actividad = new Actividad(tipoActividad, asignador);
            var response  = actividad.Asignar(responsable, request.HorasAsignadas);

            _actividadRepository.Add(actividad);
            _unitOfWork.Commit();
            _emailServer.Send("Nueva actividad asignada", $"Se efectúo la asignacion de la actividad", responsable.Email);
            return(new ActividadResponse(response, actividad, "Ok"));
        }
Пример #2
0
        public IActionResult PostCrearActividad(ActividadRequest request)
        {
            var service = new AsignarActividadService(_unitOfWork,
                                                      _actividadRepository,
                                                      _usuarioRepository,
                                                      _tipoActividadRepository,
                                                      _mailServer);
            var response = service.Handle(request);

            return(Ok(response));
        }
Пример #3
0
        public void NoPuedoAsignarActividadAUnDocenteSiNoExisteElTipoDeActividad()
        {
            var docente  = DocenteMother.CreateDocente("103523423");
            var jefeDpto = JefeDptoMother.CreateJefeDpto("11223334");

            _usuarioRepository.Add(jefeDpto);
            _usuarioRepository.Add(docente);
            _dbContext.SaveChanges();
            var request  = new ActividadRequest(100, "11223334", "103523423", 10);
            var response = _asignarActividadService.Handle(request);

            response.Message.Should().Be("No existe ese tipo de actividad");
        }
Пример #4
0
        public void NoPuedoAsignarActividadAUnDocenteSiNoExisteElJefeDptoAsignador()
        {
            var docente = DocenteMother.CreateDocente("103523423");

            _usuarioRepository.Add(docente);
            var tipo = new TipoActividad("Investigaci�n");

            _tipoActividadRepository.Add(tipo);
            _dbContext.SaveChanges();
            var request  = new ActividadRequest(1, "11223334", "103523423", 10);
            var response = _asignarActividadService.Handle(request);

            response.Message.Should().Be("No se encontró el Jefe de departamento");
        }
Пример #5
0
        public void PuedoAsignarActividadAUnDocente()
        {
            var docente  = DocenteMother.CreateDocente("103523423");
            var jefeDpto = JefeDptoMother.CreateJefeDpto("11223334");

            _usuarioRepository.Add(jefeDpto);
            _usuarioRepository.Add(docente);
            var tipo = new TipoActividad("Investigaci�n");

            _tipoActividadRepository.Add(tipo);
            _dbContext.SaveChanges();
            var request  = new ActividadRequest(1, "11223334", "103523423", 10);
            var response = _asignarActividadService.Handle(request);

            response.Message.Should().Be("Se asignaron 10 horas de Investigaci�n al docente Sebastian");
        }
Пример #6
0
        public async Task PuedeCrearActividadTestAsync()
        {
            var context            = _factory.CreateContext();
            var jefeDptoToAdd      = JefeDptoMother.CreateJefeDpto("123454a");
            var docenteToAdd       = DocenteMother.CreateDocente("1254b");
            var tipoActividadToAdd = new TipoActividad("Investigacion");

            context.JefesDptos.Add(jefeDptoToAdd);
            context.Docentes.Add(docenteToAdd);
            context.TiposActividades.Add(tipoActividadToAdd);
            context.SaveChanges();

            var jefeDpto = context.JefesDptos.FirstOrDefault(t => t.Identificacion == "123454a");
            var docente  = context.Docentes.FirstOrDefault(t => t.Identificacion == "1254b");
            var tipo     = context.TiposActividades.FirstOrDefault(t => t.NombreActividad == "Investigacion");

            jefeDpto.Should().NotBeNull();
            docente.Should().NotBeNull();
            tipo.Should().NotBeNull();

            var request = new ActividadRequest(
                1,
                "123454a",
                "1254b",
                10
                );

            var jsonObject   = JsonConvert.SerializeObject(request);
            var content      = new StringContent(jsonObject, Encoding.UTF8, "application/json");
            var responseHttp = await _client.PostAsync("api/Actividad", content);

            responseHttp.StatusCode.Should().Be(HttpStatusCode.OK);
            var respuesta = await responseHttp.Content.ReadAsStringAsync();

            respuesta.Should().Contain("Se asignaron 10 horas de Investigacion al docente Sebastian");
            var actividad = context.Actividades.FirstOrDefault(t => t.Asignador.Identificacion == "123454a");

            actividad.Should().NotBeNull();
        }