예제 #1
0
        public override void ReverseInit(object returnData)
        {
            base.ReverseInit(returnData);

            if (returnData is PublicacionModel)
            {
                PublicacionModel publicacionSeleccionada = returnData as PublicacionModel;

                BiografiaTimeLineModel nuevoTimeLine = new BiografiaTimeLineModel(publicacionSeleccionada);

                if (_timeLine == null)
                {
                    _timeLine = new ObservableRangeCollection <BiografiaTimeLineModel>();
                }

                BiografiaTimeLineModel biografiaVieja = _timeLine.Where(x => x.CodigoPublicacion == nuevoTimeLine.CodigoPublicacion).FirstOrDefault();

                if (publicacionSeleccionada.FueBorrado)
                {
                    if (biografiaVieja != null)
                    {
                        _timeLine.Remove(biografiaVieja);
                    }
                }
                else
                {
                    if (biografiaVieja != null)
                    {
                        int viejoIndice = _timeLine.IndexOf(biografiaVieja);
                        _timeLine.Remove(biografiaVieja);

                        RaisePropertyChanged("TimeLine");
                        _timeLine.Insert(viejoIndice, nuevoTimeLine);
                    }
                    else
                    {
                        _timeLine.Insert(0, nuevoTimeLine);
                    }
                }

                RaisePropertyChanged("TimeLine");
            }
            else if (returnData is ImagenEditorModel)
            {
                ImagenEditorModel imagenModel = returnData as ImagenEditorModel;

                if (imagenModel.EsImagenPerfil)
                {
                    ImagenPerfil = imagenModel.Source;
                    Persona.CodigoArchivoImagenPerfil     = imagenModel.CodigoArchivoCreado;
                    App.Persona.CodigoArchivoImagenPerfil = imagenModel.CodigoArchivoCreado;
                }
                else
                {
                    ImagenBanner = imagenModel.Source;
                    Persona.CodigoArchivoImagenBanner     = imagenModel.CodigoArchivoCreado;
                    App.Persona.CodigoArchivoImagenBanner = imagenModel.CodigoArchivoCreado;
                }
            }
        }
예제 #2
0
        async Task CargarContactos(int skipIndex, int takeIndex, bool isRefresh = false)
        {
            if (Persona != null && !NoHayNadaMasParaCargarContactos)
            {
                List <BiografiaTimeLineModel> listaTimeLine = new List <BiografiaTimeLineModel>();

                ContactosDTO contacto = new ContactosDTO
                {
                    CodigoPersonaOwner = Persona.Consecutivo,
                    SkipIndexBase      = skipIndex,
                    TakeIndexBase      = takeIndex
                };

                if (IsNotConnected)
                {
                    return;
                }
                List <ContactosDTO> listaContactos = await _chatServices.ListarContactos(contacto);

                listaTimeLine = BiografiaTimeLineModel.CrearListaBiografiaTimeLine(listaContactos);

                if (listaTimeLine != null)
                {
                    if (listaTimeLine.Count > 0)
                    {
                        if (_timeLine == null)
                        {
                            _timeLine = new ObservableRangeCollection <BiografiaTimeLineModel>(listaTimeLine);
                        }
                        else
                        {
                            _timeLine.AddRange(listaTimeLine);
                        }

                        NumeroContactosBuscados = listaContactos.Count;
                        RaisePropertyChanged(nameof(TimeLine));
                    }
                    else
                    {
                        NoHayNadaMasParaCargarContactos = listaTimeLine.Count <= 0;
                    }
                }
            }
        }
예제 #3
0
        async Task CargarItemsEnTimeLineSegunPerfil(int skipIndex, int takeIndex, bool isRefresh = false)
        {
            if (Persona != null && !NoHayNadaMasParaCargarPublicacion)
            {
                List <BiografiaTimeLineModel> listaTimeLine = new List <BiografiaTimeLineModel>();

                if (Persona.TipoPerfil == TipoPerfil.Candidato && Persona.CandidatoDeLaPersona != null)
                {
                    CandidatosVideosDTO candidatoVideo = new CandidatosVideosDTO
                    {
                        CodigoCandidato    = Persona.CandidatoDeLaPersona.Consecutivo,
                        SkipIndexBase      = skipIndex,
                        TakeIndexBase      = takeIndex,
                        ZonaHorariaGMTBase = _dateTimeHelper.DifferenceBetweenGMTAndLocalTimeZone
                    };

                    if (isRefresh && LastRefresh != DateTime.MinValue)
                    {
                        candidatoVideo.FechaFiltroBase = LastRefresh;
                        LastRefresh = DateTime.Now;
                    }

                    if (IsNotConnected)
                    {
                        return;
                    }
                    listaTimeLine = BiografiaTimeLineModel.CrearListaBiografiaTimeLine(await _candidatosServices.ListarCandidatosVideosDeUnCandidato(candidatoVideo));
                }
                else if (Persona.TipoPerfil == TipoPerfil.Grupo && Persona.GrupoDeLaPersona != null)
                {
                    BuscadorDTO grupoEvento = new BuscadorDTO
                    {
                        ConsecutivoPerfil  = Persona.GrupoDeLaPersona.Consecutivo,
                        SkipIndexBase      = skipIndex,
                        TakeIndexBase      = takeIndex,
                        ZonaHorariaGMTBase = _dateTimeHelper.DifferenceBetweenGMTAndLocalTimeZone
                    };

                    if (isRefresh && LastRefresh != DateTime.MinValue)
                    {
                        grupoEvento.FechaFiltroBase = LastRefresh;
                        LastRefresh = DateTime.Now;
                    }

                    if (IsNotConnected)
                    {
                        return;
                    }
                    listaTimeLine = BiografiaTimeLineModel.CrearListaBiografiaTimeLine(await _gruposServices.ListarEventosDeUnGrupo(grupoEvento));
                }

                if (listaTimeLine != null)
                {
                    if (listaTimeLine.Count > 0)
                    {
                        if (_timeLine == null)
                        {
                            _timeLine = new ObservableRangeCollection <BiografiaTimeLineModel>(listaTimeLine);
                        }
                        else
                        {
                            // Filtro para evitar tener publicaciones repetidas
                            listaTimeLine = listaTimeLine.Where(x => !_timeLine.Any(y => y.CodigoPublicacion == x.CodigoPublicacion && y.TipoTimeLine == TipoItemTimeLine.Publicacion)).ToList();

                            if (isRefresh)
                            {
                                // Reverso la lista para mantener el orden
                                listaTimeLine.Reverse();

                                foreach (var timeLine in listaTimeLine)
                                {
                                    _timeLine.Insert(0, timeLine);
                                }
                            }
                            else
                            {
                                _timeLine.AddRange(listaTimeLine);
                            }
                        }

                        RaisePropertyChanged(nameof(TimeLine));
                    }
                    else
                    {
                        NoHayNadaMasParaCargarPublicacion = listaTimeLine.Count <= 0 && !isRefresh;
                    }
                }
            }
        }