public static bool IsBillable(this DetailedReportDatum entry) { if (string.IsNullOrEmpty(entry.Project)) { return(false); } return(!NonBillableProjects.Any(x => (entry.Project ?? "").Contains(x, StringComparison.OrdinalIgnoreCase))); }
public List <DetailedReportDatum> LoadEntriesLocallyAndFix() { var entries = JsonConvert.DeserializeObject <List <DetailedReportDatum> >(File.ReadAllText("entries.json")) ?? new List <DetailedReportDatum>(); var fixedEntries = new List <DetailedReportDatum>(); foreach (var entry in entries) { var fixedEntry = entry; var startDate = new DateTime(fixedEntry.Start.Year, fixedEntry.Start.Month, fixedEntry.Start.Day, fixedEntry.Start.Hour, fixedEntry.Start.Minute, 0); var endDate = new DateTime(fixedEntry.End.Year, fixedEntry.End.Month, fixedEntry.End.Day, fixedEntry.End.Hour, fixedEntry.End.Minute, 0); // dirty hack to work around time zones and time entries that start at 00:00 (usually holiday/vacation) while (startDate.Date != endDate.Date) { startDate = startDate.AddHours(1); endDate = endDate.AddHours(1); } fixedEntry = new DetailedReportDatum( fixedEntry.Id, fixedEntry.ProjectId, fixedEntry.TaskId, fixedEntry.UserId, fixedEntry.Description, startDate, endDate, fixedEntry.Updated, fixedEntry.DurationMs, fixedEntry.User, fixedEntry.UseStop, fixedEntry.Client, fixedEntry.Project, fixedEntry.ProjectColor, fixedEntry.ProjectHexColor, fixedEntry.Task, entry.BillableTimeMs, fixedEntry.IsBillable, fixedEntry.Currency, fixedEntry.Tags ); fixedEntries.Add(fixedEntry); } return(fixedEntries); }
public static bool IsLegacyVacationHolidaySick(this DetailedReportDatum entry) { return((entry.Project ?? "").Equals("Feiertag, Krankenstand, Urlaub", StringComparison.OrdinalIgnoreCase)); }
public static bool IsSpecialVacation(this DetailedReportDatum entry) { return((entry.Project ?? "").Equals("Sonderurlaub", StringComparison.OrdinalIgnoreCase)); }
public static bool IsPersonalHoliday(this DetailedReportDatum entry) { return((entry.Project ?? "").Equals("Persönlicher Feiertag", StringComparison.OrdinalIgnoreCase)); }
public static bool IsSick(this DetailedReportDatum entry) { return((entry.Project ?? "").Equals("Krankenstand", StringComparison.OrdinalIgnoreCase)); }
public static bool IsDoctor(this DetailedReportDatum entry) { return((entry.Project ?? "").Equals("Arztbesuch", StringComparison.OrdinalIgnoreCase)); }
public static bool IsVacation(this DetailedReportDatum entry) { return((entry.Project ?? "").Equals("Urlaub", StringComparison.InvariantCultureIgnoreCase)); }
public static bool IsHoliday(this DetailedReportDatum entry) { return((entry.Project ?? "").Equals("Feiertag", StringComparison.InvariantCultureIgnoreCase)); }