Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }