Example #1
0
 internal WaitThenClick(Driver driver, Options options, Waiter waiter, ElementFinder elementFinder)
     : base(driver, options)
 {
     this.options = options;
     this.waiter = waiter;
     this.elementFinder = elementFinder;
 }
Example #2
0
 public static void Main()
 {
     Cook joe = new Cook();
     Waiter suzy = new Waiter(joe);
     Customer fred = new Customer(suzy);
     fred.PlaceOrder();
 }
Example #3
0
    //INSERT
    public void InsertWaiterInfo()
    {
        //The code that exists within this method is a standard CRUD insert.
        //Similar to what was learned in APPDEV 1
        eRestaurantController controller = new eRestaurantController();

        //Load an instance of Waiter.
        Waiter insertWaiter = new Waiter();
        insertWaiter.WaiterID = 0;

        insertWaiter.FirstName = FirstName.Text;
        insertWaiter.LastName = LastName.Text;
        insertWaiter.Phone = Phone.Text;
        insertWaiter.Address = Address.Text;
        insertWaiter.HireDate = DateTime.Parse(HiredDate.Text);

        //Check if the release date is Null/Empty
        if (string.IsNullOrEmpty(ReleaseDate.Text))
        {
            insertWaiter.ReleaseDate = null;                                                        //This can be null becuase in the database it is set to "Nullable"
        }
        else
        {
            insertWaiter.ReleaseDate = DateTime.Parse(ReleaseDate.Text);
        }

        //Add waiter to the database.
        controller.Waiter_Add(insertWaiter);
        
        //Rebind the dropdown (WaiterList) so the new entry will appear in the list.
        WaiterList.DataBind();

        

    }
    protected void WaiterInsert_Click(object sender, EventArgs e)
    {
        //inline version of using MessageUserControl
        MessageUserControl.TryRun(() =>
            //remainder of the code is what would have gone in the external method of
            //(processRequest(MethodName)
            {
                Waiter item = new Waiter();
                item.FirstName = FirstName.Text;
                item.LastName = LastName.Text;
                item.Address = Address.Text;
                item.Phone = Phone.Text;
                item.HireDate = DateTime.Parse(HireDate.Text);
                //nullable field
                if(string.IsNullOrEmpty(ReleaseDate.Text))
                {
                    item.ReleaseDate = null;
                }
                else
                {
                    item.ReleaseDate = DateTime.Parse(ReleaseDate.Text);
                }

                AdminController SystemManager = new AdminController();
                WaiterID.Text = SystemManager.Waiters_Add(item).ToString();
                MessageUserControl.ShowInfo("Waiter added");
                RefreshWaiterList(WaiterID.Text);
            }
            );
    }
Example #5
0
    public void InsertWaiterInfo()
    {
        //the code that exists within this method
        //is a standard CRUD insert which you learned in AppDev 1
        eRestaurantController controller = new eRestaurantController();

        //load an instance of Waiter
        Waiter item = new Waiter();
        item.WaiterID = 0; //identity field on SQL therefore set to 0
        item.FirstName = FirstName.Text;
        item.LastName = LastName.Text;
        item.Phone = Phone.Text;
        item.Address = Address.Text;
        item.HireDate = DateTime.Parse(HiredDate.Text);
        if (string.IsNullOrEmpty(ReleaseDate.Text))
        {
            item.ReleaseDate = null;
        }
        else
        {
            item.ReleaseDate = DateTime.Parse(ReleaseDate.Text);
        }

        //call the controller's Add method for the Waiter
        controller.Waiter_Add(item);

        //rebind the drop down list (WaiterList) so the new
        //waiter will appear in the list
        WaiterList.DataBind();
    }
Example #6
0
        async Task<bool> wait(CancellationToken token)
        { 
            Waiter<bool> waiter = null;
            bool lockTaken = false;
            try
            {
                spinner.Enter(ref lockTaken);

                if (!this.IsLocked && this.waiters.Count == 0)
                {
                    this.IsLocked = true;
                    return true;
                }

                waiter = new Waiter<bool>(token);
                if (token != CancellationToken.None)
                    waiter.OnCancel += Waiter_OnCancel;

                waiters.InsertAtTail(waiter);
            }
            finally
            {
                if (lockTaken)
                    spinner.Exit(false);
            }

            if (waiter == null)
                return false;

            bool hasLock = await waiter;
            token.ThrowIfCancellationRequested();
            return hasLock;
        }
        public async Task<Dictionary<string, string>> Get([FromUri] int ms)
        {
            //Sanitize
            ms = ms > 2000 ? 1 : ms;

            var waiting = new Waiter();

            var stopwatch = new Stopwatch();
            stopwatch.Start();

            stopwatch.Restart();
            waiting.DoWork(ms);
            var inOrderSpan = stopwatch.Elapsed;

            stopwatch.Restart();
            await waiting.DoWorkAsync(ms);
            var asyncSpan = stopwatch.Elapsed;

            var returnDictionary = new Dictionary<string, string>
            {
                {"processors", Environment.ProcessorCount.ToString()},
                {"inOrderSpan", inOrderSpan.ToString()},
                {"asyncSpan", asyncSpan.ToString()}
            };

            var results = JsonConvert.SerializeObject(returnDictionary);
            LogManager.GetCurrentClassLogger().Log(LogLevel.Info, results);

            return returnDictionary;
        }
Example #8
0
	internal static async Task<string> Input(ConsoleControl.ConsoleControl cons)
	{
		using (var waitr = new Waiter(cons))
		{
			await waitr.Completion.Task;
			return waitr.Content;			
		}
	}
Example #9
0
 internal WaitThenClick(Driver driver, Options options, Waiter waiter, ElementFinder elementFinder, DisambiguationStrategy disambiguationStrategy)
     : base(driver, options)
 {
     waitBeforeClick = options.WaitBeforeClick;
     this.waiter = waiter;
     this.elementFinder = elementFinder;
     this.disambiguationStrategy = disambiguationStrategy;
 }
Example #10
0
 private static Waiter GetWaiterForCurrentThread()
 {
     Waiter waiter = t_waiterForCurrentThread;
     if (waiter == null)
         waiter = t_waiterForCurrentThread = new Waiter();
     waiter.signalled = false;
     return waiter;
 }
Example #11
0
        private unsafe void AssertIsNotInList(Waiter waiter)
        {
            Contract.Assert(waiter.next == null && waiter.prev == null);
            Contract.Assert((_waitersHead == null) == (_waitersTail == null));

            for (Waiter current = _waitersHead; current != null; current = current.next)
                if (current == waiter)
                    Contract.Assert(false, "Waiter is in the waiter list, but should not be");
        }
Example #12
0
public void AddWaitersScenerio() 
{
	Waiter newGuy = new Waiter();
int waiterId = -1;
	this.Given(_=>GiveWaiterInformation(newGuy))
.when(_=>WhenIAddTheWaiter(newGuy, out waitId))
.then(_=>ThenTheWaiterExists(waiterId))
.And(_=>TheWaiterDetailsMatch(waiterId, newGuy))
.BDDfy
Example #13
0
 public void MakeBurger(Waiter waiter)
 {
     if (burgers > 0) {
       Console.WriteLine("Cook making Burger");
       waiter.ServeFood("Burger");
       burgers--;
     }
     else
       Console.WriteLine("Sorry -- No more Burgers");
 }
Example #14
0
 public void MakeFries(Waiter waiter)
 {
     if (fries > 0) {
       Console.WriteLine("Cook making Fries");
       waiter.ServeFood("Fries");
       fries--;
     }
     else
       Console.WriteLine("Sorry -- No more Fries");
 }
Example #15
0
        private unsafe void AssertIsInList(Waiter waiter)
        {
            Contract.Assert(_waitersHead != null && _waitersTail != null);
            Contract.Assert((_waitersHead == waiter) == (waiter.prev == null));
            Contract.Assert((_waitersTail == waiter) == (waiter.next == null));

            for (Waiter current = _waitersHead; current != null; current = current.next)
                if (current == waiter)
                    return;
            Contract.Assert(false, "Waiter is not in the waiter list");
        }
Example #16
0
	internal static async Task<AutomationEventArgs> Event(
		AutomationEvent eventId, 
		AutomationElement element = null, 
		TreeScope scope = TreeScope.Descendants)
	{
		using (var waitr = new Waiter(eventId, element, scope))
		{
			await waitr.Completion.Task;
			return waitr.EvtArgs;
		}
	}
		public void CheckOrderTest()
		{
			IMessageSource<TestMessage> source = MessageGenerator.CreateSource(TestRouterHelper.SourceName, TestRouterHelper.MessagesCountToGenerate);
			var waiter = new Waiter(waitablesCount:1);
			var factory = new TestRouterFactory(waiter, messages => messages.CheckOrder(TestRouterHelper.Sequence(0, TestRouterHelper.MessagesCountToGenerate)));
			using(IMessageConsumer<TestMessage> consumer = factory.CreateConsumer(source))
			{
				consumer.Consume(TestRouterHelper.HandleMessage);
				waiter.Wait(true);
			}
		}
		public void SwallowExceptionTest()
		{
			const int errorMessageIndex = 5;
			var waiter = new Waiter(waitablesCount:1);
			IMessageSource<TestMessage> source = MessageGenerator.CreateSource(TestRouterHelper.SourceName, TestRouterHelper.MessagesCountToGenerate, errorMessageIndex, swallowException:true);
			var factory = new TestRouterFactory(waiter, messages => messages.CheckOrder(TestRouterHelper.SequenceExcluding(0, TestRouterHelper.MessagesCountToGenerate, errorMessageIndex)));
			using (IMessageConsumer<TestMessage> consumer = factory.CreateConsumer(source))
			{
				consumer.Consume(TestRouterHelper.HandleMessage);
				waiter.Wait(true);
			}
		}
        public void Test()
        {
            var waiter = new Waiter();

            waiter.Start();
            Console.WriteLine("Waiter started");

            Thread.Sleep(5000);

            waiter.Stop();
            Console.WriteLine("Waiter stopped");
        }
Example #20
0
        static void Main(string[] args)
        {
            Barbecuer boy = new Barbecuer();
            Command bakeMutton1 = new BakeMuttonCommand(boy);
            Command bakeMutton2 = new BakeMuttonCommand(boy);
            Command bakeChickenWing = new BakeChickenWingCommand(boy);
            Waiter girl = new Waiter();

            girl.SetOrder(bakeMutton1);
            girl.SetOrder(bakeMutton2);
            girl.SetOrder(bakeChickenWing);
            girl.Notify();
        }
		public void CheckIsRunningTest()
		{
			IMessageSource<TestMessage> source = MessageGenerator.CreateSource(TestRouterHelper.SourceName, TestRouterHelper.MessagesCountToGenerate);
			var waiter = new Waiter(waitablesCount:1);
			var factory = new TestRouterFactory(waiter, messages =>{});
			using (IMessageConsumer<TestMessage> consumer = factory.CreateConsumer(source))
			{
				consumer.IsRunning.Should(Be.False, "consumer.IsRunning.Should(Be.False)");
				consumer.Consume(TestRouterHelper.HandleMessage);
				consumer.IsRunning.Should(Be.True, "consumer.IsRunning.Should(Be.True)");
				waiter.Wait();
				consumer.IsRunning.Should(Be.True, "consumer.IsRunning.Should(Be.True)");
			}
		}
Example #22
0
        private unsafe void AddWaiter(Waiter waiter)
        {
            Contract.Assert(_lock.IsAcquired);
            AssertIsNotInList(waiter);

            waiter.prev = _waitersTail;
            if (waiter.prev != null)
                waiter.prev.next = waiter;

            _waitersTail = waiter;

            if (_waitersHead == null)
                _waitersHead = waiter;
        }
		public void ChildrenOrderTest()
		{
			const int sourcesCount = 5;
			IMessageSource<TestMessage> source = MessageGenerator.CreateCompositeSource(TestRouterHelper.SourceName, sourcesCount, TestRouterHelper.MessagesCountToGenerate);
			var waiter = new Waiter(sourcesCount);
			var factory = new TestRouterFactory(waiter, messages => messages.CheckOrder(TestRouterHelper.Sequence(0, TestRouterHelper.MessagesCountToGenerate)));
			using (IMessageConsumer<TestMessage> router = factory.CreateRouter(source, factory, m => m.Tag))
			{
				router.Consume(TestRouterHelper.HandleMessage);
				waiter.Wait(true);
				// we compare to 55, not 50, because each source has stop message at the end.
				((TestMessageRouter) router).ReceiveCallCount.Should(Be.EqualTo(55)); 
			}
		}
Example #24
0
        private void Waiter_OnCancel(Waiter<bool> w)
        {
            bool spinTaken = false;
            try
            {
                spinner.Enter(ref spinTaken);
                waiters.Remove(w);
            }
            finally
            {
                if (spinTaken)
                    spinner.Exit(false);
            }

            w.Completed(false);
        }
 public void AddWaiter()
 {
     Waiter person = new Waiter()
     {
         FirstName = FirstName.Text,
         LastName = LastName.Text,
         Address = Address.Text,
         Phone = Phone.Text,
         HireDate = DateTime.Parse(HireDate.Text)
     };
     DateTime temp;
     if (DateTime.TryParse(ReleaseDate.Text, out temp))
         person.ReleaseDate = temp;
     var controller = new RestaurantAdminController();
     person.WaiterID = controller.AddWaiter(person);
     WaiterID.Text = person.WaiterID.ToString();
 }
Example #26
0
        public bool Wait(int milliseconds)
        {
            Waiter waiter;

            lock (_syncRoot)
            {
                if (_tokens > 0)
                {
                    --_tokens;
                    return true;
                }

                waiter = new Waiter();
                _waitQueue.Enqueue(waiter);
            }

            return waiter.TryWait(milliseconds);
        }
Example #27
0
        private unsafe void RemoveWaiter(Waiter waiter)
        {
            Contract.Assert(_lock.IsAcquired);
            AssertIsInList(waiter);

            if (waiter.next != null)
                waiter.next.prev = waiter.prev;
            else
                _waitersTail = waiter.prev;

            if (waiter.prev != null)
                waiter.prev.next = waiter.next;
            else
                _waitersHead = waiter.next;

            waiter.next = null;
            waiter.prev = null;
        }
Example #28
0
 protected void InsertWaiter_Click(object sender, EventArgs e)
 {
     //this example is using the TryRun inline
     MessageUserControl1.TryRun(() =>
         {
             Waiter item = new Waiter();
             item.FirstName = FirstName.Text;
             item.LastName = LastName.Text;
             item.Address = Address.Text;
             item.Phone = Phone.Text;
             item.HireDate = DateTime.Parse(DateHired.Text);
             item.ReleaseDate = null;
             AdminController sysmgr = new AdminController();
             WaiterID.Text = sysmgr.Waiter_Add(item).ToString();
             MessageUserControl1.ShowInfo("Waiter Added.");
             RefreshWaiterList(WaiterID.Text);
         });
 }
Example #29
0
 internal static BrowserSession Build(SessionConfiguration sessionConfiguration, 
                                         Driver driver, 
                                         TimingStrategy timingStrategy, 
                                         Waiter waiter,
                                         RestrictedResourceDownloader restrictedResourceDownloader, 
                                         UrlBuilder urlBuilder, 
                                         DisambiguationStrategy disambiguationStrategy = null)
 {
     disambiguationStrategy = disambiguationStrategy ?? new FirstOrDefaultNoDisambiguationStrategy();
     
     return new BrowserSession(sessionConfiguration, 
                     new StubDriverFactory(driver), 
                     timingStrategy, 
                     waiter, 
                     urlBuilder, 
                     disambiguationStrategy,
                     restrictedResourceDownloader);
 }
		public void RouterShouldHandleMessagesIfTagIsNotProvided()
		{
			IMessageSource<TestMessage> source = MessageGenerator.CreateSource(string.Empty, 5);
			var waiter = new Waiter(1);
			var factory = new TestRouterFactory(waiter, messages => { });
			using (IMessageConsumer<TestMessage> router = factory.CreateRouter(source, factory, m => m.Tag))
			{
				var messagesHandled = 0;
				waiter.Register(router);
				router.While = m => TestMessage.IsNotStopMessage(string.Empty, m);
				router.Consume(message => messagesHandled++);
				waiter.Wait(true);

				messagesHandled.Should(Be.EqualTo(6));
				//Do not receive message from queue, if router handles message by itself. Let the handle logic do this.
				((TestMessageRouter)router).ReceiveCallCount.Should(Be.EqualTo(0));
			}
		}
Example #31
0
        public void Wait_Throws_And_Is_Dequeued_When_Thrown()
        {
            var key = new WaitKey(MessageCode.Server.Login);

            using (var waiter = new Waiter(0))
            {
                Task <object> task   = waiter.Wait <object>(key, 999999);
                object        result = null;

                waiter.Throw(key, new InvalidOperationException("error"));

                var ex = Record.Exception(() => result = task.Result);

                var waits = waiter.GetProperty <ConcurrentDictionary <WaitKey, ConcurrentQueue <PendingWait> > >("Waits");

                Assert.NotNull(ex);
                Assert.IsType <InvalidOperationException>(ex.InnerException);
                Assert.Equal("error", ex.InnerException.Message);

                Assert.False(waits.TryGetValue(key, out _));
            }
        }
Example #32
0
        public bool LogOn(string username, string password)
        {
            this.driver.FindElement(By.CssSelector(".auth-bar__item--text")).Click();
            Waiter.WaitDocumentCompleteState(this.driver);
            IWebElement usernameElement = this.driver.FindElement(By.XPath("//input[@data-field='login' and @type='text']"));
            IWebElement passwordElement = this.driver.FindElement(By.XPath("//input[@data-field='login' and @type='password']"));

            usernameElement.Clear();
            usernameElement.SendKeys(username);
            passwordElement.Clear();
            passwordElement.SendKeys(password);
            this.driver.FindElement(By.CssSelector("button.auth-box__auth-submit")).Click();
            Waiter.WaitDocumentCompleteState(this.driver);
            if (this.driver.FindElements(By.XPath("//div[@id='auth-container']")).Count > 0)
            {
                this.driver.FindElement(By.CssSelector(".modal-close")).Click();
                return(false);
            }

            driver.SwitchTo().Window(driver.WindowHandles.Last());
            return(true);
        }
Example #33
0
        static void Main(string[] args)
        {
            try
            {
                ApplicationMode.Instance.DisplayOption = FileMessage.Instance;

                User u = new User();

                Receptioner receptioner = new Receptioner();

                User client = receptioner.GreetClient();

                if (client != null)
                {
                    var waiter = new Waiter();
                    System.Console.WriteLine("<<Waiter arrives>>");
                    waiter.GetUserOption(client);
                }
            }catch
            {
            }
        }
Example #34
0
        private Process StartProcess()
        {
            var process = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName               = "/bin/bash",
                    Arguments              = "-c \"sleep infinity \"",
                    RedirectStandardError  = true,
                    RedirectStandardOutput = true,
                    UseShellExecute        = false,
                    CreateNoWindow         = true
                },
                EnableRaisingEvents = true
            };

            process.Start();
            process.StandardError.ReadLineAsync().ContinueWith(t => _testOutput.WriteLine(t.Result));

            Waiter.Wait(() => Linux.ProcessManager.GetProcessInfoById(process.Id) != null, TimeSpan.FromSeconds(2));
            return(process);
        }
Example #35
0
    protected void WaiterUpdate_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(IDLabel.Text))
        {
            MessageUserControl.ShowInfo("Please select a waiter first before updating.");
        }
        else
        {
            //standard update process
            MessageUserControl.TryRun
            (
                () =>
                //remainder of the code is waht would have gone in the
                //external method of (processRequest(MethodNum))
            {
                Waiter item    = new Waiter();
                item.WaiterID  = int.Parse(IDLabel.Text);
                item.FirstName = FirstNameTextBox.Text;
                item.LastName  = LastNameTextBox.Text;
                item.Address   = AddressTextBox.Text;
                item.Phone     = PhoneTextBox.Text;
                item.HireDate  = DateTime.Parse(HireDateTextBox.Text);

                if (string.IsNullOrEmpty(ReleaseDateTextBox.Text))
                {
                    item.ReleaseDate = null;
                }
                else
                {
                    item.ReleaseDate = DateTime.Parse(ReleaseDateTextBox.Text);
                }
                AdminController sysmgr = new AdminController();
                sysmgr.Waiter_Update(item);
                MessageUserControl.ShowInfo("Waiter updated.");
                RefreshWaiterList(IDLabel.Text);
            }
            );
        }
    }
Example #36
0
        public async Task TestCreateWithBufferNotInWorkspace()
        {
            // don't crash
            using (var workspace = await CSharpWorkspaceFactory.CreateWorkspaceFromFileAsync(""))
            {
                var document = workspace.CurrentSolution.GetDocument(workspace.Documents.First().Id);

                var contentTypeService = document.GetLanguageService <IContentTypeLanguageService>();
                var contentType        = contentTypeService.GetDefaultContentType();
                var extraBuffer        = workspace.ExportProvider.GetExportedValue <ITextBufferFactoryService>().CreateTextBuffer("", contentType);

                WpfTestCase.RequireWpfFact("Creates an IWpfTextView explicitly with an unrelated buffer");
                using (var disposableView = workspace.ExportProvider.GetExportedValue <ITextEditorFactoryService>().CreateDisposableTextView(extraBuffer))
                {
                    var waiter   = new Waiter();
                    var provider = new SemanticClassificationViewTaggerProvider(
                        workspace.ExportProvider.GetExportedValue <IForegroundNotificationService>(),
                        workspace.ExportProvider.GetExportedValue <ISemanticChangeNotificationService>(),
                        workspace.ExportProvider.GetExportedValue <ClassificationTypeMap>(),
                        SpecializedCollections.SingletonEnumerable(
                            new Lazy <IAsynchronousOperationListener, FeatureMetadata>(
                                () => waiter, new FeatureMetadata(new Dictionary <string, object>()
                    {
                        { "FeatureName", FeatureAttribute.Classification }
                    }))));

                    using (var tagger = (IDisposable)provider.CreateTagger <IClassificationTag>(disposableView.TextView, extraBuffer))
                    {
                        using (var edit = extraBuffer.CreateEdit())
                        {
                            edit.Insert(0, "class A { }");
                            edit.Apply();
                        }

                        await waiter.CreateWaitTask();
                    }
                }
            }
        }
Example #37
0
        private void button1_Click(object sender, EventArgs e)
        {
            Waiter w = new Waiter(this);

            w.BeginWait();

            Enabled = false;

            try
            {
                metersList.CalculateGeneralCoeffs();
            }
            catch (Exception ex)
            {
                NotificationHelper.ShowError(ex.Message);
            }
            finally
            {
                Enabled = true;
                w.EndWait();
            }
        }
Example #38
0
        public void StopMonitoring_EndOfIntervalCallbackNotCalledAfterwards()
        {
            // Arrange
            WeatherMonitorStrategy target = new WeatherMonitorStrategy();
            int callBackCount             = 0;

            target.StartMonitoring(TimeSpan.FromMilliseconds(200), () => callBackCount++);

            // Act
            Waiter.Until(() => callBackCount > 0);
            target.StopMonitoring();
            Waiter.Until(() =>
            {
                bool result = callBackCount == 0;

                callBackCount = 0;
                return(result);
            });

            // Assert
            callBackCount.Should().Be(0);
        }
Example #39
0
    protected void WaiterUpdate_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(WaiterID.Text))
        {
            MessageUserControl.ShowInfo("Please select a waiter first before updating.");
        }
        else
        {
            //standard update process
            MessageUserControl.TryRun(() =>
                                      //remainder of the code is what would have gone in the external
                                      //method of (ProcessRequest(MethodName))
            {
                Waiter item = new Waiter();
                //for an update you must supply the pkey value
                item.WaiterID  = int.Parse(WaiterID.Text);
                item.FirstName = FirstName.Text;
                item.LastName  = LastName.Text;
                item.Address   = Address.Text;
                item.Phone     = Phone.Text;
                item.HireDate  = DateTime.Parse(HireDate.Text);
                //what about nullable fields
                if (string.IsNullOrEmpty(ReleaseDate.Text))
                {
                    item.ReleaseDate = null;
                }
                else
                {
                    item.ReleaseDate = DateTime.Parse(ReleaseDate.Text);
                }
                AdminController sysmgr = new AdminController();
                sysmgr.waiter_Update(item);
                MessageUserControl.ShowInfo("Waiter updated");//force drop down list to be refreshed
                RefreshWaiterList(WaiterID.Text);
            }

                                      );
        }
    }
Example #40
0
    bool ValidateInteraction(Waiter waiter)
    {
        if (waiter.Follower)
        {
            return(false);
        }

        switch (State)
        {
        case CustomerState.WaitingToPlaceOrder:
        {
            return(true);
        }

        case CustomerState.WaitingForMeal:
        {
            return(waiter.Meal != null);
        }
        }

        return(false);
    }
Example #41
0
        public void Leave()
        {
            lock (syncRoot)
            {
                --referenceCount;

                if (referenceCount == 0)
                {
                    while (waiters.Count > 0)
                    {
                        Waiter waiter = waiters.Dequeue();

                        waiter.k.PostResult(true);

                        if (waiter.ctr.HasValue)
                        {
                            waiter.ctr.Value.Dispose();
                        }
                    }
                }
            }
        }
Example #42
0
        public async Task Complete_Dequeues_Wait()
        {
            using (var waiter = new Waiter())
            {
                var result = Guid.NewGuid();
                var task   = waiter.Wait <Guid>(new WaitKey(MessageCode.ServerLogin));
                waiter.Complete(new WaitKey(MessageCode.ServerLogin), result);

                var waitResult = await task;

                var key = new WaitKey(MessageCode.ServerLogin);

                var waits = waiter.GetProperty <ConcurrentDictionary <WaitKey, ConcurrentQueue <PendingWait> > >("Waits");
                waits.TryGetValue(key, out var queue);
                var peek = queue.TryPeek(out var wait);

                Assert.Equal(result, waitResult);
                Assert.NotNull(queue);
                Assert.Empty(queue);
                Assert.False(peek);
            }
        }
Example #43
0
    bool ValidateInteraction(Waiter waiter)
    {
        if (waiter.Follower)
        {
            return(false);
        }

        switch (State)
        {
        case KitchenState.WaitingForOrder:
        {
            return(Customer.NumInState(CustomerState.PlacingOrder) > 0 || Customer.NumInState(CustomerState.WaitingForMeal) > 0);
        }

        case KitchenState.WaitingForCollection:
        {
            return(waiter.Meal == null);
        }
        }

        return(false);
    }
Example #44
0
        public int Waiter_Add(Waiter item)
        {
            //input into this method is at the instance level
            using (eRestaurantContext context = new eRestaurantContext())
            {
                //create a pointer variable for the instance type
                //set pointer to null
                Waiter added = null;

                //set up the add request for DBContext
                added = context.Waiters.Add(item);

                //saving the changes will cause .Add to execute
                //commits the add to the database
                //evaluates the annotations (validation) on your entity

                context.SaveChanges();
                //added contains the data of newly added waiter
                //including pkey value
                return(added.WaiterID);
            }
        }
Example #45
0
        private static Waiter SetUp(List <IStartable> startables, TopicBasedPubSub bus)
        {
            var reporter = new Reporter();

            bus.SubscribeByType <OrderPaid>(reporter);
            bus.SubscribeByType <OrderPlaced>(reporter);


            var cashier = new ThreadedHandler <TakePayment>(new Cashier(bus), "Cashier");

            startables.Add(cashier);
            bus.SubscribeByType(cashier);

            var assMan = new ThreadedHandler <PriceOrder>(new AssistantManager(bus), "Assistant Manager");

            startables.Add(assMan);
            bus.SubscribeByType(assMan);

            var rnd   = new Random(1234);
            var cooks = Enumerable.Range(1, 3).Select(i =>
            {
                var cook = new ThreadedHandler <CookFood>(new Cook(bus, $"cook-{i}", rnd.Next(0, 1000)), "Cook " + i);
                startables.Add(cook);
                return(cook);
            });

            var alarm = new AlarmClock(bus);

            bus.SubscribeByType(alarm);
            startables.Add(alarm);

            var dispatcher = new DroppingHandler <CookFood>(new MoreFairDispatcher <CookFood>(cooks));

            bus.SubscribeByType(dispatcher);
            var waiter = new Waiter(bus);

            return(waiter);
        }
Example #46
0
        private static void BackPressureTest()
        {
            var topicDispatcher       = new TopicDispatcher();
            var threadBoundaryMonitor = new ThreadBoundaryMonitor();

            ThreadBoundary <Report> reporting = threadBoundaryMonitor.Wrap(new ReportingSystem(topicDispatcher));
            var cashierInner = new Cashier(topicDispatcher);
            ThreadBoundary <QueueOrderForPayment> cashier    = threadBoundaryMonitor.Wrap(cashierInner);
            ThreadBoundary <PriceFood>            assManager = threadBoundaryMonitor.Wrap(new AssistantManager(topicDispatcher));
            var cooks = new[]
            {
                threadBoundaryMonitor.Wrap(new Cook(topicDispatcher, 20)),
                threadBoundaryMonitor.Wrap(new Cook(topicDispatcher, 50)),
                threadBoundaryMonitor.Wrap(new Cook(topicDispatcher, 90))
            };
            TTLSettingHandler <CookFood> cookDispatcher =
                TTLSettingHandler.Wrap(
                    threadBoundaryMonitor.Wrap(
                        RetryDispatcher.Wrap(
                            TTLFilteringHandler.Wrap(
                                SmartDispatcher.Wrap(cooks, 15)))),
                    10);

            var waiter = new Waiter("Neil", topicDispatcher);

            topicDispatcher.Subscribe(cashier);
            topicDispatcher.Subscribe(cookDispatcher);
            topicDispatcher.Subscribe(assManager);
            topicDispatcher.Subscribe(reporting);
            topicDispatcher.Subscribe(threadBoundaryMonitor.Wrap(new Logger()));

            topicDispatcher.Subscribe(new SelfUnsubscribingOrderSampler(topicDispatcher));

            topicDispatcher.Subscribe(threadBoundaryMonitor.Wrap <OrderTaken>(new OrderFulfillmentCoordinator(topicDispatcher)));
            threadBoundaryMonitor.Start();

            RunTest(waiter, cashierInner, 5000);
        }
Example #47
0
        public async Task <ActionResult> Put(int id, [FromBody] Waiter waiter)
        {
            // If id in body does not match id in URL
            if (id != waiter.User_ID)
            {
                return(BadRequest("id in URL has to match the id of the record to be updated\n"));
            }

            try
            {
                // Searching for record in the database
                var response = await _repository.GetById(id);

                if (response == null)
                {
                    // If record does not exists
                    return(NotFound("Waiter record was not found\n"));
                }
                else
                {
                    // If record was found modify it
                    await _repository.ModifyById(waiter);

                    string format = "Waiter record with key={0} was updated succesfully\n";
                    return(Ok(String.Format(format, id)));
                }
            }
            catch (Npgsql.PostgresException ex)
            {
                // Postgres threw an exception
                return(BadRequest(ex.Message.ToString()));
            }
            catch
            {
                // Unknown error
                return(BadRequest("Error: Waiter record scould not be updated\n"));
            }
        }
Example #48
0
        /// <summary>
        /// Wait for the latch to be released, blocking the current thread if necessary.
        /// <para>
        /// This method returns immediately if the latch has already been released.
        /// </para>
        /// </summary>
        public virtual void Await()
        {
            // Put in a local variable to avoid volatile reads we don't need.
            Node state = _stack;

            if (state != _released)
            {
                // The latch hasn't obviously already been released, so we want to add a waiter to the stack. Trouble is,
                // we might race with release here, so we need to re-check for release after we've modified the stack.
                Waiter waiter = new Waiter();
                state = ( Node )UnsafeUtil.getAndSetObject(this, _stackOffset, waiter);
                if (state == _released)
                {
                    // If we get 'released' back from the swap, then we raced with release, and it is our job to put the
                    // released sentinel back. Doing so can, however, return more waiters that have added themselves in
                    // the mean time. If we find such waiters, then we must make sure to unpark them. Note that we will
                    // never get a null back from this swap, because we at least added our own waiter earlier.
                    Node others = ( Node )UnsafeUtil.getAndSetObject(this, _stackOffset, _released);
                    // Set our next pointer to 'released' as a signal to other threads who might be going through the
                    // stack in the isReleased check.
                    waiter.Next = _released;
                    UnparkAll(others);
                }
                else
                {
                    // It looks like the latch hasn't yet been released, so we are going to park. Before that, we must
                    // assign a non-null value to our next pointer, so other threads will know that we have been properly
                    // enqueued. We use the 'end' sentinel as a marker when there's otherwise no other next node.
                    waiter.Next = state == null ? _end : state;
                    do
                    {
                        // Park may wake up spuriously, so we have to loop on it until we observe from the state of the
                        // stack, that the latch has been released.
                        LockSupport.park(this);
                    } while (!IsReleased(waiter));
                }
            }
        }
Example #49
0
    public void UpdateWaiter()
    {
        Waiter person = new Waiter()
        {
            WaiterID  = int.Parse(WaiterID.Text),
            FirstName = FirstName.Text,
            LastName  = LastName.Text,
            Address   = Address.Text,
            Phone     = Phone.Text,
            HireDate  = DateTime.Parse(HireDate.Text),
        };
        DateTime fireOn;

        if (DateTime.TryParse(ReleaseDate.Text, out fireOn))
        {
            person.ReleaseDate = fireOn;
        }
        var controller = new RestaurantAdminController();

        controller.UpdateWaiter(person);
        //WaiterID.Text = person.WaiterID.ToString();
        //TODO: Re-populate dropdown list of waiters and set the selectedvalue as well
    }
Example #50
0
    void CustomersTakeSeats(Waiter waiter)
    {
        Customer customer = waiter.Follower.GetComponent <Customer>();

        customer.MoveTarget         = Chair0;
        customer.StopFollowDistance = 0.05f;
        customer.State = CustomerState.ConsideringOrder;
        customer.table = this;

        if (customer.PlusOne)
        {
            customer.PlusOne.MoveTarget         = Chair1;
            customer.PlusOne.StopFollowDistance = 0.05f;
            customer.PlusOne.table = this;
        }

        waiter.Follower = null;

        waiter.BeSeatedBubble.SetActive(true);
        StartCoroutine(ShowBeSeated(waiter, 1.0f));

        SetOccupied();
    }
 public object WaitTillPageLoad(IWebDriver webDriver, int waitTimeInSec)
 {
     try
     {
         Waiter.Wait(webDriver, waitTimeInSec == -1 ? appConfigMember.PageTimeout : waitTimeInSec).Until((driver) =>
         {
             try
             {
                 return(((IJavaScriptExecutor)driver).ExecuteScript(JScriptType.PageLoad.GetDescription()).ToString().Contains("complete"));
             }
             catch (Exception ObjException)
             {
                 Logger.Error(String.Format("Wait Till Page Load: Exception Thrown While Running JS Script.:{0}", ObjException.Message));
                 return(false);
             }
         });
     }
     catch (WebDriverTimeoutException ObjWebDriverTimeoutException)
     {
         Logger.Debug(String.Format("Wait Till Page Load: Exception Thrown While Running JS Script.:{0}", ObjWebDriverTimeoutException.Message));
     }
     return(false);
 }
Example #52
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.CompareTag("Table"))
     {
         Table table = collision.GetComponent <Table>();
         tablesInRange.Add(table);
     }
     else if (collision.CompareTag("DishPickup"))
     {
         DishPickup pickup = collision.GetComponent <DishPickup>();
         dishPickupsInRange.Add(pickup);
     }
     else if (collision.CompareTag("Waiter"))
     {
         Waiter waiter = collision.GetComponentInParent <Waiter>();
         if (waiter == this)
         {
             return;
         }
         waitersInRange.Add(waiter);
         //    audioSC.PlayOneShot(collideSFX);
     }
 }
Example #53
0
        /// <summary>
        /// wait for this task to finish
        /// </summary>
        public void Wait()
        {
            if (IsCompleted)
            {
                return;
            }
            var w = new Waiter();

            OnComplete(w);
                        #if ECHOES
            w.ev.WaitOne();
                        #elseif COOPER
            lock (w.o) {
                while (!w.done)
                {
                    w.o.wait();
                }
            }
                        #else
            w.ev.Wait();
                        #endif
            w.Dispose();
        }
Example #54
0
        public object Save([FromBody] Waiter waiter)
        {
            string sql = "";

            if (waiter.Id > 0)
            {
                sql = $"UPDATE Waiter SET Name=@Name,WeiXinId=@WeiXinId,IsUsed=@IsUsed WHERE Id = @Id";
            }
            else
            {
                sql = $"INSERT INTO Waiter(WeiXinId, NAME, IsUsed) VALUES(@WeiXinId, @Name, @IsUsed)";
            }

            var xresult = new XResult();

            if (!XDataHelper.ExcuteNonQuery(sql, waiter))
            {
                xresult.code    = 10000;
                xresult.message = "操作失败!";
            }
            ;
            return(xresult);
        }
Example #55
0
        public string Login()
        {
            Console.WriteLine("Navigating to Login page");
            _browser.Page.GoToUrl(Locate.URL);

            // Step 1: find fields username and password
            var username = _browser.Page.FindElement(By.Name(Locate.NAME_USERNAME));
            var password = _browser.Page.FindElement(By.Name(Locate.NAME_PASSWORD));

            _browser.Page.Write(username, "nvhung");
            _browser.Page.Write(password, "nvhung");
            Console.WriteLine("Step: Enter username and password");

            var loginSubmit = _browser.Page.FindElement(By.ClassName("btn-default"));

            loginSubmit.Click();
            Console.WriteLine("Step: Click button Submit");

            Waiter.WithTimeout(TimeSpan.FromSeconds(5));
            var url = _browser.Page.Url;

            return(url);
        }
Example #56
0
        public IActionResult WaiterList()
        {
            OracleCommand cmd = DatabaseConnection.Connect().CreateCommand();

            cmd.CommandText = "select * from Waiter_2_19";
            List <Waiter> o = new List <Waiter>();
            //execute the command and use datareader to display the data
            OracleDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Waiter i = new Waiter();
                i.Waiter_id  = Int32.Parse(reader.GetString(0));
                i.Name       = reader.GetString(1);
                i.Address    = reader.GetString(2);
                i.Age        = Int32.Parse(reader.GetString(3));
                i.Experience = Int32.Parse(reader.GetString(4));

                o.Add(i);
            }

            return(View(o));
        }
Example #57
0
        private Task WaitInternal(Waiter waiter, bool createWaiter = false)
        {
            lock (this)
            {
                if (_IsSet)
                {
                    if (_AutoReset)
                    {
                        _IsSet = false;
                    }

                    if (waiter != null)
                    {
                        waiter.TrySetComplete();
                        return(waiter.Task);
                    }
                    else
                    {
                        return(Task.CompletedTask);
                    }
                }

                if (createWaiter)
                {
                    var w = new Waiter();
                    _Waiters.Enqueue(w);
                    return(w.Task);
                }

                if (waiter != null)
                {
                    _Waiters.Enqueue(waiter);
                }

                return(null);
            }
        }
Example #58
0
        public bool UpdateWaiter(Waiter waiter)
        {
            SqlConnection sqlConnection = null;
            bool          successful;

            sqlConnection = new SqlConnection(_sqlConnectionString);
            SqlCommand sqlCommand = new SqlCommand();

            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Connection  = sqlConnection;
            sqlCommand.CommandText = StoredProcedureNames.UpdateWaiter;


            sqlCommand.Parameters.Add(new SqlParameter("@WaiterId", waiter.WaiterId));
            sqlCommand.Parameters.Add(new SqlParameter("@FirstName", waiter.FirstName));
            sqlCommand.Parameters.Add(new SqlParameter("@LastName", waiter.LastName));
            sqlCommand.Parameters.Add(new SqlParameter("@Login", waiter.Login));
            sqlCommand.Parameters.Add(new SqlParameter("@Password", waiter.Password));

            try
            {
                sqlConnection.Open();

                sqlCommand.ExecuteNonQuery();

                successful = true;
            }
            finally
            {
                if (sqlConnection.State == ConnectionState.Open)
                {
                    sqlConnection.Close();
                }
            }

            return(successful);
        }
Example #59
0
        private async Task RunConnect()
        {
            var ct      = ProcessCancel.Token;
            var taskSet = new HashSet <Task>();

            var blockSize = (int)(Param.SamplingRate * Param.SampleLength);

            Logger.LogInformation($"[loop3] blockSize {blockSize}");

            var audioInterval = (long)(10_000_000.0 * Param.SampleLength);

            Logger.LogInformation($"[loop3] audioInterval {audioInterval}");
            var videoInterval = (long)(10_000_000.0 / Param.MaxFrameRate);

            Logger.LogInformation($"[loop3] videoInterval {videoInterval}");

            var counter = new ElapsedTimeCounter();

            using var audioWaiter   = new Waiter(counter, audioInterval);
            using var videoWaiter   = new Waiter(counter, videoInterval);
            using var buf           = new IPCBuffer <float>(Param.EffectName, blockSize * 2 * Param.BufferCount, LoggerFactory);
            using var vstBufferPool = new BufferPool <VstBuffer2 <float> >(Param.BufferCount, () => new VstBuffer2 <float>(blockSize, 2, buf), LoggerFactory);
            using var pcmPool       = new BufferPool <PcmBuffer <float> >(Param.BufferCount, () => new PcmBuffer <float>(blockSize, 2), LoggerFactory);
            using var audioPool     = new BufferPool <OpusOutputBuffer>(Param.BufferCount, () => new OpusOutputBuffer(5000), LoggerFactory);
            using var pcmDrowPool   = new BufferPool <PcmBuffer <float> >(Param.BufferCount, () => new PcmBuffer <float>(blockSize, 2), LoggerFactory);
            using var bmpPool       = new BufferPool <H264InputBuffer>(Param.BufferCount, () => new H264InputBuffer(Param.Width, Param.Height), LoggerFactory);
            using var videoPool     = new BufferPool <H264OutputBuffer>(Param.BufferCount, () => new H264OutputBuffer(200000), LoggerFactory);
            using var vst           = new AudioMaster <float>(Param.SamplingRate, blockSize, LoggerFactory, counter, DllManager);
            using var toPcm         = new ToPcm <float>(LoggerFactory, counter);
            using var opus          = new OpusEncoder(SamplingRate.Sampling48000, Channels.Stereo, LoggerFactory, counter);
            using var fft           = new FFTEncoder(Param.Width, Param.Height, Param.MaxFrameRate, LoggerFactory, counter);
            using var h264          = new H264Encoder(Param.Width, Param.Height, Param.TargetBitrate, Param.MaxFrameRate, LoggerFactory, counter);

            effect = vst.AddEffect(Param.EffectName);
            //effect.OpenEditor();

            using var ftl = new FtlIngest(StreamKey, IngestHostname, LoggerFactory, counter, audioInterval, videoInterval, default, CaInfoPath);
Example #60
0
        public ValueTask <int> RequestCreditAsync(int amount, CancellationToken cancellationToken)
        {
            lock (SyncObject)
            {
                if (_disposed)
                {
                    throw CreateObjectDisposedException(forActiveWaiter: false);
                }

                if (_current > 0)
                {
                    Debug.Assert(_waiters == null || _waiters.Count == 0, "Shouldn't have waiters when credit is available");

                    int granted = Math.Min(amount, _current);
                    if (NetEventSource.IsEnabled)
                    {
                        _owner.Trace($"{_name}. requested={amount}, current={_current}, granted={granted}");
                    }
                    _current -= granted;
                    return(new ValueTask <int>(granted));
                }

                if (NetEventSource.IsEnabled)
                {
                    _owner.Trace($"{_name}. requested={amount}, no credit available.");
                }

                var waiter = new Waiter {
                    Amount = amount
                };
                (_waiters ??= new Queue <Waiter>()).Enqueue(waiter);

                return(cancellationToken.CanBeCanceled ?
                       waiter.WaitWithCancellationAsync(cancellationToken) :
                       new ValueTask <int>(waiter.Task));
            }
        }