Beispiel #1
0
        public IEnumerable <string> GetUserViewRoleIds(string userId)
        {
            List <string> result = new List <string>();

            SessionManager.DoWork(session =>
            {
                ApplicationUser applicationUser = AuthenticationHelper.GetUserById(new Guid(HttpContext.Current.User.Identity.GetUserId()), HttpContext.Current.User.Identity.Name);
                Staff staff = ControllerHelpers.GetCurrentStaff(session);
                List <int> AgentObjectTypeIds = new List <int>();

                if (applicationUser.WebGroupId == "00000000-0000-0000-0000-000000000000" || applicationUser.WebGroupId == "00000000-0000-0000-0000-000000000001")
                {
                    AgentObjectTypeIds.Add(4);
                }
                if (staff != null)
                {
                    if (staff.StaffInfo.Position == null)
                    {
                        if (staff.StaffInfo.StaffType.ManageCode == "3")
                        {
                            AgentObjectTypeIds.Add(2); //Nhân viên
                        }
                        else
                        {
                            AgentObjectTypeIds.Add(1); //Giảng viên
                        }
                    }
                    else
                    {
                        if (!applicationUser.IsKPIs && staff.StaffInfo.Position.AgentObjectType != null)
                        {
                            AgentObjectTypeIds.Add(staff.StaffInfo.Position.AgentObjectType.Id);
                        }
                        else
                        {
                            AgentObjectTypeIds.Add(Convert.ToInt32(applicationUser.AgentObjectTypeId));
                        }
                    }
                    //if (!SessionHelper.Data<bool>(SessionKey.IsKPIs) && staff.StaffInfo.AgentObjects.Count > 1)
                    //{
                    //    foreach(AgentObject ab in staff.StaffInfo.AgentObjects)
                    //    {
                    //        if(!AgentObjectTypeIds.Any(at=>at==ab.AgentObjectType.Id))
                    //        AgentObjectTypeIds.Add(ab.AgentObjectType.Id);
                    //    }
                    //}

                    //foreach(int aId in AgentObjectTypeIds)
                    //{
                    //    AgentObjectType agt = session.Query<AgentObjectType>().SingleOrDefault(a => a.Id == aId);
                    //    if (agt != null)
                    //        result.AddRange(agt.Roles.Select(r => r.Id).ToList());
                    //}
                }
            });
            return(result);
        }
Beispiel #2
0
        public ActionResult GetUserSessionInfo()
        {
            ApplicationUser result        = new ApplicationUser();
            string          userName      = User.Identity.Name;
            string          currentUserId = User.Identity.GetUserId();

            if (currentUserId != null)
            {
                result = AuthenticationHelper.GetUserById(new Guid(currentUserId), userName);
            }


            //Dictionary<string, object> result = new Dictionary<string, object>();


            //result["UserId"] = Session[SessionKey.UserId.ToString()];
            //result["ThongTinNhanVien"] = Session[SessionKey.ThongTinNhanVien.ToString()];
            //result["UserName"] = Session[SessionKey.UserName.ToString()];
            //result["HoVaTen"] = Session[SessionKey.HoVaTen.ToString()];
            //result["WebGroupId"] = Session[SessionKey.WebGroupId.ToString()];
            return(result.ToJSON());
        }
        //public int GetUserAgentObjectTypeId()
        //{
        //    int AgentObjectTypeId = -1;
        //    SessionManager.DoWork(session =>
        //    {
        //        Guid staffId = new Guid(AuthenticationHelper.GetUserById(new Guid(User.Identity.GetUserId()), User.Identity.Name).Id);
        //        if (staffId != Guid.Empty)
        //        {
        //            Staff staff = session.Query<Staff>().SingleOrDefault(a => a.Id == staffId);
        //            if (staff.StaffInfo.Position == null)
        //            {
        //                if (staff.StaffInfo.StaffType.ManageCode == "3")
        //                    AgentObjectTypeId = 2; //Nhân viên
        //                else
        //                    AgentObjectTypeId = 1; //Giảng viên
        //            }
        //            else
        //            {
        //                AgentObjectTypeId = staff.StaffInfo.Position.AgentObjectType.Id;
        //            }
        //        }

        //    });
        //    return AgentObjectTypeId;
        //}
        public int GetUserAgentObjectTypeId()
        {
            int AgentObjectTypeId = -1;

            SessionManager.DoWork(session =>
            {
                Guid staffId = Guid.Empty;
                if (AuthenticationHelper.GetUserById(new Guid(User.Identity.GetUserId()), User.Identity.Name).Id != null)
                {
                    staffId = new Guid(AuthenticationHelper.GetUserById(new Guid(User.Identity.GetUserId()), User.Identity.Name).Id);
                }
                //Trường hợp là user không ủy quyền
                if (staffId != Guid.Empty)
                {
                    Staff staff = session.Query <Staff>().SingleOrDefault(a => a.Id == staffId);
                    //Trường hợp thuần không kiêm nhiệm
                    if (staff.StaffInfo.AgentObjects.Count <= 1)
                    {
                        if (staff.StaffInfo.Position == null)
                        {
                            if (staff.StaffInfo.StaffType.ManageCode == "3")
                            {
                                AgentObjectTypeId = 2; //Nhân viên
                            }
                            else
                            {
                                AgentObjectTypeId = 1; //Giảng viên
                            }
                        }
                        else
                        {
                            AgentObjectTypeId = staff.StaffInfo.Position.AgentObjectType.Id;
                        }
                    }
                    else
                    {
                        bool all      = false;
                        bool semester = false;
                        bool month    = false;
                        //Lấy danh sách đối tượng của user
                        all      = staff.StaffInfo.AgentObjects.Any(ao => ao.AgentObjectType.Id == 3 || ao.AgentObjectType.Id == 4 || ao.AgentObjectType.Id == 5 || ao.AgentObjectType.Id == 6);
                        semester = staff.StaffInfo.AgentObjects.Any(ao => ao.AgentObjectType.Id == 1 || ao.AgentObjectType.Id == 7 || ao.AgentObjectType.Id == 8 || ao.AgentObjectType.Id == 9);
                        month    = staff.StaffInfo.AgentObjects.Any(ao => ao.AgentObjectType.Id == 2);
                        //Cả 3 loại kế hoạch
                        if (all == true)
                        {
                            AgentObjectTypeId = 100;
                        }
                        else
                        //Chỉ hk, tháng
                        if (semester == true && month == true)
                        {
                            AgentObjectTypeId = 99;
                        }
                        else
                        //Chỉ hk
                        if (semester == true && month == false)
                        {
                            AgentObjectTypeId = 98;
                        }
                        else
                        //Chỉ tháng
                        if (semester == false && month == true)
                        {
                            AgentObjectTypeId = 97;
                        }
                    }
                }

                //Trường hợp user ủy quyền không có thông tin nhân viên, gán staff là Trưởng đơn vị
                else
                {
                    Staff staff = ControllerHelpers.GetCurrentStaff(session);
                    //Trường hợp thuần không kiêm nhiệm
                    if (staff.StaffInfo.AgentObjects.Count <= 1)
                    {
                        if (staff.StaffInfo.Position == null)
                        {
                            if (staff.StaffInfo.StaffType.ManageCode == "3")
                            {
                                AgentObjectTypeId = 2; //Nhân viên
                            }
                            else
                            {
                                AgentObjectTypeId = 1; //Giảng viên
                            }
                        }
                        else
                        {
                            AgentObjectTypeId = staff.StaffInfo.Position.AgentObjectType.Id;
                        }
                    }
                    else
                    {
                        bool all      = false;
                        bool semester = false;
                        bool month    = false;
                        //Lấy danh sách đối tượng của user
                        all      = staff.StaffInfo.AgentObjects.Any(ao => ao.AgentObjectType.Id == 3 || ao.AgentObjectType.Id == 4 || ao.AgentObjectType.Id == 5 || ao.AgentObjectType.Id == 6);
                        semester = staff.StaffInfo.AgentObjects.Any(ao => ao.AgentObjectType.Id == 1 || ao.AgentObjectType.Id == 7 || ao.AgentObjectType.Id == 8 || ao.AgentObjectType.Id == 9);
                        month    = staff.StaffInfo.AgentObjects.Any(ao => ao.AgentObjectType.Id == 2);
                        //Cả 3 loại kế hoạch
                        if (all == true)
                        {
                            AgentObjectTypeId = 100;
                        }
                        else
                        //Chỉ hk, tháng
                        if (semester == true && month == true)
                        {
                            AgentObjectTypeId = 99;
                        }
                        else
                        //Chỉ hk
                        if (semester == true && month == false)
                        {
                            AgentObjectTypeId = 98;
                        }
                        else
                        //Chỉ tháng
                        if (semester == false && month == true)
                        {
                            AgentObjectTypeId = 97;
                        }
                    }
                }
            });
            return(AgentObjectTypeId);
        }