using System.Threading.Tasks; using Plugins.Countly.Helpers; using Plugins.Countly.Models; namespace Plugins.Countly.Services { public interface IUserDetailsCountlyService { /// /// Modifies all user data. Custom data should be json string. /// Deletes an already defined custom property from the Countly server, if it is supplied with a NULL value /// /// /// Task UserDetailsAsync(CountlyUserDetailsModel userDetails); /// /// Modifies custom user data only. Custom data should be json string. /// Deletes an already defined custom property from the Countly server, if it is supplied with a NULL value /// /// /// Task UserCustomDetailsAsync(CountlyUserDetailsModel userDetails); /// /// Uploads all user details /// /// Task SetUserDetailsAsync(CountlyUserDetailsModel userDetailsModel); /// /// Uploads only custom data. Doesn't update any other property except Custom Data. /// /// Task SetCustomUserDetailsAsync(CountlyUserDetailsModel userDetailsModel); /// /// Saves all custom user data updates done since the last save request. /// /// Task SaveAsync(); /// /// Sets value to key. /// Doesn't report it to the server until save is called. /// /// /// void Set(string key, string value); /// /// Sets value to key, only if property was not defined before for this user. /// Doesn't report it to the server until save is called. /// /// /// void SetOnce(string key, string value); /// /// To increment value, for the specified key, on the server by 1. /// Doesn't report it to the server until save is called. /// /// void Increment(string key); /// /// To increment value on server by provided value (if no value on server, assumes it is 0). /// Doesn't report it to the server until save is called. /// /// /// void IncrementBy(string key, double value); /// /// To multiply value on server by provided value (if no value on server, assumes it is 0). /// Doesn't report it to the server until save is called. /// /// /// void Multiply(string key, double value); /// /// To store maximal value from the one on server and provided value (if no value on server, uses provided value). /// Doesn't report it to the server until save is called. /// /// /// void Max(string key, double value); /// /// To store minimal value from the one on server and provided value (if no value on server, uses provided value). /// Doesn't report it to the server until save is called. /// /// /// void Min(string key, double value); /// /// Add one or many values to array property (can have multiple same values, if property is not array, converts it to array). /// Doesn't report it to the server until save is called. /// /// /// void Push(string key, string[] value); /// /// Add one or many values to array property (will only store unique values in array, if property is not array, converts it to array). /// Doesn't report it to the server until save is called. /// /// /// void PushUnique(string key, string[] value); /// /// Remove one or many values from array property (only removes value from array properties). /// Doesn't report it to the server until save is called. /// /// /// void Pull(string key, string[] value); void AddToCustomData(string key, object value); } }