Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo

This commit is contained in:
Waldi
2016-12-08 14:18:30 +01:00
38 changed files with 334 additions and 208 deletions

View File

@@ -36,8 +36,11 @@ namespace BeWoPlanerAndroid
[WebMethod(EnableSession = true)]
public string Login(string pTenant, string pUsername, string pPassword)
{
Log.Info("Login. Beginne mit Login");
if(!SoapHibernateSessionManager.TenantExists(pTenant))
{
Log.Info("Login. Angegebene Kundennummer ist falsch (" + pTenant + ")");
return LoginFailReason.WrongTenant.ToString();
}
@@ -45,31 +48,36 @@ namespace BeWoPlanerAndroid
Tenant = pTenant;
SoapHibernateSessionManager.ConfigureHibernateSession();
var derTimeout = Session.Timeout;
Debug.WriteLine("Timeout der Session: " + derTimeout);
var s = new UserServiceImp();
if(s.IsUserValid(pUsername, pPassword, null, "SOAPClient", false) == UserValidationResult.UserValid)
if (s.IsUserValid(pUsername, pPassword, null, "SOAPClient", false) == UserValidationResult.UserValid)
{
Log.Info("Login. Beginne mit Login");
var user = DAOFactory.UserDAO.FindUserByLoginName(pUsername);
if (user == null || !DAOFactory.SearchDAO.CheckIfEmployeeIsAllowedToChat(user.Employee.Person.Oid.Value))
{
Log.Info("Login. Der Benutzer existiert nicht oder er hat nicht das Recht zu chatten. (LoginFailReason.Unauthorized)");
return LoginFailReason.Unauthorized.ToString();
}
if(!DAOFactory.UserDAO.CheckPassword(user, pPassword))
if (!DAOFactory.UserDAO.CheckPassword(user, pPassword))
{
Log.Info("Login. Benutzername und/oder Passwort inkorrekt (LoginFailReason.WrongCredentials)");
return LoginFailReason.WrongCredentials.ToString();
}
MobileSessionFacade.LoggedInUser = user;
return user.Employee.Oid.Value + ";" + user.Employee.Person.FirstNameLastName + ";" + user.LoginName + ";" + user.Employee.Person.Oid.Value;
Log.Info("Login. Der Login war erfolgreich");
return user.Employee.Oid.Value + ";" + user.Employee.Person.FirstNameLastName + ";" + user.LoginName +
";" + user.Employee.Person.Oid.Value;
}
Log.Info("Login. Benutzername und/oder Passwort inkorrekt (LoginFailReason.Unknown)");
return LoginFailReason.Unknown.ToString();
}
@@ -154,7 +162,7 @@ namespace BeWoPlanerAndroid
var allPersons = DAOFactory.SearchDAO.FindAllChatAuthorizedPersonsForEmployee(employee.Oid.Value).Where(w => w.Key.Oid.Value != employee.Person.Oid.Value);
var allChatPersons = allPersons
.Select(s => new ChatPerson(s.Key.Oid.Value, s.Key.FirstNameLastName, false, null, null, s.Key.Version.Value, s.Value)).ToList();
.Select(s => new ChatPerson(s.Key.Oid.Value, s.Key.FirstNameLastName, false, null, null, s.Key.Version.Value, s.Value, s.Key.Contacts.FirstOrDefault(f => f.Type == ContactType.business_MobilePhone) == null ? "" : s.Key.Contacts.FirstOrDefault(f => f.Type == ContactType.business_MobilePhone).Value)).ToList();
var teams = DAOFactory.SearchDAO.FindTeamsOfEmployee(employee.Oid.Value).Where(w => w.MemberList.Count > 1);
@@ -177,7 +185,7 @@ namespace BeWoPlanerAndroid
}
}
allChatPersons.Add(new ChatPerson(team.Oid.Value, team.Name, true, memberString, memberNames, team.Version.Value, false));
allChatPersons.Add(new ChatPerson(team.Oid.Value, team.Name, true, memberString, memberNames, team.Version.Value, false, null));
}
return SerializeObject(allChatPersons);
@@ -191,6 +199,8 @@ namespace BeWoPlanerAndroid
[WebMethod(EnableSession = true)]
public string KeepAlive()
{
Log.Info("KeepAlive auf dem SOAP-Server wird ausgeführt");
return "lebt";
}
@@ -204,9 +214,13 @@ namespace BeWoPlanerAndroid
return JsonConvert.SerializeObject(existingMessageIds);
}
private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
[WebMethod(EnableSession = true)]
public string LoadChatMessagesChunkwise(string messageId, long pRecipientPersonOid, long pSenderPersonOid, bool pIsForTeam, string pExceptions)
public string LoadChatMessagesChunkwise(string messageId, long pRecipientPersonOid, long pSenderPersonOid, bool pIsForTeam, string pExceptions, bool pIsInitialCall)
{
Log.Info("LoadChatMessagesChunkwise. Empfänger: " + pRecipientPersonOid + ", Absender: " + pSenderPersonOid + ". Ist ein Team: " + (pIsForTeam ? "ja" : "nein" + ". Ausnahmen: " + (pExceptions ?? "KEINE AUSNAHMEN") + ". Älteste Nachricht auf dem Mobilgerät: " + (messageId ?? "KEINE NACHRICHT AUF DEM MOBILGERÄT") + "."));
var exceptions = new List<string>();
if (pExceptions.Length > 0)
@@ -217,7 +231,7 @@ namespace BeWoPlanerAndroid
var jsonMessages = new List<ChatMessageForJson>();
var liste = DAOFactory.SearchDAO.LoadChatMessagesChunkwise(messageId, pRecipientPersonOid, pSenderPersonOid, pIsForTeam, exceptions).DoForEach(dfe => jsonMessages.Add(new ChatMessageForJson(dfe.EmpfaengerPersonOid, dfe.SenderPersonOid, dfe.IsDelivered, dfe.IstGelesen, dfe.TeamOid, dfe.ChatText, dfe.Uhrzeit, dfe.Oid, dfe.InsTs, dfe.MessageId)));
var liste = DAOFactory.SearchDAO.LoadChatMessagesChunkwise(messageId, pRecipientPersonOid, pSenderPersonOid, pIsForTeam, exceptions, pIsInitialCall).DoForEach(dfe => jsonMessages.Add(new ChatMessageForJson(dfe.EmpfaengerPersonOid, dfe.SenderPersonOid, dfe.IsDelivered, dfe.IstGelesen, dfe.TeamOid, dfe.ChatText, dfe.Uhrzeit, dfe.Oid, dfe.InsTs, dfe.MessageId)));
return JsonConvert.SerializeObject(jsonMessages);
}
@@ -280,7 +294,9 @@ namespace BeWoPlanerAndroid
public bool IsEmployee { get; set; }
public ChatPerson(long pOid, string pName, bool pIsTeam, string pTeamMemberOids, string pTeamMemberNames, long pVersion, bool pIsEmployee)
public string PhoneNumber { get; set; }
public ChatPerson(long pOid, string pName, bool pIsTeam, string pTeamMemberOids, string pTeamMemberNames, long pVersion, bool pIsEmployee, string pPhoneNumber)
{
Oid = pOid;
Name = pName;
@@ -289,6 +305,7 @@ namespace BeWoPlanerAndroid
TeamMemberNames = pTeamMemberNames;
Version = pVersion;
IsEmployee = pIsEmployee;
PhoneNumber = pPhoneNumber;
}
}

View File

@@ -33,3 +33,5 @@ using System.Runtime.InteropServices;
// übernehmen, indem Sie "*" wie folgt verwenden:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: log4net.Config.XmlConfigurator(Watch = true)]

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<system.diagnostics>
<sources>
@@ -17,9 +17,9 @@
</source>
</sources>
</system.diagnostics>
<log4net debug="true">
<log4net>
<appender name="logFile" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="logs\mobilelog.txt" />
<param name="File" value="logs\android_soap_calls.txt" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="dd.MM.yyyy" />