public IActionResult PostCrearPlazoApertura(PlazoAperturaRequest request)
        {
            var service  = new PlazoAperturaService(_unitOfWork, _plazoAperturaRepository, _mailServer, _jefeDptoRepository);
            var response = service.CrearPlazoApertura(request);

            return(Ok(response));
        }
Ejemplo n.º 2
0
        public PlazoAperturaResponse CrearPlazoApertura(PlazoAperturaRequest request)
        {
            var jefeDpto = _jefeDptoRepository.FindFirstOrDefault(c => c.Identificacion == request.IdentificacionCreador);

            if (jefeDpto == null)
            {
                return(new PlazoAperturaResponse("No existe el Jefe de departamento", "error"));
            }
            var plazoApertura = new PlazoApertura(jefeDpto);
            var response      = plazoApertura.EstablecerPlazo(request.FechaInicio, request.FechaFin);

            if (response.Equals("El plazo fue correctamente ingresado"))
            {
                var currentPlazo = _plazoAperturaRepository.GetCurrentPlazoByCreador(jefeDpto.Identificacion);
                if (currentPlazo != null)
                {
                    currentPlazo.Deshabilitar();
                    _plazoAperturaRepository.Update(currentPlazo);
                }
                _plazoAperturaRepository.Add(plazoApertura);
                _unitOfWork.Commit();
                return(new PlazoAperturaResponse(response, "Ok"));
            }
            return(new PlazoAperturaResponse(response, "Info"));
        }
Ejemplo n.º 3
0
        public void NoPuedoGuardarPlazoAperturaSiNoExisteUnJefeDptoCreador()
        {
            var fechaInicio = new DateTime(2021, 02, 20);
            var fechaFin    = new DateTime(2021, 03, 20);
            var request     = new PlazoAperturaRequest("1234", fechaInicio, fechaFin);
            var response    = _plazoAperturaService.CrearPlazoApertura(request);

            Assert.AreEqual("No existe el Jefe de departamento", response.Message);
        }
Ejemplo n.º 4
0
        public void PuedoGuardarPlazoApertura()
        {
            var fechaInicio = new DateTime(2021, 02, 20);
            var fechaFin    = new DateTime(2021, 03, 20);
            var jefeDpto    = JefeDptoMother.CreateJefeDpto("1234");

            _jefeDptoRepository.Add(jefeDpto);
            _dbContext.SaveChanges();
            var request  = new PlazoAperturaRequest("1234", fechaInicio, fechaFin);
            var response = _plazoAperturaService.CrearPlazoApertura(request);

            Assert.AreEqual("El plazo fue correctamente ingresado", response.Message);
        }
Ejemplo n.º 5
0
        public void LaFechaDeInicioNoPuedeSerMayorALaDeFin()
        {
            var fechaInicio = new DateTime(2021, 03, 20);
            var fechaFin    = new DateTime(2021, 02, 20);
            var jefeDpto    = JefeDptoMother.CreateJefeDpto("1234");

            _jefeDptoRepository.Add(jefeDpto);
            _dbContext.SaveChanges();
            var request  = new PlazoAperturaRequest("1234", fechaInicio, fechaFin);
            var response = _plazoAperturaService.CrearPlazoApertura(request);

            Assert.AreEqual("La fecha de inicio no puede ser mayor o igual a la fecha de fin", response.Message);
        }
Ejemplo n.º 6
0
        public void PuedoCrearItemPlanDeAccion()
        {
            var plan = PlanAccionMother.CreatePlanAccion();

            _planAccionRepository.Add(plan);
            _dbContext.SaveChanges();
            var plazo        = PlazoAperturaMother.CreatePlazoApertura("123313");
            var plazoRequest = new PlazoAperturaRequest("123313", plazo.FechaInicio, plazo.FechaFin);

            _plazoAperturaService.CrearPlazoApertura(plazoRequest).Message.Should().Be("El plazo fue correctamente ingresado");
            var request  = new ItemPlanRequest(1, "Se describe aqui", "Se describe lo que se hizo", "loquesea/dir");
            var response = _itemPlanService.RegistrarItem(request);

            response.Message.Should().Be("Item registrado correctamente");
        }
Ejemplo n.º 7
0
        public void NoPuedoModificarItemSiNoEstaDentroDelPlazoDeAperturaEstablecido()
        {
            var plan = PlanAccionMother.CreatePlanAccion();

            _planAccionRepository.Add(plan);
            _dbContext.SaveChanges();
            var plazo        = PlazoAperturaMother.CreatePlazoAperturaVencido("123313");
            var plazoRequest = new PlazoAperturaRequest("123313", plazo.FechaInicio, plazo.FechaFin);

            _plazoAperturaService.CrearPlazoApertura(plazoRequest).Message.Should().Be("El plazo fue correctamente ingresado");
            var request  = new ItemPlanUpdateRequest(1, "Se describe aqui dsadasdad", "Se describe lo que se hizo", "loquesea/dir");
            var response = _itemPlanService.ModificarItem(request);

            response.Message.Should().Be("Error: La fecha no esta dentro del plazo establecido por el jefe de departamento");
        }
Ejemplo n.º 8
0
        public async Task PuedeCrearPlazoAperturaTestAsync()
        {
            #region Registro jefeDpto
            var request = new JefeDptoRequest(
                "123fff",
                "Sebastian",
                "Oñate",
                "*****@*****.**",
                "M",
                1
                );
            var jsonObject   = JsonConvert.SerializeObject(request);
            var content      = new StringContent(jsonObject, Encoding.UTF8, "application/json");
            var responseHttp = await _client.PostAsync("api/jefeDpto", content);

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

            respuesta.Should().Contain("Se registró correctamente el Jefe de departamento Sebastian");
            var context  = _factory.CreateContext();
            var jefeDpto = context.JefesDptos.FirstOrDefault(t => t.Identificacion == "123fff");
            jefeDpto.Should().NotBeNull();
            #endregion

            #region Registro Plazo apertura
            var fechaInicio  = new DateTime(2021, 02, 20);
            var fechaFin     = new DateTime(2021, 03, 20);
            var plazoRequest = new PlazoAperturaRequest(
                "123fff",
                fechaInicio,
                fechaFin
                );
            jsonObject   = JsonConvert.SerializeObject(plazoRequest);
            content      = new StringContent(jsonObject, Encoding.UTF8, "application/json");
            responseHttp = await _client.PostAsync("api/PlazoApertura", content);

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

            respuesta.Should().Contain("El plazo fue correctamente ingresado");
            var plazoApertura = context.PlazosApertura.FirstOrDefault(t => t.Creador.Identificacion == "123fff");
            plazoApertura.Should().NotBeNull();

            #endregion
        }
Ejemplo n.º 9
0
        public void PuedoCrearPlanDeAccion()
        {
            var actividad = ActividadMother.CreateActividad();

            _actividadRepository.Add(actividad);
            _dbContext.SaveChanges();
            var plazo        = PlazoAperturaMother.CreatePlazoApertura("123313");
            var plazoRequest = new PlazoAperturaRequest("123313", plazo.FechaInicio, plazo.FechaFin);

            _plazoAperturaService.CrearPlazoApertura(plazoRequest).Message.Should().Be("El plazo fue correctamente ingresado");
            var item  = new ItemPlanRequest(0, "Se describe aqui", "Se describe lo que se hizo", "loquesea/dir");
            var items = new List <ItemPlanRequest>();

            items.Add(item);
            var request  = new PlanAccionRequest(1, items);
            var response = _crearPlanAccionService.Handle(request);

            response.Message.Should().Be("Plan de accion registrado correctamente");
        }
Ejemplo n.º 10
0
        public void NoPuedoCrearPlanDeAccionNoEstaDentroDelPlazoDeApertura()
        {
            var actividad = ActividadMother.CreateActividad();

            _actividadRepository.Add(actividad);
            _dbContext.SaveChanges();

            var plazo        = PlazoAperturaMother.CreatePlazoAperturaVencido("123313");
            var plazoRequest = new PlazoAperturaRequest("123313", plazo.FechaInicio, plazo.FechaFin);

            _plazoAperturaService.CrearPlazoApertura(plazoRequest).Message.Should().Be("El plazo fue correctamente ingresado");
            var item  = new ItemPlanRequest(0, "Se describe aqui", "Se describe lo que se hizo", "loquesea/dir");
            var items = new List <ItemPlanRequest>();

            items.Add(item);
            var request  = new PlanAccionRequest(1, items);
            var response = _crearPlanAccionService.Handle(request);

            response.Message.Should().Be("Error: La fecha no esta dentro del plazo establecido por el jefe de departamento");
        }
Ejemplo n.º 11
0
        public async Task PuedeCrearPlanAccionTestAsync()
        {
            // var httpClient = _factory.CreateClient();
            var context        = _factory.CreateContext();
            var actividadToAdd = ActividadMother.CreateActividad();

            context.Actividades.Add(actividadToAdd);
            context.SaveChanges();

            var plazoToAdd   = PlazoAperturaMother.CreatePlazoApertura("123313");
            var plazoRequest = new PlazoAperturaRequest("123313", plazoToAdd.FechaInicio, plazoToAdd.FechaFin);
            var jsonObject   = JsonConvert.SerializeObject(plazoRequest);
            var content      = new StringContent(jsonObject, Encoding.UTF8, "application/json");
            var responseHttp = await _client.PostAsync("api/PlazoApertura", content);

            responseHttp.StatusCode.Should().Be(HttpStatusCode.OK);

            var item  = new ItemPlanRequest(0, "Se describe aqui", "Se describe lo que se hizo", "loquesea/dir");
            var items = new List <ItemPlanRequest>();

            items.Add(item);
            var request = new PlanAccionRequest(
                1,
                items
                );

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

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

            respuesta.Should().Contain("Plan de accion registrado correctamente");
            var plan = context.Planes.FirstOrDefault();

            plan.Should().NotBeNull();
        }