diff --git a/400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserController.cs b/400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserController.cs
index 89879c4..41bf612 100644
--- a/400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserController.cs
+++ b/400-SOURCECODE/AIAHTML5.ADMIN.API/Controllers/UserController.cs
@@ -119,10 +119,10 @@ namespace AIAHTML5.ADMIN.API.Controllers
bool Status = false;
int userId = jsonData["userId"].Value();
string tagName = jsonData["tagName"].Value();
- bool isAlreadyLoggedIn = jsonData["isAlreadyLoggedIn"].Value();
+ long SessionId = jsonData["SessionId"].Value();
try
{
- Status = UserModel.ManageUserLoginStatus(dbContext, userId, tagName, isAlreadyLoggedIn);
+ Status = UserModel.ManageUserLoginStatus(dbContext, userId, tagName, SessionId);
return Request.CreateResponse(HttpStatusCode.OK, Status.ToString());
}
diff --git a/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.Context.cs b/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.Context.cs
index 7bc70fe..d5540dc 100644
--- a/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.Context.cs
+++ b/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.Context.cs
@@ -4995,7 +4995,7 @@ namespace AIAHTML5.ADMIN.API.Entity
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("usp_InsertAIAUser", sLoginIdParameter, sPasswordParameter, sFirstnameParameter, sLastnameParameter, iUserTypeIdParameter, sEmailIdParameter, iSecurityQuesIdParameter, sSecurityAnswerParameter, iCreatorIdParameter, iLicenseIdParameter, iEditionIdParameter, status);
}
- public virtual ObjectResult> usp_ManageUserLoginStatus(Nullable userId, string tag, Nullable isAlreadyLogin)
+ public virtual ObjectResult> usp_ManageUserLoginStatus(Nullable userId, string tag, Nullable sessionId)
{
var userIdParameter = userId.HasValue ?
new ObjectParameter("userId", userId) :
@@ -5005,11 +5005,11 @@ namespace AIAHTML5.ADMIN.API.Entity
new ObjectParameter("tag", tag) :
new ObjectParameter("tag", typeof(string));
- var isAlreadyLoginParameter = isAlreadyLogin.HasValue ?
- new ObjectParameter("isAlreadyLogin", isAlreadyLogin) :
- new ObjectParameter("isAlreadyLogin", typeof(bool));
+ var sessionIdParameter = sessionId.HasValue ?
+ new ObjectParameter("sessionId", sessionId) :
+ new ObjectParameter("sessionId", typeof(long));
- return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction>("usp_ManageUserLoginStatus", userIdParameter, tagParameter, isAlreadyLoginParameter);
+ return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction>("usp_ManageUserLoginStatus", userIdParameter, tagParameter, sessionIdParameter);
}
}
}
diff --git a/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.edmx b/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.edmx
index 17280a6..acab4d3 100644
--- a/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.edmx
+++ b/400-SOURCECODE/AIAHTML5.ADMIN.API/Entity/AIADBEntity.edmx
@@ -1410,7 +1410,7 @@
-
+
@@ -3006,7 +3006,7 @@
-
+
diff --git a/400-SOURCECODE/AIAHTML5.ADMIN.API/Models/UserModel.cs b/400-SOURCECODE/AIAHTML5.ADMIN.API/Models/UserModel.cs
index ca0ce88..2ec74fc 100644
--- a/400-SOURCECODE/AIAHTML5.ADMIN.API/Models/UserModel.cs
+++ b/400-SOURCECODE/AIAHTML5.ADMIN.API/Models/UserModel.cs
@@ -65,12 +65,12 @@ namespace AIAHTML5.ADMIN.API.Models
return false;
}
}
- public static bool ManageUserLoginStatus(AIADatabaseV5Entities dbContext, int userId, string tagName, bool isAlreadyLoggedIn)
+ public static bool ManageUserLoginStatus(AIADatabaseV5Entities dbContext, int userId, string tagName, long SessionId)
{
bool loginStatus = false;
try
{
- loginStatus = Convert.ToBoolean(dbContext.usp_ManageUserLoginStatus(userId, tagName, isAlreadyLoggedIn).FirstOrDefault());
+ loginStatus = Convert.ToBoolean(dbContext.usp_ManageUserLoginStatus(userId, tagName, SessionId).FirstOrDefault());
return loginStatus;
}
diff --git a/400-SOURCECODE/AIAHTML5.API/Controllers/AuthenticateController.cs b/400-SOURCECODE/AIAHTML5.API/Controllers/AuthenticateController.cs
index 522d0db..eca2c65 100644
--- a/400-SOURCECODE/AIAHTML5.API/Controllers/AuthenticateController.cs
+++ b/400-SOURCECODE/AIAHTML5.API/Controllers/AuthenticateController.cs
@@ -512,9 +512,9 @@ namespace AIAHTML5.API.Controllers
{
int userId = jsonData["userId"].Value();
string tagName = jsonData["tagName"].Value();
- bool isAlreadyLoggedIn = jsonData["isAlreadyLoggedIn"].Value();
+ long SessionId = jsonData["SessionId"].Value();
- loginStatus = AIAHTML5.API.Models.Users.GetUserLoginStatus(userId, tagName, isAlreadyLoggedIn);
+ loginStatus = AIAHTML5.API.Models.Users.GetUserLoginStatus(userId, tagName, SessionId);
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(loginStatus) };
}
diff --git a/400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs b/400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs
index 6c20b0d..22b7fd5 100644
--- a/400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs
+++ b/400-SOURCECODE/AIAHTML5.API/Models/DBModel.cs
@@ -348,7 +348,7 @@ namespace AIAHTML5.API.Models
return objUser;
}
- internal static string GetUserLoginStatus(int userId,string tagName,bool isAlreadyLoggedIn)
+ internal static string GetUserLoginStatus(int userId,string tagName, long SessionId)
{
string status=string.Empty;
DBModel objModel = new DBModel();
@@ -363,7 +363,7 @@ namespace AIAHTML5.API.Models
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@userId", userId);
cmd.Parameters.AddWithValue("@tag", tagName);
- cmd.Parameters.AddWithValue("@isAlreadyLogin", isAlreadyLoggedIn);
+ cmd.Parameters.AddWithValue("@sessionId", SessionId);
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds);
diff --git a/400-SOURCECODE/AIAHTML5.API/Models/Users.cs b/400-SOURCECODE/AIAHTML5.API/Models/Users.cs
index f642166..001d0b0 100644
--- a/400-SOURCECODE/AIAHTML5.API/Models/Users.cs
+++ b/400-SOURCECODE/AIAHTML5.API/Models/Users.cs
@@ -315,10 +315,10 @@ namespace AIAHTML5.API.Models
return objUser;
}
- internal static string GetUserLoginStatus(int userId, string tagName,bool isAlreadyLoggedIn)
+ internal static string GetUserLoginStatus(int userId, string tagName, long SessionId)
{
string status = null;
- status = DBModel.GetUserLoginStatus(userId, tagName, isAlreadyLoggedIn);
+ status = DBModel.GetUserLoginStatus(userId, tagName, SessionId);
return status;
}
diff --git a/400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js b/400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
index 58bcfc7..bfe923b 100644
--- a/400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
+++ b/400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
@@ -73,16 +73,6 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
//$rootScope.errorMessage = ''; // Commented initialization to retain message when coming to login after password reset success screen
$("#fileMenuAnchor").addClass("disableFileMenu");
- $rootScope.userInfo = {
- username: null,
- password: null,
- emailId: null,
- newPassword: null,
- confirmPassword: null,
- userMessage: null,
- unblockUser: false,
- isMailForForgotPassword: false
- };
$rootScope.userLicenseInfo = {
userLicenseId: 0,
licenseeAccountNumber: null
@@ -647,6 +637,19 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
$('#login').css('visibility', 'visible');
$rootScope.checkRefreshButtonClick = 1;
+ var date = new Date();
+
+ $rootScope.userInfo = {
+ username: null,
+ password: null,
+ emailId: null,
+ newPassword: null,
+ confirmPassword: null,
+ userMessage: null,
+ unblockUser: false,
+ isMailForForgotPassword: false,
+ SessionId:date.getTime()
+ };
$rootScope.siteUrlInfo = {
siteIP: null,
@@ -659,7 +662,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
userId: null,
password: null,
mtype:null,
- id:null
+ id:null,
+ SessionId:date.getTime()
}
if (params != null && params != undefined && params != "") {
@@ -710,7 +714,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
$scope.checkuserstatus = {
userId: userId,
tagName: loggedInUser.Id==0?'logout':'update',
- isAlreadyLoggedIn:true
+ SessionId:loggedInUser.SessionId
}
// this case found when browser closed by user after login. after long time (after 20 min) open site again
@@ -813,7 +817,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
$('#HomeContainerDiv').css('opacity', '0.7');
}
- $rootScope.AuthenticateUser = function (userInfo,isAlreadyLoggedIn) {
+ $rootScope.AuthenticateUser = function (userInfo) {
if (navigator.cookieEnabled) {
$rootScope.errorMessage = "";
if (userInfo.username == "" || userInfo.username == null || userInfo.username == undefined || userInfo.password == "" || userInfo.password == null || userInfo.password == undefined) {
@@ -842,10 +846,12 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
// birendra// initialize exp img detail object
$rootScope.initializeUserForExportImage(result.Id);
// update result with session detail
+
result.aiaIdleTime=$rootScope.aiaIdleTime;
result.aiaIdleTimeOut=$rootScope.aiaIdleTimeOut;
result.aiaPingInterval=$rootScope.aiaPingInterval;
- $rootScope.isAlreadyLoggedIn=isAlreadyLoggedIn==undefined?false:isAlreadyLoggedIn;
+ result.SessionId=userInfo.SessionId;
+
//display user name
$rootScope.userName=result.FirstName+" "+result.LastName;
@@ -1265,6 +1271,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
if($rootScope.siteUrlInfo.mtype!=null && $rootScope.siteUrlInfo.mtype.toLowerCase()=='ca' && $rootScope.siteUrlInfo.userId!=null && $rootScope.siteUrlInfo.accountNumber!=null)
{
$rootScope.LoginDisableUI();
+ var userInfo=$rootScope.userInfo;//also get session id
AuthenticationService.ByPassLoginToOpenModule($rootScope.siteUrlInfo)
.then(
function (result) {
@@ -1281,16 +1288,19 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
$rootScope.aiaAnimationPath = configresult.serverPath;
$rootScope.MaxOneFileSize = configresult.fileSize;
- $rootScope.userInfo.username = result.LoginId;
- $rootScope.userInfo.password = result.Password;
+ userInfo.username = result.LoginId;
+ userInfo.password = result.Password;
var loggedInUser = JSON.parse($scope.currentUserDetails);
if(loggedInUser!==null && loggedInUser.LoginId==result.LoginId)
{
- $rootScope.AuthenticateUser($rootScope.userInfo,true);
+ //using old session id
+ userInfo.SessionId = loggedInUser.SessionId;
+ $rootScope.AuthenticateUser(userInfo);
}
else
{
- $rootScope.AuthenticateUser($rootScope.userInfo,false);
+ //using new sessionid
+ $rootScope.AuthenticateUser(userInfo);
}
});
@@ -1337,17 +1347,21 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
//maintain user session by licenseid of site login
if(loggedInUser!==null && loggedInUser.AccountNumber==sitedetail.accountNumber)
{
- $rootScope.AuthenticateClientSiteUser(sitedetail,true);
+ //using old session id
+ sitedetail.SessionId = loggedInUser.SessionId;
+ $rootScope.AuthenticateClientSiteUser(sitedetail);
}
else
{
- $rootScope.AuthenticateClientSiteUser(sitedetail,false);
+ //using new sessionid
+ $rootScope.AuthenticateClientSiteUser(sitedetail);
}
});
}
}
- $rootScope.AuthenticateClientSiteUser = function (siteInfo,isAlreadyLoggedIn) {
+ $rootScope.AuthenticateClientSiteUser = function (siteInfo) {
+ $rootScope.LoginDisableUI();
AuthenticationService.validateClientSite(siteInfo)
.then(
function (result) {
@@ -1398,7 +1412,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
result.aiaIdleTime=$rootScope.aiaIdleTime;
result.aiaIdleTimeOut=$rootScope.aiaIdleTimeOut;
result.aiaPingInterval=$rootScope.aiaPingInterval;
- $rootScope.isAlreadyLoggedIn=isAlreadyLoggedIn==undefined?false:isAlreadyLoggedIn;
+ result.SessionId=siteInfo.SessionId;
//display user name
$rootScope.userName=result.FirstName+" "+result.LastName;
if (typeof result.FirstName != undefined || result.FirstName != "" || result.FirstName != null) {
@@ -1689,11 +1703,10 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
$rootScope.userStatus = {
userId: null,
tagName: null,
- loginStatus: null,
- isAlreadyLoggedIn:null
+ SessionId:null
}
console.log('user session start');
- $rootScope.CheckUserSession('insert',$rootScope.isAlreadyLoggedIn);
+ $rootScope.CheckUserSession('insert');
$rootScope.$on('IdleStart', function() {
// this event fire when idle time finish and time out start
@@ -1711,14 +1724,14 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
// config set in AIA.js -:IdleProvider.timeout(15);
$rootScope.isSessionTimeout=true;
console.log('session is timeout');
- $rootScope.CheckUserSession('logout',true);
+ $rootScope.CheckUserSession('logout');
});
$rootScope.$on('Keepalive', function() {
// it watch the session on perticular time interval during idle time period
// config set in AIA.js -: KeepaliveProvider.interval(10);
//we will use it to recieve request from databse if user logout from admin activity
console.log('ping user session');
- $rootScope.CheckUserSession('update',true);
+ $rootScope.CheckUserSession('update');
});
@@ -1745,7 +1758,7 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
$rootScope.isSessionTimeout=true;
localStorage.removeItem('loggedInUserDetails');
localStorage.clear();
- $rootScope.CheckUserSession('logout',true);
+ $rootScope.CheckUserSession('logout');
$timeout(function(){
document.location = '/';
$rootScope.isVisibleLogin = true;
@@ -1760,15 +1773,15 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
$rootScope.isVisibleLogin = true;
}
- $rootScope.CheckUserSession = function (tagName,isAlreadyLoggedIn) {
+ $rootScope.CheckUserSession = function (tagName) {
//console.log('user login id: '+$rootScope.userData.Id);
//console.log('user login activity tag: '+tagName);
if($rootScope.userData==undefined) return;
//incase site user login userid is 0 so then using license id
$rootScope.userStatus.userId=$rootScope.userData.Id==0?$rootScope.userData.LicenseId:$rootScope.userData.Id;
$rootScope.userStatus.tagName=tagName;
- $rootScope.userStatus.isAlreadyLoggedIn=isAlreadyLoggedIn;
- $rootScope.isAlreadyLoggedIn=true;
+ $rootScope.userStatus.SessionId=$rootScope.userData.SessionId;
+
AuthenticationService.ManageUserLoginStatus($rootScope.userStatus)
.then(
function (loginStatus) {
@@ -1799,8 +1812,8 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
if (userInfo.LoginId != undefined || userInfo.LoginId != "" || userInfo.LoginId != null) {
userInfo["username"] = userInfo.LoginId;
- userInfo["password"] = userInfo.Password;
- $rootScope.AuthenticateUser(userInfo,true);
+ userInfo["password"] = userInfo.Password;
+ $rootScope.AuthenticateUser(userInfo);
}
diff --git a/400-SOURCECODE/Admin/src/app/app.component.ts b/400-SOURCECODE/Admin/src/app/app.component.ts
index b92db2c..3cc61ad 100644
--- a/400-SOURCECODE/Admin/src/app/app.component.ts
+++ b/400-SOURCECODE/Admin/src/app/app.component.ts
@@ -81,6 +81,11 @@ export class AppComponent implements OnInit {
// console.log("You\'ve gone idle!");
// });
+ if(window.location.hostname=="localhost")
+ {
+ //insert new session
+ this.loginManageStatus('insert');
+ }
this.idle.watch();
}
@@ -134,7 +139,7 @@ export class AppComponent implements OnInit {
this.userservice.ManageUserLoginStatus({
userId: this.global.UserId,
tagName: tagname,
- isAlreadyLoggedIn:true
+ SessionId:this.global.SessionId
}).subscribe(status => {
console.log(status);
if(status=='False')
diff --git a/400-SOURCECODE/Admin/src/app/components/UserEntity/user.service.ts b/400-SOURCECODE/Admin/src/app/components/UserEntity/user.service.ts
index 980110a..a9b6138 100644
--- a/400-SOURCECODE/Admin/src/app/components/UserEntity/user.service.ts
+++ b/400-SOURCECODE/Admin/src/app/components/UserEntity/user.service.ts
@@ -56,7 +56,7 @@ export class UserService {
//////////Manage UserLogin Status///////////
ManageUserLoginStatus(obj: any) {
- var jsonData = { 'userId': obj.userId, 'tagName': obj.tagName,'isAlreadyLoggedIn': obj.isAlreadyLoggedIn };
+ var jsonData = { 'userId': obj.userId, 'tagName': obj.tagName,'SessionId': obj.SessionId };
console.log(obj);
var headers = new Headers({
'Content-Type': 'application/json'
diff --git a/400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.ts b/400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.ts
index feee6f9..68bcf7f 100644
--- a/400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.ts
+++ b/400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.ts
@@ -392,8 +392,8 @@ export class UsersList implements OnInit, AfterViewChecked {
this._loadingService.ShowLoading("global-loading");
this.userservice.ManageUserLoginStatus({
userId: this.selectedId,
- tagName: 'logout',
- isAlreadyLoggedIn:true
+ tagName: 'adminlogout',
+ SessionId:this.global.SessionId
}).subscribe(x => {
console.log(x);
this.EditbuttonStatus=undefined;
diff --git a/400-SOURCECODE/Admin/src/app/shared/global.ts b/400-SOURCECODE/Admin/src/app/shared/global.ts
index e7eab93..edd2977 100644
--- a/400-SOURCECODE/Admin/src/app/shared/global.ts
+++ b/400-SOURCECODE/Admin/src/app/shared/global.ts
@@ -27,6 +27,7 @@ export class GlobalService {
aiaIdleTime:number=0;
aiaIdleTimeOut:number=0;
aiaPingInterval:number=0;
+ SessionId:number=0;
RemoveColumns: Array = ["Serial_No", "LicenseId","RowNum"]
error;
public href: string = "";
@@ -41,6 +42,7 @@ export class GlobalService {
this.aiaIdleTime=this.loggedInUser.aiaIdleTime;
this.aiaIdleTimeOut=this.loggedInUser.aiaIdleTimeOut;
this.aiaPingInterval=this.loggedInUser.aiaPingInterval;
+ this.SessionId=this.loggedInUser.SessionId;
}
@@ -72,9 +74,11 @@ export class GlobalService {
{
// for 'ng serve --open' command
//**** for localhost:4200 *****//
+ var date = new Date();
+ var newsessionid = date.getTime();//timestamp is the number of milliseconds that have passed since January 1, 1970
localStorage.setItem('loggedInUserDetails', JSON.stringify(
{
- "Id": 1, "FirstName": "Maribel", "LastName": "sfsfsfsfsfsfs", "EmailId": "ravi.vishwakarma@ebix.com", "LoginId": "superadmin", "Password": "ebix@2016","aiaIdleTime": 300,"aiaIdleTimeOut": 30,"aiaPingInterval": 10, "SecurityQuestionId": 1, "SecurityAnswer": "boxer", "CreatorId": 1, "CreationDate": "2009-03-02T00:00:00", "DeactivationDate": null, "ModifierId": 1, "ModifiedDate": "2017-01-24T02:03:19", "UserType": "Super Admin", "UserTypeId": 1, "IsActive": true, "IsCorrectPassword": false, "IncorrectLoginAttemptCount": 0, "IsBlocked": false, "LicenseId": 0, "EditionId": 0, "LoginFailureCauseId": 0, "Modules": [{ "slug": "da-view-list", "name": "Dissectible Anatomy", "id": 1 }, { "slug": "tile-view-list", "name": "Atlas Anatomy", "id": 2 }, { "slug": "3d-anatomy-list", "name": "3D Anatomy", "id": 3 }, { "slug": "clinical-illustrations", "name": "Clinical Illustrations", "id": 4 }, { "slug": "clinical-animations", "name": "Clinical Animations", "id": 5 }, { "slug": "Link/encyclopedia", "name": "Encyclopedia", "id": 6 }, { "slug": "curriculum-builder", "name": "Curriculum Builder", "id": 7 }, { "slug": "anatomy-test", "name": "Anatomy Test", "id": 8 }, { "slug": "Link/IP-10", "name": "IP 10", "id": 9 }, { "slug": "lab-exercises", "name": "Lab Exercises", "id": 10 }, { "slug": "Link/indepth-reports", "name": "In-Depth Reports", "id": 11 }, { "slug": "Link/complementary-and-alternate-medicine", "name": "CAM", "id": 12 }, { "slug": "ADAM-images", "name": "A.D.A.M. Images", "id": 13 }, { "slug": "Link/bodyguide", "name": "Body Guide", "id": 14 }, { "slug": "Link/health-navigator", "name": "Symptom Navigator", "id": 15 }, { "slug": "Link/wellness-tools", "name": "The Wellness Tools", "id": 16 }, { "slug": "Link/aod", "name": "A.D.A.M. OnDemand", "id": 1017 }], "LicenseInfo": { "Id": 0, "AccountNumber": "AIAS000319" }, "LicenseSubscriptions": null, "IsSubscriptionExpired": false, "SubscriptionExpirationDate": null, "TermsAndConditionsTitle": null, "TermsAndConditionsText": null
+ "Id": 1, "FirstName": "Maribel", "LastName": "sfsfsfsfsfsfs", "EmailId": "ravi.vishwakarma@ebix.com", "LoginId": "superadmin", "Password": "ebix@2016","aiaIdleTime": 300,"aiaIdleTimeOut": 30,"aiaPingInterval": 10,"SessionId":newsessionid, "SecurityQuestionId": 1, "SecurityAnswer": "boxer", "CreatorId": 1, "CreationDate": "2009-03-02T00:00:00", "DeactivationDate": null, "ModifierId": 1, "ModifiedDate": "2017-01-24T02:03:19", "UserType": "Super Admin", "UserTypeId": 1, "IsActive": true, "IsCorrectPassword": false, "IncorrectLoginAttemptCount": 0, "IsBlocked": false, "LicenseId": 0, "EditionId": 0, "LoginFailureCauseId": 0, "Modules": [{ "slug": "da-view-list", "name": "Dissectible Anatomy", "id": 1 }, { "slug": "tile-view-list", "name": "Atlas Anatomy", "id": 2 }, { "slug": "3d-anatomy-list", "name": "3D Anatomy", "id": 3 }, { "slug": "clinical-illustrations", "name": "Clinical Illustrations", "id": 4 }, { "slug": "clinical-animations", "name": "Clinical Animations", "id": 5 }, { "slug": "Link/encyclopedia", "name": "Encyclopedia", "id": 6 }, { "slug": "curriculum-builder", "name": "Curriculum Builder", "id": 7 }, { "slug": "anatomy-test", "name": "Anatomy Test", "id": 8 }, { "slug": "Link/IP-10", "name": "IP 10", "id": 9 }, { "slug": "lab-exercises", "name": "Lab Exercises", "id": 10 }, { "slug": "Link/indepth-reports", "name": "In-Depth Reports", "id": 11 }, { "slug": "Link/complementary-and-alternate-medicine", "name": "CAM", "id": 12 }, { "slug": "ADAM-images", "name": "A.D.A.M. Images", "id": 13 }, { "slug": "Link/bodyguide", "name": "Body Guide", "id": 14 }, { "slug": "Link/health-navigator", "name": "Symptom Navigator", "id": 15 }, { "slug": "Link/wellness-tools", "name": "The Wellness Tools", "id": 16 }, { "slug": "Link/aod", "name": "A.D.A.M. OnDemand", "id": 1017 }], "LicenseInfo": { "Id": 0, "AccountNumber": "AIAS000319" }, "LicenseSubscriptions": null, "IsSubscriptionExpired": false, "SubscriptionExpirationDate": null, "TermsAndConditionsTitle": null, "TermsAndConditionsText": null
}));
}