示例#1
0
        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));
        }
示例#2
0
        // 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();
                }
            }
        }
示例#3
0
        // 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");
            }
        }