private async Task ShowTimePopup()
        {
            var dateTimeAlertController = new UIAlertController();

            var timePicker = new UIDatePicker();

            timePicker.Date = _selectedDate;
            timePicker.Mode = UIDatePickerMode.Time;
            timePicker.TranslatesAutoresizingMaskIntoConstraints = false;

            var rootView = dateTimeAlertController.View;

            rootView.AddSubview(timePicker);
            rootView.AddConstraints(timePicker.WithSameTop(rootView),
                                    timePicker.AtBottomOf(rootView, 100f),
                                    timePicker.WithSameLeft(rootView),
                                    timePicker.WithSameRight(rootView));

            dateTimeAlertController.AddAction(UIAlertAction.Create(ConstantsHelper.Ok, UIAlertActionStyle.Default, action =>
            {
                _selectedDate     = timePicker.Date;
                var timeFormatter = new NSDateFormatter {
                    DateFormat = "HH:mm"
                };
                _currentTimeField.Text = timeFormatter.StringFor(_selectedDate);
            }));
            dateTimeAlertController.AddAction(UIAlertAction.Create(ConstantsHelper.Cancel, UIAlertActionStyle.Cancel, null));
            await PresentViewControllerAsync(dateTimeAlertController, true);
        }
Beispiel #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            View.BackgroundColor = UIColor.White;
            UILabel         label = new UILabel();
            UIBarButtonItem save  = new UIBarButtonItem(UIBarButtonSystemItem.Save, ButnSaveClicked);

            NavigationItem.RightBarButtonItem = save;


            if (Id == null)
            {
                _vacation                  = new Vacation();
                _vacation.Id               = new Guid();
                _vacation.Created          = DateTime.Now;
                _vacation.CreatedBy        = "Name";
                _vacation.Start            = _vacation.Created;
                _vacation.End              = _vacation.Created.AddDays(1);
                _vacation.VacationTypeId   = 1;
                _vacation.VacationStatusId = 3;
            }
            else
            {
                _vacation = _vacationViewModel.FindVacation(Id);
            }


            var controllers = new List <UIViewController>
            {
                new TypeVacViewController(View, 1),
                new TypeVacViewController(View, 2),
                new TypeVacViewController(View, 3),
                new TypeVacViewController(View, 4)
            };

            var _pageViewController = new UIPageViewController(UIPageViewControllerTransitionStyle.Scroll, UIPageViewControllerNavigationOrientation.Horizontal);
            var dataSource          = new ViewDataSource(controllers);

            _pageViewController.DataSource = dataSource;
            _pageViewController.SetViewControllers(new[] { controllers[0] }, UIPageViewControllerNavigationDirection.Forward, false, null);
            View.AddSubview(_pageViewController.View);



            UIDatePicker dateBtn = new UIDatePicker();

            dateBtn.Mode   = UIDatePickerMode.Date;
            dateBtn.Hidden = true;
            Add(dateBtn);



            UIButton uiStartButton = new UIButton();

            uiStartButton.BackgroundColor = UIColor.FromRGB(255, 255, 255);
            uiStartButton.SetTitle(_vacation.Start.ToString("d MMM yyyy"), UIControlState.Normal);
            uiStartButton.SetTitleColor(UIColor.FromRGB(160, 204, 75), UIControlState.Normal);
            Add(uiStartButton);

            UIButton uiEndButton = new UIButton();

            uiEndButton.BackgroundColor = UIColor.FromRGB(255, 255, 255);
            uiEndButton.SetTitle(_vacation.End.ToString("d MMM yyyy"), UIControlState.Normal);
            uiEndButton.SetTitleColor(UIColor.FromRGB(57, 197, 214), UIControlState.Normal);
            Add(uiEndButton);

            UISegmentedControl segmentControl = new UISegmentedControl
            {
                Frame = new CGRect(20, 20, 280, 40)
            };

            segmentControl.InsertSegment(_localizationService.Localize("Open"), 0, false);
            segmentControl.InsertSegment(_localizationService.Localize("Close"), 1, false);
            segmentControl.BackgroundColor = UIColor.FromRGB(255, 255, 255);
            segmentControl.TintColor       = UIColor.FromRGB(160, 204, 75);
            if (_vacation.VacationStatusId == 3)
            {
                segmentControl.SelectedSegment = 0;
            }
            else
            {
                segmentControl.SelectedSegment = 1;
            }

            segmentControl.ValueChanged += (sender, e) => {
                var selectedSegmentId =
                    (sender as UISegmentedControl).SelectedSegment;
                if (selectedSegmentId == 0)
                {
                    _vacation.VacationStatusId = 3;
                }
                else
                {
                    _vacation.VacationStatusId = 5;
                }
            };

            UISegmentedControl segmentControlImege = new UISegmentedControl
            {
                Frame = new CGRect(20, 20, 280, 40)
            };

            segmentControlImege.InsertSegment(UIImage.FromBundle("Icon_Request_Green"), 0, true);
            segmentControlImege.InsertSegment(UIImage.FromBundle("Icon_Request_Blue"), 1, true);
            segmentControlImege.InsertSegment(UIImage.FromBundle("Icon_Request_Gray"), 2, true);
            segmentControlImege.InsertSegment(UIImage.FromBundle("Icon_Request_Gray"), 3, true);
            segmentControlImege.InsertSegment(UIImage.FromBundle("Icon_Request_Gray"), 4, true);
            segmentControlImege.BackgroundColor = UIColor.Clear;
            segmentControlImege.TintColor       = UIColor.FromRGB(160, 204, 75);
            if (_vacation.VacationTypeId == 1)
            {
                segmentControlImege.SelectedSegment = 0;
            }
            else
            {
                segmentControlImege.SelectedSegment = 1;
            }

            segmentControlImege.ValueChanged += (sender, e) => {
                var selectedSegmentId =
                    (sender as UISegmentedControl).SelectedSegment;
                if (selectedSegmentId == 0)
                {
                    _vacation.VacationTypeId = 1;
                }
                if (selectedSegmentId == 1)
                {
                    _vacation.VacationTypeId = 2;
                }
                if (selectedSegmentId == 2)
                {
                    _vacation.VacationTypeId = 3;
                }
                if (selectedSegmentId == 4)
                {
                    _vacation.VacationTypeId = 5;
                }
                else
                {
                    _vacation.VacationTypeId = 1;
                }
            };

            Add(segmentControlImege);

            uiStartButton.TouchUpInside += (sender, arg) =>
            {
                dateBtn.Hidden        = false;
                dateBtn.ValueChanged += (s, e) =>
                {
                    DateTime reference = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(2001, 1, 1, 0, 0, 0));
                    _vacation.Start = reference.AddSeconds(dateBtn.Date.SecondsSinceReferenceDate);
                    uiStartButton.SetTitle(_vacation.Start.ToString("d MMM yyyy"), UIControlState.Normal);
                    dateBtn.Hidden = true;
                };
            };

            uiEndButton.TouchUpInside += (sender, arg) =>
            {
                dateBtn.Hidden        = false;
                dateBtn.ValueChanged += (s, e) =>
                {
                    DateTime reference = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(2001, 1, 1, 0, 0, 0));
                    _vacation.End = reference.AddSeconds(dateBtn.Date.SecondsSinceReferenceDate);
                    uiEndButton.SetTitle(_vacation.End.ToString("d MMM yyyy"), UIControlState.Normal);
                    dateBtn.Hidden = true;
                };
            };

            Add(label);
            Add(segmentControl);
            View.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
            View.AddConstraints(

                uiStartButton.Left().EqualTo().LeftOf(View).Plus(20),
                uiStartButton.Right().EqualTo().RightOf(uiEndButton).Minus(10),
                uiStartButton.WithSameCenterY(View).Minus(150),
                uiStartButton.WithSameWidth(View).Minus(View.Center.X).Minus(30),
                uiStartButton.Height().EqualTo(40),

                uiEndButton.Left().EqualTo().RightOf(uiStartButton).Plus(10),
                uiEndButton.Right().EqualTo().RightOf(View).Minus(20),
                uiEndButton.WithSameCenterY(View).Minus(150),
                uiEndButton.WithSameWidth(View).Minus(View.Center.X).Minus(30),
                uiEndButton.Height().EqualTo(40),

                segmentControl.Below(uiStartButton, 20),
                segmentControl.WithSameCenterX(View),
                segmentControl.Width().EqualTo(180),
                segmentControl.Height().EqualTo(40),

                segmentControlImege.Below(segmentControl, 20),
                segmentControlImege.WithSameCenterX(View),
                segmentControlImege.Width().EqualTo(250),
                segmentControlImege.Height().EqualTo(40),

                dateBtn.AtBottomOf(View).Minus(80),
                dateBtn.WithSameCenterX(View),
                dateBtn.Width().EqualTo(UIScreen.MainScreen.Bounds.Width).Minus((UIScreen.MainScreen.Bounds.Width / 9) * 2),
                dateBtn.Height().EqualTo(120)
                );
        }