Exemplo n.º 1
0
        private RawContact GetRawContact(FacebookLead lead)
        {
            RawContact contact = new RawContact();

            return(contact);
        }
Exemplo n.º 2
0
        private FacebookLead GetData(FacebookLeadGen fbLead)
        {
            Logger.Current.Informational("Request received for fetching data from fb");
            string pageAccessToken = fbLead.PageAccessToken;   // GetExtendedPageAccessToken(fbLead.PageAccessToken);
            string leadGenID       = fbLead.LeadGenID.ToString();
            var    fb = new FacebookClient(pageAccessToken);
            string exceptionMessage = string.Empty;

            fb.AppId     = FacebookAppID;
            fb.AppSecret = FacebookAppSecret;
            FacebookLead lead = new FacebookLead();

            try
            {
                var response = (JsonObject)fb.Get(leadGenID);
                if (response != null)
                {
                    var id        = response["id"];
                    var date      = response["created_time"];
                    var fieldDate = (JsonArray)response["field_data"];
                    List <FacebookFieldData> fieldValues = new List <FacebookFieldData>();
                    if (fieldDate != null)
                    {
                        foreach (var pair in fieldDate)
                        {
                            FacebookFieldData fieldData = new FacebookFieldData();
                            var name   = ((JsonObject)pair)["name"];
                            var values = ((JsonObject)pair)["values"];
                            if (values != null)
                            {
                                var valuesObj = (JsonArray)values;
                                var val       = valuesObj[0];
                                fieldData.Name   = name.ToString();
                                fieldData.Values = new String[] { val.ToString() };
                            }
                            fieldValues.Add(fieldData);
                        }
                    }

                    lead.ID            = id.ToString();
                    lead.CreatedTime   = DateTime.Parse(date.ToString());
                    lead.FieldData     = fieldValues;
                    fbLead.IsProcessed = true;
                    fbLead.Remarks     = "Success";
                    fbLead.RawData     = response.ToString();
                    leadAdaptersRepository.UpdateFacebookLeadGen(fbLead);
                }
            }
            catch (FacebookOAuthException ex)
            {
                Logger.Current.Error("An error occured while fetching lead data from Facebook", ex);
                exceptionMessage = ex.Message;
                leadAdaptersRepository.UpdateLeadAdapterStatus(leadAdapterAndAccountMap.Id, LeadAdapterErrorStatus.Error, LeadAdapterServiceStatus.TokenExpired);
                SendErrorEmail("Exception while processing data from " + leadAdapterAndAccountMap.LeadAdapterTypeID.ToString() + " LeadAdapter", "Exception details" + ex.Message);
            }
            catch (FacebookApiException ex)
            {
                Logger.Current.Error("An error occured while fetching lead data from Facebook", ex);
                exceptionMessage = ex.Message;
                leadAdaptersRepository.UpdateLeadAdapterStatus(leadAdapterAndAccountMap.Id, LeadAdapterErrorStatus.Running, LeadAdapterServiceStatus.InvalidRequest);
            }
            finally
            {
                fbLead.Remarks     = exceptionMessage;
                fbLead.IsProcessed = true;
                leadAdaptersRepository.UpdateFacebookLeadGen(fbLead);
            }
            return(lead);
        }