コード例 #1
0
        private async Task AddScannedStudent(ScannerInput scannerInput, UserSignalR currentUser)
        {
            var card = currentUser.Ssm.AddScannedStudenToFlight(scannerInput, Convert.ToInt32(currentUser.UserId), currentUser.SchoolId);

            if (card == null)
            {
                await this.Clients.Client(Context.ConnectionId).InvokeAsync("FlightNotification", currentUser.Ssm.Status);
            }
            else
            {
                if (currentUser.Ssm.CloseLaneStatus != "")
                {
                    await this.Clients.Client(Context.ConnectionId).InvokeAsync("FlightNotification", currentUser.Ssm.CloseLaneStatus);
                }
                await this.Clients.Client(Context.ConnectionId).InvokeAsync("CardData", card);

                var classStudent = new SchoolClassroomManager();
                var classCard    = classStudent.GetClassroomCard(card.CardId);
                classCard.FlightId     = card.FligthId;
                classCard.FlightNumber = card.FlightNumber;
                await this.Clients.Group("Teacher" + currentUser.SchoolId.ToString()).InvokeAsync("GetScannedCard", classCard);

                var closedflightId = currentUser.Ssm.CloseFlightId;
                if (closedflightId != 0)
                {
                    await this.Clients.Group("Teacher" + currentUser.SchoolId.ToString()).InvokeAsync("StatusFlight", new FlightModel {
                        FlightId = closedflightId, Status = "Closed"
                    });
                }
            }
            // await this.Clients.Group(currentUser.UserGroup).InvokeAsync("CurrentFlight", card.FlightNumber);
        }
コード例 #2
0
        // for classroomTeacher change switch classroom
        public async Task LeaveClassroom(int cardId, bool status)
        {
            var currentUser = Users.Where(p => p.ConnectionId == Context.ConnectionId).FirstOrDefault();

            if (currentUser != null)
            {
                var changedCard = new SchoolClassroomManager().LeaveClassroomCard(cardId, status);
                await this.Clients.Group(currentUser.UserGroup).InvokeAsync("LeaveClassroom", changedCard);
            }
        }
コード例 #3
0
        // for dismissalTeacher change switch hallway
        public async Task LeaveHallway(int cardId, bool status)
        {
            var currentUser = Users.Where(p => p.ConnectionId == Context.ConnectionId).FirstOrDefault();

            if (currentUser != null)
            {
                var changedCard = new SchoolClassroomManager().LeaveHallwayCard(cardId, status);
                if (changedCard != null && changedCard.CardId == 0)
                {
                    //delete this flight in client
                    await this.Clients.Group("Teacher" + currentUser.SchoolId.ToString()).InvokeAsync("StatusFlight", new FlightModel {
                        FlightId = changedCard.FlightId, Status = "Finished"
                    });
                }
                else
                {
                    await this.Clients.Group(currentUser.UserGroup).InvokeAsync("LeaveHallway", changedCard);
                }
            }
        }
コード例 #4
0
        // only for single scanner
        public async Task <string> ChangeLane(List <int> cardId, int laneId)
        {
            var currentUser = Users.Where(p => p.ConnectionId == Context.ConnectionId).FirstOrDefault();
            var result      = currentUser.Ssm.ChangeLane(cardId, laneId, currentUser.UserId);
            var flightData  = currentUser.Ssm.ScannerFlights.FirstOrDefault(l => l.LaneId == laneId);

            if (result != null)
            {
                var laneName = currentUser.Ssm.Lanes.FirstOrDefault(l => l.Id == laneId).Name;
                await this.Clients.Client(Context.ConnectionId).InvokeAsync("FlightNotification", "You moved " + result + " to the " + laneName + " Lane");

                var classStudent = new SchoolClassroomManager();
                foreach (var item in cardId)
                {
                    var classCard = classStudent.GetClassroomCard(item);
                    classCard.FlightId     = flightData.FlightId;
                    classCard.FlightNumber = flightData.FlightNumber;
                    await this.Clients.Group("Teacher" + currentUser.SchoolId.ToString()).InvokeAsync("ChangedLane", classCard);
                }
            }
            return(flightData == null ? null : flightData.FlightNumber.ToString());
        }