2020-01-15 16:14:39 +01:00
using System ;
2020-02-07 15:21:36 +01:00
using System.Collections.Generic ;
2020-01-15 16:14:39 +01:00
using System.ComponentModel ;
using System.IO ;
2016-06-27 01:45:38 +02:00
using System.Web.Services ;
2020-01-15 16:14:39 +01:00
using System.Xml ;
using System.Xml.Serialization ;
2016-06-27 01:45:38 +02:00
using BeWo.Data ;
using BeWo.Data.Access ;
using BeWo.Service.ServiceContracts ;
using BeWo.Service.ServiceImplementations ;
using BeWoPlanerMobil.Service ;
using BS.Shared ;
using BS.Shared.Core ;
using Newtonsoft.Json ;
using ASPHibernateSessionManager = BeWoPlanerMobil . Service . ASPHibernateSessionManager ;
2020-01-15 16:14:39 +01:00
using Formatting = Newtonsoft . Json . Formatting ;
2016-06-27 01:45:38 +02:00
namespace BeWoPlanerMobil
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// Wenn der Aufruf dieses Webdiensts aus einem Skript mithilfe von ASP.NET AJAX zulässig sein soll, heben Sie die Kommentarmarkierung für die folgende Zeile auf.
2020-01-15 16:14:39 +01:00
[System.Web.Script.Services.ScriptService]
2016-06-27 01:45:38 +02:00
public class TestWebService : WebService
{
protected readonly ICustomerService CustomerService = new MobileSessionFacade ( ) . CustomerService ;
protected readonly IUserService UserService = new MobileSessionFacade ( ) . UserService ;
protected readonly IEmployeeService EmployeeService = new MobileSessionFacade ( ) . EmployeeService ;
[WebMethod(EnableSession = true)]
2020-01-15 16:14:39 +01:00
public bool TestLogin ( string pUserName , string pPassword , string pTenant )
2016-06-27 01:45:38 +02:00
{
2020-01-15 16:14:39 +01:00
var result = false ;
MobileSessionFacade . Tenant = pTenant ;
SessionFacade . Tenant = pTenant ;
2016-06-27 01:45:38 +02:00
ASPHibernateSessionManager . ConfigureHibernateSessionForWebService ( ) ;
var s = new UserServiceImp ( ) ;
2021-02-24 11:00:38 +01:00
if ( s . IsUserValid ( pUserName , pPassword , null , "MobilClient" , false , "" ) = = UserValidationResult . UserValid )
2016-06-27 01:45:38 +02:00
{
var user = DAOFactory . UserDAO . FindUserByLoginName ( pUserName ) ;
if ( user = = null | | ! DAOFactory . UserDAO . CheckPassword ( user , pPassword ) )
{
2020-01-15 16:14:39 +01:00
result = false ;
2016-06-27 01:45:38 +02:00
}
2020-01-15 16:14:39 +01:00
else
{
MobileSessionFacade . LoggedInUser = user ;
2016-06-27 01:45:38 +02:00
2020-01-15 16:14:39 +01:00
result = true ;
}
2016-06-27 01:45:38 +02:00
}
2020-01-15 16:14:39 +01:00
return result ;
2016-06-27 01:45:38 +02:00
}
[WebMethod(EnableSession = true)]
public string TestFunktion ( long pCustomerOid )
{
MobileSessionFacade . Tenant = "demo" ;
ASPHibernateSessionManager . ConfigureHibernateSessionForWebService ( ) ;
var result = CustomerService . GetCompactCustomerDC ( pCustomerOid ) ;
return SerializeObject ( result ) ;
}
2020-01-15 16:14:39 +01:00
[WebMethod(EnableSession = true)]
public string TestMitFehler ( )
{
throw new NotImplementedException ( "Das ist nur eine Testausnahme!" ) ;
}
2016-06-27 01:45:38 +02:00
private static string SerializeObject ( object obj )
{
return JsonConvert . SerializeObject ( obj , Formatting . Indented , new JsonSerializerSettings { ContractResolver = new ShouldSerializeContractResolver ( ) , ReferenceLoopHandling = ReferenceLoopHandling . Ignore } ) ;
}
2020-01-15 16:14:39 +01:00
2020-02-07 15:21:36 +01:00
[WebMethod]
public string JsonTest ( )
2020-01-15 16:14:39 +01:00
{
2020-02-07 15:21:36 +01:00
var result = new List < ListObject > ( ) ;
2020-01-15 16:14:39 +01:00
2020-02-07 15:21:36 +01:00
var obj1 = new ListObject ( "Child 1" , 0 , true , new List < ListObject > ( ) ) ;
var obj2 = new ListObject ( "Child 2" , 6 , true , new List < ListObject > ( ) ) ;
var obj3 = new ListObject ( "Child 3" , 33 , true , new List < ListObject > ( ) ) ;
var obj4 = new ListObject ( "Parent" , 37 , true , new List < ListObject > { obj1 , obj2 , obj3 } ) ;
2020-01-15 16:14:39 +01:00
2020-02-07 15:21:36 +01:00
result . Add ( obj4 ) ;
2020-01-15 16:14:39 +01:00
2020-02-07 15:21:36 +01:00
return JsonConvert . SerializeObject ( result ) ;
}
}
public class ListObject
{
public string Name { get ; set ; }
public int Count { get ; set ; }
public bool IsEnabled { get ; set ; }
public List < ListObject > Children { get ; set ; }
public ListObject ( string name , int count , bool isEnabled , List < ListObject > children )
{
Name = name ;
Count = count ;
IsEnabled = isEnabled ;
Children = children ;
2020-01-15 16:14:39 +01:00
}
2016-06-27 01:45:38 +02:00
}
}