/// <summary> /// Gets the user personal information. /// </summary> /// <param name="data">The data.</param> /// <returns></returns> private PayPalUserPersonalInfo GetUserPersonalInfo(PersonalDataList data) { var personalData = data.personalData.Where(o => o.personalDataKey.HasValue) .ToDictionary(o => o.personalDataKey.Value, o => o.personalDataValue); Func <PersonalAttribute, string> getAttributeValue = attr => { string res = null; personalData.TryGetValue(attr, out res); return(res); }; PayPalUserPersonalInfo personalInfo = new PayPalUserPersonalInfo { FirstName = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGNAMEPERSONFIRST), LastName = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGNAMEPERSONLAST), FullName = getAttributeValue(PersonalAttribute.HTTPSCHEMAOPENIDNETCONTACTFULLNAME), Phone = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGCONTACTPHONEDEFAULT), BusinessName = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGCOMPANYNAME), EMail = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGCONTACTEMAIL), State = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGCONTACTSTATEHOME), City = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGCONTACTCITYHOME), Country = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGCONTACTCOUNTRYHOME), Street1 = getAttributeValue(PersonalAttribute.HTTPSCHEMAOPENIDNETCONTACTSTREET1), Street2 = getAttributeValue(PersonalAttribute.HTTPSCHEMAOPENIDNETCONTACTSTREET), Postcode = getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGCONTACTPOSTALCODEHOME), DateOfBirth = ConvertBirthdayStringToDateTime(getAttributeValue(PersonalAttribute.HTTPAXSCHEMAORGBIRTHDATE)), PlayerId = getAttributeValue(PersonalAttribute.HTTPSWWWPAYPALCOMWEBAPPSAUTHSCHEMAPAYERID2), Created = DateTime.UtcNow }; return(personalInfo); }
/// <summary> /// Saves the personal information. /// </summary> /// <param name="personalInfo">The personal information.</param> /// <returns></returns> public Optional <int> SavePersonalInfo(PayPalUserPersonalInfo personalInfo) { using (var connection = GetOpenedSqlConnection2()) { var cmd = GetInsertCommand(connection, connection.SqlConnection(), "MP_PayPalPersonalInfo", "Id", SkipColumns("Id")); if (!cmd.HasValue) { return(-1); } using (var sqlCommand = cmd.GetValue()) { return(ExecuteScalarAndLog <int>(sqlCommand)); } } }