Пример #1
0
        private bool CheckOrder(string order, out List <OrderSystemDetail> orderDetails)
        {
            bool result = false;

            orderDetails = null;
            try
            {
                //获取订单数据
                Dictionary <string, string> orderParam = new Dictionary <string, string>();
                orderParam.Add(ORDER_CODE_PARAM, order);
                string strOrderInfo = WebInfo.PostPageInfo(ORDER_URL, orderParam);
                //订单解码
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List <OrderSystemDetail>));
                MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(strOrderInfo));
                orderDetails = (List <OrderSystemDetail>)serializer.ReadObject(stream);
                if (orderDetails.Count < 1)
                {
                    return(result);
                }
                //校验车间权限
                OrderSystemDetail orderItem = orderDetails[0];
                FactoryRoom       room      = db.FactoryRoom.FirstOrDefault(item => item.RoomNumber == orderItem.ocrcode);
                if (room == null)
                {
                    return(result);
                }
                int          userId       = Convert.ToInt32(Session["UserID"]);
                UsersInRooms tempUserRoom = db.UsersInRooms.FirstOrDefault(item => item.RoomId == room.RoomID && item.UserId == userId);
                if (tempUserRoom == null)
                {
                    return(result);
                }

                orderItem.roomName = room.RoomName;
                orderItem.roomId   = room.RoomID;

                result = true;
            }
            catch { }

            return(result);
        }
Пример #2
0
        public ActionResult SetStaffRole()
        {
            string[]      roleArray = Enum.GetNames(typeof(enumUserRole));
            string        tempStatus, userName = Request.Form["number"];
            List <string> addRoles = new List <string>(), removeRoles = new List <string>();
            List <int>    addRooms = new List <int> (), removeRooms = new List <int> ();
            string        roomStart    = "roomInfo-";
            int           roomStartLen = roomStart.Length;
            int           userId       = WebSecurity.GetUserId(userName);

            foreach (string item in roleArray)
            {
                tempStatus = Request.Form[item];
                if (tempStatus == null)
                {
                    continue;
                }
                else if (tempStatus.IndexOf(",") > 0 && !Roles.IsUserInRole(userName, item))
                {
                    addRoles.Add(item);
                }
                else if (tempStatus == "false" && Roles.IsUserInRole(userName, item))
                {
                    removeRoles.Add(item);
                }
            }
            if (addRoles.Count > 0)
            {
                Roles.AddUserToRoles(userName, addRoles.ToArray());
            }
            if (removeRoles.Count > 0)
            {
                Roles.RemoveUserFromRoles(userName, removeRoles.ToArray());
            }
            //车间权限
            IEnumerable <UsersInRooms> userRooms = from item in db.UsersInRooms
                                                   where item.UserId == userId
                                                   select item;

            List <int> roomList = new List <int> ();

            foreach (UsersInRooms item in userRooms)
            {
                roomList.Add(item.RoomId);
            }
            foreach (string item in Request.Form.Keys)
            {
                if (!item.StartsWith(roomStart))
                {
                    continue;
                }
                else
                {
                    int roomId = int.Parse(item.Substring(roomStartLen));
                    if (Request.Form[item].IndexOf(",") > 0 && !roomList.Contains(roomId))
                    {
                        addRooms.Add(roomId);
                    }
                    else if (Request.Form[item] == "false" && roomList.Contains(roomId))
                    {
                        removeRooms.Add(roomId);
                    }
                }
            }
            if (addRooms.Count > 0)
            {
                foreach (int item in addRooms)
                {
                    db.UsersInRooms.Add(new UsersInRooms()
                    {
                        RoomId = item, UserId = userId
                    });
                }
            }
            if (removeRooms.Count > 0)
            {
                foreach (int item in removeRooms)
                {
                    UsersInRooms tempUserRoom = db.UsersInRooms.Single(tempR => tempR.RoomId == item && tempR.UserId == userId);
                    db.UsersInRooms.Remove(tempUserRoom);
                }
            }
            db.SaveChanges();

            return(RedirectToAction("RoleIndex", new { alert = "授权成功" }));
        }