Änderungen an der App
Chunkweises Herunterladen von Chatnachrichten
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
using BeWo.Data.Entities;
|
||||
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
using NHibernate.Criterion;
|
||||
using NHibernate.SqlCommand;
|
||||
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using NHibernate.Linq.Functions;
|
||||
using NHibernate.Transform;
|
||||
|
||||
using Login = BeWo.Data.Entities.Login;
|
||||
|
||||
namespace BeWo.Data.Access
|
||||
@@ -1619,8 +1619,8 @@ namespace BeWo.Data.Access
|
||||
Restrictions.And(
|
||||
Restrictions.Eq(ChatMessage.PropertyName_SenderPersonOid, pRecipientOid),
|
||||
Restrictions.Eq(ChatMessage.PropertyName_EmpfaengerPersonOid, pSenderOid))))
|
||||
.Add(Restrictions.Not(Restrictions.In(ChatMessage.PropertyName_MessageId, pExceptions)))
|
||||
.Add(Restrictions.IsNull(ChatMessage.PropertyName_TeamOid));
|
||||
.Add(Restrictions.Not(Restrictions.In(ChatMessage.PropertyName_MessageId, pExceptions)))
|
||||
.Add(Restrictions.IsNull(ChatMessage.PropertyName_TeamOid));
|
||||
|
||||
if(pForTeam)
|
||||
{
|
||||
@@ -1673,6 +1673,7 @@ namespace BeWo.Data.Access
|
||||
return c.List<ChatMessage>();
|
||||
}
|
||||
|
||||
//TODO: Anpassen. Ist fehlerhaft.
|
||||
public IEnumerable<ChatMessage> FindNewestChatMessages(long pRecipientPersonOid)
|
||||
{
|
||||
var query2 = Session.CreateSQLQuery(string.Format("SELECT MAX({0}) FROM chatmessages WHERE ({1} = {2} OR {3} = {2}) AND {4} IS NULL OR {4} IS NOT NULL AND {1} IN (SELECT t.{0} FROM Team t JOIN employee2team e ON e.{4} = t.{0}) GROUP BY {1}, {3}",
|
||||
@@ -1692,5 +1693,40 @@ namespace BeWo.Data.Access
|
||||
|
||||
return liste.Select(s => s.MessageId);
|
||||
}
|
||||
|
||||
public IEnumerable<ChatMessage> LoadChatMessagesChunkwise(string pMessageId, long pRecipientOid, long pSenderOid, bool pForTeam, List<string> pExceptions)
|
||||
{
|
||||
var c = CreateCriteriaIsActive<ChatMessage>()
|
||||
.Add(Restrictions.Or(
|
||||
Restrictions.And(
|
||||
Restrictions.Eq(ChatMessage.PropertyName_SenderPersonOid, pSenderOid),
|
||||
Restrictions.Eq(ChatMessage.PropertyName_EmpfaengerPersonOid, pRecipientOid)),
|
||||
Restrictions.And(
|
||||
Restrictions.Eq(ChatMessage.PropertyName_SenderPersonOid, pRecipientOid),
|
||||
Restrictions.Eq(ChatMessage.PropertyName_EmpfaengerPersonOid, pSenderOid))));
|
||||
|
||||
c.Add(Restrictions.IsNull(ChatMessage.PropertyName_TeamOid));
|
||||
|
||||
if (pForTeam)
|
||||
{
|
||||
c = CreateCriteriaIsActive<ChatMessage>()
|
||||
.Add(Restrictions.Eq(ChatMessage.PropertyName_TeamOid, pRecipientOid));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(pMessageId))
|
||||
{
|
||||
var c1 = CreateCriteriaIsActive<ChatMessage>()
|
||||
.Add(Restrictions.Eq(ChatMessage.PropertyName_MessageId, pMessageId));
|
||||
var lastLoadedChatMessage = c1.UniqueResult<ChatMessage>();
|
||||
|
||||
c.Add(Restrictions.Not(Restrictions.In(ChatMessage.PropertyName_MessageId, pExceptions)));
|
||||
c.Add(Restrictions.Gt(BeWoEntityBase.PropertyName_InsTs, lastLoadedChatMessage.InsTs));
|
||||
}
|
||||
|
||||
c.AddOrder(Order.Desc(BeWoEntityBase.PropertyName_InsTs));
|
||||
c.SetMaxResults(15);
|
||||
|
||||
return c.List<ChatMessage>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user