public ResultList <EstudioDto> GetEstudios(string searchText, int pageIndex, int?pageCount) { var result = new ResultList <EstudioDto>(); UNIR.Comun.Servicios.RespuestaServicioOfArrayOfEstudioDtoWP8jzdkm resEstudios; var cache = _dataCache.Get <UNIR.Comun.Servicios.RespuestaServicioOfArrayOfEstudioDtoWP8jzdkm>(GlobalValues.CACHE_ESTUDIO, GlobalValues.GROUP_CACHE_GESTOR); if (cache != null) { resEstudios = cache; } else { var configMinutes = ConfigurationManager.AppSettings["TimeMinutesWsGestor"]; var minutes = 0; if (!int.TryParse(configMinutes, out minutes)) { minutes = GlobalValues.DEFAULT_MINUTE_CACHE; } resEstudios = _estudiosService.ObtenerEstudiosUNIR(0); _dataCache.Put(GlobalValues.CACHE_ESTUDIO, resEstudios, GlobalValues.GROUP_CACHE_GESTOR, TimeSpan.FromMinutes(minutes)); } pageCount = pageCount ?? 10; var query = resEstudios.Respuesta.AsQueryable(); if (!string.IsNullOrEmpty(searchText)) { query = query.Where( e => e.sNombreEstudio.ToLower().Trim().Contains(searchText.ToLower().Trim())); } var listado = query.Skip((pageIndex - 1) * pageCount.Value) .Take(pageCount.Value).ToList(); result.Elements = listado; result.TotalElements = query.Count(); result.PageCount = listado.Count; return(result); }
public ResultValue <AccountExtendDto> UpdateAccountExtend(int id) { var result = new ResultValue <AccountExtendDto>(); var preData = PreValidarDatos(result, id); if (result.HasErrors) { return(result); } var resAccount = preData.Item1; var resCourses = preData.Item2; var resAccountExtend = preData.Item3; var estudiosGestor = _wEstudios.ObtenerEstudiosUNIR(0); var estudioGestor = estudiosGestor.Respuesta.FirstOrDefault(e => e.idEstudio == int.Parse(resAccount.Value.SisId)); if (estudioGestor == null) { result.Errors.Add(CanvasExtedStrings.ErrorEstudioNoExiste); return(result); } foreach (var courseCanvasDto in resCourses.Elements) { var asignatura = resAccountExtend.Value.Asignaturas.FirstOrDefault(a => a.Id == int.Parse(courseCanvasDto.SisId)); if (asignatura == null) { _coursesApi.Update(new CourseSaveParameters { Id = courseCanvasDto.Id, Asignatura = null }); } } var accountExtend = _context.AccountExtends.Find(id); accountExtend.Estudio.Nombre = estudioGestor.sNombreEstudio; accountExtend.PeriodoActivos.Clear(); accountExtend.Asignaturas.Clear(); /*****Guardar Asignaturas Asociadas al estudio*****/ var resAsignaturas = _wEstudios.ObtenerAsignaturasDeEstudio(int.Parse(resAccount.Value.SisId)); var ids = resAsignaturas.Respuesta.Select(a => a.idAsignatura).ToArray(); var asignaturas = _context.Asignaturas.Where(a => ids.Contains(a.Id)).ToList(); foreach (var item in resAsignaturas.Respuesta) { var asignatura = asignaturas.FirstOrDefault(a => a.Id == item.idAsignatura); if (asignatura == null) { asignatura = new Asignatura { Id = item.idAsignatura, Nombre = item.sNombreAsignatura }; _context.Asignaturas.Add(asignatura); } else { asignatura.Nombre = item.sNombreAsignatura; } accountExtend.Asignaturas.Add(asignatura); } /*****Guardar PeriodoActivos asociados al estudio*****/ var resPeriodosActivos = _wEstudios.ObtenerCursosDeAsignaturasDeEstudio(int.Parse(resAccount.Value.SisId)); ids = resPeriodosActivos.Respuesta.listaPeriodosActivos.Select(a => a.idPeriodoMatriculacion).ToArray(); var periodoActivos = _context.PeriodosActivos.Where(p => ids.Contains(p.Id)).ToList(); foreach (var item in resPeriodosActivos.Respuesta.listaPeriodosActivos) { var periodoActivo = periodoActivos.FirstOrDefault(a => a.Id == item.idPeriodoMatriculacion); if (periodoActivo == null) { periodoActivo = new PeriodoActivo { Id = item.idPeriodoMatriculacion, Nombre = item.sNombrePeriodoMatriculacion, FechaInicio = item.fechaInicioPeriodo, FechaFin = item.fechaFinPeriodo, NroPeriodo = item.iNumPeriodo, AnioAcademico = item.sAyoAcademinco }; _context.PeriodosActivos.Add(periodoActivo); } else { periodoActivo.Nombre = item.sNombrePeriodoMatriculacion; periodoActivo.FechaInicio = item.fechaInicioPeriodo; periodoActivo.FechaFin = item.fechaFinPeriodo; periodoActivo.NroPeriodo = item.iNumPeriodo; periodoActivo.AnioAcademico = item.sAyoAcademinco; } accountExtend.PeriodoActivos.Add(periodoActivo); } _context.SaveChanges(); return(result); }