Esempio n. 1
0
        private DeeplinkParameters parseShowCalendar(Dictionary <string, string> args)
        {
            // e.g: toggl://tracker/calendar?eventId=1
            var eventId = args.GetValueAsString(ApplicationUrls.Calendar.EventId);

            return(DeeplinkParameters.WithCalendar(eventId));
        }
Esempio n. 2
0
        private DeeplinkParameters parseUpdateTimeEntry(Dictionary <string, string> args)
        {
            // e.g: toggl://tracker/timeEntry/update?timeEntryId=1workspaceId=1&startTime="2019-04-18T09:35:47Z"&stopTime="2019-04-18T09:45:47Z"&description="Toggl"&projectId=1&taskId=1&tags=[]&billable=true&source=Siri
            var timeEntryId = args.GetValueAsLong(ApplicationUrls.TimeEntry.TimeEntryId);
            var workspaceId = args.GetValueAsLong(ApplicationUrls.TimeEntry.WorkspaceId);
            var startTime   = args.GetValueAsDateTimeOffset(ApplicationUrls.TimeEntry.StartTime);
            var stopTime    = args.GetValueAsDateTimeOffset(ApplicationUrls.TimeEntry.StopTime);
            var description = args.GetValueAsString(ApplicationUrls.TimeEntry.Description);
            var projectId   = args.GetValueAsLong(ApplicationUrls.TimeEntry.ProjectId);
            var taskId      = args.GetValueAsLong(ApplicationUrls.TimeEntry.TaskId);
            var tags        = args.GetValueAsLongs(ApplicationUrls.TimeEntry.Tags);
            var isBillable  = args.GetValueAsBool(ApplicationUrls.TimeEntry.Billable) ?? false;

            if (!timeEntryId.HasValue)
            {
                return(DeeplinkParameters.Other);
            }

            return(DeeplinkParameters.WithUpdateTimeEntry(
                       timeEntryId.Value,
                       args.ContainsKey(ApplicationUrls.TimeEntry.Description), description,
                       args.ContainsKey(ApplicationUrls.TimeEntry.StartTime), startTime,
                       args.ContainsKey(ApplicationUrls.TimeEntry.StopTime), stopTime,
                       args.ContainsKey(ApplicationUrls.TimeEntry.WorkspaceId), workspaceId,
                       args.ContainsKey(ApplicationUrls.TimeEntry.ProjectId), projectId,
                       args.ContainsKey(ApplicationUrls.TimeEntry.TaskId), taskId,
                       args.ContainsKey(ApplicationUrls.TimeEntry.Tags), tags,
                       args.ContainsKey(ApplicationUrls.TimeEntry.Billable), isBillable));
        }
Esempio n. 3
0
        private DeeplinkParameters parseStopTimeEntry(Dictionary <string, string> args)
        {
            // e.g: toggl://tracker/timeEntry/stop?stopTime="2019-04-18T09:45:47Z"&source=Siri
            var stopTime = args.GetValueAsDateTimeOffset(ApplicationUrls.TimeEntry.StopTime);
            var source   = args.GetValueAsEnumCase(ApplicationUrls.TimeEntry.Source, TimeEntryStopOrigin.Deeplink);

            return(DeeplinkParameters.WithStopTimeEntry(stopTime, source));
        }
Esempio n. 4
0
        private DeeplinkParameters parseShowReports(Dictionary <string, string> args)
        {
            // e.g: toggl://tracker/reports?workspaceId=1&startDate="2019-04-18T09:35:47Z"&endDate="2019-04-18T09:45:47Z"
            var workspaceId = args.GetValueAsLong(ApplicationUrls.Reports.WorkspaceId);
            var startDate   = args.GetValueAsDateTimeOffset(ApplicationUrls.Reports.StartDate);
            var endDate     = args.GetValueAsDateTimeOffset(ApplicationUrls.Reports.EndDate);

            return(DeeplinkParameters.WithReports(workspaceId, startDate, endDate));
        }
Esempio n. 5
0
        private DeeplinkParameters parseEditTimeEntry(Dictionary <string, string> args)
        {
            // e.g: toggl://tracker/timeEntry/edit?timeEntryId=1
            var timeEntryId = args.GetValueAsLong(ApplicationUrls.TimeEntry.TimeEntryId);

            if (!timeEntryId.HasValue)
            {
                return(DeeplinkParameters.Other);
            }

            return(DeeplinkParameters.WithEditTimeEntry(timeEntryId.Value));
        }
Esempio n. 6
0
        private DeeplinkParameters parseNewTimeEntry(Dictionary <string, string> args)
        {
            // e.g: toggl://tracker/timeEntry/new?workspaceId=1&startTime="2019-04-18T09:35:47Z"&stopTime="2019-04-18T09:45:47Z"&duration=600&description="Toggl"&projectId=1&tags=[]
            var workspaceId = args.GetValueAsLong(ApplicationUrls.TimeEntry.WorkspaceId);
            var startTime   = args.GetValueAsDateTimeOffset(ApplicationUrls.TimeEntry.StartTime);
            var stopTime    = args.GetValueAsDateTimeOffset(ApplicationUrls.TimeEntry.StopTime);
            var duration    = args.GetValueAsTimeSpan(ApplicationUrls.TimeEntry.Duration);
            var description = args.GetValueAsString(ApplicationUrls.TimeEntry.Description);
            var projectId   = args.GetValueAsLong(ApplicationUrls.TimeEntry.ProjectId);
            var tags        = args.GetValueAsLongs(ApplicationUrls.TimeEntry.Tags);

            return(DeeplinkParameters.WithNewTimeEntry(description, startTime, stopTime, duration, workspaceId, projectId, tags));
        }
Esempio n. 7
0
        private DeeplinkParameters parseCreateTimeEntry(Dictionary <string, string> args)
        {
            // e.g: toggl://tracker/timeEntry/create?workspaceId=1&startTime="2019-04-18T09:35:47Z"&stopTime="2019-04-18T09:45:47Z"&duration=600&description="Toggl"&projectId=1&taskId=1&tags=[]&billable=true&source=Siri
            var workspaceId = args.GetValueAsLong(ApplicationUrls.TimeEntry.WorkspaceId);
            var startTime   = args.GetValueAsDateTimeOffset(ApplicationUrls.TimeEntry.StartTime);
            var stopTime    = args.GetValueAsDateTimeOffset(ApplicationUrls.TimeEntry.StopTime);
            var duration    = args.GetValueAsTimeSpan(ApplicationUrls.TimeEntry.Duration);
            var description = args.GetValueAsString(ApplicationUrls.TimeEntry.Description);
            var projectId   = args.GetValueAsLong(ApplicationUrls.TimeEntry.ProjectId);
            var taskId      = args.GetValueAsLong(ApplicationUrls.TimeEntry.TaskId);
            var tags        = args.GetValueAsLongs(ApplicationUrls.TimeEntry.Tags);
            var isBillable  = args.GetValueAsBool(ApplicationUrls.TimeEntry.Billable) ?? false;
            var source      = args.GetValueAsEnumCase(ApplicationUrls.TimeEntry.Source, TimeEntryStartOrigin.Deeplink);

            return(DeeplinkParameters.WithCreateTimeEntry(description, startTime, stopTime, duration, workspaceId, projectId, taskId, tags, isBillable, source));
        }
Esempio n. 8
0
 private DeeplinkParameters parseContinueLast()
 {
     // e.g: toggl://tracker/timeEntry/continue
     return(DeeplinkParameters.WithContinueLast());
 }