예제 #1
0
        //for test
        public void testAddContacts(string fbId)
        {
            List <QContact> qcs = new List <QContact>()
            {
                new QContact {
                    myIdfriendId = fbId + ",6", FirstName = "Tommy", LastName = "Chen", Mobile = "18734780",
                    Company      = "Apple", Birthday = new DateTime(1990, 1, 4), HomePhone = "12345", WorkPhone = "56778", HomeFax = "1111",
                    WorkFax      = "2222", URL = "www.yahoo.com", Skype = "ttomy", Facebook = "1235", LinkedIn = "ttt"
                    , Twitter    = "www", Instagram = "@adad", Addr = "35s 21st san jose", Email = "*****@*****.**"
                },
                new QContact {
                    myIdfriendId = fbId + ",7", FirstName = "Steven", LastName = "Nash", Mobile = "21591359"
                },
                new QContact {
                    myIdfriendId = fbId + ",8", FirstName = "Jim", LastName = "Duncan", Mobile = "2975917957"
                },
                new QContact {
                    myIdfriendId = fbId + ",9", FirstName = "Roger", LastName = "Clemens", Mobile = "159174810"
                },
                new QContact {
                    myIdfriendId = fbId + ",4", FirstName = "Honus", LastName = "Wagner", Mobile = "82957175"
                },
                new QContact {
                    myIdfriendId = fbId + ",5", FirstName = "Stan", LastName = "Musial", Mobile = "89517957"
                },
            };

            QContactDB qcdb = new QContactDB();

            for (int i = 0; i < qcs.Count; i++)
            {
                qcdb.AddQContact(qcs[i]);
            }
        }
예제 #2
0
        public ProfilePage()
        {
            InitializeComponent();

            QContactDB qcdb   = new QContactDB();
            var        pItems = new List <pItem>();

            string   fbId  = Helpers.Settings.UserId;
            string   keyId = fbId + "," + fbId;
            QContact qc    = qcdb.GetQContact(keyId);

            if (qc == null)
            {
                qc = new QContact();
            }
            var type       = qc.GetType();
            var properties = type.GetRuntimeProperties();

            foreach (PropertyInfo prop in properties)
            {
                if (!prop.Name.Equals("myIdfriendId"))
                {
                    pItem p = new pItem();
                    // Add space
                    if (!prop.Name.Equals("LinkedIn"))
                    {
                        p.pName = Regex.Replace(prop.Name, "([a-z])_?([A-Z])", "$1 $2");
                    }
                    else
                    {
                        p.pName = prop.Name;
                    }

                    if (p.pName.Equals("Birthday"))
                    {
                        if (prop.GetValue(qc, null) != null)
                        {
                            p.pValue = ((DateTime)prop.GetValue(qc, null)).ToLocalTime().ToString("MM/dd/yyyy");
                        }
                    }
                    else if (p.pName.Equals("LastModified"))
                    {
                        p.pValue = (((DateTime)prop.GetValue(qc, null)).ToString() + " UTC");
                    }
                    else
                    {
                        p.pValue = prop.GetValue(qc, null) != null?prop.GetValue(qc, null).ToString() : "";
                    }
                    pItems.Add(p);
                }
            }
            pListView.ItemsSource = pItems;
            pImage.Source         = ImageSource.FromUri(new Uri("http://graph.facebook.com/" + fbId + "/picture?type=small"));
        }
예제 #3
0
        public void onCdDeleteClicked(object sender, EventArgs args)
        {
            QContactDB qcdb = new QContactDB();

            qcdb.DeleteQContact(keyId);

            // Sent message to inform Contacts Page to delete the item
            MessagingCenter.Send <ContactDetailPage, string>
                (this, "DeleteInformation", keyId);

            Navigation.PopAsync();
        }
        public ProfileEditPage()
        {
            InitializeComponent();

            QContactDB qcdb = new QContactDB();
            QContact   qc   = qcdb.GetQContact(fbId + "," + fbId);

            if (qc != null)
            {
                showUsrData(qc);
            }
        }
예제 #5
0
        private async void fbLoggedin(object sender, WebNavigatedEventArgs e)
        {
            FacebookOAuthResult oauthResult;

            System.Uri tmpUrl = new System.Uri(e.Url);

            if (fb.TryParseOAuthCallbackUrl(tmpUrl, out oauthResult))
            {
                if (oauthResult.IsSuccess)
                {
                    fb.AccessToken = oauthResult.AccessToken;
                    var tmp = await fb.GetTaskAsync("me");

                    var result = (IDictionary <string, object>)tmp;

                    string fbId = result["id"].ToString();
                    string name = result["name"].ToString();
                    App    app  = Application.Current as App;

                    //store user info
                    Helpers.Settings.UserName = name;
                    Helpers.Settings.UserId   = fbId;
                    app.FbId        = fbId;
                    app.Name        = name;
                    app.AccessToken = fb.AccessToken;

                    //save user data into database
                    QContactDB qcdb = new QContactDB();
                    QContact   qc   = new QContact();
                    if (!qcdb.ExistQContact(fbId + "," + fbId))
                    {
                        qc.myIdfriendId = fbId + "," + fbId;
                        string[] names = name.Split(' ');
                        if (names.Length > 1)
                        {
                            qc.FirstName = names[0];
                            qc.LastName  = names[1];
                        }
                        qc.LastModified = System.DateTime.Now.ToLocalTime();
                        qcdb.AddQContact(qc);

                        //for test
                        testAddContacts(fbId);
                    }

                    MainPage nextPage = new MainPage(name + "," + fbId);
                    await Navigation.PushModalAsync(nextPage);
                }
            }
        }
예제 #6
0
        private string AddToDB(string json)
        {
            qc = JsonConvert.DeserializeObject <QContact>(json);
            QContactDB qcdb = new QContactDB();

            string[] friendId = qc.myIdfriendId.Split(',');
            qc.myIdfriendId = Helpers.Settings.UserId + "," + friendId[0];
            qc.LastModified = System.DateTime.Now;

            if (qcdb.ExistQContact(qc.myIdfriendId))
            {
                qcdb.UpdateQContact(qc);
            }
            else
            {
                qcdb.AddQContact(qc);
            }

            return(qc.FirstName + " " + qc.LastName);
        }
예제 #7
0
        public async void onCdExportClicked(object sender, EventArgs args)
        {
            // export data to mobile contacts
            // export data to contacts
            IAddContactsInfo addContacts = DependencyService.Get <IAddContactsInfo>();
            QContactDB       qcdb        = new QContactDB();
            QContact         qc          = qcdb.GetQContact(keyId);

            Debug.WriteLine(qc.FirstName);
            bool exResult = addContacts.AddContacts(qc);

            if (exResult)
            {
                await DisplayAlert("Confirm", "The contact information has been sucessfully exported", "OK");
            }
            else
            {
                await DisplayAlert("ERROR", "Exporting Fail", "OK");
            }

            await Navigation.PopAsync();
        }
        public void onPeOkClicked(object sender, EventArgs args)
        {
            QContact   qc   = new QContact();
            QContactDB qcdb = new QContactDB();

            qc.myIdfriendId = fbId + "," + fbId;
            qc.FirstName    = peFirstName.Text;
            qc.LastName     = peLastName.Text;
            qc.Company      = peCompany.Text;
            qc.Mobile       = peMobile.Text;
            qc.HomePhone    = peHomePhone.Text;
            qc.WorkPhone    = peWorkFax.Text;
            qc.HomeFax      = peHomeFax.Text;
            qc.WorkFax      = peWorkFax.Text;
            qc.Addr         = peAddr.Text;
            qc.Email        = peEmail.Text;
            qc.Birthday     = peBirthday.Date;
            qc.URL          = peURL.Text;
            qc.Skype        = peSkype.Text;
            qc.Facebook     = peFacebook.Text;
            qc.LinkedIn     = peLinkedIn.Text;
            qc.Twitter      = peTwitter.Text;
            qc.Instagram    = peInstagram.Text;
            qc.LastModified = DateTime.Now.ToLocalTime();
            Debug.WriteLine(DateTime.Now.ToLocalTime().ToString());

            if (qcdb.ExistQContact(qc.myIdfriendId))
            {
                qcdb.UpdateQContact(qc);
            }
            else
            {
                qcdb.AddQContact(qc);
            }

            Application.Current.MainPage = new MainPage();
        }
예제 #9
0
        public ContactDetailPage(string keyId)
        {
            InitializeComponent();

            QContactDB qcdb    = new QContactDB();
            var        cdItems = new List <cdItem>();

            this.keyId = keyId;
            QContact qc = qcdb.GetQContact(keyId);

            if (qc == null)
            {
                qc = new QContact();
            }
            var type       = qc.GetType();
            var properties = type.GetRuntimeProperties();

            foreach (PropertyInfo prop in properties)
            {
                if (!prop.Name.Equals("myIdfriendId"))
                {
                    if (prop.Name.Equals("FirstName"))
                    {
                        cdLabel.Text += prop.GetValue(qc, null) != null?prop.GetValue(qc, null).ToString() : "";

                        cdLabel.Text += " ";
                    }
                    else if (prop.Name.Equals("LastName"))
                    {
                        cdLabel.Text += prop.GetValue(qc, null) != null?prop.GetValue(qc, null).ToString() : "";
                    }
                    else
                    {
                        cdItem cd = new cdItem();
                        // Add space
                        if (!prop.Name.Equals("LinkedIn"))
                        {
                            cd.cdName = Regex.Replace(prop.Name, "([a-z])_?([A-Z])", "$1 $2");
                        }
                        else
                        {
                            cd.cdName = prop.Name;
                        }

                        // Not show the time, only show date
                        if (cd.cdName.Equals("Birthday"))
                        {
                            if (prop.GetValue(qc, null) != null)
                            {
                                cd.cdValue = ((DateTime)prop.GetValue(qc, null)).ToLocalTime().ToString("MM/dd/yyyy");
                            }
                        }
                        else if (cd.cdName.Equals("LastModified"))
                        {
                            cd.cdValue = ((DateTime)prop.GetValue(qc, null)).ToString() + "UTC";
                        }
                        else
                        {
                            cd.cdValue = prop.GetValue(qc, null) != null?prop.GetValue(qc, null).ToString() : "";
                        }
                        cdItems.Add(cd);
                    }
                }
            }
            cdListView.ItemsSource = cdItems;
            cdImage.Source
                = ImageSource.FromUri(new Uri("http://graph.facebook.com/" + qc.myIdfriendId.Split(',')[1] + "/picture?type=small"));
        }