コード例 #1
0
 /// <summary>
 /// Método encargado de la creación de objetos valor de
 /// periodo de vigencia.
 /// </summary>
 /// <param name="fromDate">
 /// Parámetro que indica la fecha inicial del periodo de vigencia.
 /// </param>
 /// <param name="toDate">
 /// Parámetro que indica la fecha final del periodo de vigencia.
 /// </param>
 /// <returns>
 /// Devuelve objeto de tipo <see cref="IValidPeriod"/> creado.
 /// </returns>
 public static IValidPeriod Create(DateTime? fromDate, DateTime? toDate)
 {
     // Creamos el objeto valor de periodo de vigencia.
     IValidPeriod validPeriod = new ValidPeriod(fromDate, toDate);
     // Devolvemos el objeto valor creado.
     return validPeriod;
 }
コード例 #2
0
        public async Task <IActionResult> CreateProgram(CreateProgramDto dto)
        {
            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }

            var cluster = await _context.Programs.SingleOrDefaultAsync(x => x.ProgramCode == dto.ProgramCode);

            if (cluster != null)
            {
                return(BadRequest("ProgramCode already exists"));
            }

            var newProgram = new Domain.Models.Program(dto.Name, dto.Description, dto.ProgramCode, validPeriod.Value,
                                                       dto.TraditionalForMales, dto.TraditionalForFemales);

            _context.Programs.Attach(newProgram);

            await _context.SaveChangesAsync();

            return(Ok());
        }
コード例 #3
0
        public async Task <IActionResult> UpdateCourse(int courseId, UpdateCourseDto dto)
        {
            var course = await _context.Courses.FindAsync(courseId);

            course.UpdateDetails(dto.Title, dto.Description);

            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }
            course.ChangeValidPeriod(validPeriod.Value);

            course.ChangeCreditDetails(dto.CreditRecoveryAvailable, dto.CreditAdvancementAvailable, dto.CreditUnits);

            var lowGrade  = _context.Grades.Find(dto.LowGradeId);
            var highGrade = _context.Grades.Find(dto.HighGradeId);
            var result    = course.ChangeGradeRange(lowGrade, highGrade);

            if (result.IsFailure)
            {
                return(BadRequest(result.Error));
            }

            var courseType  = _context.CourseTypes.Find(dto.CourseTypeId);
            var courseLevel = _context.CourseLevels.Find(dto.CourseLevelId);

            course.ChangeCourseType(courseType, courseLevel);

            _context.SaveChanges();

            return(Ok());
        }
コード例 #4
0
        public async Task <IActionResult> CreateCourse(CreateCourseDto dto)
        {
            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }

            var lowGrade  = _context.Grades.Find(dto.LowGradeId);
            var highGrade = _context.Grades.Find(dto.HighGradeId);

            if (lowGrade == null || highGrade == null)
            {
                return(BadRequest("Invalid Grade range supplied"));
            }

            try
            {
                var course = new Course(dto.Title, dto.Description, validPeriod.Value, lowGrade, highGrade);
                _context.Courses.Attach(course);
                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
            return(Ok());
        }
コード例 #5
0
        public async Task <IActionResult> UpdateCredential(int id, UpdateCredentialDto dto)
        {
            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }

            var credential = _context.Credentials.Find(id);

            credential.UpdateDetails(dto.Name, dto.Description, dto.IsReimbursable);
            credential.ChangeValidPeriod(validPeriod.Value);

            await _context.SaveChangesAsync();

            return(Ok());
        }
コード例 #6
0
        public async Task <IActionResult> UpdateCluster(int id, UpdateClusterDto dto)
        {
            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }

            var cluster = _context.Clusters.Find(id);

            cluster.UpdateDetails(dto.Name, dto.Description);
            cluster.ChangeValidPeriod(validPeriod.Value);

            await _context.SaveChangesAsync();

            return(Ok());
        }
コード例 #7
0
        public async Task <IActionResult> UpdateProgram(int id, UpdateProgramDto dto)
        {
            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }

            var program = _context.Programs.Find(id);

            program.UpdateDetails(dto.Name, dto.Description, dto.TraditionalForMales, dto.TraditionalForFemales);
            program.ChangeValidPeriod(validPeriod.Value);

            await _context.SaveChangesAsync();

            return(Ok());
        }
コード例 #8
0
        public async Task <IActionResult> AssignProgram(int courseId, AssignProgramDto dto)
        {
            var course = await _context.Courses
                         .Include(x => x.ProgramAssignments)
                         .SingleOrDefaultAsync(x => x.Id == courseId);

            var program = _context.Programs.Find(dto.ProgramId);

            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }

            course.AssignProgram(program, validPeriod.Value);

            _context.SaveChanges();

            return(Ok());
        }
コード例 #9
0
        public async Task <IActionResult> CreateCredential(CreateCredentialDto dto)
        {
            var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear);

            if (validPeriod.IsFailure)
            {
                return(BadRequest(validPeriod.Error));
            }

            var cluster = await _context.Credentials.SingleOrDefaultAsync(x => x.CredentialCode == dto.CredentialCode);

            if (cluster != null)
            {
                return(BadRequest("CredentialCode already exists"));
            }

            var newCluster = new Credential(dto.Name, dto.Description, dto.CredentialCode, validPeriod.Value, dto.IsReimbursable);

            _context.Credentials.Attach(newCluster);

            await _context.SaveChangesAsync();

            return(Ok());
        }
コード例 #10
0
 public void ChangeValidPeriod(ValidPeriod validPeriod)
 {
     ValidPeriod = validPeriod;
 }
コード例 #11
0
 public Program(string name, string description, string programCode, ValidPeriod validPeriod, bool isTraditionalMale, bool isTraditionalFemale)
 {
     ProgramCode = programCode;
     UpdateDetails(name, description, isTraditionalMale, isTraditionalFemale);
     ChangeValidPeriod(validPeriod);
 }
コード例 #12
0
 public ProgramAssignment(Program careerTechProgram, Course course, ValidPeriod validPeriod)
 {
     Program     = careerTechProgram;
     Course      = course;
     ValidPeriod = validPeriod;
 }