Пример #1
0
        private static LoginResult LoginFlowRegular()
        {
            SelectPerson:
            //person            
            var personDlg = new LoginPerson(false);
            personDlg.ShowDialog();

            if (personDlg.SelectedPerson == null)
                return null;

            //discussion
            var discussionDlg = new LoginDiscussionDlg(personDlg.SelectedPerson);
            discussionDlg.ShowDialog();

            if (discussionDlg.BackClicked)
                goto SelectPerson;

            if (discussionDlg.SelectedDiscussion == null)
            {
                MsgParticipantsShouldSelectDiscussion();
                return null;
            }

            var res = new LoginResult();

            //build result           
            if (discussionDlg.SelectedDiscussion != LoginDiscussionDlg.DummyDiscussion)
                res.discussion = discussionDlg.SelectedDiscussion;

            res.person = personDlg.SelectedPerson;

            return res;
        }
Пример #2
0
        LoginResult testLoginStub()
        {
            var loginRes = new LoginResult();        
            loginRes.discussion = DbCtx.Get().Discussion.FirstOrDefault(d0=>d0.Subject.StartsWith("d-editor"));
            loginRes.person = DbCtx.Get().Person.FirstOrDefault(p0=>p0.Name.StartsWith("moder"));
            if (loginRes.person.Online)
                loginRes.person = DbCtx.Get().Person.FirstOrDefault(p0 => p0.Name=="usr");
            if (loginRes.person.Online)
                loginRes.person = DbCtx.Get().Person.FirstOrDefault(p0 => p0.Name == "usr2");

            return loginRes;
        }
Пример #3
0
        public MainWindow()
        {
            InitializeComponent();

            //var loginInfo = LoginDriver.Run(LoginFlow.Regular);
            loginInfo = testLoginStub();

            if (loginInfo == null)
            {
                Application.Current.Shutdown();
                return;
            }

            palette._ownerId = loginInfo.person.Id;
            inkPalette.InkCanvas = inkCanv;

            rt.start(loginInfo, DbCtx.Get().Connection.DataSource, DeviceType.Wpf);
            setListeners(true);
        }
Пример #4
0
 private LoginResult testLoginStub(DiscCtx ctx)
 {
     var loginRes = new LoginResult();
     loginRes.discussion = ctx.Discussion.First();
     loginRes.person = ctx.Person.FirstOrDefault(p0 => p0.Name.StartsWith("moder"));
     return loginRes;
 }
Пример #5
0
        private void LoginProcedure()
        {
            login = LoginDriver.Run(LoginFlow.ForEventGen);
            if (login == null)
            {
                System.Windows.Application.Current.Shutdown();
                return;
            }

            if (login.discussion == null)
            {
                MessageDlg.Show(
                    "In this application even moderator should select real, existing discussion");
                System.Windows.Application.Current.Shutdown();
                return;
            }

            Topics = new ObservableCollection<Topic>(login.discussion.Topic);

            Persons = new ObservableCollection<Person>(DaoHelpers.personsOfDiscussion(login.discussion));

            setPostLoginInfo();

            FillTopics(login.discussion);

            sharedClient.start(login, DbCtx.Get().Connection.DataSource, login.devType);
            sharedClient.clienRt.onStatsEvent += OnStatsEvent;
        }
Пример #6
0
        private static LoginResult LoginFlowExperiment()
        {
SelectSession:
            //session
            var sessionDlg = new LoginSessionDlg();

            sessionDlg.ShowDialog();
            if (sessionDlg.SelectedSession == null)
            {
                return(null);
            }

SelectSeat:
            //seat
            var seatDlg = new LoginSeatSelectorDlg();

            seatDlg.ShowDialog();

            if (seatDlg.BackClicked)
            {
                goto SelectSession;
            }

            if (seatDlg.SelectedSeat == null)
            {
                return(null);
            }

            if (placeAlreadyBusy(sessionDlg.SelectedSession, seatDlg.SelectedSeat))
            {
                MsgPlaceReserved();
                goto SelectSession;
            }

            //EnterName:
            //name
            var nameDlg = new LoginName(seatDlg.SelectedSeat);

            nameDlg.ShowDialog();
            if (nameDlg.BackClicked)
            {
                goto SelectSeat;
            }

            if (nameDlg.EnteredName == null)
            {
                return(null);
            }

            //if (!NameUnique(nameDlg.EnteredName, sessionDlg.SelectedSession))
            //{
            //    MsgNameRegistered();
            //    goto EnterName;
            //}

            //discussion selector
            var discussionDlg = new LoginDiscussionDlg(nameDlg.EnteredName);

            discussionDlg.ShowDialog();

            if (discussionDlg.BackClicked)
            {
                goto SelectSeat;
            }

            if (discussionDlg.SelectedDiscussion == null)
            {
                MsgParticipantsShouldSelectDiscussion();
                return(null);
            }

            //final checks and build login result
            if (placeAlreadyBusy(sessionDlg.SelectedSession, seatDlg.SelectedSeat))
            {
                MsgPlaceReserved();
                goto SelectSession;
            }
            //if (!NameUnique(nameDlg.EnteredName, sessionDlg.SelectedSession))
            //{
            //    MsgNameRegistered();
            //    goto EnterName;
            //}

            //register user and build result
            var res = new LoginResult();

            if (discussionDlg.SelectedDiscussion != LoginDiscussionDlg.DummyDiscussion)
            {
                res.discussion = discussionDlg.SelectedDiscussion;
            }

            res.session = sessionDlg.SelectedSession;

            res.person = RegisterOrLogin(nameDlg.EnteredName,
                                         discussionDlg.SelectedDiscussion,
                                         sessionDlg.SelectedSession,
                                         seatDlg.SelectedSeat);

            return(res);
        }
Пример #7
0
        private static LoginResult LoginFlowEventGen()
        {
            SelectSession:
            //session
            var sessionDlg = new LoginSessionDlg();
            sessionDlg.ShowDialog();
            if (sessionDlg.SelectedSession == null)
                return null;

            SelectDiscussion:
            //discussion
            var discussionDlg = new LoginDiscussionDlg((Person) null);
            discussionDlg.ShowDialog();

            if (discussionDlg.BackClicked)
                goto SelectSession;

            if (discussionDlg.SelectedDiscussion == null)
            {
                MsgParticipantsShouldSelectDiscussion();
                return null;
            }

            //device type
            var devTypeDlg = new LoginDevTypeDlg(null);
            devTypeDlg.ShowDialog();

            if (devTypeDlg.BackClicked)
                goto SelectDiscussion;

            var res = new LoginResult();

            //build result           
            if (discussionDlg.SelectedDiscussion != LoginDiscussionDlg.DummyDiscussion)
                res.discussion = discussionDlg.SelectedDiscussion;

            res.session = sessionDlg.SelectedSession;
            res.devType = devTypeDlg.SelectedDeviceType;

            return res;
        }
Пример #8
0
        private static LoginResult LoginFlowExperiment()
        {
            SelectSession:
            //session
            var sessionDlg = new LoginSessionDlg();
            sessionDlg.ShowDialog();
            if (sessionDlg.SelectedSession == null)
                return null;

            SelectSeat:
            //seat 
            var seatDlg = new LoginSeatSelectorDlg();
            seatDlg.ShowDialog();

            if (seatDlg.BackClicked)
                goto SelectSession;

            if (seatDlg.SelectedSeat == null)
                return null;

            if (placeAlreadyBusy(sessionDlg.SelectedSession, seatDlg.SelectedSeat))
            {
                MsgPlaceReserved();
                goto SelectSession;
            }

            //EnterName:
            //name
            var nameDlg = new LoginName(seatDlg.SelectedSeat);
            nameDlg.ShowDialog();
            if (nameDlg.BackClicked)
                goto SelectSeat;

            if (nameDlg.EnteredName == null)
                return null;

            //if (!NameUnique(nameDlg.EnteredName, sessionDlg.SelectedSession))
            //{
            //    MsgNameRegistered();
            //    goto EnterName;
            //}

            //discussion selector
            var discussionDlg = new LoginDiscussionDlg(nameDlg.EnteredName);
            discussionDlg.ShowDialog();

            if (discussionDlg.BackClicked)
                goto SelectSeat;

            if (discussionDlg.SelectedDiscussion == null)
            {
                MsgParticipantsShouldSelectDiscussion();
                return null;
            }

            //final checks and build login result
            if (placeAlreadyBusy(sessionDlg.SelectedSession, seatDlg.SelectedSeat))
            {
                MsgPlaceReserved();
                goto SelectSession;
            }
            //if (!NameUnique(nameDlg.EnteredName, sessionDlg.SelectedSession))
            //{
            //    MsgNameRegistered();
            //    goto EnterName;
            //}

            //register user and build result
            var res = new LoginResult();
            if (discussionDlg.SelectedDiscussion != LoginDiscussionDlg.DummyDiscussion)
                res.discussion = discussionDlg.SelectedDiscussion;

            res.session = sessionDlg.SelectedSession;

            res.person = RegisterOrLogin(nameDlg.EnteredName,
                                         discussionDlg.SelectedDiscussion,
                                         sessionDlg.SelectedSession,
                                         seatDlg.SelectedSeat);

            return res;
        }