Пример #1
0
        /// <summary>
        ///     This method will check to see if the activity has permission to
        ///     access the device location. If it does not, then it will display the
        ///     permission rationale (if necessary) and then request permission. It
        ///     is up to the calling activity to handle the results of the
        ///     permisssion request.
        /// </summary>
        /// <param name = "activity">Activity.</param>
        /// <param name = "requestCode">
        ///     A request code that will be returned
        ///     to the activity via the <c>OnRequestPermissionsResult</c> method.
        /// </param>
        public static bool PerformRuntimePermissionCheckForLocation(this ActivityBase activity, int requestCode)
        {
            if (activity.HasLocationPermissions())
            {
                return(true);
            }

            if (activity.MustShowPermissionRationale())
            {
                View layoutForSnackbar = activity.FindViewById(Android.Resource.Id.Content);

                var requestPermissionAction = new Action <View>(
                    delegate
                {
                    ActivityCompat.RequestPermissions(activity, PERMISSIONS_LOCATION, requestCode);
                });

                Snackbar.Make(layoutForSnackbar, Resource.String.location_permission_rationale, Snackbar.LengthIndefinite).
                SetAction(Resource.String.ok, requestPermissionAction);
            }
            else
            {
                ActivityCompat.RequestPermissions(activity, PERMISSIONS_LOCATION, requestCode);
            }

            return(false);
        }
Пример #2
0
        /// <summary>
        ///     Make a member joined activity object from the more generic database activity object
        /// </summary>
        /// <param name="activity"></param>
        /// <returns></returns>
        private MemberJoinedActivity GenerateMemberJoinedActivity(Activity activity)
        {
            var dataPairs = ActivityBase.UnpackData(activity);

            if (!dataPairs.ContainsKey(MemberJoinedActivity.KeyUserId))
            {
                // Log the problem then skip
                _loggingService.Error(
                    $"A member joined activity record with id '{activity.Id}' has no user id in its data.");
                return(null);
            }

            var userId = dataPairs[MemberJoinedActivity.KeyUserId];
            var user   = _context.MembershipUser.FirstOrDefault(x => x.Id == new Guid(userId));

            if (user == null)
            {
                // Log the problem then skip
                _loggingService.Error(
                    $"A member joined activity record with id '{activity.Id}' has a user id '{userId}' that is not found in the user table.");
                return(null);
            }

            return(new MemberJoinedActivity(activity, user));
        }
        /// <summary>
        /// Make a badge activity object from the more generic database activity object
        /// </summary>
        /// <param name="activity"></param>
        /// <param name="badgeService"></param>
        /// <returns></returns>
        private BadgeActivity GenerateBadgeActivity(Activity activity, BadgeService badgeService, MemberService memberService)
        {
            // Get the corresponding badge
            var dataPairs = ActivityBase.UnpackData(activity);

            if (!dataPairs.ContainsKey(AppConstants.KeyBadgeId))
            {
                // Log the problem then skip
                AppHelpers.LogError($"A badge activity record with id '{activity.Id}' has no badge id in its data.");
                return(null);
            }

            var badgeId = dataPairs[AppConstants.KeyBadgeId];
            var badge   = badgeService.Get(new Guid(badgeId));

            if (badge == null)
            {
                // Log the problem then skip
                AppHelpers.LogError($"A badge activity record with id '{activity.Id}' has a badge id '{badgeId}' that is not found in the badge table.");
                return(null);
            }

            var userId = dataPairs[AppConstants.KeyUserId];
            var user   = memberService.Get(Convert.ToInt32(userId));

            if (user == null)
            {
                // Log the problem then skip
                AppHelpers.LogError($"A badge activity record with id '{activity.Id}' has a user id '{userId}' that is not found in the user table.");
                return(null);
            }

            return(new BadgeActivity(activity, badge, user));
        }
Пример #4
0
        /// <summary>
        /// Make a profile updated joined activity object from the more generic database activity object
        /// </summary>
        /// <param name="activity"></param>
        /// <returns></returns>
        private ProfileUpdatedActivity GenerateProfileUpdatedActivity(Activity activity)
        {
            var cacheKey = string.Concat(CacheKeys.Activity.StartsWith, "GenerateProfileUpdatedActivity-", activity.GetHashCode());

            return(_cacheService.CachePerRequest(cacheKey, () =>
            {
                var dataPairs = ActivityBase.UnpackData(activity);

                if (!dataPairs.ContainsKey(ProfileUpdatedActivity.KeyUserId))
                {
                    // Log the problem then skip
                    _loggingService.Error($"A profile updated activity record with id '{activity.Id}' has no user id in its data.");
                    return null;
                }

                var userId = dataPairs[ProfileUpdatedActivity.KeyUserId];
                var user = _context.MembershipUser.FirstOrDefault(x => x.Id == new Guid(userId));

                if (user == null)
                {
                    // Log the problem then skip
                    _loggingService.Error($"A profile updated activity record with id '{activity.Id}' has a user id '{userId}' that is not found in the user table.");
                    return null;
                }

                return new ProfileUpdatedActivity(activity, user);
            }));
        }
Пример #5
0
    private ActivityBase CreateActivity(Type activityType, ActivityBaseInfo activityInfo)
    {
        Type[]       cstrTypes      = new Type[] { typeOfGameObject, activityInfo.GetType() };
        object[]     cstrValues     = new object[] { rootGO, activityInfo };
        ActivityBase resultActivity = (ActivityBase)activityType.GetConstructor(cstrTypes).Invoke(cstrValues);

        return(resultActivity);
    }
Пример #6
0
        public override void OnActivityChanged(ActivityBase act)
        {
            base.OnActivityChanged(act);

            Activity.PropertyChanged += Activity_LocationChanged;

            AppointmetTypeName = ResourceStrings.Meeting_Text;
        }
Пример #7
0
 public void EnterActivity(ActivityBase enterActivity)
 {
     listenActivityList.Remove(enterActivity);
     if (!currentActivityList.Contains(enterActivity))
     {
         currentActivityList.Add(enterActivity);
     }
 }
Пример #8
0
 public void ExitActivity(ActivityBase exitActivity)
 {
     if (currentActivityList.Contains(exitActivity))
     {
         currentActivityList.Remove(exitActivity);
     }
     listenActivityList.Add(exitActivity);
 }
        public HttpResponseMessage UpdateActivityBase(HttpRequestMessage request, [FromBody] ActivityBase activityBaseModel)
        {
            return(GetHttpResponse(request, () =>
            {
                var activityBase = _MPROPEXService.UpdateActivityBase(activityBaseModel);

                return request.CreateResponse <ActivityBase>(HttpStatusCode.OK, activityBase);
            }));
        }
Пример #10
0
        /// <summary>
        /// Tells the event stream to invoke the UpdateActivity operation.
        /// </summary>
        /// <param name="activity">The activity instance.</param>
        public void UpdateActivity(ActivityBase activity)
        {
            Guard.ArgumentNotNull(activity, "activity");

            var callToken = TraceManager.TrackingComponent.TraceIn(activity.ActivityName, activity.ActivityID);

            this.eventStream.UpdateActivity(activity.ActivityName, activity.ActivityID, ActivityTrackingUtility.GetActivityData(activity));

            TraceManager.TrackingComponent.TraceOut(callToken);
        }
Пример #11
0
        /// <summary>
        /// Creates a new BAM tracking activity with the specified name and ID.
        /// </summary>
        /// <param name="activityName">The name of the BAM activity.</param>
        /// <param name="activityId">The ID of the BAM activity.</param>
        public void SetActivityInfo(string activityName, string activityId)
        {
            var callToken = TraceManager.CustomComponent.TraceIn(activityName, activityId);

            this.activity = new GenericNamedActivity(activityName, activityId);

            Enable();

            TraceManager.CustomComponent.TraceOut(callToken);
        }
Пример #12
0
        /// <summary>
        /// Tells the event stream to invoke the EndActivity operation.
        /// </summary>
        /// <param name="activity">The activity instance.</param>
        public void EndActivity(ActivityBase activity)
        {
            Guard.ArgumentNotNull(activity, "activity");

            var callToken = TraceManager.TrackingComponent.TraceIn(activity.ActivityName, activity.ActivityID);

            this.eventStream.EndActivity(activity.ActivityName, activity.ActivityID);

            TraceManager.TrackingComponent.TraceOut(callToken);
        }
Пример #13
0
        /// <summary>
        /// Adds a relationship between this activity and a parent activity.
        /// </summary>
        /// <param name="activity">The child activity instance.</param>
        /// <param name="parent">The parent activity instance.</param>
        public void LinkToParent(ActivityBase activity, ActivityBase parent)
        {
            Guard.ArgumentNotNull(activity, "activity");
            Guard.ArgumentNotNull(parent, "parent");

            var callToken = TraceManager.TrackingComponent.TraceIn(activity.ActivityName, activity.ActivityID, parent.ActivityName, parent.ActivityID);

            this.eventStream.AddRelatedActivity(parent.ActivityName, parent.ActivityID, activity.ActivityName, activity.ActivityID);

            TraceManager.TrackingComponent.TraceOut(callToken);
        }
 private void VmPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == nameof(Vm.Identity))
     {
         TvPleaseLogin.Visibility = ActivityBase.NullToVisibilityConverter(Vm.Identity);
         LProfileData.Visibility  = ActivityBase.NotNullToVisibilityConverter(Vm.Identity);
         TvFirstName.Text         = Vm.Identity?.FirstName;
         TvLastName.Text          = Vm.Identity?.LastName;
         TvEmail.Text             = Vm.Identity?.Email;
     }
 }
Пример #15
0
        /// <summary>
        /// Adds a relationship between this activity and a child activity.
        /// </summary>
        /// <param name="activity">The activity instance.</param>
        /// <param name="child">The child activity instance.</param>
        public void LinkToChild(ActivityBase activity, ActivityBase child)
        {
            Guard.ArgumentNotNull(activity, "activity");
            Guard.ArgumentNotNull(child, "child");

            var callToken = TraceManager.TrackingComponent.TraceIn(activity.ActivityName, activity.ActivityID, child.ActivityName, child.ActivityID);

            this.eventStream.AddRelatedActivity(activity.ActivityName, activity.ActivityID, child.ActivityName, child.ActivityID);

            TraceManager.TrackingComponent.TraceOut(callToken);
        }
Пример #16
0
        void btnNext_Click(object sender, EventArgs e)
        {
            ActivityBase parent = Activity as ActivityBase;

            parent.HideKeyboard();
            //txtPhoneError.Visibility = ViewStates.Invisible;
            if (!parent.ConnectedToNetwork)
            {
                parent.DisplayNetworkRequiredAlert(Resource.String.network_connection_required, Resource.String.ok);
                return;
            }
            PhoneValidationResultEnum phoneValidationResult =
                new PeopleDetailsValidater().ValidatePhoneNumber(EditPhone.Text);

            if (phoneValidationResult != PhoneValidationResultEnum.NumberOk)
            {
                TvStory.SetTextColor(Color.Red);
                int errorRes = 0;
                switch (phoneValidationResult)
                {
                case PhoneValidationResultEnum.InvalidCharacters:
                    errorRes = Resource.String.pin_validation_bad_chars;
                    break;

                case PhoneValidationResultEnum.InvalidFormat:
                    errorRes = Resource.String.pin_validation_invalid_format;
                    break;

                case PhoneValidationResultEnum.NullEntry:
                    errorRes = Resource.String.pin_validation_null;
                    break;

                case PhoneValidationResultEnum.NumberTooLong:
                    errorRes = Resource.String.pin_validation_long;
                    break;

                case PhoneValidationResultEnum.NumberTooShort:
                    errorRes = Resource.String.pin_validation_short;
                    break;
                }
                TvStory.Text = GetText(errorRes);
                parent.ShowKeyboard(EditPhone);
                return;
            }

            Settings.Instance.DsrPhone = EditPhone.Text;
            if (ButtonNextClicked != null)
            {
                this.ButtonNextClicked.Invoke(this, e);
            }
        }
Пример #17
0
 public ZoomActivityEventArgs(ActivityBase activity, string status)
 {
     this.Activity            = activity;
     this.ActivityName        = activity.Name;
     this.ActivityDescription = activity.Name;
     this.ActivityId          = ZoomActivityEventArgs.\u202A‭‌​‎‭‎‮‏‮‮‮‬​​‏‌‌‬‫‬‮((object)activity);
     this.ActivityState       = activity.ActivityState;
     this.Status = status;
     if (this.ActivityState != ActivityState.Completed || !(activity is JoinMeeting))
     {
         return;
     }
     this.Status = ZoomActivityEventArgs.\u206E‮‫‎‎​‏‫‬‪‫‮‫‫‎‭‎‍‍‮((object)\u003CModule\u003E.\u206B‎‏‎‮‌​‪‏‭‭‍‍‬‬‫‌‎‮‮‪‌‪‮ <string>(436551003U), (object)((JoinMeeting)activity).MeetingStatus);
 }
        public HttpResponseMessage GetActivityBase(HttpRequestMessage request, int activityBaseId)
        {
            return(GetHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                ActivityBase activityBase = _MPROPEXService.GetActivityBase(activityBaseId);

                // notice no need to create a seperate model object since ActivityBase entity will do just fine
                response = request.CreateResponse <ActivityBase>(HttpStatusCode.OK, activityBase);

                return response;
            }));
        }
Пример #19
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            view = inflater.Inflate(Resource.Layout.layout_reset_pin_enter_phone, container, false);
            InitializeUI();
            SetEventHandlers();
            ActivityBase activityBase = (Activity as ActivityBase);

            if (activityBase != null)
            {
                activityBase.ShowKeyboard(EditPhone);
                activityBase.SetScreenTitle(Resource.String.reset_pin);
            }



            return(view);
        }
Пример #20
0
        private void ShowFragment(ErrorDescriber describer, string story)
        {
            ActivityBase activityBase = this._context as ActivityBase;

            if (activityBase == null)
            {
                return;
            }

            var custInfoFragment =
                activityBase.SupportFragmentManager.FindFragmentByTag(new CustomInfoFragment().FragmentTag);

            if (custInfoFragment != null)
            {
                activityBase.SupportFragmentManager.BeginTransaction().Remove(custInfoFragment).Commit();
            }

            if (!activityBase.ErrorFragmentContainerExists)
            {
                Logger.Error("Container for error displaying fragment has not been set or could not be found. Error will be displayed in a dialog");
                describer.UiNotifierType = typeof(Dialog);
                Notify(describer, story);
                describer.UiNotifierType = typeof(FullOverlay);
                return;
            }

            CustomInfoFragment customInfoFragment = new CustomInfoFragment();

            customInfoFragment.PositiveAction += () =>
            {
                activityBase.SupportFragmentManager.BeginTransaction()
                .Remove(
                    activityBase.SupportFragmentManager.FindFragmentByTag(customInfoFragment.FragmentTag))
                .CommitAllowingStateLoss();
            };
            if (describer.RetrySupported)
            {
                customInfoFragment.NegativeAction += () => describer.RetryAction(describer.SuccessCallback);
            }

            activityBase.SupportFragmentManager.BeginTransaction()
            .Add(activityBase.ErrorFragmentContainerId, customInfoFragment, customInfoFragment.FragmentTag)
            .CommitAllowingStateLoss();
            customInfoFragment.SetContent("", story, activityBase.GetString(Resource.String.api_errors_ok), describer.RetrySupported ? activityBase.GetString(Resource.String.api_errors_retry) : "");
        }
Пример #21
0
        /// <summary>
        /// Tells the event stream to invoke the BeginActivity, UpdateActivity and EndActivity operations.
        /// If activity has a continuation token, continuation will also be enabled.
        /// </summary>
        /// <param name="activity">The activity instance.</param>
        public void BeginAndCompleteActivity(ActivityBase activity)
        {
            Guard.ArgumentNotNull(activity, "activity");

            var callToken = TraceManager.TrackingComponent.TraceIn(activity.ActivityName, activity.ActivityID);

            this.eventStream.BeginActivity(activity.ActivityName, activity.ActivityID);
            this.eventStream.UpdateActivity(activity.ActivityName, activity.ActivityID, ActivityTrackingUtility.GetActivityData(activity));

            // Check if we should auto-enable continuation on this activity.
            if (!String.IsNullOrEmpty(activity.ContinuationToken))
            {
                this.eventStream.EnableContinuation(activity.ActivityName, activity.ActivityID, activity.ContinuationToken);
            }

            this.eventStream.EndActivity(activity.ActivityName, activity.ActivityID);

            TraceManager.TrackingComponent.TraceOut(callToken);
        }
Пример #22
0
        public void CreateActivityInstanceFromXmlSample()
        {
            string testMessageFile = Path.Combine(testMessageFolder, "GenericNamedActivity.xml");

            using (FileStream fileStream = new FileStream(testMessageFile, FileMode.Open, FileAccess.Read, FileShare.None))
            {
                XmlReaderSettings readerSettings = new XmlReaderSettings()
                {
                    CheckCharacters = false, IgnoreComments = true, IgnoreProcessingInstructions = true, IgnoreWhitespace = true, ValidationType = ValidationType.None
                };
                XmlReader xmlFileReader = XmlReader.Create(fileStream, readerSettings);

                ActivityBase activity = ActivityBase.Create(xmlFileReader);

                Assert.AreEqual <string>("InventoryDataTrackingActivity", activity.ActivityName, "Unexpected ActivityName value");
                Assert.AreEqual <string>("9190e3b5-d8c8-4902-9b5f-4796af42efcb", activity.ActivityID, "Unexpected ActivityID value");
                Assert.AreEqual <string>("9C0F681B-AC8D-4C9F-B375-FC1D35437C04", activity.ContinuationToken, "Unexpected ContinuationToken value");
                Assert.AreEqual <int>(1, activity.ActivityData.Count, "Unexpected number of items on property bag");
                Assert.AreEqual <DateTime>(DateTime.Parse("2010-08-06T22:33:58.7954004Z").ToUniversalTime(), ((DateTime)activity.ActivityData["DataSubscribersNotified"]).ToUniversalTime(), "Unexpected value in DataSubscribersNotified property");
            }
        }
Пример #23
0
        private void ShowSnackbar(ErrorDescriber describer, string story)
        {
            ActivityBase activityBase = this._context as ActivityBase;

            if (activityBase == null)
            {
                return;
            }

            if (!activityBase.ErrorSnackbarContainerExists)
            {
                Logger.Error("Container for error displaying Snackbar has not been set or could not be found. Error will be displayed in a dialog");
                describer.UiNotifierType = typeof(Dialog);
                Notify(describer, story);
                describer.UiNotifierType = typeof(Sticky);
                return;
            }

            activityBase.HideSnackbar();
            activityBase.ShowSnackbar(activityBase.FindViewById(activityBase.ErrorSnackbarContainerId), story, x => activityBase.HideSnackbar(), Resource.String.api_errors_ok);
        }
Пример #24
0
        /// <summary>
        /// Make a badge activity object from the more generic database activity object
        /// </summary>
        /// <param name="activity"></param>
        /// <returns></returns>
        private BadgeActivity GenerateBadgeActivity(Activity activity)
        {
            //System.Reflection.MethodBase.GetCurrentMethod().Name
            var cacheKey = string.Concat(CacheKeys.Activity.StartsWith, "GenerateBadgeActivity-", activity.GetHashCode());

            return(_cacheService.CachePerRequest(cacheKey, () =>
            {
                // Get the corresponding badge
                var dataPairs = ActivityBase.UnpackData(activity);

                if (!dataPairs.ContainsKey(BadgeActivity.KeyBadgeId))
                {
                    // Log the problem then skip
                    _loggingService.Error($"A badge activity record with id '{activity.Id}' has no badge id in its data.");
                    return null;
                }

                var badgeId = dataPairs[BadgeActivity.KeyBadgeId];
                var badge = _badgeService.Get(new Guid(badgeId));

                if (badge == null)
                {
                    // Log the problem then skip
                    _loggingService.Error($"A badge activity record with id '{activity.Id}' has a badge id '{badgeId}' that is not found in the badge table.");
                    return null;
                }

                var userId = dataPairs[BadgeActivity.KeyUserId];
                var user = _context.MembershipUser.FirstOrDefault(x => x.Id == new Guid(userId));

                if (user == null)
                {
                    // Log the problem then skip
                    _loggingService.Error($"A badge activity record with id '{activity.Id}' has a user id '{userId}' that is not found in the user table.");
                    return null;
                }

                return new BadgeActivity(activity, badge, user);
            }));
        }
Пример #25
0
        public ActivityEventBaseArguments(ActivityBase currentActivity, string statusReport = "")
        {
label_1:
            int num1 = 6894523;

            while (true)
            {
                int  num2 = 1143797209;
                uint num3;
                switch ((num3 = (uint)(num1 ^ num2)) % 6U)
                {
                case 0:
                    goto label_1;

                case 1:
                    this.TargetGuid = currentActivity.Guid;
                    num1            = (int)num3 * 1576181957 ^ 1829142634;
                    continue;

                case 2:
                    num1 = (int)num3 * 92920028 ^ -1426800904;
                    continue;

                case 4:
                    num1 = (int)num3 * 571135437 ^ 974194008;
                    continue;

                case 5:
                    this.ActivityName = ActivityEventBaseArguments.\u202C‫‭‪‪‏‍‬‎‬‭‏‌‬‭‏‬​‍‎‬​​‮((object)currentActivity);
                    num1 = (int)num3 * -1997683879 ^ -351730849;
                    continue;

                default:
                    goto label_7;
                }
            }
label_7:
            this.Status = statusReport;
        }
Пример #26
0
        /// <summary>
        /// Tells the remote event stream to invoke the BeginActivity operation.
        /// </summary>
        /// <param name="activity">The activity instance.</param>
        public void BeginActivity(ActivityBase activity)
        {
            if (null == this.activityTrackingClient)
            {
                return;
            }

            Guard.ArgumentNotNull(activity, "activity");
            Guard.ArgumentNotNullOrEmptyString(activity.ActivityName, "activity.ActivityName");
            Guard.ArgumentNotNullOrEmptyString(activity.ActivityID, "activity.ActivityID");

            var callToken = TraceManager.WorkerRoleComponent.TraceIn(activity.ActivityName, activity.ActivityID);

            try
            {
                this.activityTrackingClient.Client.BeginActivity(activity);
            }
            finally
            {
                TraceManager.WorkerRoleComponent.TraceOut(callToken);
            }
        }
        public HttpResponseMessage DeleteActivityBase(HttpRequestMessage request, [FromBody] int activityBaseId)
        {
            return(GetHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                // not that calling the WCF service here will authenticate access to the data
                ActivityBase activityBase = _MPROPEXService.GetActivityBase(activityBaseId);

                if (activityBase != null)
                {
                    _MPROPEXService.DeleteActivityBase(activityBaseId);

                    response = request.CreateResponse(HttpStatusCode.OK);
                }
                else
                {
                    response = request.CreateErrorResponse(HttpStatusCode.NotFound, "No Opex Business Rule found under that ID.");
                }

                return response;
            }));
        }
        /// <summary>
        /// Make a member joined activity object from the more generic database activity object
        /// </summary>
        /// <param name="activity"></param>
        /// <param name="memberService"></param>
        /// <returns></returns>
        private MemberJoinedActivity GenerateMemberJoinedActivity(Activity activity, MemberService memberService)
        {
            var dataPairs = ActivityBase.UnpackData(activity);

            if (!dataPairs.ContainsKey(AppConstants.KeyUserId))
            {
                // Log the problem then skip
                AppHelpers.LogError($"A member joined activity record with id '{activity.Id}' has no user id in its data.");
                return(null);
            }

            var userId = dataPairs[AppConstants.KeyUserId];
            var user   = memberService.Get(Convert.ToInt32(userId));

            if (user == null)
            {
                // Log the problem then skip
                AppHelpers.LogError($"A member joined activity record with id '{activity.Id}' has a user id '{userId}' that is not found in the user table.");
                return(null);
            }

            return(new MemberJoinedActivity(activity, user));
        }
Пример #29
0
        /// <summary>
        /// Make a badge activity object from the more generic database activity object
        /// </summary>
        /// <param name="activity"></param>
        /// <returns></returns>
        private BadgeActivity GenerateBadgeActivity(Activity activity)
        {
            // Get the corresponding badge
            var dataPairs = ActivityBase.UnpackData(activity);

            if (!dataPairs.ContainsKey(BadgeActivity.KeyBadgeId))
            {
                // Log the problem then skip
                _loggingService.Error(
                    $"A badge activity record with id '{activity.Id}' has no badge id in its data.");
                return(null);
            }

            var badgeId = dataPairs[BadgeActivity.KeyBadgeId];
            var badge   = _badgeService.Get(new Guid(badgeId));

            if (badge == null)
            {
                // Log the problem then skip
                _loggingService.Error(
                    $"A badge activity record with id '{activity.Id}' has a badge id '{badgeId}' that is not found in the badge table.");
                return(null);
            }

            var userId = dataPairs[BadgeActivity.KeyUserId];
            var user   = _context.MembershipUser.FirstOrDefault(x => x.Id == new Guid(userId));

            if (user == null)
            {
                // Log the problem then skip
                _loggingService.Error(
                    $"A badge activity record with id '{activity.Id}' has a user id '{userId}' that is not found in the user table.");
                return(null);
            }

            return(new BadgeActivity(activity, badge, user));
        }
Пример #30
0
        /// <summary>
        /// Make a profile updated joined activity object from the more generic database activity object
        /// </summary>
        /// <param name="activity"></param>
        /// <returns></returns>
        private ProfileUpdatedActivity GenerateProfileUpdatedActivity(Activity activity)
        {
            var dataPairs = ActivityBase.UnpackData(activity);

            if (!dataPairs.ContainsKey(ProfileUpdatedActivity.KeyUserId))
            {
                // Log the problem then skip
                _loggingService.Error(string.Format("A profile updated activity record with id '{0}' has no user id in its data.", activity.Id));
                return(null);
            }

            var userId = dataPairs[ProfileUpdatedActivity.KeyUserId];
            var user   = _membershipRepository.Get(Convert.ToInt32(userId));

            if (user == null)
            {
                // Log the problem then skip
                _loggingService.Error(string.Format("A profile updated activity record with id '{0}' has a user id '{1}' that is not found in the user table.",
                                                    activity.Id, userId));
                return(null);
            }

            return(new ProfileUpdatedActivity(activity, user));
        }