Esempio n. 1
0
        public static async Task <ProjectListViewModel> Init(Guid workspaceId)
        {
            var vm = new ProjectListViewModel(workspaceId);

            var store         = ServiceContainer.Resolve <IDataStore> ();
            var settingsStore = ServiceContainer.Resolve <ISettingsStore> ();

            // Change settings for a better library like
            // James Montemagno version and define default
            // values to avoid this code.
            if (string.IsNullOrEmpty(settingsStore.SortProjectsBy))
            {
                settingsStore.SortProjectsBy = ProjectsCollection.SortProjectsBy.Clients.ToString();
            }
            var savedSort = Enum.Parse(typeof(ProjectsCollection.SortProjectsBy), settingsStore.SortProjectsBy);

            vm.ProjectList = await ProjectsCollection.Init((ProjectsCollection.SortProjectsBy) savedSort, workspaceId);

            vm.WorkspaceList = await store.Table <WorkspaceData> ().Where(r => r.DeletedAt == null)
                               .OrderBy(r => r.Name).ToListAsync();

            vm.CurrentWorkspaceIndex = vm.WorkspaceList.IndexOf(p => p.Id == workspaceId);

            // Search stream
            Observable.FromEventPattern <string> (ev => vm.onSearch += ev, ev => vm.onSearch -= ev)
            .Throttle(TimeSpan.FromMilliseconds(300))
            .DistinctUntilChanged()
            .Subscribe
                (p => ServiceContainer.Resolve <IPlatformUtils> ().DispatchOnUIThread(() => {
                vm.ProjectList.ProjectNameFilter = p.EventArgs;
            }),
                ex => ServiceContainer.Resolve <ILogger> ().Error("Search", ex, null));

            return(vm);
        }
Esempio n. 2
0
        public static async Task<ProjectListViewModel> Init (Guid workspaceId)
        {
            var vm = new ProjectListViewModel (workspaceId);

            var store = ServiceContainer.Resolve<IDataStore> ();
            var settingsStore = ServiceContainer.Resolve<ISettingsStore> ();

            // Change settings for a better library like
            // James Montemagno version and define default
            // values to avoid this code.
            if (string.IsNullOrEmpty (settingsStore.SortProjectsBy)) {
                settingsStore.SortProjectsBy = ProjectsCollection.SortProjectsBy.Clients.ToString ();
            }
            var savedSort = Enum.Parse (typeof (ProjectsCollection.SortProjectsBy), settingsStore.SortProjectsBy);

            vm.ProjectList = await ProjectsCollection.Init ((ProjectsCollection.SortProjectsBy)savedSort, workspaceId);
            vm.WorkspaceList = await store.Table<WorkspaceData> ().Where (r => r.DeletedAt == null)
                               .OrderBy (r => r.Name).ToListAsync ();
            vm.CurrentWorkspaceIndex = vm.WorkspaceList.IndexOf (p => p.Id == workspaceId);

            // Search stream
            Observable.FromEventPattern<string> (ev => vm.onSearch += ev, ev => vm.onSearch -= ev)
            .Throttle (TimeSpan.FromMilliseconds (300))
            .DistinctUntilChanged ()
            .Subscribe
            (p => ServiceContainer.Resolve<IPlatformUtils> ().DispatchOnUIThread (() => {
                vm.ProjectList.ProjectNameFilter = p.EventArgs;
            }),
            ex => ServiceContainer.Resolve<ILogger> ().Error ("Search", ex, null));

            return vm;
        }
Esempio n. 3
0
        public async override void OnViewCreated (View view, Bundle savedInstanceState)
        {
            base.OnViewCreated (view, savedInstanceState);

            if (viewModel == null) {
                var timeEntryList = await ProjectListActivity.GetIntentTimeEntryData (Activity.Intent);
                if (timeEntryList.Count == 0) {
                    Activity.Finish ();
                    return;
                }
                viewModel = new ProjectListViewModel (timeEntryList);
            }

            var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList);
            adapter.HandleProjectSelection = OnItemSelected;
            recyclerView.SetAdapter (adapter);

            viewModel.OnIsLoadingChanged += OnModelLoaded;
            await viewModel.Init ();
        }
        public async override void OnViewCreated (View view, Bundle savedInstanceState)
        {
            base.OnViewCreated (view, savedInstanceState);

            viewModel = new ProjectListViewModel (TimeEntryIds);
            await viewModel.Init ();

            var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList);
            adapter.HandleProjectSelection = OnItemSelected;
            recyclerView.SetAdapter (adapter);

            OnDataLoaded (null, null);
        }
        public async override void OnViewCreated (View view, Bundle savedInstanceState)
        {
            base.OnViewCreated (view, savedInstanceState);
            viewModel = await ProjectListViewModel.Init (WorkspaceId);

            var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList);
            adapter.HandleItemSelection = OnItemSelected;
            recyclerView.SetAdapter (adapter);

            ConfigureUIViews ();
            CreateWorkspaceTabs ();
        }
        public async override void OnViewCreated (View view, Bundle savedInstanceState)
        {
            base.OnViewCreated (view, savedInstanceState);

            viewModel = new ProjectListViewModel (TimeEntryIds);
            await viewModel.Init ();

            var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList);
            adapter.HandleProjectSelection = OnItemSelected;
            recyclerView.SetAdapter (adapter);

            EnsureCorrectState ();

            // Create tabs
            if (viewModel.ProjectList.Workspaces.Count > 1) {
                int i = 0;
                foreach (var ws in viewModel.ProjectList.Workspaces) {
                    var tab = tabLayout.NewTab().SetText (ws.Data.Name);
                    tabLayout.AddTab (tab);
                    if (ws.Data.Id == viewModel.TimeEntryList[0].WorkspaceId) {
                        viewModel.ProjectList.CurrentWorkspaceIndex = i;
                        tab.Select();
                    }
                    i++;
                }
            }
        }
Esempio n. 7
0
 public ProjectListFragment (IList<TimeEntryData> timeEntryList)
 {
     viewModel = new ProjectListViewModel (timeEntryList);
 }