public SystemValidationModel Edit(UpsertCarreraViewModel viewModel)
        {
            var carreraExist = _context.Set <Carrera>().FirstOrDefault(x => x.Nombre.ToLower().Trim() == viewModel.Nombre.ToLower().Trim() && x.Id != viewModel.Id);

            if (carreraExist != null)
            {
                return(new SystemValidationModel()
                {
                    Success = false, Message = "Ya existe una carrera con el mismo nombre"
                });
            }
            carreraExist = _context.Set <Carrera>().FirstOrDefault(x => x.Abreviatura.ToLower().Trim() == viewModel.Abreviatura.ToLower().Trim() && x.Id != viewModel.Id);
            if (carreraExist != null)
            {
                return(new SystemValidationModel()
                {
                    Success = false, Message = "Ya existe una carrera con la misma abreviatura"
                });
            }
            var carrera = GetById(viewModel.Id);

            carrera = Mapper.Map(viewModel, carrera);
            _context.Entry(carrera).State = EntityState.Modified;
            var success    = _context.SaveChanges() > 0;
            var validation = new SystemValidationModel()
            {
                Success = success,
                Message = success ? "Se ha editado correctamente la carrera" : "No se pudo editar la carrera"
            };

            return(validation);
        }
        public SystemValidationModel Add(UpsertCarreraViewModel viewModel)
        {
            var carrera      = Mapper.Map <Carrera>(viewModel);
            var carreraExist = _context.Set <Carrera>().FirstOrDefault(x => x.Nombre.ToLower().Trim() == viewModel.Nombre.ToLower().Trim());

            if (carreraExist != null)
            {
                return(new SystemValidationModel()
                {
                    Success = false, Message = "Ya existe una carrera con el mismo nombre"
                });
            }
            carreraExist = _context.Set <Carrera>().FirstOrDefault(x => x.Abreviatura.ToLower().Trim() == viewModel.Abreviatura.ToLower().Trim());
            if (carreraExist != null)
            {
                return(new SystemValidationModel()
                {
                    Success = false, Message = "Ya existe una carrera con la misma abreviatura"
                });
            }
            carrera.Active = true;
            _context.Entry(carrera).State = EntityState.Added;
            var success    = _context.SaveChanges() > 0;
            var validation = new SystemValidationModel()
            {
                Success = success,
                Id      = carrera.Id
            };

            return(validation);
        }
        public IActionResult Upsert(int?id)
        {
            var viewModel = new UpsertCarreraViewModel();

            if (id != null)
            {
                viewModel = Mapper.Map <UpsertCarreraViewModel>(_carreras.GetById(id.Value));
            }
            return(View(viewModel));
        }
        public IActionResult AddCarrera()
        {
            var viewModel = new UpsertCarreraViewModel();

            return(View("~/Areas/Admin/Views/Carreras/Shared/AddCarrera.cshtml", viewModel));
        }