示例#1
0
        public OperationStatus GetTimeEntryList(object token, TimeEntryFilter filter)
        {
            try
            {
                var validation = filter.Validate();
                if (!(bool)validation)
                {
                    return(validation);
                }

                using (IDatabase db = this.CurrentDatabase)
                {
                    var existingUser = db.SingleOrDefault <User>("where accesstoken=@0", token);

                    if (existingUser == null)
                    {
                        return(OperationStatus.Failed("Token is invalid"));
                    }
                    //TODO
                    var entries = filter.HasFilter ?
                                  db.Fetch <TimeEntry>("where userId=@0 and entryDate>=@1 and entryDate<=@2", existingUser.Id, DateTimeSQLite(filter.StartDate.Value), DateTimeSQLite(filter.EndDate.Value)) :
                                  db.Fetch <TimeEntry>("where userId=@0", existingUser.Id);

                    return(OperationStatus.Passed("Time entries fetched", entries));
                }
            }
            catch (Exception exc)
            {
                Logger.LogException(exc);

                return(OperationStatus.Failed("Error fetching time entries"));
            }
        }
        public async void Execute(object parameter)
        {
            TimeEntryFilter filter = parameter as TimeEntryFilter;

            if (filter != null)
            {
                OperationStatus validationStatus = filter.Validate();

                if (!(bool)validationStatus)
                {
                    MessageBox.Show(validationStatus.StatusDescription);
                }
                else
                {
                    basePage.IsBusy = true;
                    var operationStatus = await App.TimeService.GetTimeEntryList(filter);

                    if ((bool)operationStatus)
                    {
                        List <TimeEntry> list = (List <TimeEntry>)operationStatus.Data;
                        basePage.uxTimeEntries.ItemsSource = list;
                    }
                    else
                    {
                        MessageBox.Show(operationStatus.StatusDescription);
                    }
                    basePage.IsBusy = false;
                }
            }
        }
        public Task <OperationStatus> GetTimeEntryList(TimeEntryFilter filter)
        {
            var tcs = new TaskCompletionSource <OperationStatus>();

            var client  = new RestClient(BaseUrl);
            var request = new RestRequest("api/time/list", Method.POST);

            request.RequestFormat = DataFormat.Json;
            request.AddHeader("auth-token", AppConfiguration.Token);
            request.AddBody(filter);

            client.ExecuteAsync(request, response =>
            {
                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var data = JsonConvert.DeserializeObject <OperationStatus>(response.Content);

                    if (data != null && (bool)data)
                    {
                        var list = JsonConvert.DeserializeObject <List <TimeEntry> >(data.Data.ToString());

                        data.Data = list;
                    }

                    tcs.SetResult(data);
                }
                else
                {
                    tcs.SetResult(OperationStatus.Failed("Error getting list"));
                }
            });

            return(tcs.Task);
        }
        public MainPage()
        {
            Filter        = new TimeEntryFilter();
            SearchCommand = new SearchCommand(this);

            this.InitializeComponent();
            this.DataContext = this;
        }
示例#5
0
 public void SetAllChildrenVisibleByFilters(TimeEntryFilter timeEntryFilter, TreeItemSelectionFilter selectionFilter)
 {
     VisibleChildren = new ObservableCollection <ListItemModelBase>(Children.Where(x => x.CanPass(timeEntryFilter, selectionFilter)));
     foreach (var child in VisibleChildren)
     {
         child.SetAllChildrenVisibleByFilters(timeEntryFilter, selectionFilter);
     }
     Reload();
 }
示例#6
0
        public OperationStatus PostGetTimeEntries(TimeEntryFilter filter)
        {
            string token = ServerHelpers.GetAccessTokenFromRequest(this.Request);

            if ((bool)_usersService.Authorize(token))
            {
                return(_timeService.GetTimeEntryList(token, filter));
            }
            else
            {
                return(OperationStatus.Failed("Token is invalid"));
            }
        }
示例#7
0
 private void ResetFilter(object obj)
 {
     _timeEntryFilter  = new TimeEntryFilter();
     BillableOnly      = false;
     Invoiced          = true;
     NotInvoiced       = true;
     HideEmptyProjects = false;
     HideEmptyTasks    = false;
     SelectedUsers.Clear();
     OnPropertyChanged("SelectedUsers");
     OnPropertyChanged("HasConsultants");
     InternalCommands.UserFilterChanged.Execute(null);
 }
示例#8
0
        public FilterViewModel(IDataService dataService)
        {
            _dataService       = dataService;
            Users              = new List <User>();
            SelectedUsers      = new ObservableCollection <UserFilterViewModel>();
            ApplyFilterCommand = new DelegateCommand <object>(ApplyFilter);
            ResetFilterCommand = new DelegateCommand <object>(ResetFilter);



            _timeEntryFilter = new TimeEntryFilter();
            LoadUsers();
            InitUserFilter();

            Invoiced    = true;
            NotInvoiced = true;

            InternalCommands.UserSelected.RegisterCommand(new DelegateCommand <object>(UserSelected));
            InternalCommands.UserDeselected.RegisterCommand(new DelegateCommand <User>(RemoveUser));
        }
示例#9
0
 public void UserFilterChanged(TimeEntryFilter timeEntryFilter)
 {
     _timeEntryFilter = timeEntryFilter;
     ReloadView();
 }
示例#10
0
 public override bool CanPass(TimeEntryFilter filter, TreeItemSelectionFilter selectionFilter)
 {
     return(selectionFilter.HasTask(Task) &&
            !(filter != null && filter.HideEmptyTasks && !Task.TimeEntries.Any(filter.CanPassFilter)));
 }
 public override bool CanPass(TimeEntryFilter filter, TreeItemSelectionFilter selectionFilter)
 {
     return(filter == null || filter.CanPassFilter(TimeEntry));
 }
示例#12
0
 public virtual bool CanPass(TimeEntryFilter filter, TreeItemSelectionFilter selectionFilter)
 {
     return(true);
 }
示例#13
0
 public void Setup()
 {
     sut  = new TimeEntryFilter();
     date = new DateTime(2014, 10, 10, 10, 10, 10);
 }