Beispiel #1
0
		private void TimerCallback (object state)
		{
			try {
				if (_startupTimer != null)
					_startupTimer.Dispose ();

				// all caches
				using (AccountClient ac = new AccountClient ()) {


					if (!ac.ProfileGet ().HasErrors) {
						UserContext.Current.Person = ac.GetProfileResult;
						LogContext.Current.Log<CacheContext> ("UserContext.TimerCallback.ProfileGet");

						if (!String.IsNullOrWhiteSpace (UserContext.Current.Person.CorporationNumber1)) {
							// get corporate offices for addresses
							if (!ac.GetCorpAddresses (UserContext.Current.Person.CorporationNumber1, false).HasErrors) {
								UserContext.Current.ProfileCorpAddresses = ac.GetCorpAddressesResult;
								LogContext.Current.Log<CacheContext> ("UserContext.TimerCallback.CORPAddressesGet");
							}

							// get corporate requirments
							if (!ac.GetCorpRequirements (UserContext.Current.Person.CorporationNumber1, false).HasErrors) {
								UserContext.Current.ProfileCorpRequirements = ac.GetCorpRequirementsResult;
								UserContext.Current.SpecialBillingRequirementQuestions = ac.GetCorpSpecialBillingResult;
								LogContext.Current.Log<CacheContext> ("UserContext.TimerCallback.CORPRequirementsGet");
							}

							// NOTE: Corp credit cards are retrieved during ProfileCreditCards get, so we don't need a separate call
							// get corporate credit cards 
							/* if (!ac.CorporateCreditCardsGet(false).HasErrors)
                             {
                                 UserContext.Current.ProfileCorporateCreditCards = ac.GetCorporateCreditCardsResult.Results;
                                 LogContext.Current.Log<CacheContext>("UserContext.TimerCallback.CORPCreditCardsGet");
                             }*/
						}
					}

					if (!ac.RolesGet ().HasErrors) {
						UserContext.Current.UserRoles = ac.GetRoleseResult;
						LogContext.Current.Log<CacheContext> ("UserContext.TimerCallback.RolesGet");
					}

					UpdateProfileCreditCards (ac);

					if (!ac.GetAddresses ().HasErrors) {
						UserContext.Current.ProfileAddresses = ac.GetAddressesResult;
						LogContext.Current.Log<CacheContext> ("UserContext.TimerCallback.AddressesGet");

					}

					/*	if (!ac.ProfileGet().HasErrors)
                        {
                            _updatedCaches.Add(CacheId.Airport);
                            CacheContext.Current.Airports = c.GetAirportsResult.Results;
                            LogContext.Current.Log<CacheContext>("TimerCallback.Airports", c.GetAirportsResult.Results.Count());
                        }
                        else
                            _cacheErrors.Add(CacheId.Airport, c.ErrorMessage);

                        //}

                        // vehicles
                        //	if (ShouldDownload(CacheId.Vehicle, serverCacheList))
                        //	{
                        if (!c.GetVehicles().HasErrors)
                        {
                            _updatedCaches.Add(CacheId.Vehicle);
                            CacheContext.Current.Vehicles = c.GetVehiclesResult.Results;
                            LogContext.Current.Log<CacheContext>("TimerCallback.Vehicles", c.GetVehiclesResult.Results.Count());
                        }					
                        else
                            _cacheErrors.Add(CacheId.Vehicle, c.ErrorMessage);
                        //	}



                        // airlines
                        //	if (ShouldDownload(CacheId.Airline, serverCacheList))
                        //	{
                        if (!c.GetAirlines().HasErrors)
                        {
                            _updatedCaches.Add(CacheId.Airline);							
                            CacheContext.Current.Airlines = c.GetAirlineResult.Results;
                            LogContext.Current.Log<CacheContext>("TimerCallback.Airlines", c.GetAirlineResult.Results.Count());
                        }					
                        else
                            _cacheErrors.Add(CacheId.Airline, c.ErrorMessage);
                        //	}

                        //	CacheContext.Current.LocalCacheList = serverCacheList;

                        if (this.CachesLoaded != null)
                            this.CachesLoaded(this);
    */
				}

			} catch (Exception ex) {
				LogContext.Current.Log<UserContext> ("UserContext.TimerCallback.Error", ex);
				if (LogContext.CrashReportEnabled && Settings.Current.EnableCrashReportExecution) {
					Insights.Report (ex);
				}


				_startError = ex.Message;
			}


			NotifyCompleted ();

		}
Beispiel #2
0
		public async void UpdateProfileCreditCardsAsync ()
		{
			using (AccountClient ac = new AccountClient ()) {
				await Task.Factory.StartNew (() => UpdateProfileCreditCards (ac));
			}
		}
Beispiel #3
0
		public void UpdateProfileCreditCards (AccountClient ac = null)
		{
			if (!ApplicationContext.Current.IsLoggedIn)
				return;

			if (ac == null)
				using (var ac2 = new AccountClient ())
					UpdateProfileCreditCards (ac2);
			else {

				if (!ac.ProfileCreditCardsGet ().HasErrors) {
					// default credit cards to display in descending order, theorizing that the last one added is the preferred card to use
					var profileCards = ac.GetProfileCreditCardsResult.Results.OrderBy (cc => cc.CreditCardID).ToArray ();
					UserContext.Current.ProfileCreditCards = profileCards;
					LogContext.Current.Log<CacheContext> ("UserContext.TimerCallback.ProfileCreditCardsGet");
				}
			}
		}
Beispiel #4
0
		public CreditCard[] GetProfileCreditCardsDetailed (AccountClient ac = null)
		{
			if (!ApplicationContext.Current.IsLoggedIn)
				return new CreditCard[0];

			if (ac == null)
				using (var ac2 = new AccountClient ())
					return GetProfileCreditCardsDetailed (ac2);
			else {

				if (!ac.ProfileCreditCardsDetailedGet ().HasErrors) {
					// default credit cards to display in descending order, theorizing that the last one added is the preferred card to use
					var detailedCards = ac.GetProfileCreditCardsDetailedResult.Results.OrderBy (cc => cc.UniqueID).ToArray ();
					return detailedCards;
				}
			}

			return new CreditCard[0];
		}