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); } }