public static bool AddOrUpdateTime(ref TimeData td) { if (td.ItemId < 0) { return(AddTime(ref td)); } return(UpdateTime(ref td)); }
public bool ConvertToRegularTime() { var td = new TimeData { Date = _rbcTimeData.Date, Minutes = _rbcTimeData.Minutes, Notes = _rbcTimeData.Notes }; return DeleteTime() && TimeDataInterface.AddTime(ref td); }
/// <summary> /// Adds the time. /// </summary> /// <param name="d">The d.</param> public static bool AddTime(ref TimeData d) { using (var db = new TimeDataContext(TimeDataContext.DBConnectionString)) { var newTd = TimeData.Copy(d); db.TimeDataItems.InsertOnSubmit(newTd); db.SubmitChanges(); d.ItemId = newTd.ItemId; return newTd.ItemId > 0; } }
/// <summary> /// Adds the time. /// </summary> /// <param name="d">The d.</param> public static bool AddTime(ref TimeData d) { using (var db = new TimeDataContext(TimeDataContext.DBConnectionString)) { var newTd = TimeData.Copy(d); db.TimeDataItems.InsertOnSubmit(newTd); db.SubmitChanges(); d.ItemId = newTd.ItemId; return(newTd.ItemId > 0); } }
/// <summary> /// Gets the time data item. /// </summary> /// <param name="id">The id.</param> /// <returns>TimeData.</returns> public static TimeData GetTimeDataItem(int id) { using (var db = new TimeDataContext(TimeDataContext.DBConnectionString)) { try { TimeDataItem tdi = db.TimeDataItems.Single(s => s.ItemId == id); var td = TimeData.Copy(tdi); return(td); } catch (InvalidOperationException) { return(null); } } }
internal static TimeDataItem Copy(TimeData d) { return(new TimeDataItem { Date = d.Date, BibleStudies = d.BibleStudies, Books = d.Books, Brochures = d.Brochures, Magazines = d.Magazines, Minutes = d.Minutes, Notes = d.Notes, ReturnVisits = d.ReturnVisits, Tracts = d.Tracts }); }
/// <summary> /// Loads the time report. /// </summary> /// <param name="entries">The entries.</param> public void LoadTimeReport(TimeData[] entries) { if (!IsTimeReportDataLoading) { IsTimeReportDataLoading = true; OnPropertyChanged("IsTimeReportDataLoading"); icReport.Clear(); lbTimeEntries.Clear(); _timeReportTotal = 0; } int summaryMinTotal = 0; if (entries.Length <= 0) return; int month = entries[0].Date.Month; int year = entries[0].Date.Year; var summary = new TimeReportSummaryModel(); var rtdEntries = new List<RBCTimeData>(); //ListBox<int> rvList = new ListBox<int>(); foreach (TimeData td in entries) { //total regular time entries //build total number for the report. _timeReportTotal += td.Minutes; //summary data start if (month != td.Date.Month) { summary.Time = string.Format(StringResources.TimeReport_HoursAndMinutes, (summaryMinTotal / 60), summaryMinTotal > 0 ? summaryMinTotal % 60 : 0); summary.Minutes = summaryMinTotal; summary.RBCHours = (RBCTimeDataInterface.GetMonthRBCTimeTotal(new DateTime(year, month, 1))) / 60.0; RBCTimeData[] eee = RBCTimeDataInterface.GetRBCTimeEntries(new DateTime(year, month, 1), new DateTime(year, month, 1).AddMonths(1).AddDays(-1), SortOrder.DateNewestToOldest); if (eee != null) rtdEntries.AddRange(eee); icReport.Add(summary); summary = new TimeReportSummaryModel(); month = td.Date.Month; year = td.Date.Year; summaryMinTotal = 0; } summary.Month = td.Date.ToString("MMMM", CultureInfo.CurrentUICulture).ToUpper(); summary.Days++; summaryMinTotal += td.Minutes; summary.Magazines += td.Magazines; summary.BibleStudies += td.BibleStudies; summary.Books += td.Books; summary.Brochures += td.Brochures; summary.ReturnVisits += td.ReturnVisits; summary.Tracts += td.Tracts; //summary data end. //add the time data to the entries page. lbTimeEntries.Add(new TimeReportEntryViewModel { Date = td.Date, Hours = string.Format(StringResources.TimeReport_HoursAndMinutes, (td.Minutes / 60), td.Minutes > 0 ? td.Minutes % 60 : 0), ItemId = td.ItemId, Minutes = td.Minutes, EditLink = string.Format("/View/RegularTime.xaml?id={0}", td.ItemId), Notes = td.Notes, MagazinesCount = td.Magazines, BrochuresCount = td.Brochures, BooksCount = td.Books, TractsCount = td.Tracts, RVsCount = td.ReturnVisits, Type = TimeType.Regular }); } RBCTimeData[] ee = RBCTimeDataInterface.GetRBCTimeEntries(new DateTime(year, month, 1), new DateTime(year, month, 1).AddMonths(1).AddDays(-1), SortOrder.DateNewestToOldest); if (ee != null) rtdEntries.AddRange(ee); summary.RBCHours = (RBCTimeDataInterface.GetMonthRBCTimeTotal(new DateTime(year, month, 1)) / 60.0); summary.Time = string.Format(StringResources.TimeReport_HoursAndMinutes, (summaryMinTotal / 60), summaryMinTotal > 0 ? summaryMinTotal % 60 : 0); summary.Minutes = summaryMinTotal; icReport.Add(summary); foreach (RBCTimeData e in rtdEntries) { //add time _timeReportTotal += e.Minutes; lbTimeEntries.Add(new TimeReportEntryViewModel { Date = e.Date, Hours = string.Format(StringResources.TimeReport_AuxHoursAndMinutes, (int)e.Hours, e.Minutes > 0 ? e.Minutes % 60 : 0), ItemId = e.ItemID, Minutes = e.Minutes, EditLink = string.Format("/View/RBCTime.xaml?id={0}", e.ItemID), Notes = e.Notes, MagazinesCount = -1, BrochuresCount = -1, BooksCount = -1, RVsCount = -1, TractsCount = -1, Type = TimeType.Auxiliary }); } TimeReportEntryViewModel[] lte = lbTimeEntries.OrderBy(s => s.Date.Date).ToArray(); lbTimeEntries.Clear(); foreach (TimeReportEntryViewModel l in lte) lbTimeEntries.Add(l); TimeReportChartData = new ObservableCollection<TimeChartInfo>(); if (icReport.Count > 1) { foreach (TimeReportSummaryModel v in icReport) { TimeReportChartData.Add(new TimeChartInfo { Header = new String(v.Month.Take(3).ToArray()), Time = (v.Minutes / 60.0) }); } } else { foreach (TimeReportEntryViewModel v in lbTimeEntries) { TimeReportChartData.Add(new TimeChartInfo { Header = string.Format("{0}/{1}", v.Date.Month, v.Date.Day), Time = (v.Minutes / 60.0) }); } } OnPropertyChanged("TimeReportTotal"); OnPropertyChanged("TimeReportGaugeValue"); OnPropertyChanged("TimeReportGaugeGoalValue"); OnPropertyChanged("TimeReportGoalText"); OnPropertyChanged("TimeReportRemainingText"); IsTimeReportDataLoading = false; OnPropertyChanged("IsTimeReportDataLoading"); OnPropertyChanged("TimeReportChartData"); }
public bool DeleteTime() { bool v = _timeData.ItemId >= 0 && TimeDataInterface.DeleteTime(_timeData.ItemId); if (v) { _timeData = null; OnPropertyChanged("TimeData"); } return v; }
/// <summary> /// Updates the time. /// </summary> /// <param name="td">The td.</param> /// <returns>System.Int32.</returns> /// <exception cref="MyTimeDatabaseLib.TimeDataItemNotFoundException">Couldn't find the time data with that id.</exception> public static bool UpdateTime(ref TimeData td) { if (td.ItemId < 0) return AddTime(ref td); int itemId = td.ItemId; using (var db = new TimeDataContext(TimeDataContext.DBConnectionString)) { try { TimeDataItem tdi = db.TimeDataItems.Single(s => s.ItemId == itemId); tdi.BibleStudies = td.BibleStudies; tdi.Books = td.Books; tdi.Brochures = td.Brochures; tdi.Date = td.Date; tdi.Magazines = td.Magazines; tdi.Minutes = td.Minutes; tdi.Notes = td.Notes; tdi.ReturnVisits = td.ReturnVisits; tdi.Tracts = td.Tracts; db.SubmitChanges(); return true; } catch(InvalidOperationException) { return AddTime(ref td); } catch { throw new TimeDataItemNotFoundException("Couldn't find the time data with that id."); } } }
internal static TimeDataItem Copy(TimeData d) { return new TimeDataItem { Date = d.Date, BibleStudies = d.BibleStudies, Books = d.Books, Brochures = d.Brochures, Magazines = d.Magazines, Minutes = d.Minutes, Notes = d.Notes, ReturnVisits = d.ReturnVisits, Tracts = d.Tracts }; }
public static bool AddOrUpdateTime(ref TimeData td) { if (td.ItemId < 0) return AddTime(ref td); return UpdateTime(ref td); }
private void TimeAdditClickTapEvent() { if (_timerState == TimerState.Running) PauseTimer(); TimeSpan t = TimerTimeSpan; if (t.TotalMinutes <= 0) { App.ToastMe(StringResources.MainPage_Messages_CantAddZeroMin); return; } var ts = TimeSpan.FromMinutes(App.Settings.roundTimeIncrement * Math.Ceiling(t.TotalMinutes / App.Settings.roundTimeIncrement)); float m = float.Parse(t.TotalMinutes.ToString()) % App.Settings.roundTimeIncrement; if (m <= (App.Settings.roundTimeIncrement / 2.0)) t = TimeSpan.FromMinutes(ts.TotalMinutes - App.Settings.roundTimeIncrement); else t = ts; var minutes = (int)t.TotalMinutes; if (minutes <= 0) { App.ToastMe(StringResources.MainPage_Messages_CantAddZeroMin); return; } var td = new TimeData { Date = DateTime.Now, Minutes = minutes, Magazines = (int)tbMags.Value, Brochures = (int)tbBrochures.Value, Books = (int)tbBooks.Value, Tracts = (int)tbTracts.Value, BibleStudies = (int)tbBibleStudies.Value, ReturnVisits = (int)tbReturnVisits.Value, Notes = tbNotes.Text }; try { int id; if (TimeDataInterface.IsDoubleDataEntry(DateTime.Now, out id) && MessageBox.Show(StringResources.AddRBCTimePage_AskForDoubleEntry, "", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { var tdOld = TimeDataInterface.GetTimeDataItem(id); tdOld.Minutes += td.Minutes; tdOld.Magazines += td.Magazines; tdOld.Brochures += td.Brochures; tdOld.Books += td.Books; tdOld.Tracts += td.Tracts; tdOld.BibleStudies += td.BibleStudies; tdOld.ReturnVisits += td.ReturnVisits; tdOld.Notes += td.Notes.Length > 0 ? string.Format("\n\n{0}", td.Notes) : string.Empty; TimeDataInterface.UpdateTime(ref tdOld); var a = new TimeSpan(0, tdOld.Minutes, 0); App.ToastMe(string.Format(StringResources.MainPage_Messages_AddedTime, a.Hours, a.Minutes)); } else { TimeDataInterface.AddTime(ref td); App.ToastMe(string.Format(StringResources.MainPage_Messages_AddedTime, t.Hours, t.Minutes)); } TimerStopClickTapEvent(); ResetText(); } catch (Exception ee) { throw ee; } }