public async Task <ProfessionalExperienceDefinition> Create(DefinitionViewModel input)
        {
            ProfessionalExperienceDefinition newProfessionalExperienceDefinition = new ProfessionalExperienceDefinition
            {
                Name                                    = input.Name,
                Start                                   = input.Start,
                End                                     = input.End,
                Year                                    = input.Year,
                NumberOfDays                            = input.NumberOfDays,
                NumberOfHours                           = input.NumberOfHours,
                Active                                  = input.Active,
                Longtime                                = input.Longtime,
                DefinitionRepresentative                = input.DefinitionRepresentative,
                DefinitionRepresentativeEmail           = input.DefinitionRepresentativeEmail,
                DefinitionRepresentativeTelephoneNumber = input.DefinitionRepresentativeTelephoneNumber,
            };

            _context.ProfessionalExperienceDefinitions.Add(newProfessionalExperienceDefinition);
            await _context.SaveChangesAsync();

            foreach (var i in input.ClassroomIds)
            {
                var classroomDefinition = new ClassroomDefinition {
                    ClassroomId = i, DefinitionId = newProfessionalExperienceDefinition.Id
                };
                _context.ClassroomDefinitions.Add(classroomDefinition);
            }
            await _context.SaveChangesAsync();


            return(newProfessionalExperienceDefinition);
        }
        public async Task <ProfessionalExperienceDefinition> Update(int id, DefinitionViewModel input)
        {
            ProfessionalExperienceDefinition professionalExperienceDefinition = _context.ProfessionalExperienceDefinitions.Find(id);

            if (professionalExperienceDefinition != null)
            {
                professionalExperienceDefinition.Name                                    = input.Name;
                professionalExperienceDefinition.Start                                   = input.Start;
                professionalExperienceDefinition.End                                     = input.End;
                professionalExperienceDefinition.Year                                    = input.Year;
                professionalExperienceDefinition.NumberOfDays                            = input.NumberOfDays;
                professionalExperienceDefinition.NumberOfHours                           = input.NumberOfHours;
                professionalExperienceDefinition.Active                                  = input.Active;
                professionalExperienceDefinition.Longtime                                = input.Longtime;
                professionalExperienceDefinition.DefinitionRepresentative                = input.DefinitionRepresentative;
                professionalExperienceDefinition.DefinitionRepresentativeEmail           = input.DefinitionRepresentativeEmail;
                professionalExperienceDefinition.DefinitionRepresentativeTelephoneNumber = input.DefinitionRepresentativeTelephoneNumber;
                await _context.SaveChangesAsync();


                foreach (var i in _context.ClassroomDefinitions)
                {
                    if (i.DefinitionId == id)
                    {
                        _context.ClassroomDefinitions.Remove(i);
                    }
                }
                await _context.SaveChangesAsync();

                foreach (var i in input.ClassroomIds)
                {
                    var classroomDefinition = new ClassroomDefinition {
                        ClassroomId = i, DefinitionId = id
                    };
                    _context.ClassroomDefinitions.Add(classroomDefinition);
                }

                await _context.SaveChangesAsync();

                return(professionalExperienceDefinition);
            }
            else
            {
                return(null);
            }
        }