/// <summary> /// Get a YouMailContact from an ID /// </summary> /// <param name="id">The id of the contact</param> /// <returns>The YouMailContact</returns> public async Task <YouMailContact> GetContactAsync(long id, int imageSize = 100) { YouMailContact contact = null; try { AddPendingOp(); YouMailContactQuery query = new YouMailContactQuery(QueryType.GetContact) { ImageSize = imageSize, }; query.AddItemId(id); var results = await ExecuteContactQueryAsync(query); if (results != null && results.Data != null && results.Data.Length > 0) { contact = results.Data[0]; } } finally { RemovePendingOp(); } return(contact); }
/// <summary> /// Update and existing contact /// </summary> /// <param name="contact">The new contact to update</param> /// <param name="id">The id of the contact to update</param> public async Task UpdateContactAsync(YouMailContact contact, long id) { try { AddPendingOp(); if (await LoginWaitAsync()) { string ser = SerializeObject(contact, YMST.c_contact); using (await YouMailApiAsync(string.Format(YMST.c_updateContact, id), SerializeObjectToHttpContent(contact, YMST.c_contact), HttpMethod.Put)) { } } } finally { RemovePendingOp(); } }
/// <summary> /// Get or create a contact if one doesn't exist. /// </summary> /// <param name="contact"></param> /// <returns></returns> public async Task <YouMailContact> GetOrCreateContactAsync(string number, YouMailContact contact) { try { AddPendingOp(); if (await LoginWaitAsync()) { using (var response = await YouMailApiAsync(string.Format(YMST.c_getOrCreateContact, number), SerializeObjectToHttpContent(contact), HttpMethod.Post)) { return(DeserializeObject <YouMailContact>(response.GetResponseStream())); } } } finally { RemovePendingOp(); } return(null); }
/// <summary> /// Create a new contact /// </summary> /// <param name="contact"></param> /// <returns></returns> public async Task <long> CreateContactAsync(YouMailContact contact) { long id = 0; try { AddPendingOp(); if (await LoginWaitAsync()) { using (var response = await YouMailApiAsync(YMST.c_createContact, SerializeObjectToHttpContent(contact, YMST.c_contact), HttpMethod.Post)) { var ymResponse = DeserializeObject <YouMailResponse>(response.GetResponseStream()); id = long.Parse(ymResponse.Properties[YMST.c_contactId]); } } } finally { RemovePendingOp(); } return(id); }