コード例 #1
0
        public IActionResult CheckIn([FromBody] CheckInRequest request)
        {
            try
            {
                var facade   = new CheckInFacade();
                var response = facade.CheckIn(request);

                switch (response.Status)
                {
                case HttpStatusCode.OK:
                    return(Ok(response));

                case HttpStatusCode.BadRequest:
                    return(BadRequest(BuildBadRequestMessage(response)));

                case HttpStatusCode.NotFound:
                    return(NotFound());

                case HttpStatusCode.InternalServerError:
                    return(StatusCode(StatusCodes.Status500InternalServerError));
                }
                s_logger.Fatal("This code should be unreachable, unknown result has occured.");
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to check in.");
            }
            return(StatusCode(StatusCodes.Status500InternalServerError));
        }
コード例 #2
0
        public void CheckInNoUnit()
        {
            Nicknames nickname = new Nicknames()
            {
                NickName = AlphaNumericStringGenerator.GetString(10),
                Sid      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Nicknames.Add(nickname);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                SID = nickname.Sid
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.Status);
        }
コード例 #3
0
        public void CheckInNewStudentNoSID()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10)
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.Status);
        }
コード例 #4
0
ファイル: ActivityController.cs プロジェクト: DaniilPros/jxb
        public async Task CheckIn([FromBody] CheckInRequest checkInRequest)
        {
            var dActivity = _context.DActivities.Include(item => item.DUsers).FirstOrDefault(x => x.ActivityId == checkInRequest.ActivityId);
            var dUser     = dActivity.DUsers.FirstOrDefault(x => x.UserId == checkInRequest.UserId);

            if (dUser == null)
            {
                throw new NullReferenceException();
            }

            dUser.CheckInTime = DateTimeOffset.UtcNow;
            await _context.SaveChangesAsync();

            if (dActivity.DUsers.All(x => x.CheckInTime != default))
            {
                var userIds = dActivity.DUsers.Select(x => x.UserId).ToList();
                Task.Run(async() =>
                {
                    await Task.Delay(TimeSpan.FromMinutes(1));
                    var devices = _notificationManager.GetDevicesForTags(userIds);
                    foreach (var d in devices)
                    {
                        _notificationManager.SendMessage(d, _notificationManager.ConstructMessage("checkin"));
                    }
                });
            }
        }
コード例 #5
0
        public CheckInResponse CheckIn(CheckInRequest request)
        {
            var result = new CheckInResponse()
            {
                ResultMessage = "签到成功",
                Result        = ResultCode.Success
            };

            try
            {
                using (var con = new DbConnectionProvider(dbName).GetOpenConnection())
                {
                    var parms = new DynamicParameters();
                    parms.Add("P_UserID", request.UserID, DbType.Int32);

                    con.ExecuteNoneQuery("sp_CheckIn"
                                         , parms
                                         , CommandType.StoredProcedure);
                }
            }
            catch (Exception ex)
            {
                result.ResultMessage = "签到异常";
                result.Result        = ResultCode.Error;
                result.Errors        = new List <string>();
                result.Errors.Add(ex.Message);
                LogHelper.WriteErrorLog(ex);
            }
            return(result);
        }
コード例 #6
0
ファイル: MockWebService.cs プロジェクト: Redth/crisischeckin
		public async Task<CheckInResponse> CheckInAsync (CheckInRequest request)
		{
			await Task.Delay (2000);

			return new CheckInResponse {
				Succeeded = true,
				Result = true
			};
		}
コード例 #7
0
        public void ShouldAssertCheckinForVenueId()
        {
            FourSquareContext context = new FourSquareContext(username, password);

            var request = new CheckInRequest { VenueId = 9194686, IsPrivate = true };

            context.CheckIn(request, delegate(CheckInResponse response)
            {
                Assert.IsTrue(response.Id > 0);
            });
        }
コード例 #8
0
        public void CheckOutForced()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            CheckOutRequest coRequest = new CheckOutRequest()
            {
                ForcedCheckout = true
            };

            CheckOutResponse coResponse = facade.CheckOut(coRequest, response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, coResponse.Status);
            Assert.IsTrue(coResponse.Result);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == response.CheckInID);

                Assert.IsNotNull(checkOut);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkOut.CheckoutTime;
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);

                Assert.AreEqual(coRequest.ForcedCheckout, checkOut.ForcedCheckout);
            }
        }
コード例 #9
0
        public void CheckInExistingStudent()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            Nicknames nickname = new Nicknames()
            {
                NickName = AlphaNumericStringGenerator.GetString(10),
                Sid      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                context.Nicknames.Add(nickname);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID    = unit.UnitId,
                StudentID = nickname.StudentId
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkInHistory = context.Checkinhistory.FirstOrDefault(cih => cih.CheckInId == response.CheckInID);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkInHistory.CheckInTime;
                Assert.AreEqual(request.UnitID, checkInHistory.UnitId);
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);
                Assert.AreEqual(request.StudentID, checkInHistory.StudentId);
            }
        }
コード例 #10
0
        public void ShouldAssertCheckinForLatLongAndVenueName()
        {
            FourSquareContext context = new FourSquareContext(username, password);

            var request = new CheckInRequest
            {
                Venue = "Barista",
                Latitude = "23.776516914367676",
                Longitude = "90.41707277297974",
                IsPrivate = true,
            };

            context.CheckIn(request, delegate(CheckInResponse response)
            {
                Assert.IsTrue(response.Id > 0);
            });
        }
コード例 #11
0
        /// <summary>
        /// Checks a new item into the database
        /// </summary>
        /// <param name="request">Request containing the unit id of the check in item</param>
        /// <returns>The id of the new check in item</returns>
        public int CheckIn(CheckInRequest request)
        {
            int id = 0;

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkIn = new Checkinhistory()
                {
                    UnitId      = request.UnitID,
                    CheckInTime = DateTime.Now,
                    StudentId   = request.StudentID
                };

                context.Checkinhistory.Add(checkIn);
                context.SaveChanges();

                id = checkIn.CheckInId;
            }
            return(id);
        }
コード例 #12
0
        //收货
        /// <summary>
        /// CheckInRequest 中传入待更新的List<PurchasingOrderDetail>对象包含ID和ActualCount值
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <IActionResult> CheckIn([FromBody] CheckInRequest request)
        {
            try
            {
                if (request == null)
                {
                    throw new ArgumentNullException();
                }
                var response = await _serviceProvider.HandlerAsync(request);

                return(new JsonResult(response));
            }
            catch (Exception ex)
            {
                return(new JsonResult(new ResponseBase()
                {
                    Result = -1, ResultInfo = ex.Message
                }));
            }
        }
        void ListenerDataReceived(object listener, byte[] data)
        {
            var parser = CardParserFactory.GetCardParser();
            var actuator = DoorActuatorFactory.GetDoorActuator();
            var card = parser.ParseCard(data);

            if (card != null)
            {
                var cr = new CheckInRequest();
                cr.AccessCardId = card;
                try
                {
                    var checkInResult = API.Connector.Data.Spaces.Checkins.Checkin(cr, Settings.BaseUrl);

                    if (checkInResult.WasSuccessful)
                    {
                        Logger.WarnFormat("Valid check-in card: " + cr.AccessCardId);
                        actuator.Actuate();
                    }
                    else
                    {
                        Logger.WarnFormat("Invalid check-in: " + cr.AccessCardId + ". Result: " + checkInResult.Message);
                    }
                }
                catch (API.Connector.Exceptions.TimeoutException ex)
                {
                    //Server busy, use cached credentials
                    Logger.WarnFormat("SERVER BUSY: " + cr.AccessCardId);

                    if(Settings.AllowAccessOnTimeout) actuator.Actuate();
                }
                catch (Exception ex)
                {
                    //TODO: notify by email
                    Logger.ErrorFormat("ERROR. Card: {0}: {1}", cr.AccessCardId, ex);
                    if (Settings.AllowOnError) actuator.Actuate();
                }
                
            }

        }
コード例 #14
0
        public TestDataCheckIn AddCheckIn(int?studentID = null, string nickname = "", string sID = "", int?unitID = null)
        {
            var request = new CheckInRequest();

            if (studentID != null)
            {
                request.StudentID = studentID;
            }
            if (nickname != null)
            {
                if (nickname == "" && PopulateEmptyStrings)
                {
                    request.Nickname = AlphaNumericStringGenerator.GetString(20);
                }
                else
                {
                    request.Nickname = nickname;
                }
            }
            if (sID != null)
            {
                if (sID == "" && PopulateEmptyStrings)
                {
                    request.SID = AlphaNumericStringGenerator.GetStudentIDString();
                }
                else
                {
                    request.SID = sID;
                }
            }
            if (unitID != null)
            {
                request.UnitID = (int)unitID;
            }

            var response = CheckInFacade.CheckIn(request);

            TestDataCheckIn data = new TestDataCheckIn(request, response);

            return(data);
        }
コード例 #15
0
 public virtual async Task <CheckInResponse> CheckInAsync(Agent agent, CheckInRequest checkInRequest)
 {
     return(await AgentConnect.CheckInAsync(agent, checkInRequest));
 }
コード例 #16
0
 public virtual CheckInResponse CheckIn(Agent agent, CheckInRequest checkInRequest)
 {
     return(AgentConnect.CheckIn(agent, checkInRequest));
 }
コード例 #17
0
 public static ModifyReply ModifyPersonContractIsCheckInByIdList(CheckInRequest model)
 {
     return(_client.ModifyPersonContractIsCheckInByIdList(model));
 }
コード例 #18
0
 public TestDataCheckIn(CheckInRequest request, CheckInResponse response)
 {
     Request  = request;
     Response = response;
 }
コード例 #19
0
        public void CheckOutWithQueueItems()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            Topic topic = new Topic()
            {
                Name      = AlphaNumericStringGenerator.GetString(10),
                IsDeleted = false
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                topic.UnitId = unit.UnitId;
                context.Topic.Add(topic);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            Queueitem queueitem = new Queueitem()
            {
                StudentId   = response.StudentID,
                TopicId     = topic.TopicId,
                Description = "Check In Unit Test",
                TimeAdded   = DateTime.Now
            };



            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Queueitem.Add(queueitem);

                Checkinqueueitem checkinqueueitem = new Checkinqueueitem()
                {
                    CheckInId   = response.CheckInID,
                    QueueItemId = queueitem.ItemId
                };
                context.Checkinqueueitem.Add(checkinqueueitem);

                context.SaveChanges();
            }

            CheckOutRequest coRequest = new CheckOutRequest()
            {
                ForcedCheckout = false
            };

            CheckOutResponse coResponse = facade.CheckOut(coRequest, response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, coResponse.Status);
            Assert.IsTrue(coResponse.Result);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == response.CheckInID);
                Queueitem      item     = context.Queueitem.FirstOrDefault(qi => qi.ItemId == queueitem.ItemId);

                Assert.IsNotNull(checkOut);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkOut.CheckoutTime;
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);

                Assert.AreEqual(coRequest.ForcedCheckout, checkOut.ForcedCheckout);

                Assert.IsNotNull(item);

                var baseQueueTime   = DateTime.Now.AddMinutes(-1);
                var removeQueueTime = item.TimeRemoved;
                var queueTimeDiff   = baseQueueTime.CompareTo(removeQueueTime);
                Assert.IsTrue(queueTimeDiff == -1);
            }
        }
コード例 #20
0
ファイル: JxbClient.cs プロジェクト: DaniilPros/jxb
 public async Task CheckIn(CheckInRequest checkInRequest)
 {
     var content = new StringContent(JsonConvert.SerializeObject(checkInRequest), Encoding.UTF8, "application/json");
     await _httpClient.PostAsync(_url + $"/api/Activity/CheckIn", content);
 }
コード例 #21
0
        public IActionResult ModifyPersonContractIsCheckInByIdList([FromBody] CheckInRequest model)
        {
            var result = CCServiceClient.ModifyPersonContractIsCheckInByIdList(model);

            return(Ok(result));
        }
コード例 #22
0
        private void SendCheckInRequest(CheckInRequest request)
        {
            byte[] body = request.Serialize();

            channel.BasicPublish("", queues[Queues.PassengerToCheckInQueue], null, body);
        }
コード例 #23
0
 public CheckInResponse CheckIn(CheckInRequest request)
 {
     return(CourseBookingManager.GetInstance().CheckIn(request));
 }
コード例 #24
0
        /// <summary>
        /// This method is used to check in into the helpdesk system
        /// </summary>
        /// <param name="request">The request containing the specified UnitID</param>
        /// <returns>A response indicating success or failure</returns>
        public CheckInResponse CheckIn(CheckInRequest request)
        {
            CheckInResponse response = new CheckInResponse();

            try
            {
                response = (CheckInResponse)request.CheckValidation(response);

                if (response.Status == HttpStatusCode.BadRequest)
                {
                    return(response);
                }

                StudentFacade studentFacade = new StudentFacade();

                if (!request.StudentID.HasValue)
                {
                    if (studentFacade.GetStudentByNickname(request.Nickname).Status != HttpStatusCode.NotFound)
                    {
                        response.Status = HttpStatusCode.BadRequest;
                        return(response);
                    }

                    AddStudentRequest addStudentRequest = new AddStudentRequest()
                    {
                        SID      = request.SID,
                        Nickname = request.Nickname
                    };

                    AddStudentResponse addStudentResponse = studentFacade.AddStudentNickname(addStudentRequest);

                    request.StudentID = addStudentResponse.StudentID;
                }

                using (helpdesksystemContext context = new helpdesksystemContext())
                {
                    if (context.Nicknames.FirstOrDefault(n => n.StudentId == request.StudentID) == null)
                    {
                        throw new NotFoundException("No student found for id " + request.StudentID);
                    }
                }

                CheckInDataLayer dataLayer = new CheckInDataLayer();
                int checkInID = dataLayer.CheckIn(request);

                response.StudentID = request.StudentID.Value;
                response.CheckInID = checkInID;
                response.Status    = HttpStatusCode.OK;
            }
            catch (NotFoundException ex)
            {
                s_logger.Warn(ex, "No student found for id " + request.SID);
                response.Status = HttpStatusCode.NotFound;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "No student found for id " + request.SID));
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to check in");
                response.Status = HttpStatusCode.InternalServerError;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to check in"));
            }
            return(response);
        }