Android: Team-Chat eingebaut. Nicht optimal, funktioniert aber. Verbesserungen am Chat-Server und an der App.
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
using System.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Web.Services;
|
||||
|
||||
using BeWo.Data.Access;
|
||||
@@ -10,7 +13,7 @@ using BeWoPlanerAndroid.Service;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
|
||||
using BS.Shared.Extensions;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace BeWoPlanerAndroid
|
||||
@@ -41,8 +44,13 @@ namespace BeWoPlanerAndroid
|
||||
if(s.IsUserValid(pUsername, pPassword, null, "SOAPClient", false) == UserValidationResult.UserValid)
|
||||
{
|
||||
var user = DAOFactory.UserDAO.FindUserByLoginName(pUsername);
|
||||
|
||||
if(user == null || !DAOFactory.UserDAO.CheckPassword(user, pPassword))
|
||||
|
||||
if (user == null || !DAOFactory.SearchDAO.CheckIfEmployeeIsAllowedToChat(user.Employee.Person.Oid.Value))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if(!DAOFactory.UserDAO.CheckPassword(user, pPassword))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -76,9 +84,19 @@ namespace BeWoPlanerAndroid
|
||||
}
|
||||
|
||||
[WebMethod(EnableSession = true)]
|
||||
public string GetAllChatMessagesForSenderAndRecipient(long pSenderPersonOid, long pRecipientPersonOid)
|
||||
public string GetAllChatMessagesForSenderAndRecipient(long pSenderPersonOid, long pRecipientPersonOid, string pExceptions, bool pIsForTeam)
|
||||
{
|
||||
var messages = DAOFactory.SearchDAO.FindAllChatMessages(pSenderPersonOid, pRecipientPersonOid);
|
||||
Debug.WriteLine(pExceptions);
|
||||
|
||||
var exceptions = new List<long>();
|
||||
|
||||
if (pExceptions.Length > 0 && pExceptions.Contains(";"))
|
||||
{
|
||||
var splittedString = pExceptions.Split(';');
|
||||
exceptions = splittedString.Select(item => Convert.ToInt64(item)).ToList();
|
||||
}
|
||||
|
||||
var messages = DAOFactory.SearchDAO.FindAllChatMessagesForAndroid(pSenderPersonOid, pRecipientPersonOid, exceptions, pIsForTeam);
|
||||
|
||||
return JsonConvert.SerializeObject(messages);
|
||||
}
|
||||
@@ -109,8 +127,32 @@ namespace BeWoPlanerAndroid
|
||||
|
||||
var employees = EmployeeService.GetAllActiveEmployeesCompact().Where(w => !Equals(w.EmployeeOid, employee.Oid.Value));
|
||||
|
||||
var result = employees.Select(emp => new ChatPerson(emp.PersonOid, emp.FirstName + " " + emp.LastName)).ToList();
|
||||
result.AddRange(customers.Select(cus => new ChatPerson(cus.PersonOid, cus.FullName)));
|
||||
var result = employees.Select(emp => new ChatPerson(emp.PersonOid, emp.FirstName + " " + emp.LastName, false, null, null)).ToList();
|
||||
result.AddRange(customers.Select(cus => new ChatPerson(cus.PersonOid, cus.FullName, false, null, null)));
|
||||
|
||||
var teams = DAOFactory.SearchDAO.FindTeamsOfEmployee(employee.Oid.Value).Where(w => w.MemberList.Count > 1);
|
||||
|
||||
foreach(var team in teams)
|
||||
{
|
||||
var teamMembers = team.MemberList;
|
||||
|
||||
var memberString = "";
|
||||
var memberNames = "";
|
||||
foreach(var member in teamMembers)
|
||||
{
|
||||
memberString += member.Person.Oid.Value;
|
||||
|
||||
memberNames += member.Person.FirstNameLastName;
|
||||
|
||||
if(teamMembers.IndexOf(member) < teamMembers.Count - 1)
|
||||
{
|
||||
memberString += ";";
|
||||
memberNames += ", ";
|
||||
}
|
||||
}
|
||||
|
||||
result.Add(new ChatPerson(team.Oid.Value, team.Name, true, memberString, memberNames));
|
||||
}
|
||||
|
||||
return SerializeObject(result);
|
||||
}
|
||||
@@ -126,10 +168,19 @@ namespace BeWoPlanerAndroid
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public ChatPerson(long pOid, string pName)
|
||||
public bool IsTeam { get; set; }
|
||||
|
||||
public string TeamMemberOids { get; set; }
|
||||
|
||||
public string TeamMemberNames { get; set; }
|
||||
|
||||
public ChatPerson(long pOid, string pName, bool pIsTeam, string pTeamMemberOids, string pTeamMemberNames)
|
||||
{
|
||||
Oid = pOid;
|
||||
Name = pName;
|
||||
Oid = pOid;
|
||||
Name = pName;
|
||||
IsTeam = pIsTeam;
|
||||
TeamMemberOids = pTeamMemberOids;
|
||||
TeamMemberNames = pTeamMemberNames;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user