예제 #1
0
        private void PerformLogin(IFormResult result, IContinuityDelegate after)
        {
            var pin = result.Result?.ToString() ?? string.Empty;

            if (string.IsNullOrEmpty(pin))
            {
                after.PresentMessage("Pin is empty", MessageType.Error);
                return;
            }

            ShowMessage("Login successful", MessageType.Info, 1000);
            after.Close = true;
        }
예제 #2
0
        private Task SetQuantity(OrderItem item, IFormSender formSender, IContinuityDelegate after)
        {
            if (!float.TryParse(formSender.Result?.ToString() ?? string.Empty, out var result))
            {
                after.PresentMessage("Cantitate invalida", MessageType.Error, MessageDurationLength.Short);
                after.Close = false;
                return Task.CompletedTask;
            }
            SetQuantity(item, result);

            after.Close = true;

            return Task.CompletedTask;
        }
예제 #3
0
        private Task OnSetCustomer(IFormSender sender, IContinuityDelegate after)
        {
            if (sender.Result is Customer customer)
            {
                _order.Customer = customer;
                _order.CustomerId = customer.Id;
                after.PresentMessage($"Clientul {customer.Name} a fost adaugat in comanda", MessageType.Info, MessageDurationLength.Medium);
            }
            else
            {
                _order.Customer = null;
                _order.CustomerId = null;
                after.PresentMessage("Clientul a fost scos din comanda", MessageType.Info, MessageDurationLength.Short);
            }

            after.Close = true;
            return Task.CompletedTask;
        }
예제 #4
0
        private async Task PerformLogin(IFormSender sender, IContinuityDelegate after)
        {
            var pin = sender.Result?.ToString() ?? string.Empty;

            if (string.IsNullOrEmpty(pin))
            {
#if DEBUG
                pin = "1234";
#else
                after.PresentMessage("Pin is empty", MessageType.Error);
                return;
#endif
            }

            try
            {
                var loaderToken = sender.Form.LoadingState;
                var apiClient   = Application.Api(loaderToken);


                var user = await apiClient.Account.Login(pin);

                AuthenticationManager.User = user;
            }
            catch (RequestException ex)
                when(ex.StatusCode == HttpStatusCode.NotFound)
                {
                    after.PresentMessage("Incorect PIN!", MessageType.Error);
                    return;
                }
            catch (Exception ex)
            {
                after.PresentMessage(ex.Message, MessageType.Error);
                return;
            }
            finally
            {
                sender.Control.Text = string.Empty;
            }

            PresentMessage("Login successful", MessageType.Info, 1000);
            after.Close = true;
            InitializePos();
        }
예제 #5
0
        private Task SplitItem(IFormSender formSender, OrderItem item, IContinuityDelegate after)
        {
            if (!float.TryParse(formSender.Result?.ToString() ?? string.Empty, out var result))
            {
                after.PresentMessage("Cantitate invalida", MessageType.Error, MessageDurationLength.Short);
                after.Close = false;
                return Task.CompletedTask;
            }

            var newQuantity = item.Quantity - result;

            SetQuantity(item, newQuantity);
            CreateOrderItem(item.Name, item.ProductId, result, item.UnitPrice);

            ParentForm.PresentMessage("Succes!", MessageType.Info, MessageDurationLength.Short);

            after.Close = true;

            return Task.CompletedTask;
        }