public static string PostLinkedInMessage(string ImageUrl, long userid, string comment, string ProfileId, string imagepath, Domain.Socioboard.Enum.MediaType mediaType, string profileName, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            try
            {
                if (!ImageUrl.Contains("https://") && !ImageUrl.Contains("http://") && !string.IsNullOrEmpty(ImageUrl))
                {
                    var    client   = new ImgurClient("5f1ad42ec5988b7", "f3294c8632ef8de6bfcbc46b37a23d18479159c5");
                    var    endpoint = new ImageEndpoint(client);
                    IImage image;
                    using (var fs = new FileStream(imagepath, FileMode.Open))
                    {
                        image = endpoint.UploadImageStreamAsync(fs).GetAwaiter().GetResult();
                    }

                    var    img  = image.Link;
                    string json = "";
                    Domain.Socioboard.Models.LinkedInAccount _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedInAccount(ProfileId, _redisCache, dbr);
                    oAuthLinkedIn _oauth = new oAuthLinkedIn();
                    _oauth.ConsumerKey    = _appSettings.LinkedinApiKey;
                    _oauth.ConsumerSecret = _appSettings.LinkedinSecretKey;
                    _oauth.Token          = _LinkedInAccount.OAuthToken;
                    string PostUrl = "https://api.linkedin.com/v1/people/~/shares?format=json";
                    if (string.IsNullOrEmpty(ImageUrl))
                    {
                        json = _oauth.LinkedProfilePostWebRequest("POST", PostUrl, comment);
                    }
                    else
                    {
                        json = _oauth.LinkedProfilePostWebRequestWithImage("POST", PostUrl, comment, img);
                    }

                    if (!string.IsNullOrEmpty(json))
                    {
                        ScheduledMessage scheduledMessage = new ScheduledMessage();
                        scheduledMessage.createTime        = DateTime.UtcNow;
                        scheduledMessage.picUrl            = _LinkedInAccount.ProfileImageUrl;
                        scheduledMessage.profileId         = ProfileId;
                        scheduledMessage.profileType       = Domain.Socioboard.Enum.SocialProfileType.LinkedIn;
                        scheduledMessage.scheduleTime      = DateTime.UtcNow;
                        scheduledMessage.shareMessage      = comment;
                        scheduledMessage.userId            = userid;
                        scheduledMessage.status            = Domain.Socioboard.Enum.ScheduleStatus.Compleated;
                        scheduledMessage.url               = ImageUrl;
                        scheduledMessage.mediaType         = mediaType;
                        scheduledMessage.socialprofileName = _LinkedInAccount.LinkedinUserName;
                        dbr.Add <ScheduledMessage>(scheduledMessage);

                        return("posted");
                    }
                    else
                    {
                        json = "Message not posted";
                        return(json);
                    }
                }
                else
                {
                    string json = "";
                    Domain.Socioboard.Models.LinkedInAccount _LinkedInAccount = Repositories.LinkedInAccountRepository.getLinkedInAccount(ProfileId, _redisCache, dbr);
                    oAuthLinkedIn _oauth = new oAuthLinkedIn();
                    _oauth.ConsumerKey    = _appSettings.LinkedinApiKey;
                    _oauth.ConsumerSecret = _appSettings.LinkedinSecretKey;
                    _oauth.Token          = _LinkedInAccount.OAuthToken;
                    string PostUrl = "https://api.linkedin.com/v1/people/~/shares?format=json";
                    if (string.IsNullOrEmpty(ImageUrl))
                    {
                        json = _oauth.LinkedProfilePostWebRequest("POST", PostUrl, comment);
                    }
                    else
                    {
                        var    client   = new ImgurClient("5f1ad42ec5988b7", "f3294c8632ef8de6bfcbc46b37a23d18479159c5");
                        var    endpoint = new ImageEndpoint(client);
                        IImage image;
                        using (var fs = new FileStream(imagepath, FileMode.Open))
                        {
                            image = endpoint.UploadImageStreamAsync(fs).GetAwaiter().GetResult();
                        }

                        var img = image.Link;
                        json = _oauth.LinkedProfilePostWebRequestWithImage("POST", PostUrl, comment, img);
                    }

                    if (!string.IsNullOrEmpty(json))
                    {
                        ScheduledMessage scheduledMessage = new ScheduledMessage();
                        scheduledMessage.createTime        = DateTime.UtcNow;
                        scheduledMessage.picUrl            = _LinkedInAccount.ProfileImageUrl;
                        scheduledMessage.profileId         = ProfileId;
                        scheduledMessage.profileType       = Domain.Socioboard.Enum.SocialProfileType.LinkedIn;
                        scheduledMessage.scheduleTime      = DateTime.UtcNow;
                        scheduledMessage.shareMessage      = comment;
                        scheduledMessage.userId            = userid;
                        scheduledMessage.status            = Domain.Socioboard.Enum.ScheduleStatus.Compleated;
                        scheduledMessage.url               = ImageUrl;
                        scheduledMessage.mediaType         = mediaType;
                        scheduledMessage.socialprofileName = _LinkedInAccount.LinkedinUserName;
                        dbr.Add <ScheduledMessage>(scheduledMessage);

                        return("posted");
                    }
                    else
                    {
                        json = "Message not posted";
                        return(json);
                    }
                }
            }


            catch (Exception ex)
            {
                return("Message not posted");
            }
        }
        public static string PostLinkedInCompanyPagePost(string upload, string ImageUrl, long userid, string comment, string LinkedinPageId, Domain.Socioboard.Enum.MediaType mediaType, string profileName, Helper.Cache _redisCache, Model.DatabaseRepository dbr, Helper.AppSettings _appSettings)
        {
            try
            {
                if (!ImageUrl.Contains("https://") && !ImageUrl.Contains("http://") && !string.IsNullOrEmpty(ImageUrl))
                {
                    var    client   = new ImgurClient("5f1ad42ec5988b7", "f3294c8632ef8de6bfcbc46b37a23d18479159c5");
                    var    endpoint = new ImageEndpoint(client);
                    IImage image;
                    using (var fs = new FileStream(ImageUrl, FileMode.Open))
                    {
                        image = endpoint.UploadImageStreamAsync(fs).GetAwaiter().GetResult();
                    }
                    var    img  = image.Link;
                    string json = "";
                    Domain.Socioboard.Models.LinkedinCompanyPage objlicompanypage = Repositories.LinkedInAccountRepository.getLinkedinCompanyPage(LinkedinPageId, _redisCache, dbr);
                    oAuthLinkedIn Linkedin_oauth = new oAuthLinkedIn();
                    Linkedin_oauth.ConsumerKey    = _appSettings.LinkedinApiKey;
                    Linkedin_oauth.ConsumerSecret = _appSettings.LinkedinSecretKey;
                    Linkedin_oauth.Verifier       = objlicompanypage.OAuthVerifier;
                    Linkedin_oauth.TokenSecret    = objlicompanypage.OAuthSecret;
                    Linkedin_oauth.Token          = objlicompanypage.OAuthToken;
                    Linkedin_oauth.Id             = objlicompanypage.LinkedinPageId;
                    Linkedin_oauth.FirstName      = objlicompanypage.LinkedinPageName;
                    Company company = new Company();
                    if (string.IsNullOrEmpty(ImageUrl))
                    {
                        json = company.SetPostOnPage(Linkedin_oauth, objlicompanypage.LinkedinPageId, comment);
                    }
                    else
                    {
                        json = company.SetPostOnPageWithImage(Linkedin_oauth, objlicompanypage.LinkedinPageId, img, comment);
                    }
                    if (!string.IsNullOrEmpty(json))
                    {
                        ScheduledMessage scheduledMessage = new ScheduledMessage();
                        scheduledMessage.createTime        = DateTime.UtcNow;
                        scheduledMessage.picUrl            = objlicompanypage.LogoUrl;
                        scheduledMessage.profileId         = objlicompanypage.LinkedinPageId;
                        scheduledMessage.profileType       = Domain.Socioboard.Enum.SocialProfileType.LinkedInComapanyPage;
                        scheduledMessage.scheduleTime      = DateTime.UtcNow;
                        scheduledMessage.shareMessage      = comment;
                        scheduledMessage.userId            = userid;
                        scheduledMessage.status            = Domain.Socioboard.Enum.ScheduleStatus.Compleated;
                        scheduledMessage.url               = upload;
                        scheduledMessage.mediaType         = mediaType;
                        scheduledMessage.socialprofileName = objlicompanypage.LinkedinPageName;
                        dbr.Add <ScheduledMessage>(scheduledMessage);

                        return("posted");
                    }
                    else
                    {
                        json = "Message not posted";
                        return(json);
                    }
                }
                else
                {
                    string json = "";
                    Domain.Socioboard.Models.LinkedinCompanyPage objlicompanypage = Repositories.LinkedInAccountRepository.getLinkedinCompanyPage(LinkedinPageId, _redisCache, dbr);
                    oAuthLinkedIn Linkedin_oauth = new oAuthLinkedIn();
                    Linkedin_oauth.ConsumerKey    = _appSettings.LinkedinApiKey;
                    Linkedin_oauth.ConsumerSecret = _appSettings.LinkedinSecretKey;
                    Linkedin_oauth.Verifier       = objlicompanypage.OAuthVerifier;
                    Linkedin_oauth.TokenSecret    = objlicompanypage.OAuthSecret;
                    Linkedin_oauth.Token          = objlicompanypage.OAuthToken;
                    Linkedin_oauth.Id             = objlicompanypage.LinkedinPageId;
                    Linkedin_oauth.FirstName      = objlicompanypage.LinkedinPageName;
                    Company company = new Company();
                    if (string.IsNullOrEmpty(ImageUrl))
                    {
                        json = company.SetPostOnPage(Linkedin_oauth, objlicompanypage.LinkedinPageId, comment);
                    }
                    else
                    {
                        var    client   = new ImgurClient("5f1ad42ec5988b7", "f3294c8632ef8de6bfcbc46b37a23d18479159c5");
                        var    endpoint = new ImageEndpoint(client);
                        IImage image;
                        using (var fs = new FileStream(ImageUrl, FileMode.Open))
                        {
                            image = endpoint.UploadImageStreamAsync(fs).GetAwaiter().GetResult();
                        }
                        var img = image.Link;
                        json = company.SetPostOnPageWithImage(Linkedin_oauth, objlicompanypage.LinkedinPageId, img, comment);
                    }
                    if (!string.IsNullOrEmpty(json))
                    {
                        ScheduledMessage scheduledMessage = new ScheduledMessage();
                        scheduledMessage.createTime        = DateTime.UtcNow;
                        scheduledMessage.picUrl            = objlicompanypage.LogoUrl;
                        scheduledMessage.profileId         = objlicompanypage.LinkedinPageId;
                        scheduledMessage.profileType       = Domain.Socioboard.Enum.SocialProfileType.LinkedInComapanyPage;
                        scheduledMessage.scheduleTime      = DateTime.UtcNow;
                        scheduledMessage.shareMessage      = comment;
                        scheduledMessage.userId            = userid;
                        scheduledMessage.status            = Domain.Socioboard.Enum.ScheduleStatus.Compleated;
                        scheduledMessage.url               = upload;
                        scheduledMessage.mediaType         = mediaType;
                        scheduledMessage.socialprofileName = objlicompanypage.LinkedinPageName;
                        dbr.Add <ScheduledMessage>(scheduledMessage);

                        return("posted");
                    }
                    else
                    {
                        json = "Message not posted";
                        return(json);
                    }
                }


                //}
                //catch(Exception ex)
                //{
                //    return "Message not posted";
                //}
            }
            catch (Exception ex)
            {
                return("Message not posted");
            }
        }
        public static string ComposeMessage(Domain.Socioboard.Enum.FbProfileType profiletype, string accessToken, string fbUserId, string message, string profileId, long userId, string imagePath, string link, Domain.Socioboard.Enum.MediaType mediaType, string profileName, DatabaseRepository dbr, ILogger _logger)
        {
            string         ret = "";
            FacebookClient fb  = new FacebookClient();

            fb.AccessToken = accessToken;
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;
            var args = new Dictionary <string, object>();

            if (!string.IsNullOrEmpty(message))
            {
                args["message"] = message;
            }
            if (profiletype == Domain.Socioboard.Enum.FbProfileType.FacebookProfile)
            {
                args["privacy"] = FbUser.SetPrivacy("Public", fb, profileId);
            }
            try
            {
                if (string.IsNullOrEmpty(link))
                {
                    if (!string.IsNullOrEmpty(imagePath))
                    {
                        if (!imagePath.Contains("mp4") && !imagePath.Contains("mov") && !imagePath.Contains("mpeg") && !imagePath.Contains("wmv") && !imagePath.Contains("avi") && !imagePath.Contains("flv") && !imagePath.Contains("3gp"))
                        {
                            Uri    u         = new Uri(imagePath);
                            string filename  = string.Empty;
                            string extension = string.Empty;
                            extension = System.IO.Path.GetExtension(u.AbsolutePath).Replace(".", "");
                            var media = new FacebookMediaObject
                            {
                                FileName    = "filename",
                                ContentType = "image/" + extension
                            };
                            var    webClient = new WebClient();
                            byte[] img       = webClient.DownloadData(imagePath);
                            media.SetValue(img);
                            args["source"] = media;
                            ret            = fb.Post("v2.7/" + fbUserId + "/photos", args).ToString();
                        }
                        else
                        {
                            Uri    u         = new Uri(imagePath);
                            string filename  = string.Empty;
                            string extension = string.Empty;
                            filename = imagePath.Substring(imagePath.IndexOf("get?id=") + 7);
                            if (!string.IsNullOrWhiteSpace(filename))
                            {
                                extension = filename.Substring(filename.IndexOf(".") + 1);
                            }
                            var media = new FacebookMediaObject
                            {
                                FileName    = filename,
                                ContentType = "video/" + extension
                            };
                            //byte[] img = System.IO.File.ReadAllBytes(imagepath);
                            var    webClient = new WebClient();
                            byte[] img       = webClient.DownloadData(imagePath);
                            media.SetValue(img);
                            args["title"]       = message;
                            args["description"] = message;
                            args["source"]      = media;
                            ret = fb.Post("v2.7/" + fbUserId + "/videos", args).ToString();//v2.1
                        }
                    }
                    else
                    {
                        args["message"] = message;
                        ret             = fb.Post("v2.7/" + fbUserId + "/feed", args).ToString();
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(link))
                    {
                        args["link"] = link;
                    }
                    if (!string.IsNullOrEmpty(imagePath))
                    {
                        args["picture"] = imagePath.Replace("&amp;", "&");
                    }
                    ret = fb.Post("v2.7/" + fbUserId + "/feed", args).ToString();//v2.1
                }
                ScheduledMessage scheduledMessage = new ScheduledMessage();
                scheduledMessage.createTime = DateTime.UtcNow;
                scheduledMessage.picUrl     = "https://graph.facebook.com/" + fbUserId + "/picture?type=small";//imagePath;
                scheduledMessage.profileId  = profileId;
                if (profiletype == Domain.Socioboard.Enum.FbProfileType.FacebookProfile)
                {
                    scheduledMessage.profileType = Domain.Socioboard.Enum.SocialProfileType.Facebook;
                }
                else
                {
                    scheduledMessage.profileType = Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage;
                }
                scheduledMessage.scheduleTime      = DateTime.UtcNow;
                scheduledMessage.shareMessage      = message;
                scheduledMessage.userId            = userId;
                scheduledMessage.status            = Domain.Socioboard.Enum.ScheduleStatus.Compleated;
                scheduledMessage.url               = imagePath;//"https://graph.facebook.com/"+ fbUserId + "/picture?type=small";
                scheduledMessage.mediaType         = mediaType;
                scheduledMessage.socialprofileName = profileName;
                dbr.Add <ScheduledMessage>(scheduledMessage);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                _logger.LogError(ex.StackTrace);
            }
            return(ret);
        }
        //DaywiseSchedule
        public static string ScheduleMessage(string profileId, string socialprofileName, string shareMessage, Domain.Socioboard.Enum.SocialProfileType profiletype, long userId, string link, string url, string picUrl, string scheduleTime, string localscheduletime, Domain.Socioboard.Enum.MediaType mediaType, AppSettings _AppSettings, Cache _redisCache, DatabaseRepository dbr, ILogger _logger)
        {
            ScheduledMessage scheduledMessage = new ScheduledMessage();

            //scheduledMessage.calendertime = Convert.ToDateTime(localscheduletime); error coming so change
            scheduledMessage.calendertime = DateTime.Today;
            scheduledMessage.shareMessage = shareMessage;
            string userlocalscheduletime = localscheduletime;

            try
            {
                _logger.LogError("ScheduleMessageHelperscheduleTime>>>>" + scheduleTime);
                var dt = DateTime.Parse(scheduleTime);
                scheduledMessage.scheduleTime = Convert.ToDateTime(TimeZoneInfo.ConvertTimeToUtc(dt));
                //scheduledMessage.scheduleTime = Convert.ToDateTime(scheduleTime) ;
                // scheduledMessage.scheduleTime = Convert.ToDateTime(CompareDateWithclient(DateTime.UtcNow.ToString(),scheduleTime));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.StackTrace);
            }
            DateTime fromTime = scheduledMessage.scheduleTime.AddMinutes(-scheduledMessage.scheduleTime.Minute);
            DateTime toTime   = scheduledMessage.scheduleTime.AddMinutes(-scheduledMessage.scheduleTime.Minute).AddHours(1);

            try
            {
                int count = dbr.Find <ScheduledMessage>(t => t.scheduleTime > fromTime && t.scheduleTime <= toTime && t.profileId == profileId).Count();
                if (count > _AppSettings.FacebookScheduleMessageMaxLimit)
                {
                    _logger.LogError("Facebook Max limit Reached.");
                    return("Max limit Reached.");
                }
            }
            catch (Exception)
            {
            }
            scheduledMessage.status            = Domain.Socioboard.Enum.ScheduleStatus.Pending;
            scheduledMessage.userId            = userId;
            scheduledMessage.profileType       = profiletype;
            scheduledMessage.profileId         = profileId;
            scheduledMessage.url               = url;
            scheduledMessage.link              = link;
            scheduledMessage.picUrl            = picUrl;
            scheduledMessage.createTime        = DateTime.UtcNow;
            scheduledMessage.clientTime        = DateTime.Now;
            scheduledMessage.localscheduletime = userlocalscheduletime;
            scheduledMessage.socialprofileName = socialprofileName;
            scheduledMessage.mediaType         = mediaType;
            int ret = dbr.Add <ScheduledMessage>(scheduledMessage);

            if (ret == 1)
            {
                return("Scheduled.");
            }
            else
            {
                return("Not Scheduled.");
            }
        }
        public static void DraftScheduleMessage(string shareMessage, long userId, long groupId, string picUrl, string scheduleTime, Domain.Socioboard.Enum.MediaType mediaType, AppSettings _AppSettings, Cache _redisCache, DatabaseRepository dbr, ILogger _logger)
        {
            Draft _Draft = new Draft();

            _Draft.shareMessage = shareMessage;

            try
            {
                _Draft.scheduleTime = Convert.ToDateTime(scheduleTime);
            }
            catch (Exception ex)
            {
            }
            //_Draft.scheduleTime = DateTime.Parse(scheduleTime);
            _Draft.userId     = userId;
            _Draft.GroupId    = groupId;
            _Draft.picUrl     = picUrl;
            _Draft.createTime = DateTime.UtcNow;
            _Draft.mediaType  = mediaType;
            dbr.Add <Draft>(_Draft);
        }
Exemplo n.º 6
0
        public static string PostTwitterMessage(AppSettings _AppSettings, Cache _redisCache, string message, string profileid, long userid, string url, bool isScheduled, Domain.Socioboard.Enum.MediaType mediaType, string profileName, DatabaseRepository dbr, ILogger _logger, string sscheduledmsgguid = "")
        {
            bool   rt    = false;
            string ret   = "";
            string str   = "";
            int    Twtsc = 0;

            Domain.Socioboard.Models.TwitterAccount objTwitterAccount = Api.Socioboard.Repositories.TwitterRepository.getTwitterAccount(profileid, _redisCache, dbr);
            oAuthTwitter OAuthTwt = new oAuthTwitter(_AppSettings.twitterConsumerKey, _AppSettings.twitterConsumerScreatKey, _AppSettings.twitterRedirectionUrl);

            OAuthTwt.AccessToken       = objTwitterAccount.oAuthToken;
            OAuthTwt.AccessTokenSecret = objTwitterAccount.oAuthSecret;
            OAuthTwt.TwitterScreenName = objTwitterAccount.twitterScreenName;
            OAuthTwt.TwitterUserId     = objTwitterAccount.twitterUserId;
            Tweet twt = new Tweet();

            if (!string.IsNullOrEmpty(url))
            {
                try
                {
                    PhotoUpload ph  = new PhotoUpload();
                    string      res = string.Empty;
                    // rt = ph.Tweet(url, message, OAuthTwt);
                    if (url.Contains("mp4"))
                    {
                        var    webClient = new WebClient();
                        byte[] img       = webClient.DownloadData(url);
                        rt = videoUploading(img, message, objTwitterAccount.oAuthToken, objTwitterAccount.oAuthSecret, _AppSettings);
                    }
                    else
                    {
                        rt = ph.NewTweet(url, message, OAuthTwt, ref res);
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError("PostTwitterMessageWithImage" + ex.StackTrace);
                    _logger.LogError("PostTwitterMessageWithImage" + ex.Message);
                }
            }
            else
            {
                try
                {
                    JArray post = twt.Post_Statuses_Update(OAuthTwt, message);
                    ret = post[0]["id_str"].ToString();
                }
                catch (Exception ex)
                {
                    _logger.LogError("PostTwitterMessage" + ex.StackTrace);
                    _logger.LogError("PostTwitterMessage" + ex.Message);
                }
            }

            if (!string.IsNullOrEmpty(ret) || rt == true)
            {
                ScheduledMessage scheduledMessage = new ScheduledMessage();
                scheduledMessage.createTime        = DateTime.UtcNow;
                scheduledMessage.picUrl            = objTwitterAccount.profileImageUrl;
                scheduledMessage.profileId         = profileid;
                scheduledMessage.profileType       = Domain.Socioboard.Enum.SocialProfileType.Twitter;
                scheduledMessage.scheduleTime      = DateTime.UtcNow;
                scheduledMessage.shareMessage      = message;
                scheduledMessage.socialprofileName = objTwitterAccount.twitterScreenName;
                scheduledMessage.userId            = userid;
                scheduledMessage.status            = Domain.Socioboard.Enum.ScheduleStatus.Compleated;
                scheduledMessage.url               = url;
                scheduledMessage.mediaType         = mediaType;
                scheduledMessage.socialprofileName = profileName;
                dbr.Add <ScheduledMessage>(scheduledMessage);
            }
            else
            {
                str = "Message not posted";
            }

            return(str);
        }