public ResultList <AsignaturaDto> GetAsignaturas(string searchText, int pageIndex, int?pageCount, int idEstudio) { var result = new ResultList <AsignaturaDto>(); UNIR.Comun.Servicios.RespuestaServicioOfArrayOfAsignaturaDtoWP8jzdkm resAsignaturas; var keyCache = string.Format(GlobalValues.CACHE_ASIGNATURAS_ESTUDIO, idEstudio); var cache = _dataCache.Get <UNIR.Comun.Servicios.RespuestaServicioOfArrayOfAsignaturaDtoWP8jzdkm>(keyCache, GlobalValues.GROUP_CACHE_GESTOR); if (cache != null) { resAsignaturas = cache; } else { var configMinutes = ConfigurationManager.AppSettings["TimeMinutesWsGestor"]; var minutes = 0; if (!int.TryParse(configMinutes, out minutes)) { minutes = GlobalValues.DEFAULT_MINUTE_CACHE; } resAsignaturas = _estudiosService.ObtenerAsignaturasDeEstudio(idEstudio); _dataCache.Put(keyCache, resAsignaturas, GlobalValues.GROUP_CACHE_GESTOR, TimeSpan.FromMinutes(minutes)); } if (resAsignaturas.EsError) { result.Errors.Add(string.Format(GestorWsStrings.ErrorWebServices, "ObtenerEstudiosUNIR(" + idEstudio + ")")); return(result); } pageCount = pageCount ?? 10; var query = resAsignaturas.Respuesta.AsQueryable(); if (!string.IsNullOrEmpty(searchText)) { query = query.Where( e => e.sNombreAsignatura.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 <bool> VerificarDatos(int accountId) { /* * Errors = Errores que deben detener la tarea de sincronizacion * Warnings = Se notifica pero se continua con la sincronizacion * Messages = Se notifica pero se continua con la sincronizacion * Existen Cursos con un SIS-ID de una asignatura que ya no lo trae el webServices del gestor */ var result = new ResultValue <bool>(); var preData = PreValidarDatos(result, accountId); if (result.HasErrors) { return(result); } var resAccount = preData.Item1; var resAccountExtend = preData.Item3; var resAsignaturas = _wEstudios.ObtenerAsignaturasDeEstudio(int.Parse(resAccount.Value.SisId)); var distinctLengthAsignaturas = resAccountExtend.Value.Asignaturas.Count() != resAsignaturas.Respuesta.Length; if (distinctLengthAsignaturas) { result.Warnings.Add(CanvasExtedStrings.ErrorCantidadAsignaturasDiferentes); return(result); } else { if (resAsignaturas.Respuesta.Select(a => a.idAsignatura) .Except(resAccountExtend.Value.Asignaturas.Select(a => a.Id)).Any()) { result.Warnings.Add(CanvasExtedStrings.ErrorAsignaturasDiferentes); return(result); } } var resPeriodosActivos = _wEstudios.ObtenerCursosDeAsignaturasDeEstudio(int.Parse(resAccount.Value.SisId)); var distinctLengthPeriodoActivos = resPeriodosActivos.Respuesta.listaPeriodosActivos.Length != resAccountExtend.Value.PeriodoActivos.Count(); if (distinctLengthPeriodoActivos) { result.Warnings.Add(CanvasExtedStrings.ErrorCantidadPeriodoActivosDiferentes); return(result); } else { if (resPeriodosActivos.Respuesta.listaPeriodosActivos.Select(a => a.idPeriodoMatriculacion) .Except(resAccountExtend.Value.PeriodoActivos.Select(a => a.Id)).Any()) { result.Warnings.Add(CanvasExtedStrings.ErrorPeriodoActivosDiferentes); return(result); } } var courses = _context.CourseExtends.Where(a => a.AccountId == accountId) .Select(a => a.IdAsignatura).ToArray(); var noContiene = resAccountExtend.Value.Asignaturas.All(a => !courses.Contains(a.Id)); if (noContiene) { result.Messages.Add(CanvasExtedStrings.ErrorCourseSisIdNoAsignatura); return(result); } result.Value = !result.HasErrors && !result.HasWarnings && !result.HasMessages; return(result); }