public async Task <JsonResult> GetAllChats(ChatsDTO chat) { Result <ChatsDTO> result = new Result <ChatsDTO>(); try { ChatsServices chatService = new ChatsServices(); chat.CodigoPersonaOwner = UserLoggedIn().PersonaDelUsuario.Consecutivo; result.list = await chatService.ListarChats(chat); if (result.list == null) { return(Json(Helper.returnErrorList(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet)); } return(Json(result, JsonRequestBehavior.AllowGet)); } catch (Exception) { return(Json(Helper.returnErrorList(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet)); } }
async Task CargarConversaciones(int skipIndex, int takeIndex, bool isRefresh = false, bool aumentarBadge = false) { if (!NoHayNadaMasParaCargar || isRefresh) { ChatsDTO buscador = new ChatsDTO { CodigoPersonaOwner = App.Persona.Consecutivo, SkipIndexBase = skipIndex, TakeIndexBase = takeIndex, ZonaHorariaGMTBase = _dateTimeHelper.DifferenceBetweenGMTAndLocalTimeZone }; if (isRefresh && LastRefresh != DateTime.MinValue) { buscador.FechaFiltroBase = LastRefresh; LastRefresh = DateTime.Now; } if (IsNotConnected) { return; } List <ChatsDTO> listaChats = await _chatsServices.ListarChats(buscador); if (listaChats != null) { if (listaChats.Count > 0) { if (isRefresh && buscador.FechaFiltroBase != DateTime.MinValue) { foreach (ChatsDTO chat in listaChats) { if (chat.UltimoMensaje != null && chat.UltimoMensaje.FechaMensaje > buscador.FechaFiltroBase && !chat.UltimoMensaje.UltimoMensajeEsMio) { chat.EsNuevoMensaje = true; } } } using (await _lockeable.LockAsync()) { if (_chats == null) { _chats = new ObservableRangeCollection <ChatsDTO>(listaChats); } else { foreach (ChatsDTO chat in listaChats) { ChatsDTO chatExistente = _chats.Where(x => x.Consecutivo == chat.Consecutivo).FirstOrDefault(); if (chatExistente != null) { _chats.Remove(chatExistente); } _chats.Add(chat); } } if (aumentarBadge) { App.InteractuarValorBadgeNotificacion(listaChats.Count); } } RaisePropertyChanged("Chats"); } else { NoHayNadaMasParaCargar = listaChats.Count <= 0 && !isRefresh; } } } }