Ejemplo n.º 1
0
        private View CreateYearView(ViewGroup root, ViewItemYear year)
        {
            var view = new ListItemYearView(root, year);

            view.OnAddSemesterRequested += delegate
            {
                ViewModel.AddSemester(year.Identifier);
            };

            view.OnOpenSemesterRequested += (s, viewItemSemester) =>
            {
                ViewModel.OpenSemester(viewItemSemester.Identifier);
            };

            view.OnEditRequested         += YearView_OnEditRequested;
            view.OnEditSemesterRequested += YearView_OnEditSemesterRequested;

            //RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
            //    RelativeLayout.LayoutParams.WrapContent,
            //    RelativeLayout.LayoutParams.WrapContent
            //    );
            //var marginLeftRight = ThemeHelper.AsPx(context, 10);
            //var marginTopBottom = marginLeftRight / 2;
            //p.SetMargins(marginLeftRight, marginTopBottom, marginLeftRight, marginTopBottom);

            //view.LayoutParameters = p;

            return(view);
        }
Ejemplo n.º 2
0
        public static AddYearViewModel CreateForEdit(BaseViewModel parent, ViewItemYear yearToEdit)
        {
            var viewModel = new AddYearViewModel(parent)
            {
                State      = OperationState.Editing,
                YearToEdit = yearToEdit,
                Name       = yearToEdit.Name
            };

            viewModel.ListenToItem(yearToEdit.Identifier).Deleted += viewModel.Year_Deleted;

            return(viewModel);
        }
Ejemplo n.º 3
0
        public ListItemYearView(ViewGroup root, ViewItemYear year) : base(Resource.Layout.ListItemYear, root)
        {
            DataContext = year;
            Year        = year;

            FindViewById <Button>(Resource.Id.ButtonAddSemester).Click += delegate { OnAddSemesterRequested?.Invoke(this, new EventArgs()); };
            FindViewById <View>(Resource.Id.YearName).Click            += delegate { OnEditRequested?.Invoke(this, new EventArgs()); };

            _itemsWrapperSemester = new ItemsControlWrapper(FindViewById <ViewGroup>(Resource.Id.ViewGroupSemesters))
            {
                ItemsSource  = year.Semesters,
                ItemTemplate = new CustomDataTemplate <ViewItemSemester>(CreateSemester)
            };
        }
Ejemplo n.º 4
0
 public void EditYear(ViewItemYear year)
 {
     ShowPopup(AddYearViewModel.CreateForEdit(MainScreenViewModel, year));
 }
Ejemplo n.º 5
0
 private void YearView_OnRequestAddSemester(object sender, ViewItemYear e)
 {
     ViewModel.AddSemester(e.Identifier);
 }
Ejemplo n.º 6
0
 private void YearView_OnRequestEditYear(object sender, ViewItemYear e)
 {
     ViewModel.EditYear(e);
 }
Ejemplo n.º 7
0
        public async Task TestAddingYear()
        {
            ViewModelYearsAndSemesters viewModel = await ViewModelYearsAndSemesters.LoadAsync(LocalAccountId);

            var years = viewModel.School.Years;

            Assert.AreEqual(0, years.Count);

            DataItemYear year = new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Freshman"
            };

            DataChanges changes = new DataChanges();

            changes.Add(year);

            await DataStore.ProcessLocalChanges(changes);

            Assert.AreEqual(1, DataStore.TableYears.Count(), "Database count of years incorrect");

            Assert.AreEqual(1, years.Count, "View model didn't update");

            ViewItemYear viewYear = years.First();

            Assert.AreEqual("Freshman", viewYear.Name);
            Assert.AreEqual(year.Identifier, viewYear.Identifier);
            Assert.IsTrue((DateTime.UtcNow - viewYear.DateCreated).TotalSeconds < 2);


            changes = new DataChanges();
            changes.Add(new DataItemYear()
            {
                Identifier = Guid.NewGuid(),
                Name       = "Sophomore"
            });

            await DataStore.ProcessLocalChanges(changes);

            Assert.AreEqual(2, DataStore.TableYears.Count(), "Database count of years incorrect");

            Assert.AreEqual(2, years.Count);

            Assert.AreEqual("Sophomore", years.Last().Name);


            // Sleep so that updated time should be different than created time
            await Task.Delay(20);


            DateTime originalDateCreated = years.First().DateCreated;


            changes = new DataChanges();
            changes.Add(new DataItemYear()
            {
                Identifier = years.First().Identifier,
                Name       = "Freshman Edited"
            });

            await DataStore.ProcessLocalChanges(changes);

            Assert.AreEqual(2, DataStore.TableYears.Count());
            Assert.AreEqual(2, years.Count);

            viewYear = years.First();

            Assert.AreEqual("Freshman Edited", viewYear.Name);
            Assert.AreEqual(originalDateCreated, viewYear.DateCreated);
            Assert.AreNotEqual(viewYear.DateCreated, viewYear.Updated);
        }