public async Task <List <ChatsMensajes> > ListarChatsMensajes(ChatsMensajes chatMensajeParaListar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                DateTimeHelperNoPortable helper    = new DateTimeHelperNoPortable();
                ChatsRepository          chatsRepo = new ChatsRepository(context);

                if (chatMensajeParaListar.FechaFiltroBase != DateTime.MinValue)
                {
                    chatMensajeParaListar.FechaFiltroBase = helper.ConvertDateTimeFromAnotherTimeZone(chatMensajeParaListar.ZonaHorariaGMTBase, helper.DifferenceBetweenGMTAndLocalTimeZone, chatMensajeParaListar.FechaFiltroBase);
                }

                List <ChatsMensajes> listaMensajes = await chatsRepo.ListarChatsMensajes(chatMensajeParaListar);

                if (listaMensajes != null && listaMensajes.Count > 0)
                {
                    foreach (var mensaje in listaMensajes)
                    {
                        mensaje.FechaMensaje = helper.ConvertDateTimeFromAnotherTimeZone(chatMensajeParaListar.ZonaHorariaGMTBase, helper.DifferenceBetweenGMTAndLocalTimeZone, mensaje.FechaMensaje);
                    }
                }

                return(listaMensajes);
            }
        }
Beispiel #2
0
        public async Task <List <ChatsMensajes> > ListarChatsMensajes(ChatsMensajes chatMensajeParaListar)
        {
            DateTime margenDeMensajes = await _context.ChatsMensajes.Where(x => x.CodigoChatEnvia == chatMensajeParaListar.CodigoChatEnvia && x.CodigoChatRecibe == chatMensajeParaListar.CodigoChatRecibe).Select(x => x.ChatsEnvia.Creacion).FirstOrDefaultAsync();

            IQueryable <ChatsMensajes> queryMensajes = _context.ChatsMensajes
                                                       .Where(x => (x.CodigoChatEnvia == chatMensajeParaListar.CodigoChatEnvia && x.CodigoChatRecibe == chatMensajeParaListar.CodigoChatRecibe) || (x.CodigoChatEnvia == chatMensajeParaListar.CodigoChatRecibe && x.CodigoChatRecibe == chatMensajeParaListar.CodigoChatEnvia))
                                                       .Where(x => x.FechaMensaje > margenDeMensajes)
                                                       .AsQueryable();

            List <ChatsMensajes> listaContactos = null;

            if (chatMensajeParaListar.FechaFiltroBase != DateTime.MinValue)
            {
                queryMensajes = queryMensajes.Where(x => x.FechaMensaje > chatMensajeParaListar.FechaFiltroBase);

                listaContactos = await queryMensajes
                                 .OrderByDescending(x => x.FechaMensaje)
                                 .AsNoTracking()
                                 .ToListAsync();
            }
            else
            {
                listaContactos = await queryMensajes
                                 .OrderByDescending(x => x.FechaMensaje)
                                 .Skip(() => chatMensajeParaListar.SkipIndexBase)
                                 .Take(() => chatMensajeParaListar.TakeIndexBase)
                                 .AsNoTracking()
                                 .ToListAsync();
            }

            return(listaContactos.OrderBy(x => x.FechaMensaje).ToList());
        }
Beispiel #3
0
        public async Task <ChatsMensajes> BuscarChatMensaje(ChatsMensajes chatMensajeParaBuscar)
        {
            ChatsMensajes chatMensajeBuscado = await(from chatMensaje in _context.ChatsMensajes
                                                     where chatMensaje.Consecutivo == chatMensajeParaBuscar.Consecutivo
                                                     select chatMensaje).AsNoTracking()
                                               .FirstOrDefaultAsync();

            return(chatMensajeBuscado);
        }
        public async Task <ChatsMensajes> BuscarChatMensaje(ChatsMensajes chatMensajeParaBuscar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                ChatsRepository chatsRepo          = new ChatsRepository(context);
                ChatsMensajes   chatMensajeBuscado = await chatsRepo.BuscarChatMensaje(chatMensajeParaBuscar);

                if (chatMensajeBuscado != null)
                {
                    DateTimeHelperNoPortable helper = new DateTimeHelperNoPortable();
                    chatMensajeBuscado.FechaMensaje = helper.ConvertDateTimeFromAnotherTimeZone(chatMensajeParaBuscar.ZonaHorariaGMTBase, helper.DifferenceBetweenGMTAndLocalTimeZone, chatMensajeBuscado.FechaMensaje);
                }

                return(chatMensajeBuscado);
            }
        }
Beispiel #5
0
        public async Task ChatBusiness_ListarChatsMensajes_ShouldList()
        {
            ChatsBusiness chatBusiness = new ChatsBusiness();

            ChatsMensajes chats = new ChatsMensajes
            {
                SkipIndexBase      = 0,
                TakeIndexBase      = 4,
                CodigoChatEnvia    = 1,
                CodigoChatRecibe   = 2,
                ZonaHorariaGMTBase = -5
            };

            List <ChatsMensajes> listaChats = await chatBusiness.ListarChatsMensajes(chats);

            Assert.IsNotNull(listaChats);
        }
        public async Task <IHttpActionResult> EliminarChatMensaje(ChatsMensajes chatMensajeParaEliminar)
        {
            if (chatMensajeParaEliminar == null || chatMensajeParaEliminar.Consecutivo <= 0)
            {
                return(BadRequest("chatMensajeParaEliminar vacio y/o invalido!."));
            }

            try
            {
                WrapperSimpleTypesDTO wrapperEliminarChatMensaje = await _chatBusiness.EliminarChatMensaje(chatMensajeParaEliminar);

                return(Ok(wrapperEliminarChatMensaje));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public async Task <IHttpActionResult> BuscarChatMensaje(ChatsMensajes chatMensajeParaBuscar)
        {
            if (chatMensajeParaBuscar == null || chatMensajeParaBuscar.Consecutivo <= 0)
            {
                return(BadRequest("chatMensajeParaBuscar vacio y/o invalido!."));
            }

            try
            {
                ChatsMensajes chatMensajeBuscado = await _chatBusiness.BuscarChatMensaje(chatMensajeParaBuscar);

                return(Ok(chatMensajeBuscado));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public async Task <IHttpActionResult> ListarChatsMensajes(ChatsMensajes chatMensajeParaListar)
        {
            if (chatMensajeParaListar == null || chatMensajeParaListar.CodigoChatEnvia <= 0 || chatMensajeParaListar.CodigoChatRecibe <= 0 ||
                chatMensajeParaListar.SkipIndexBase < 0 || chatMensajeParaListar.TakeIndexBase <= 0)
            {
                return(BadRequest("chatMensajeParaListar vacio y/o invalido!."));
            }

            try
            {
                List <ChatsMensajes> listaChatMensajes = await _chatBusiness.ListarChatsMensajes(chatMensajeParaListar);

                return(Ok(listaChatMensajes));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public async Task <IHttpActionResult> CrearChatMensaje(ChatsMensajes chatMensajeParaCrear)
        {
            if (chatMensajeParaCrear == null || string.IsNullOrWhiteSpace(chatMensajeParaCrear.Mensaje) ||
                chatMensajeParaCrear.CodigoChatEnvia <= 0 || chatMensajeParaCrear.CodigoChatRecibe <= 0)
            {
                return(BadRequest("chatMensajeParaCrear vacio y/o invalido!."));
            }

            try
            {
                WrapperSimpleTypesDTO wrapperCrearChat = await _chatBusiness.CrearChatMensaje(chatMensajeParaCrear);

                return(Ok(wrapperCrearChat));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public async Task <WrapperSimpleTypesDTO> EliminarChat(Chats contactoParaEliminar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                ChatsRepository chatsRepo = new ChatsRepository(context);

                bool verificarSiSePuedenBorrarMensajesNoOwner = await chatsRepo.VerificarSiSePuedenBorrarMensajesNoOwner(contactoParaEliminar);

                if (verificarSiSePuedenBorrarMensajesNoOwner)
                {
                    ChatsMensajes chatMensajes = new ChatsMensajes
                    {
                        CodigoChatEnvia  = contactoParaEliminar.Consecutivo,
                        CodigoChatRecibe = contactoParaEliminar.CodigoChatRecibe
                    };
                    chatsRepo.EliminarTodosChatMensaje(chatMensajes);

                    Chats chatRecibe = new Chats
                    {
                        Consecutivo = contactoParaEliminar.CodigoChatRecibe
                    };
                    chatsRepo.EliminarChat(chatRecibe);

                    chatsRepo.EliminarChat(contactoParaEliminar);
                }
                else
                {
                    Chats chatExistente = await chatsRepo.MarcarChatComoPendienteParaBorrarMensajes(contactoParaEliminar);
                }

                WrapperSimpleTypesDTO wrapperEliminarChat = new WrapperSimpleTypesDTO();

                wrapperEliminarChat.NumeroRegistrosAfectados = await context.SaveChangesAsync();

                if (wrapperEliminarChat.NumeroRegistrosAfectados > 0)
                {
                    wrapperEliminarChat.Exitoso = true;
                }

                return(wrapperEliminarChat);
            }
        }
        public async Task <WrapperSimpleTypesDTO> EliminarChatMensaje(ChatsMensajes chatMensajeParaEliminar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                ChatsRepository chatsRepo = new ChatsRepository(context);

                chatsRepo.EliminarChatMensaje(chatMensajeParaEliminar);

                WrapperSimpleTypesDTO wrapperEliminarChatMensaje = new WrapperSimpleTypesDTO();

                wrapperEliminarChatMensaje.NumeroRegistrosAfectados = await context.SaveChangesAsync();

                if (wrapperEliminarChatMensaje.NumeroRegistrosAfectados > 0)
                {
                    wrapperEliminarChatMensaje.Exitoso = true;
                }

                return(wrapperEliminarChatMensaje);
            }
        }
        public async Task <WrapperSimpleTypesDTO> CrearChatMensaje(ChatsMensajes chatMensajeParaCrear)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                ChatsRepository chatsRepo = new ChatsRepository(context);

                Chats chatOwner = new Chats
                {
                    Consecutivo = chatMensajeParaCrear.CodigoChatEnvia
                };

                Chats chatNoOwner = new Chats
                {
                    Consecutivo = chatMensajeParaCrear.CodigoChatRecibe
                };

                await chatsRepo.ReactivarChatPorConsecutivo(chatOwner);

                await chatsRepo.ReactivarChatPorConsecutivo(chatNoOwner);

                chatMensajeParaCrear.FechaMensaje = DateTime.Now;
                chatsRepo.CrearChatMensaje(chatMensajeParaCrear);

                WrapperSimpleTypesDTO wrapperCrearChatMensaje = new WrapperSimpleTypesDTO();

                wrapperCrearChatMensaje.NumeroRegistrosAfectados = await context.SaveChangesAsync();

                if (wrapperCrearChatMensaje.NumeroRegistrosAfectados > 0)
                {
                    wrapperCrearChatMensaje.Exitoso           = true;
                    wrapperCrearChatMensaje.ConsecutivoCreado = chatMensajeParaCrear.Consecutivo;
                }

                return(wrapperCrearChatMensaje);
            }
        }
Beispiel #13
0
 public void EliminarTodosChatMensaje(ChatsMensajes chatMensajeParaEliminar)
 {
     _context.ChatsMensajes.RemoveRange(_context.ChatsMensajes.Where(x => (x.ChatsEnvia == chatMensajeParaEliminar.ChatsEnvia && x.ChatsRecibe == chatMensajeParaEliminar.ChatsRecibe) || (x.ChatsEnvia == chatMensajeParaEliminar.ChatsRecibe && x.ChatsRecibe == chatMensajeParaEliminar.ChatsEnvia)));
 }
Beispiel #14
0
 public void EliminarChatMensaje(ChatsMensajes chatMensajeParaEliminar)
 {
     _context.ChatsMensajes.Remove(chatMensajeParaEliminar);
 }
Beispiel #15
0
 public void CrearChatMensaje(ChatsMensajes chatMensajeParaCrear)
 {
     _context.ChatsMensajes.Add(chatMensajeParaCrear);
 }