/// <summary> /// Sets the owner to the content. /// </summary> /// <param name="user">Current logged user</param> public void setOwner(NetmeraUser user) { if (user != null) { if (user.GetType() == typeof(NetmeraUser)) { NetmeraClient.setLoggedUserSecurityToken(NetmeraUser.securityToken); } else { throw new NetmeraException(NetmeraException.ErrorCode.EC_INVALID_DATA_TYPE, "You should set the object with the type of NetmeraUser."); } } else { throw new NetmeraException(NetmeraException.ErrorCode.EC_NULL_EXCEPTION, "User cannot be null.You should set current logged user."); } }
/// <summary> /// Adds key,value pairs into the object. If the object contains key, the old value is replaced. /// </summary> /// <param name="key">Key to identify specified value</param> /// <param name="value">value associates with the specified key</param> /// <exception cref="NetmeraException">Throws exception if key is null, if value is null</exception> public void add(String key, Object value) { if (key == null) { throw new NetmeraException(NetmeraException.ErrorCode.EC_NULL_EXCEPTION, NetmeraConstants.ContentKey); } if (value == null) { throw new NetmeraException(NetmeraException.ErrorCode.EC_NULL_EXCEPTION, NetmeraConstants.ContentValue); } if ((value.GetType() == typeof(JObject)) == false && (value.GetType() == typeof(JArray)) == false && (value.GetType() == typeof(String)) == false && (value.GetType() == typeof(Boolean)) == false && (value.GetType() == typeof(DateTime)) == false && (value.GetType() == typeof(byte[])) == false && (value.GetType() == typeof(double)) == false && (value.GetType() == typeof(Double)) == false && (value.GetType() == typeof(float)) == false && (value.GetType() == typeof(long)) == false && (value.GetType() == typeof(int) == false) && (value.GetType() == typeof(Int16)) == false && (value.GetType() == typeof(Int32)) == false && (value.GetType() == typeof(Int64)) == false && (value.GetType() == typeof(NetmeraMedia)) == false && (value.GetType() == typeof(NetmeraGeoLocation)) == false && (value.GetType() == typeof(NetmeraUser)) == false) { throw new NetmeraException(NetmeraException.ErrorCode.EC_INVALID_DATA_TYPE, value.GetType().ToString()); } try { if (value.GetType() == typeof(NetmeraGeoLocation)) { double lat = ((NetmeraGeoLocation)value).getLatitude(); double lng = ((NetmeraGeoLocation)value).getLongitude(); //Replacements are done because ToString() method convert points in a decimal number to comma. String location = lat.ToString().Replace(',', '.') + "," + lng.ToString().Replace(',', '.'); JProperty prLocationField = new JProperty(key + NetmeraConstants.LocationField_Suffix, location); //if data already contains a node with name "key + NetmeraConstants.LocationField_Suffix" data.Remove(key + NetmeraConstants.LocationField_Suffix); data.Add(prLocationField); JProperty prLocationLatitudeField = new JProperty(key + NetmeraConstants.LocationLatitude_Suffix, lat); //if data already contains a node with name "key + NetmeraConstants.LocationLatitude_Suffix" data.Remove(key + NetmeraConstants.LocationLatitude_Suffix); data.Add(prLocationLatitudeField); JProperty prLocationLongitudeField = new JProperty(key + NetmeraConstants.LocationLongitude_Suffix, lng); //if data already contains a node with name "key + NetmeraConstants.LocationLongitude_Suffix" data.Remove(key + NetmeraConstants.LocationLongitude_Suffix); data.Add(prLocationLongitudeField); } else if (value.GetType() == typeof(NetmeraUser)) { NetmeraClient.setLoggedUserSecurityToken(NetmeraUser.securityToken); } else if (value.GetType() == typeof(NetmeraMedia)) { //mediaData.Add(key, value); NetmeraMedia tmpMedia = (NetmeraMedia)value; byte[] tmpMediaData = tmpMedia.getData(); //url is already null, so no need to add to json JProperty prop = new JProperty(key, JsonConvert.SerializeObject(tmpMediaData)); //if mediaData already contains a node with name "key" mediaData.Remove(key); mediaData.Add(prop); } else { if (value is string) { var allow = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890&-()%'!@[]{}#^*;:/?<>,.|~^$"; var allowedChars = allow.ToCharArray(); var valueArray = value.ToString().ToCharArray(); var newValue = new List <char>(); for (int i = 0; i < valueArray.Length; i++) { if (allowedChars.Contains(valueArray[i])) { newValue.Add(valueArray[i]); } } var s = new string(newValue.ToArray()).Trim(); value = HttpUtility.UrlEncode(s); } JProperty prop = new JProperty(key, value); //if data already contains a node with name "key" data.Remove(key); data.Add(prop); } } catch (JsonException e) { throw new NetmeraException(NetmeraException.ErrorCode.EC_INVALID_JSON, "Json with key : [" + key + "], value : [" + value + "] pairs is invalid.", e.Message); } }
/// <summary> /// Adds key,value pairs into the object. If the object contains key, the old value is replaced. /// </summary> /// <param name="key">Key to identify specified value</param> /// <param name="value">Value associates with the specified key</param> /// <exception cref="NetmeraException">Throws exception if key is null, if value is null</exception> public void add(String key, Object value) { if (key == null) { throw new NetmeraException(NetmeraException.ErrorCode.EC_NULL_EXCEPTION, NetmeraConstants.ContentKey); } if (value == null) { throw new NetmeraException(NetmeraException.ErrorCode.EC_NULL_EXCEPTION, NetmeraConstants.ContentValue); } if ((value.GetType() == typeof(JObject)) == false && (value.GetType() == typeof(JArray)) == false && (value.GetType() == typeof(String)) == false && (value.GetType() == typeof(Boolean)) == false && (value.GetType() == typeof(DateTime)) == false && (value.GetType() == typeof(byte[])) == false && (value.GetType() == typeof(double)) == false && (value.GetType() == typeof(Double)) == false && (value.GetType() == typeof(float)) == false && (value.GetType() == typeof(long)) == false && (value.GetType() == typeof(int) == false) && (value.GetType() == typeof(Int16)) == false && (value.GetType() == typeof(Int32)) == false && (value.GetType() == typeof(Int64)) == false && (value.GetType() == typeof(NetmeraMedia)) == false && (value.GetType() == typeof(NetmeraGeoLocation)) == false && (value.GetType() == typeof(NetmeraUser)) == false) { throw new NetmeraException(NetmeraException.ErrorCode.EC_INVALID_DATA_TYPE, value.GetType().ToString()); } try { if (value.GetType() == typeof(NetmeraGeoLocation)) { double lat = ((NetmeraGeoLocation)value).getLatitude(); double lng = ((NetmeraGeoLocation)value).getLongitude(); //Replacements are done because ToString() method convert points in a decimal number to comma. String location = lat.ToString().Replace(',', '.') + "," + lng.ToString().Replace(',', '.'); JProperty prLocationField = new JProperty(key + NetmeraConstants.LocationField_Suffix, location); //if data already contains a node with name "key + NetmeraConstants.LocationField_Suffix" data.Remove(key + NetmeraConstants.LocationField_Suffix); data.Add(prLocationField); JProperty prLocationLatitudeField = new JProperty(key + NetmeraConstants.LocationLatitude_Suffix, lat); //if data already contains a node with name "key + NetmeraConstants.LocationLatitude_Suffix" data.Remove(key + NetmeraConstants.LocationLatitude_Suffix); data.Add(prLocationLatitudeField); JProperty prLocationLongitudeField = new JProperty(key + NetmeraConstants.LocationLongitude_Suffix, lng); //if data already contains a node with name "key + NetmeraConstants.LocationLongitude_Suffix" data.Remove(key + NetmeraConstants.LocationLongitude_Suffix); data.Add(prLocationLongitudeField); } else if (value.GetType() == typeof(NetmeraUser)) { NetmeraClient.setLoggedUserSecurityToken(NetmeraUser.securityToken); } else if (value.GetType() == typeof(NetmeraMedia)) { //mediaData.Add(key, value); NetmeraMedia tmpMedia = (NetmeraMedia)value; byte[] tmpMediaData = tmpMedia.getData(); //url is already null, so no need to add to json JProperty prop = new JProperty(key, JsonConvert.SerializeObject(tmpMediaData)); //if mediaData already contains a node with name "key" mediaData.Remove(key); mediaData.Add(prop); } else { JProperty prop = new JProperty(key, value); //if data already contains a node with name "key" data.Remove(key); data.Add(prop); } } catch (JsonException e) { throw new NetmeraException(NetmeraException.ErrorCode.EC_INVALID_JSON, "Json with key : [" + key + "], value : [" + value + "] pairs is invalid.", e.Message); } }