Пример #1
0
        public HttpResponseMessage UpdateNotificationPreference([FromUri] string[] notificationPreferences)
        {
            Guid userId = Security.GetUserId();

            try
            {
                string errorMessage = null;
                Log.Verbose("Start updating user's notification preference. User Id {0}", userId);
                Users.Dal.DataModel.TransactionNotificationPreference transactionNotificationPreference = Users.Dal.DataModel.TransactionNotificationPreference.None;

                foreach (var preference in notificationPreferences)
                {
                    Users.Dal.DataModel.TransactionNotificationPreference medium;
                    if (Enum.TryParse(preference, true, out medium))
                    {
                        transactionNotificationPreference |= medium;
                    }
                    else
                    {
                        errorMessage = string.Format("Notification Preference '{0}' is not valid.", preference);
                        break;
                    }
                }

                if (!string.IsNullOrWhiteSpace(errorMessage))
                {
                    throw new HttpResponseException(
                              this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage));
                }

                Users.Dal.DataModel.User user = this._usersDal.GetUserByUserId(userId);

                if (user.Info == null)
                {
                    user.Info = new UserInfo();
                }

                if (user.Info.Preferences == null)
                {
                    user.Info.Preferences = new Users.Dal.DataModel.UserPreferences();
                }

                user.Info.Preferences.TransactionNotificationMedium = transactionNotificationPreference;
                this._usersDal.UpdateUserInfo(userId, user.Info);

                Log.Verbose("Finished updating user's transaction notification preference succefully. User Id {0}", userId);

                return(new HttpResponseMessage(HttpStatusCode.Accepted));
            }
            catch (Exception e)
            {
                Log.Error(e, "Error in updating user's transaction notification preference. User Id: {0}", userId);
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
Пример #2
0
        public User Get()
        {
            Guid userId = Security.GetUserId();

            try
            {
                Log.Verbose("Start Getting User Information. User Id {0}", userId);
                Users.Dal.DataModel.User user = this._usersDal.GetUserByUserId(userId);
                var res = this.ConvertUser(user);
                Log.Verbose("Get User Information request Completed Succefully. User Id {0}", userId);
                return(res);
            }
            catch (Exception e)
            {
                Log.Error(e, "Couldn't get user inforamtion user id: {0}", userId);
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
Пример #3
0
        /// <summary>
        /// The convert user.
        /// </summary>
        /// <param name="user">
        /// The user.
        /// </param>
        /// <returns>
        /// The <see cref="User"/>.
        /// </returns>
        private User ConvertUser(Users.Dal.DataModel.User user)
        {
            User dataContractUser = new User {
                Email = user.Email, PhoneNumber = user.PhoneNumber
            };
            UserInformation userInformation = new UserInformation();

            dataContractUser.Information = userInformation;
            if (user.Info != null)
            {
                if (user.Info.Preferences != null)
                {
                    userInformation.Preferences = new LoMo.UserServices.DataContract.UserPreferences
                    {
                        TransactionNotificationMedium = (LoMo.UserServices.DataContract.TransactionNotificationPreference)user.Info.Preferences.TransactionNotificationMedium
                    };
                    if (user.Info.Preferences.Categories != null)
                    {
                        userInformation.Preferences.Categories = new List <Guid>(user.Info.Preferences.Categories);
                    }
                }

                if (user.Info.Location != null)
                {
                    var loc = user.Info.Location;
                    userInformation.Location = new LoMo.UserServices.DataContract.Location
                    {
                        AdminDistrict = loc.AdminDistrict,
                        CountryCode   = loc.CountryCode,
                        LocationName  = loc.Value,
                        LocationType  = (LoMo.UserServices.DataContract.LocationType)loc.Type
                    };
                }
            }

            return(dataContractUser);
        }