using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Service.ServiceImplementations; using BeWoPlanerMobil.Service; using BS.Shared; using log4net.Core; namespace BeWoPlanerMobil.Controllers { public class ChatTokenController : Controller { // // GET: /ChatToken/ //public ActionResult Index() //{ // return View(); //} public string Index() { return "Das ist die Default aktion... Sie haben hier nix verloren."; } public JsonResult LoginToken(string benutzername , string passwort, string kundennummer,string typ) { // lese hier die daten aus dem header aus //var x = HttpUtility.HtmlEncode("Benutzer: "+benutzername+" / "+ "Passwort: "+passwort +" / "+"Kundennummer: "+kundennummer); //#### prüfe ob kundennummer vorhanden if (kundennummer == null) { return Json("99", JsonRequestBehavior.AllowGet); } MobileSessionFacade.Tenant = kundennummer; var isKundennummerVorhanden = ASPHibernateSessionManager.ConfigureHibernateSessionForWebService(); if (isKundennummerVorhanden) { var s = new UserServiceImp(); //ist benutzer und passwort richtig if (s.IsUserValid(benutzername, passwort, null, "MobilClient", false) == UserValidationResult.UserValid) { var user = DAOFactory.UserDAO.FindUserByLoginName(benutzername); if (user == null || !DAOFactory.UserDAO.CheckPassword(user, passwort)) { //gib json zurück {"STATE":1} return Json("1", JsonRequestBehavior.AllowGet); } MobileSessionFacade.LoggedInUser = user; // das wird garnicht gebraucht Response.AddHeader("Content-Type","application/json"); //; charset=utf8 //Useroid übergeben auch nur dann wenn UserOid Vorhanden ist. #region Typ Verarbeitung if (typ != null) { if (typ.Equals("clients")) { //Klient Bereich var daten = DAOFactory.GenericDAO.LoadByID(1);// was wird aus customer ? List inputList = new List(); // input 2 als liste übergeben und für jeden Mitarbeiter dem Customer zugeteilt ist foreach (var emp in daten.Employee2CustomerList) { if (emp.EmployeeOid == 1) //Unbedingt umbauen weil Hauptbetreuer Sollen geadded werden. { JsonInputKlient2 input2 = new JsonInputKlient2("1",user.Oid.ToString(), emp.EmployeeOid.ToString()); if (emp.IsActive == ActivationTypeId.Deleted) input2.Status = "3"; if (emp.IsActive == ActivationTypeId.Archived) input2.Status = "2"; inputList.Add(input2); } } JsonInputKlient1 input1 = new JsonInputKlient1(daten.Oid.ToString(),"1", daten.Person.FirstName, daten.Person.LastName, daten.CustomerAlias, inputList); if (daten.IsActive == ActivationTypeId.Deleted) input1.Status = "3"; if (daten.IsActive == ActivationTypeId.Archived) input1.Status = "2"; var ssx = new JsonRueckgabeKlient("0", input1); return Json(ssx, JsonRequestBehavior.AllowGet); } else if (typ.Equals("users")) { //Mitarbeiter Bereich var daten = user; var empChatCode = DAOFactory.GenericDAO.GetAllActive(); EmployeeAPPCode chatcode = new EmployeeAPPCode(); foreach (var code in empChatCode) { if (daten.Employee.Oid == code.EmployeeOid) { chatcode = code; } } DateTime? insTs = null; foreach (var img in daten.Employee.Person.Images) { insTs = img.InsTs.Value; } JsonRueckgabeMitarbeiterInput miInput; //es kann sein das miInput in eine liste verändert werden muss um mehrere Users zu übergeben //| kann alles nach belieben angepasst werden if (daten.IsActive == ActivationTypeId.Deleted ) { miInput = new JsonRueckgabeMitarbeiterInput("", daten.Employee.Oid.ToString(),"3", "","", "", "", "", "", "", ""); }else if (daten.IsActive == ActivationTypeId.Archived) { miInput = new JsonRueckgabeMitarbeiterInput("", daten.Employee.Oid.ToString(),"2", "", "", "", "", "", "", "", ""); } else { miInput = new JsonRueckgabeMitarbeiterInput(user.Oid.ToString(), daten.Employee.Oid.ToString(),"1", daten.LoginName, daten.HashedPassword, daten.Employee.Person.FirstName, daten.Employee.Person.LastName, chatcode.EmployeeCode, "Mobile number", daten.Employee.Person.Oid.ToString(), insTs.ToString()); // statt imageoid die person oid ubergeben if (insTs != null) { miInput.PictureId = insTs.ToString(); } } JsonRueckgabeMitarbeiter mi = new JsonRueckgabeMitarbeiter("0", miInput); return Json(mi, JsonRequestBehavior.AllowGet); } else if (typ.Equals("teams")) { //Mitarbeiter Team Bereich var daten = DAOFactory.GenericDAO.GetAllActive(); List JRTMI = new List(); foreach (var dat in daten) { foreach (var mem in dat.MemberList) { if (mem.Oid == user.Employee.Oid) { List mtInputList = new List(); foreach (var member in dat.MemberList) { JsonRueckgabeTeamMitarbeiterInput2 mtInput2 = new JsonRueckgabeTeamMitarbeiterInput2("1", "UserOid", member.Oid.ToString()); if (member.IsActive == ActivationTypeId.Deleted) mtInput2.Status = "3"; if (member.IsActive == ActivationTypeId.Archived) mtInput2.Status = "2"; mtInputList.Add(mtInput2); } JsonRueckgabeTeamMitarbeiterInput mtInput1 = new JsonRueckgabeTeamMitarbeiterInput(dat.Oid.ToString(),"1", dat.Name, mtInputList); if (dat.IsActive == ActivationTypeId.Deleted) mtInput1.Status = "3"; if (dat.IsActive == ActivationTypeId.Deleted) mtInput1.Status = "2"; JRTMI.Add(mtInput1); } } } JsonRueckgabeTeamMitarbeiter mt = new JsonRueckgabeTeamMitarbeiter("0", JRTMI); return Json(mt, JsonRequestBehavior.AllowGet); } //Falls typ nicht stimmt return Json("1", JsonRequestBehavior.AllowGet); } #endregion //fallsa typ nicht vorhanden return Json("1", JsonRequestBehavior.AllowGet); } else { //gib json zurück {"STATE":1} return Json("1", JsonRequestBehavior.AllowGet); } } else { //gib json zurück {"STATE":99} return Json("99", JsonRequestBehavior.AllowGet); } return Json("99", JsonRequestBehavior.AllowGet); } public JsonResult BildUrl(int oid) { //Small thumbnail zurückschicken //var img = DAOFactory.GenericDAO.GetAllActive(); // diese form von rausholden ist nicht möglich var img = DAOFactory.GenericDAO.GetByID(oid); //Erstmal doof image komplett zurück schicken nacher nur die image datei return Json(img.Images[0].SmallThumbnail, JsonRequestBehavior.AllowGet); } } #region Klient public class JsonRueckgabeKlient { public string State { get; set; } public JsonInputKlient1 Input { get; set; } public JsonRueckgabeKlient(string state, JsonInputKlient1 input ) { State = state; Input = input; } } //klienten input public class JsonInputKlient1 { public string Oid { get; set; } public string Status { get; set; } public string Firstname { get; set; } public string LastName { get; set; } public string Alias { get; set; } public List Guardians { get; set; } public JsonInputKlient1(string oid,string status, string firstname, string lastname, string alias, List guardians) { Oid = oid; Status = status; Firstname = firstname; LastName = lastname; Alias = alias; Guardians = guardians; } } public class JsonInputKlient2 { public string Status { get; set; } public string UserOid { get; set; } public string EmployeeOid { get; set; } public JsonInputKlient2(string status, string userOid,string employeeOid) { Status = status; UserOid = userOid; EmployeeOid = employeeOid; } } #endregion #region Mitarbeiter public class JsonRueckgabeMitarbeiter { public string State { get; set; } public JsonRueckgabeMitarbeiterInput Input { get; set; } public JsonRueckgabeMitarbeiter(string state, JsonRueckgabeMitarbeiterInput input ) { State = state; Input = input; } } public class JsonRueckgabeMitarbeiterInput { public string Useroid { get; set; } public string EmployeeOid { get; set; } public string Status { get; set; } public string Login { get; set; } public string Password { get; set; } public string Firstname { get; set; } public string LastName { get; set; } public string ChatCode { get; set; } public string Mobile { get; set; } public string Picture { get; set; } public string PictureId { get; set; } public JsonRueckgabeMitarbeiterInput(string useroid, string employeeOid, string status, string login, string password, string firstname, string lastname,string chatcode,string mobile,string picture,string pictureId) { Useroid = useroid; EmployeeOid = employeeOid; Status = status; Login = login; Password = password; Firstname = firstname; LastName = lastname; ChatCode = chatcode; Mobile = mobile; Picture = picture; PictureId = pictureId; } } #endregion #region TeamMitarbeiter public class JsonRueckgabeTeamMitarbeiter { public string State { get; set; } public List Input { get; set; } public JsonRueckgabeTeamMitarbeiter(string state, List input) { State = state; Input = input; } } public class JsonRueckgabeTeamMitarbeiterInput { public string Oid { get; set; } public string Status { get; set; } public string Name { get; set; } public List Member { get; set; } public JsonRueckgabeTeamMitarbeiterInput(string oid,string status, string name,List member) { Oid = oid; Name = name; Member = member; Status = status; } } public class JsonRueckgabeTeamMitarbeiterInput2 { public string Status { get; set; } public string UserOid { get; set; } public string EmployeeOid { get; set; } public JsonRueckgabeTeamMitarbeiterInput2(string status, string userOid,string employeeOid) { Status = status; UserOid = userOid; EmployeeOid = employeeOid; } } #endregion }