コード例 #1
0
ファイル: RoomUserService.cs プロジェクト: dahaideyu/api
        //public RoomUserDto GetByPersonIdAndRoomId(string personId, string roomId)
        //{
        //    if (string.IsNullOrEmpty(personId))
        //        return null;

        //    if (string.IsNullOrEmpty(roomId))
        //        return null;

        //    var query = from p in _roomUserRepository.Table
        //                orderby p.CreateDate
        //                where !p.Deleted &&
        //                p.PersonUUID == personId && p.RoomUUID==roomId
        //                select p;
        //    var entity = query.FirstOrDefault();

        //    return entity.MapTo<RoomUserDto>();
        //}


        /// <summary>
        /// 添加用户入住信息
        /// </summary>
        /// <param name="config"></param>
        public void AddOrUpdate(RoomUserDto model)
        {
            RoomUserEntity entity;

            if (model.IsAdd)
            {
                entity             = model.MapTo <RoomUserEntity>();
                entity.CreateDate  = DateTime.Now;
                entity.Deleted     = false;
                entity.SyncStatus  = false;
                entity.SyncVersion = 0;
                _roomUserRepository.Insert(entity);
            }
            else
            {
                entity                = _roomUserRepository.GetById(model.RoomUserUUID);
                entity.RoomUUID       = model.RoomUUID;
                entity.LiveDate       = model.LiveDate;
                entity.LeaveDate      = model.LeaveDate;
                entity.FamilyRelation = model.FamilyRelation;
                entity.Status         = model.Status;
                entity.SyncStatus     = false;
                _roomUserRepository.Update(entity);
            }

            var person = _personRepository.GetById(entity.PersonUUID);

            person.IsLived = model.Status == 1 ? 1 : 2;
            _personRepository.Update(person);

            Synchronization(entity.RoomUserUUID);
        }
コード例 #2
0
        public async Task <RoomUserDto> PutAsync([FromBody] RoomUserDto roomUser)
        {
            roomUser = _chatApplicationService.UpdateRoomUser(roomUser);

            await _chatHubConnection.StartAsync();

            await _chatHubConnection.InvokeAsync("ListUsersByRoomIdServer", roomUser.RoomId);

            return(roomUser);
        }
コード例 #3
0
        public RoomUserDto Update(RoomUserDto roomUser)
        {
            RoomUser roomUserToUpdate = _context.RoomUsers.Where(w => w.RoomId == roomUser.RoomId && w.UserId == roomUser.UserId).FirstOrDefault();

            roomUserToUpdate.Status = roomUser.Status;
            _context.RoomUsers.Update(roomUserToUpdate);
            _context.SaveChanges();

            roomUser.RoomUserId = roomUserToUpdate.RoomUserId;
            return(roomUser);
        }
コード例 #4
0
ファイル: RoomUserController.cs プロジェクト: dahaideyu/api
        public ResponseModel CheckOut([FromBody] RoomUserDto model)
        {
            var orgiModel = roomUserService.GetByPersonId(model.PersonUUID);

            if (orgiModel == null)
            {
                return(new ResponseModel()
                {
                    code = 1, msg = "未找到入住信息!"
                });
            }

            roomUserService.AddOrUpdate(model);
            return(new ResponseModel());
        }
コード例 #5
0
        public RoomUserDto Insert(RoomUserDto roomUser)
        {
            RoomUser newRoomUser = new RoomUser
            {
                RoomId = roomUser.RoomId,
                UserId = roomUser.UserId,
                Status = roomUser.Status
            };

            _context.RoomUsers.Add(newRoomUser);
            _context.SaveChanges();

            roomUser.RoomUserId = newRoomUser.RoomUserId;
            return(roomUser);
        }
コード例 #6
0
        public RoomUserDto GetByRoomIdAndUserId(int roomId, int userId)
        {
            var query = from ru in _context.RoomUsers
                        where ru.RoomId == roomId && ru.UserId == userId
                        select new RoomUserDto
            {
                RoomUserId = ru.RoomUserId,
                RoomId     = ru.RoomId,
                UserId     = ru.UserId,
                Status     = ru.Status
            };
            RoomUserDto roomUser = query.FirstOrDefault();

            return(roomUser);
        }
コード例 #7
0
ファイル: RoomUserController.cs プロジェクト: dahaideyu/api
        public ResponseModel CheckIn([FromBody] RoomUserDto model)
        {
            var orgiModel = roomUserService.GetByPersonId(model.PersonUUID);

            if (orgiModel != null && orgiModel.Status == 1)
            {
                // 两次的入住的房间不同
                if (orgiModel.RoomUUID != model.RoomUUID)
                {
                    // var cardAuthList = roomUserCardService.GetUserCardsByUserID(orgiModel.RoomUserUUID);
                    var cardIds      = roomUserCardService.GetUserCardsByUserID(orgiModel.RoomUserUUID);
                    var cardAuthList = cardAuthService.GetCardAuthList(cardIds);
                    if (cardAuthList != null && cardAuthList.Count > 0)
                    {
                        return(new ResponseModel()
                        {
                            code = 1, msg = "请先销权后在进行入住!"
                        });
                    }
                }

                ///更新卡的时间
                var updateCardIds = roomUserCardService.GetUserCardsByUserID(orgiModel.RoomUserUUID);
                if (updateCardIds != null)
                {
                    var updateCardIdsList = updateCardIds.ToList();
                    var entitys           = cardService.GetCardByIds(updateCardIdsList);
                    foreach (var item in entitys)
                    {
                        item.ValidFrom = model.LiveDate;
                        item.ValidTo   = model.LeaveDate;
                    }
                    cardService.UpdateList(entitys);
                }
            }

            roomUserService.AddOrUpdate(model);
            return(new ResponseModel());
        }
コード例 #8
0
        public RoomUserDto GetRoomUserByRoomIdAndUserId(int roomId, int userId)
        {
            RoomUserDto roomUser = _roomUserRepository.GetByRoomIdAndUserId(roomId, userId);

            return(roomUser);
        }
コード例 #9
0
 public RoomUserDto UpdateRoomUser(RoomUserDto roomUser)
 {
     return(_roomUserRepository.Update(roomUser));
 }
コード例 #10
0
 public RoomUserDto InsertRoomUser(RoomUserDto roomUser)
 {
     return(_roomUserRepository.Insert(roomUser));
 }