예제 #1
0
        public void Execute(object parameter)
        {
            if (!CanExecute(parameter))
            {
                return;
            }

            var entry = (TimeReportEntryViewModel)parameter;

            if (entry.Type == TimeType.Regular)
            {
                if (entry.ItemId < 0)
                {
                    return;
                }
                var v = TimeDataInterface.DeleteTime(entry.ItemId);
                App.ToastMe(v
                    ? StringResources.AddTimePage_Messages_TimeDeleteSuccess
                    : StringResources.AddTimePage_Messages_TimeDeleteFailed);
            }
            else
            {
                if (entry.ItemId < 0)
                {
                    return;
                }
                bool v = RBCTimeDataInterface.DeleteTime(entry.ItemId);
                App.ToastMe(v ? StringResources.AddRBCTimePage_DeleteConfirmation : StringResources.AddRBCTimePage_DeleteFailed);
            }
        }
예제 #2
0
        public bool ConvertToRBCTime()
        {
            var rtd = new RBCTimeData {
                Minutes = TimeData.Minutes,
                Date    = TimeData.Date,
                Notes   = TimeData.Notes
            };

            return(DeleteTime() && RBCTimeDataInterface.AddOrUpdateTime(ref rtd));
        }
        public bool DeleteTime()
        {
            bool v = _rbcTimeData.ItemID >= 0 && RBCTimeDataInterface.DeleteTime(RBCTimeData);

            if (v)
            {
                _rbcTimeData = null;
                OnPropertyChanged("RBCTimeData");
            }
            return(v);
        }
예제 #4
0
        /// <summary>
        /// Constructor for the Application object.
        /// </summary>
        public App()
        {
            // Ensure the current culture passed into bindings
            // is the OS culture. By default, WPF uses en-US
            // as the culture, regardless of the system settings.
            LocalizationManager.GlobalStringLoader = new TelerikStringLoader();
            Thread.CurrentThread.CurrentCulture    = CultureInfo.CurrentUICulture;
            Thread.CurrentThread.CurrentUICulture  = CultureInfo.CurrentUICulture;

            var radDiagnostics = new RadDiagnostics();

            radDiagnostics.EmailTo           = "*****@*****.**";
            radDiagnostics.IncludeScreenshot = true;
            radDiagnostics.Init();
            (App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush).Color = Color.FromArgb(0xFF, 0xD2, 0xDA, 0x86);
            _settingsProvider = new SettingsProvider();
            // Global handler for uncaught exceptions.
            UnhandledException += Application_UnhandledException;

            // Standard Silverlight initialization
            InitializeComponent();

            // Phone-specific initialization
            InitializePhoneApplication();

            // Show graphics profiling information while debugging.
            if (Debugger.IsAttached)
            {
                // Display the current frame rate counters.
                Current.Host.Settings.EnableFrameRateCounter = false;

                // Show the areas of the app that are being redrawn in each frame.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Enable non-production analysis visualization mode,
                // which shows areas of a page that are handed off to GPU with a colored overlay.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // Disable the application idle detection by setting the UserIdleDetectionMode property of the
                // application's PhoneApplicationService object to Disabled.
                // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
                // and consume battery power when the user is not using the phone.
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
            }
            TimeDataInterface.CheckDatabase();
            ReturnVisitsInterface.CheckDatabase();
            RvPreviousVisitsDataInterface.CheckDatabase();
            RBCTimeDataInterface.CheckDatabase();
            TerritoryCardsInterface.CheckDatabase();
            StreetBuildingInterface.CheckDatabase();
            House2HouseRecordsInterface.CheckDatabase();
        }
예제 #5
0
        /// <summary>
        /// Sends the service report.
        /// </summary>
        private void SendServiceReport()
        {
            var      from = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(-1);
            DateTime tod  = new DateTime(from.Year, from.Month, 1).AddMonths(1).AddDays(-1);

            string body = string.Format(StringResources.MainPage_Report_Header, from);

            TimeData[] entries = Reporting.BuildTimeReport(from, tod, SortOrder.DateOldestToNewest);

            int tTime = 0;
            int tMags = 0;
            int tBks  = 0;
            int tBros = 0;
            int tRv   = 0;
            int tBs   = 0;
            int tTs   = 0;

            foreach (TimeData e in entries)
            {
                tTime += e.Minutes;
                tMags += e.Magazines;
                tBks  += e.Books;
                tBros += e.Brochures;
                tRv   += e.ReturnVisits;
                tBs   += e.BibleStudies;
                tTs   += e.Tracts;
            }

            body += string.Format(StringResources.MainPage_Report_Hours, ((double)tTime / 60.0));
            var x = RBCTimeDataInterface.GetMonthRBCTimeTotal(from);

            body += x > 0 ? string.Format(StringResources.MainPage_Report_AuxHours, ((double)x / 60.0)) : string.Empty;
            body += tMags > 0 ? string.Format(StringResources.MainPage_Report_Mags, tMags) : string.Empty;
            body += tBks > 0 ? string.Format(StringResources.MainPage_Report_Books, tBks) : string.Empty;
            body += tBros > 0 ? string.Format(StringResources.MainPage_Report_Brochures, tBros) : string.Empty;
            body += tTs > 0 ? string.Format(StringResources.MainPage_Report_Tracts, tTs) : string.Empty;
            body += tRv > 0 ? string.Format(StringResources.MainPage_Report_RVs, tRv) : string.Empty;
            body += tBs > 0 ? string.Format(StringResources.MainPage_Report_BibleStudies, tBs) : string.Empty;


            Reporting.SendReport(body);
        }
예제 #6
0
        /// <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 AddOrUpdateTime()
 {
     return(RBCTimeDataInterface.AddOrUpdateTime(ref _rbcTimeData));
 }
 public bool IsDoubleDateEntry(out int id)
 {
     //throw new NotImplementedException();
     id = -1;
     return(_rbcTimeData.ItemID <= 0 && RBCTimeDataInterface.IsDoubleDateEntry(_rbcTimeData.Date, out id));
 }