Example #1
0
        public void EntranceExcute()
        {
            var ping      = new Ping();
            var pingReply = ping.Send("172.16.192.241");

            if (pingReply != null && pingReply.Status != IPStatus.Success)
            {
                return;
            }
            Entrance entrance37477 = new Entrance("172.16.192.241", 37477);
            Entrance entrance37647 = new Entrance("172.16.192.242", 37647);


            List <RecordModel> temporaryCardModel = TemporaryCardRepository.Entities.ToList()
                                                    .Select(a => new RecordModel
            {
                Card    = a.Card.PadLeft(10, '0'),
                EmpNo   = a.EmpNo,
                EmpName = a.EmpName
            }).ToList();
            List <RecordModel> recordModels = HrUserRespority.Cards().ToList();

            recordModels = recordModels.Concat(temporaryCardModel).ToList();

            var models = entrance37477.Records().Concat(entrance37647.Records()).ToList();

            foreach (var model in models)
            {
                model.DoorIo = DoorInResoler(model.BarCode.Substring(2, 4) + model.BarCode.Substring(17, 1));
            }
            var result = from m in models
                         join r in recordModels
                         on m.Card equals r.Card into os
                         from r2 in os.DefaultIfEmpty(
                new RecordModel {
                Card = null, EmpName = null, EmpNo = null
            }
                )
                         select new SwipeCard
            {
                Card       = m.Card,
                EmpNo      = r2.EmpNo,
                EmpName    = r2.EmpName,
                BarCode    = m.BarCode,
                DoorIo     = m.DoorIo,
                SwipdeDate = m.SwipdeDate,
                SwipeTime  = m.SwipeTime
            };
            var swipeCards = result.DistinctBy(b => new { b.Card, b.EmpNo, b.EmpName, b.BarCode, b.DoorIo, b.SwipdeDate, b.SwipeTime })
                             .OrderBy(m => m.SwipdeDate).ToList();

            List <string>    ignoreEmpNos = IgnoreCardRepository.Entities.Select(m => m.EmpNo).ToList();
            List <SwipeCard> ignoreCards  = new List <SwipeCard>();

            foreach (var swipeCard in swipeCards)
            {
                if (!ignoreEmpNos.Contains(swipeCard.EmpNo))
                {
                    ignoreCards.Add(swipeCard);
                }
            }

            //保存刷卡数据到数据库
            SwipeCardRepository.BulkInsertAll(ignoreCards);
            //重置时间
            DateTime dt = DateTime.Now;

            entrance37477.SetTime(dt);
            entrance37647.SetTime(dt);
            //插入权限
            long[] cards = recordModels.Select(r => r.Card.CastTo <long>()).ToArray();
            var    doors = new Int64[] { 1, 2 };

            entrance37477.PrivalegeAddRange(cards, doors);
            entrance37647.PrivalegeAddRange(cards, doors);
            //清空记录
            entrance37477.RecordClear();
            entrance37647.RecordClear();
        }
Example #2
0
 /// <summary>
 /// 删除部门信息
 /// </summary>
 /// <param name="ids">要删除的部门信息编号</param>
 /// <returns>业务操作结果</returns>
 public OperationResult DeleteSwipeCards(params int[] ids)
 {
     return(SwipeCardRepository.Delete(ids));
 }
Example #3
0
 /// <summary>
 /// 添加部门信息
 /// </summary>
 /// <param name="dtos">要添加的部门信息DTO信息</param>
 /// <returns>业务操作结果</returns>
 public OperationResult AddSwipeCards(params SwipeCardDto[] dtos)
 {
     return(SwipeCardRepository.Insert(dtos));
 }
Example #4
0
 /// <summary>
 /// 更新部门信息
 /// </summary>
 /// <param name="dtos">包含更新信息的部门DTO信息</param>
 /// <returns>业务操作结果</returns>
 public OperationResult EditSwipeCards(params SwipeCardDto[] dtos)
 {
     return(SwipeCardRepository.Update(dtos));
 }
Example #5
0
 /// <summary>
 /// 检查部门信息是否存在
 /// </summary>
 /// <param name="predicate">检查谓语表达式</param>
 /// <param name="id">更新的部门信息编号</param>
 /// <returns>部门信息是否存在</returns>
 public bool CheckSwipeCardExists(Expression <Func <SwipeCard, bool> > predicate, int id = 0)
 {
     return(SwipeCardRepository.CheckExists(predicate, id));
 }