Exemplo n.º 1
0
        public HttpResponseMessage DownloadUsers()
        {
            Logger.Debug("Inside UM Controller- GetUserLocation");
            DownloadUsers lResponse = new DownloadUsers();
            ErrorResponse error     = new ErrorResponse();
            var           response  = new Dictionary <string, object>();

            try
            {
                string SessionID = Guid.Empty.ToString();
                if (Request.Headers != null)
                {
                    SessionID = Request.Headers.LastOrDefault().Value.First();
                    Logger.Debug("SessionID: " + SessionID.ToString());
                    if (_IUMServer.ValidateUser(SessionID))
                    {
                        lResponse = _IUMServer.DownloadUsers(SessionID);
                        if (lResponse != null)
                        {
                            Logger.Debug("Response: " + new JavaScriptSerializer().Serialize(lResponse));
                            return(Request.CreateResponse(HttpStatusCode.OK, lResponse));
                        }
                        else
                        {
                            error.ErrorCode    = HttpStatusCode.InternalServerError;
                            error.ErrorMessage = "Unable to get User Details";
                            response.Add("ErrorResponse", error);
                            return(Request.CreateResponse(HttpStatusCode.InternalServerError, lResponse));
                        }
                    }
                    else
                    {
                        error.ErrorCode    = HttpStatusCode.Forbidden;
                        error.ErrorMessage = "Session has expired, please login again";
                        response.Add("ErrorResponse", error);
                        return(Request.CreateResponse(HttpStatusCode.Forbidden, response));
                    }
                }
                else
                {
                    error.ErrorCode    = HttpStatusCode.BadRequest;
                    error.ErrorMessage = "Unable to get SessionID in Header";
                    response.Add("ErrorResponse", error);
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, response));
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                error.ErrorCode    = HttpStatusCode.InternalServerError;
                error.ErrorMessage = "Failure";
                response.Add("ErrorResponse", error);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, response));
            }
        }
        protected IEnumerable <cuc.User> GetUsers(string account, string user, string password)
        {
            var users = new List <cuc.User>();

            string currentUser = User.Identity.Name;

            if (!string.IsNullOrWhiteSpace(currentUser))
            {
                Guid   albaAccountId = albaCredentialService.GetAlbaAccountIdFor(currentUser);
                string path          = string.Format(
                    options.AlbaUsersHtmlPath,
                    albaAccountId);

                if (io.File.Exists(path))
                {
                    string html = io.File.ReadAllText(path);
                    users = DownloadUsers.GetUsers(html);
                }
            }

            var adminUserNames = authorizationService.GetAdminUsers();

            foreach (var name in adminUserNames)
            {
                users.Add(
                    new cuc.User
                {
                    Email = name,
                    Name  = name,
                });
            }

            var userNames = authorizationService.GetUsers();

            foreach (var name in userNames)
            {
                users.Add(
                    new cuc.User
                {
                    Email = name,
                    Name  = name,
                });
            }

            return(users);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获得组织机构版本信息
        /// </summary>
        /// <param name="org"></param>
        private void onOrgVersion(OrgVersion org)
        {
            try
            {
                #region 判断登录的用户本地数据库文件夹是否存在
                System.IO.DirectoryInfo dInfo = new System.IO.DirectoryInfo(MyAuth.UserID);
                if (!dInfo.Exists)
                    dInfo.Create();
                string FileNamePath =Application.StartupPath +"\\"+ MyAuth.UserID + "\\Record.mdb";
                if (!System.IO.File.Exists(FileNamePath))
                    System.IO.File.Copy(Application.StartupPath + "\\Record.db", FileNamePath);

                ////初始化本地数据库连接字符串
                IMLibrary3.Data.SQLiteDBHelper.connectionString = "data source=" + FileNamePath;
                #endregion

                OrgVersion localOrg = OpeRecordDB.GetOrgVersion(MyAuth.UserID);

                #region 如果版本已经改变下载组织机构组信息
                if (org.GroupsVersion != localOrg.GroupsVersion)//true
                {
                    Groups.Clear();
                    treeView_Organization.Nodes.Clear();

                    OpeRecordDB.DeleteAllGroup();//删除本地数据库中分组信息

                    frmOrg = new FormDownOrganization();
                    frmOrg.Shown += delegate(object sender, EventArgs e)
                    {
                        DownloadGroups dGroups = new DownloadGroups();
                        dGroups.from = MyAuth.UserID;
                        dGroups.type = type.get;
                        SendMessageToServer(dGroups);//请求下载分组信息
                    };
                    frmOrg.MaxValue = org.GroupsCount;
                    frmOrg.ShowText = "正在下载分组信息...";
                    frmOrg.ShowDialog();

                    OpeRecordDB.AddGroups(this.Groups);//将下载的分组信息保存于数据库中
                }
                #endregion

                #region 下载组织机构用户信息
                if (org.UsersVersion != localOrg.UsersVersion)//(true)
                {
                    Users.Clear();
                    treeView_Organization.Nodes.Clear();
                    OpeRecordDB.DeleteAllUser();//删除本地数据库中用户信息

                    frmOrg = new FormDownOrganization();
                    frmOrg.Shown += delegate(object sender, EventArgs e)
                    {
                        DownloadUsers  dUsers = new  DownloadUsers();
                        dUsers.from = MyAuth.UserID;
                        dUsers.type = type.get;
                        SendMessageToServer(dUsers);//请求下载联系人信息
                    };
                    frmOrg.MaxValue = org.UsersCount;
                    frmOrg.ShowText = "正在下载用户信息...";
                    frmOrg.ShowDialog();

                    OpeRecordDB.AddUsers(this.Users);
                }
                #endregion

                #region 下载群信息
                if (org.RoomsCount !=0)//如果群数大于0
                {
                    Rooms.Clear();
                    treeView_Rooms.Nodes.Clear();

                    //OpeRecordDB.DeleteAllRoom();//删除本地数据库中群信息

                    frmOrg = new FormDownOrganization();
                    frmOrg.Shown += delegate(object sender, EventArgs e)
                    {
                        DownloadRooms dRooms = new DownloadRooms();
                        dRooms.from = MyAuth.UserID;
                        dRooms.type = type.get;
                        SendMessageToServer(dRooms);//请求下载群信息
                    };

                    frmOrg.MaxValue = org.RoomsCount;
                    frmOrg.ShowText = "正在下载群资料...";
                    frmOrg.ShowDialog();

                    //OpeRecordDB.AddRooms(this.Rooms);
                }
                #endregion

                //如果组织机构已经更改或组织机构未加载到树图
                if (this.treeView_Organization.Nodes.Count == 0)
                {
                    //则更新到本地数据库
                    OpeRecordDB.UpdateOrgVersion(org);
                    this.Groups = OpeRecordDB.GetGroups();
                    this.Users = OpeRecordDB.GetUsers();
                    treeViewAddOrg();//加载树
                }

                if (this.treeView_Rooms.Nodes.Count == 0)
                {
                    //this.Rooms = OpeRecordDB.GetRooms();
                    foreach (Room room in this.Rooms)
                    {
                        foreach (string userID in room.UserIDs.Split(';'))
                        {
                            User user = findUser(userID);
                            if (user != null)
                                room.Users.Add(user.UserID, user);
                        }
                    }

                    treeViewAddRooms(this.Rooms);
                }

                //请求联系人在线状态信息
                Presence pre = new Presence();
                pre.from = MyAuth.UserID;
                pre.type = type.get;//必须设置 set,以表示是设置,如果为get,则是获取所有联系人的状态
                SendMessageToServer(pre);
            }
            catch (Exception ex)
            {
                IMLibrary3.Global.MsgShow(ex.Source + ex.Message);
            }
        }
Exemplo n.º 4
0
        public LoginResponse Login(LoginRequest pLoginRequest)
        {
            LoginResponse   loginResponse = new LoginResponse();
            IUserRepository _IUserRepository;

            _IUserRepository = new UserRepository(new WorkersInMotionDB());
            string UpdatedSessionID = string.Empty;

            Logger.Debug("Inside UserLogin");
            LoginResponse lResponse = new LoginResponse();

            try
            {
                MasterLogin masterlogin = new MasterLogin();
                var         aspuser     = _IUserRepository.UserLogin(pLoginRequest.UserName, _IUserRepository.EncodeTo64(pLoginRequest.Password));
                if (aspuser != null)
                {
                    Logger.Debug("Inside Role");
                    AspNetRole asprole = _IUserRepository.GetRole(aspuser.Role_Id);
                    switch (asprole.UserType)
                    {
                    case "WIM_A":
                    case "ENT_A":
                    case "ENT_OM":
                    case "ENT_U_RM":
                    case "ENT_U_TM":
                        lResponse.Role = 1;
                        break;

                    case "ENT_U":
                        lResponse.Role = 2;
                        break;

                    case "IND_C":
                        lResponse.Role = 3;
                        break;

                    default:
                        break;
                    }

                    UserDevice         userDevice   = new UserDevice();
                    List <MasterLogin> masterlogins = new List <MasterLogin>();
                    MasterLogin        lMasterLogin = new MasterLogin();
                    lMasterLogin.UserGUID  = aspuser.UserGUID;
                    lMasterLogin.LoginType = (short)pLoginRequest.LoginType;
                    masterlogins           = _IUserRepository.GetMasterLogin(lMasterLogin);
                    if (masterlogins != null && masterlogins.Count > 0)
                    {
                        #region masterlogins record available
                        masterlogin = masterlogins[0]; // Alok need to be fixed
                        // Update the Master Login
                        masterlogin.ExpiryTime = DateTime.UtcNow.AddYears(10);
                        Logger.Debug("Updating MasterLogin Record");
                        UpdatedSessionID = _IUserRepository.UpdateMasterLogin(masterlogin);
                        if (!string.IsNullOrEmpty(UpdatedSessionID))
                        {
                            #region UpdatedSessionID is not null

                            Logger.Debug("Updated Session ID: " + UpdatedSessionID);
                            lResponse.SessionID = UpdatedSessionID;
                            lResponse.UserGUID  = aspuser.UserGUID.ToString();

                            Logger.Debug("Inside MasterLogin");
                            userDevice.LoginGUID = masterlogin.LoginGUID;
                            userDevice.DeviceID  = pLoginRequest.DeviceInfo.deviceid;
                            List <UserDevice> lUserDevices = _IUserRepository.GetUserDevice(userDevice);
                            if (lUserDevices != null && lUserDevices.Count > 0)
                            {
                                // Delete the user device record
                                userDevice = lUserDevices[0]; // Need to modify Alok
                                int deviceresult = _IUserRepository.DeleteUserDevices(userDevice.UserDevicesGUID);
                                //int deviceresult = _IUserRepository.Save();
                                if (deviceresult <= 0)
                                {
                                    lResponse = null;
                                    return(lResponse);
                                }
                            }
                            // Insert the User Device info
                            if (CreateUserDevice(masterlogin, pLoginRequest) > 0)
                            {
                                if (!string.IsNullOrEmpty(lResponse.SessionID) && !string.IsNullOrEmpty(lResponse.UserGUID))
                                {
                                    DownloadUsers lDownloadUsers = DownloadUsers(lResponse.SessionID, new Guid(lResponse.UserGUID));
                                    if (lDownloadUsers != null && lDownloadUsers.UserRecords.Count > 0)
                                    {
                                        lResponse.UserRecord = lDownloadUsers.UserRecords[0];
                                    }
                                    else
                                    {
                                        lResponse.UserRecord = null;
                                    }
                                }
                                Logger.Debug("UserDevice record created for updated Session ID: " + UpdatedSessionID);
                            }
                            #endregion
                        }
                        else
                        {
                            #region UpdatedSessionID is NULL
                            Logger.Error("Unable to generate Session ID");
                            lResponse = null;
                            return(lResponse);

                            #endregion
                        }
                        #endregion
                    }
                    else
                    {
                        #region masterlogins record not available
                        Logger.Debug("Creating MasterLogin Record");
                        lMasterLogin.ExpiryTime = DateTime.UtcNow.AddYears(10);
                        if (CreateMasterLogin(lMasterLogin) > 0)
                        {
                            Logger.Debug("New Session ID: " + lMasterLogin.SessionID);
                            lResponse.SessionID = lMasterLogin.SessionID;
                            lResponse.UserGUID  = lMasterLogin.UserGUID.ToString();
                            Logger.Debug("Inside UserDevice create");

                            if (CreateUserDevice(masterlogin, pLoginRequest) > 0)
                            {
                                if (!string.IsNullOrEmpty(lResponse.SessionID) && !string.IsNullOrEmpty(lResponse.UserGUID))
                                {
                                    DownloadUsers lDownloadUsers = DownloadUsers(lResponse.SessionID, new Guid(lResponse.UserGUID));
                                    if (lDownloadUsers != null && lDownloadUsers.UserRecords.Count > 0)
                                    {
                                        lResponse.UserRecord = lDownloadUsers.UserRecords[0];
                                    }
                                    else
                                    {
                                        lResponse.UserRecord = null;
                                    }
                                }
                                Logger.Debug("UserDevice record created for new Session ID: " + lMasterLogin.SessionID);
                            }
                            else
                            {
                                Logger.Error("Unable to craete UserDevice record for new Session ID: " + lMasterLogin.SessionID);
                                lResponse = null;
                            }
                        }
                        else
                        {
                            Logger.Error("Unable to craete MasterLogin record");
                            lResponse = null;
                        }
                        #endregion
                    }
                }
                else
                {
                    Logger.Error("Unable to find user record in  AspUser");
                    lResponse = null;
                }
                return(lResponse);
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                lResponse = null;
                //lResponse.SessionID = new WorkersInMotionDB().Database.Connection.ConnectionString + " Exception: " + ex.Message;
                return(lResponse);
            }
        }
Exemplo n.º 5
0
        //public DownloadUsers GetOrganization(string SessionID)
        //{
        //    IOrganizationRepository _IOrganizationRepository;
        //    _IOrganizationRepository = new OrganizationRepository(new WorkersInMotionDB());
        //    DownloadUsers lDownloadUsers = new DownloadUsers();

        //    SqlParameter[] sqlParam = new SqlParameter[2];
        //    sqlParam[0] = new SqlParameter("@pSessionID", SqlDbType.NVarChar);
        //    sqlParam[0].Value = SessionID;
        //    sqlParam[1] = new SqlParameter("@pErrorCode", SqlDbType.NVarChar, 200);
        //    sqlParam[1].Value = "";
        //    sqlParam[1].Direction = ParameterDirection.Output;
        //    _jmResponse.JobList = context.Database.SqlQuery<p_GetJobs_Result>("dbo.p_getjobs  @pSessionID,@pErrorCode=@pErrorCode output", sqlParam).ToList();
        //    return lDownloadUsers;
        //}



        public List<MCustomers> GetCustomers(Guid lOrganizationGUID)
        {
            DownloadUsers lresponse = new DownloadUsers();
            IPlaceRepository _IPlaceRepository;
            _IPlaceRepository = new PlaceRepository(new WorkersInMotionDB());
            IEnumerable<Place> lPlaces = _IPlaceRepository.GetPlaceByOrganizationGUID(lOrganizationGUID);
            return ConvertToMobileCustomer(lPlaces); ;
        }
Exemplo n.º 6
0
        public DownloadUsers DownloadUsers(string SessionID, Nullable<System.Guid> UserGUID = null)
        {
            DownloadUsers lresponse = new DownloadUsers();
            IUserRepository _IUserRepository;
            _IUserRepository = new UserRepository(new WorkersInMotionDB());

            lresponse.UserRecords = _IUserRepository.DownloadUsers(SessionID, UserGUID);
            return lresponse;
        }