public async Task <IActionResult> CreatePeriodo([FromBody] PeriodoRequest periodo)
        {
            PeriodoResponse = new PeriodoResponse();

            _service = new CrearPeriodoService(_unitOfWork);

            var rta = _service.CrearPerido(periodo);

            if (rta.isOk())
            {
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetPeriodo", new { periodo = periodo.NumeroPeriodo }, periodo));
            }
            return(BadRequest(rta.Message));
        }
        public PeriodoResponse CrearPerido(PeriodoRequest request)
        {
            var matricula = _unitOfWork.PeriodoServiceRepository.FindFirstOrDefault(t => t.NumeroPeriodo == request.NumeroPeriodo);

            if (matricula == null)
            {
                Dominio.Periodo newPeriodo = new Dominio.Periodo(request.NumeroPeriodo, request.NombrePeriodo, request.FechaInicio, request.FechaFin);

                IReadOnlyList <string> errors = newPeriodo.CanCrear(newPeriodo);
                if (errors.Any())
                {
                    string listaErrors = "Errores:";
                    foreach (var item in errors)
                    {
                        listaErrors += item.ToString();
                    }
                    return(new PeriodoResponse()
                    {
                        Message = listaErrors
                    });
                }
                else
                {
                    _unitOfWork.PeriodoServiceRepository.Add(newPeriodo);
                    _unitOfWork.Commit();
                    return(new PeriodoResponse()
                    {
                        Message = $"Periodo Registrado Exitosamente"
                    });
                }
            }
            else
            {
                return(new PeriodoResponse()
                {
                    Message = $"Este periodo ya existe"
                });
            }
        }