public Person UpdatePerson(IPersonDto personDto) { if (personDto?.GoogleId == null) { Log.Error("Cannot update person when no resource name provided!"); return(null); } var contactToUpdate = PersonBuilder.Build(personDto); contactToUpdate.ResourceName = personDto.GoogleId.ResourceName; contactToUpdate.ETag = personDto.GoogleId.ETag; var request = new PeopleResource.UpdateContactRequest(CreateService(), contactToUpdate, contactToUpdate.ResourceName) { UpdatePersonFields = new List <string> { "phoneNumbers", "emailAddresses", "names", "birthdays", "addresses" } }; return(ExecuteChecking(request.Execute)); }
// We need to parse all contact from jojo, if there is a email, keep it, else add email bidon // so she can find the user in google calendar app // email bidon -> [email protected] // must be unique !!!! so be sure it is not already include in contact list private void FixContact() { foreach (Person contact in GoogleContactManager.Instance.ContactList) { if (contact?.EmailAddresses == null || contact?.EmailAddresses?.Count == 0) { //fix contact to be able to see it in calendar // need to push some info List <EmailAddress> emailAddresses = new List <EmailAddress>(); EmailAddress emailAdress = new EmailAddress(); emailAdress.Value = GenerateRandomUniqueEmail(); emailAddresses.Add(emailAdress); contact.EmailAddresses = emailAddresses; PeopleResource.UpdateContactRequest peopleRequest = new PeopleResource.UpdateContactRequest(Service, contact, contact.ResourceName); peopleRequest.UpdatePersonFields = "emailAddresses"; var updateContact = peopleRequest.Execute(); } } }
// throw not found exception public static Person IupdateAttendee(Person attendeeToUpdate, string uuid, string version) { // gets attendee (we need the ResourceName for updates) var attendee = IgetAttendee(uuid); // tests if attendee exists if (attendee != null) { // adding id + version to newPerson List <UserDefined> userDefined = new List <UserDefined>(); userDefined.Add(new UserDefined() { Value = uuid, Key = "UUID" }); userDefined.Add(new UserDefined() { Value = version, Key = "version" }); attendee.UserDefined = userDefined; attendee.EmailAddresses = attendeeToUpdate.EmailAddresses; attendee.Names = attendeeToUpdate.Names; // updates person PeopleResource.UpdateContactRequest request = new PeopleResource.UpdateContactRequest(peopleService, attendee, attendee.ResourceName); request.UpdatePersonFields = "names,emailAddresses,userDefined"; Person Update = request.Execute(); // updates UUIDMaster // uuid and id are the same. uuidMaster.PutUpdateUUID(uuid, Update.ResourceName, Int32.Parse(version)); return(Update); } // attendee doesn't exist else { throw new NotFoundException("attendee doesn't excist"); } }