private CResultCreate GetCustomerData(string customerSessionId) { try { ConfigEnv configData = GetConfigData(); CDataCustomer customer = new CDataCustomer(); customer.session_id = customerSessionId; ILoyalzooCustomer c = new Customer(); CResultCreate loyalzooResult = c.Me(configData, customer); return(loyalzooResult); } catch (Exception e) { CResultCreate exceptionData = new CResultCreate(); exceptionData.success = false; exceptionData.response = null; exceptionData.Errore = new Errore { success = false, response = e.Message }; return(exceptionData); } }
private MResultPlace GetPlaceData(string placeId) { try { ConfigEnv configData = GetConfigData(); MerchantApiData merchantData = GetMerchantApiData(); MPlace place = new MPlace(); place.session_id = merchantData.MerchantId; place.place_id = placeId; ILoyalzooMerchant m = new Merchant(); MResultPlace placeData = m.Place(configData, place); return(placeData); } catch (Exception e) { MResultPlace exceptionData = new MResultPlace(); exceptionData.success = false; exceptionData.response = null; exceptionData.Errore = new Errore { success = false, response = e.Message }; return(exceptionData); } }
public MerchantApiData GetMerchantApiData() { try { var fidelitySettings = _orchardServices.WorkContext.CurrentSite.As <FidelitySiteSettingsPart>(); MerchantApiData result = new MerchantApiData(); result.Success = true; if (String.IsNullOrWhiteSpace(fidelitySettings.MerchantSessionId) || String.IsNullOrWhiteSpace(fidelitySettings.PlaceId)) { ConfigEnv configData = GetConfigData(); MLogin merchantLogin = new MLogin(); merchantLogin.username = fidelitySettings.MerchantUsername; merchantLogin.password = Encoding.UTF8.GetString(_encryptionService.Decode(Convert.FromBase64String(fidelitySettings.MerchantPwd))); ILoyalzooMerchant m = new Merchant(); MResultLogin loginResult = m.Login(configData, merchantLogin); if (loginResult.success) { fidelitySettings.MerchantSessionId = loginResult.response.session_id; fidelitySettings.PlaceId = loginResult.response.place_id; } else { result.Success = false; result.ErrorMessage = loginResult.Errore.response; } } if (result.Success) { result.MerchantId = (string)fidelitySettings.MerchantSessionId; result.PlaceId = (string)fidelitySettings.PlaceId; result.ErrorMessage = ""; } else { result.MerchantId = result.PlaceId = ""; } return(result); } catch (Exception ex) { return(new MerchantApiData { MerchantId = "", PlaceId = "", Success = false, ErrorMessage = ex.Message }); } }
private ConfigEnv GetConfigData() { var fidelitySettings = _orchardServices.WorkContext.CurrentSite.As <FidelitySiteSettingsPart>(); ConfigEnv configData = new ConfigEnv(); configData.UrlAPI = fidelitySettings.ApiURL; configData.SKEY = fidelitySettings.DeveloperKey; return(configData); }
public APIResult UpdateSocial(string token, string tokenType) { try { APIResult result = new APIResult(); APIResult customerIdRequest = GetCustomerSessionId(); if (customerIdRequest.success) { ConfigEnv configData = GetConfigData(); CUpdateSocial updateSocial = new CUpdateSocial(); updateSocial.Csession_id = (string)customerIdRequest.data; updateSocial.social_token = token; updateSocial.social_type = tokenType; ILoyalzooCustomer c = new Customer(); CResultOperation loyalzooResult = c.CUpdateSocial(configData, updateSocial); if (loyalzooResult.success) { result.success = true; result.message = ""; result.data = null; } else { result.success = false; result.message = loyalzooResult.Errore.response; result.data = null; } } else { result.success = false; result.message = customerIdRequest.message; result.data = null; } return(result); } catch (Exception e) { APIResult exceptionData = new APIResult(); exceptionData.success = false; exceptionData.message = e.Message; exceptionData.data = null; return(exceptionData); } }
private APIResult GetCustomerSessionId() { try { APIResult result = new APIResult(); var authenticatedUser = _authenticationService.GetAuthenticatedUser(); if (authenticatedUser != null) { dynamic loyalzooPart = authenticatedUser.ContentItem.As <LoyalzooUserPart>(); if (loyalzooPart != null) { if (!String.IsNullOrWhiteSpace(loyalzooPart.CustomerSessionId)) { result.success = true; result.message = ""; result.data = loyalzooPart.CustomerSessionId; return(result); } else if (!String.IsNullOrWhiteSpace(loyalzooPart.LoyalzooUsername) && !String.IsNullOrWhiteSpace(loyalzooPart.LoyalzooPassword)) { ConfigEnv configData = GetConfigData(); ILoyalzooCustomer customer = new Customer(); CLogin loginData = new CLogin(); loginData.username = loyalzooPart.LoyalzooUsername; loginData.password = Encoding.UTF8.GetString(_encryptionService.Decode(Convert.FromBase64String(loyalzooPart.LoyalzooPassword))); CResultLogin loginRequest = customer.Login(configData, loginData); if (loginRequest.success) { loyalzooPart.CustomerSessionId = loginRequest.response.session_id; result.success = true; result.message = ""; result.data = loginRequest.response.session_id; return(result); } else { return new APIResult { success = false, data = null, message = loginRequest.Errore.response } }; } else if (!String.IsNullOrWhiteSpace(loyalzooPart.LoyalzooUsername) || !String.IsNullOrWhiteSpace(loyalzooPart.LoyalzooPassword)) { return new APIResult { success = false, data = null, message = "Cannot authenticate the user. The Loyalzoo data associated with the user is incomplete." } } ; else { return new APIResult { success = false, data = null, message = "The user is not associated to any Loyalzoo data. Please call the LoyalzooRegistration method first." } }; } else { return new APIResult { success = false, data = null, message = "The user is not configured to use Loyalzoo." } }; } else { return new APIResult { success = false, data = null, message = "Invalid cookie." } }; } catch (Exception e) { APIResult exceptionData = new APIResult(); exceptionData.success = false; exceptionData.message = e.Message; exceptionData.data = null; return(exceptionData); } }
public APIResult GiveReward(string rewardId) { try { APIResult result = new APIResult(); APIResult customerIdRequest = GetCustomerSessionId(); if (customerIdRequest.success) { CResultCreate customerData = GetCustomerData((string)customerIdRequest.data); if (customerData.success) { MerchantApiData merchantData = GetMerchantApiData(); if (merchantData.Success) { string customerId = customerData.response.id.ToString(); int customerPoints = customerData.response.rewards[merchantData.PlaceId]; ConfigEnv configData = GetConfigData(); MgiveReward rewardData = new MgiveReward(); rewardData.customer_id = customerData.response.id.ToString(); rewardData.place_id = merchantData.PlaceId; rewardData.session_id = merchantData.MerchantId; rewardData.reward_id = rewardId; rewardData.punteggio = customerData.response.rewards[merchantData.PlaceId]; ILoyalzooMerchant m = new Merchant(); MResultGeneral giveRewardResponse = m.giveReward(configData, rewardData); if (giveRewardResponse.success) { result.success = true; result.message = ""; result.data = null; } else { result.success = false; result.message = giveRewardResponse.Errore.response; result.data = null; } } else { result.success = false; result.message = merchantData.ErrorMessage; result.data = null; } } else { result.success = false; result.message = customerData.Errore.response; result.data = null; } } else { result.success = false; result.message = customerIdRequest.message; result.data = null; } return(result); } catch (Exception e) { APIResult exceptionData = new APIResult(); exceptionData.success = false; exceptionData.message = e.Message; exceptionData.data = null; return(exceptionData); } }
public APIResult AddPointsFromAction(string actionId, string completionPercent) { try { APIResult result = new APIResult(); APIResult customerIdRequest = GetCustomerSessionId(); if (customerIdRequest.success) { CResultCreate customerData = GetCustomerData((string)customerIdRequest.data); if (customerData.success) { string customerId = customerData.response.id.ToString(); MerchantApiData merchantData = GetMerchantApiData(); if (merchantData.Success) { ConfigEnv configData = GetConfigData(); MgivePoint givePoints = new MgivePoint(); givePoints.customer_id = customerId; givePoints.place_id = merchantData.PlaceId; givePoints.session_id = merchantData.MerchantId; givePoints.amount = "0"; givePoints.actionid = actionId; ILoyalzooMerchant m = new Merchant(); MResultGivePointsFromAction loyalzooResult = m.givePointsFromAction(configData, givePoints); if (loyalzooResult.success) { result.success = true; result.message = ""; result.data = new { pointsAdded = loyalzooResult.response.points_given, customerTotalPoints = loyalzooResult.response.balance }; } else { result.success = false; result.message = loyalzooResult.Errore.response; result.data = null; } } else { result.success = false; result.message = merchantData.ErrorMessage; result.data = null; } } else { result.success = false; result.message = customerData.Errore.response; result.data = null; } } else { result.success = false; result.message = customerIdRequest.message; result.data = null; } return(result); } catch (Exception e) { APIResult exceptionData = new APIResult(); exceptionData.success = false; exceptionData.message = e.Message; exceptionData.data = null; return(exceptionData); } }
public APIResult AddPoints(int numPoints) { try { APIResult result = new APIResult(); APIResult customerIdRequest = GetCustomerSessionId(); if (customerIdRequest.success) { CResultCreate customerData = GetCustomerData((string)customerIdRequest.data); if (customerData.success) { string customerId = customerData.response.id.ToString(); MerchantApiData merchantData = GetMerchantApiData(); if (merchantData.Success) { ConfigEnv configData = GetConfigData(); MgivePoint givePoints = new MgivePoint(); givePoints.customer_id = customerId; givePoints.place_id = merchantData.PlaceId; givePoints.session_id = merchantData.MerchantId; givePoints.amount = numPoints.ToString(); ILoyalzooMerchant m = new Merchant(); MResultGeneral loyalzooResult = m.givePointsFromAmount(configData, givePoints); if (loyalzooResult.success) { result.success = true; result.message = ""; result.data = null; } else { result.success = false; result.message = loyalzooResult.Errore.response; result.data = null; } } else { result.success = false; result.message = merchantData.ErrorMessage; result.data = null; } } else { result.success = false; result.message = customerData.Errore.response; result.data = null; } } else { result.success = false; result.message = customerIdRequest.message; result.data = null; } return(result); } catch (Exception e) { APIResult exceptionData = new APIResult(); exceptionData.success = false; exceptionData.message = e.Message; exceptionData.data = null; return(exceptionData); } }
public APIResult CreateLoyalzooAccount(LoyalzooUserPart loyalzooPart, string username, string email) { try { APIResult result = new APIResult(); if (loyalzooPart != null && !String.IsNullOrWhiteSpace(username) && !String.IsNullOrWhiteSpace(email)) { if (String.IsNullOrWhiteSpace(loyalzooPart.LoyalzooUsername) && String.IsNullOrWhiteSpace(loyalzooPart.LoyalzooPassword) && String.IsNullOrWhiteSpace(loyalzooPart.CustomerSessionId)) { ConfigEnv configData = GetConfigData(); CDataCustomer customerData = new CDataCustomer(); customerData.first_name = username; customerData.email = email; customerData.username = username; customerData.password = Membership.GeneratePassword(12, 4); ILoyalzooCustomer customer = new Customer(); CResultCreate creationRequest = customer.Create(configData, customerData); if (creationRequest.success) { loyalzooPart.LoyalzooUsername = creationRequest.response.username; loyalzooPart.CustomerSessionId = creationRequest.response.session_id; loyalzooPart.LoyalzooPassword = Convert.ToBase64String(_encryptionService.Encode(Encoding.UTF8.GetBytes(customerData.password))); result.success = true; result.data = creationRequest.response; result.message = ""; } else { result.success = false; result.message = creationRequest.Errore.response; result.data = null; } } else { return new APIResult { success = false, data = null, message = "There is already some Loyalzoo data associated to the user. If you want to register a new account, delete the existing Loyalzoo data and then call this method again (any previous data associated to the user will be lost)." } }; } else { return new APIResult { success = false, data = null, message = "The user is not configured to use Loyalzoo." } }; return(result); } catch (Exception e) { APIResult exceptionData = new APIResult(); exceptionData.success = false; exceptionData.message = e.Message; exceptionData.data = null; return(exceptionData); } }