public HttpResponseMessage Delete(Viewdelete delete) { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); if (delete.isFacebook) { Service service = _db.User.FirstOrDefault(c => c.UserId == WebSecurity.CurrentUserId).Services.FirstOrDefault(c => c.Provider == "facebook"); if (service != null) { FacebookAPI facebook = new FacebookAPI(service.Token); int status = facebook.deleteComment(delete.Id.ToString(),delete.PostId); //delete comment from a post on facebook if (status == 1) { return Request.CreateResponse(HttpStatusCode.NotFound); } else if (status == 2) { return Request.CreateResponse(HttpStatusCode.BadGateway); } else if (status == 3) { return Request.CreateResponse(HttpStatusCode.BadRequest); } } } else { int id = Convert.ToInt32(delete.Id); Comment comment = _db.Comment.FirstOrDefault(c => c.Id == id); _db.Comment.Remove(comment); _db.SaveChanges(); } return response; }
public IEnumerable<Models.User> Get() { List<Models.User> friends = new List<Models.User>(); var token = _db.User.FirstOrDefault(c => c.UserId == WebSecurity.CurrentUserId).Services.FirstOrDefault(c => c.Provider == "facebook").Token; if (token != null) { FacebookAPI facebook = new FacebookAPI(token); dynamic status = facebook.GetFacebookUsersFriends(); if (!(status is int) && status.ContainsKey("data")) { foreach (var friend in status.data) { //do something here string id = friend.uid2; var username = OAuthWebSecurity.GetUserName("facebook", id); if (username != null) { var local_id = WebSecurity.GetUserId(username); Models.User user = _db.User.FirstOrDefault(c => c.UserId == local_id); if (user != null) { friends.Add(user); } } } } } return friends; }
public void RunScheduler(string NewToken, int CurrentLoggedInUser) { ContextDb _db = new ContextDb(); DatabaseCallsApi _api = new DatabaseCallsApi(); FacebookAPI facebook = new FacebookAPI(NewToken); _api.AddOrUpdateService(CurrentLoggedInUser, "facebook", NewToken); //update user's token var Proposals_lists = _db.FacebookPostSchedule.Where(c => c.UserId == CurrentLoggedInUser && c.ErrorCode != 900).ToList(); var Comments_lists = _db.FacebookCommentSchedule.Where(c => c.UserId == CurrentLoggedInUser && c.ErrorCode != 900).ToList(); if (Proposals_lists.Count > 0) { // foreach (var post in Proposals_lists) { Proposal proposal = _db.Proposal.FirstOrDefault(c => c.Id == post.ProposalID); if (proposal != null) { dynamic status; if (post.ArtistPost) { status = facebook.InsertToArtistFeed(proposal, CurrentLoggedInUser, System.Web.HttpContext.Current.Request.UrlReferrer.ToString()); if (!(status is int)) { proposal.FacebookPostIdArtist = status.id; _db.FacebookPostSchedule.Remove(post); _db.SaveChanges(); } } else { status = facebook.InsertToFeed(proposal, CurrentLoggedInUser, System.Web.HttpContext.Current.Request.UrlReferrer.ToString()); if (!(status is int)) { proposal.FacebookPostId = status.id; _db.FacebookPostSchedule.Remove(post); _db.SaveChanges(); } } //do something } else { _db.FacebookPostSchedule.Remove(post); _db.SaveChanges(); } } // } if (Comments_lists.Count > 0) { foreach (var comment in Comments_lists) { int status = facebook.postCommentToPost(comment.FacebookPostId, comment.Body, comment.UserId); if (status == 0) { _db.FacebookCommentSchedule.Remove(comment); _db.SaveChanges(); } } } }
public IEnumerable<ViewCommentHistory> Get([FromUri]int Id) { List<Comment> list = _db.Comment.Select(c => c).Where(c => c.ProposalId == Id).ToList(); List<ViewCommentHistory> output = new List<ViewCommentHistory>(); foreach (var item in list) { Models.User user = _db.User.FirstOrDefault(c=>c.UserId == item.CreatedBy); if (item.CreatedBy == WebSecurity.CurrentUserId)//check if owner of the comment { output.Add(new ViewCommentHistory { Id = item.Id.ToString(), Body = item.Body, CreatedBy = user.Name, DateCreated = item.CreatedDate.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fffffffzzz"), UserId=user.Id.ToString(), isFacebook=false }); } else { output.Add(new ViewCommentHistory { Body = item.Body, CreatedBy = user.Name, DateCreated = item.CreatedDate.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fffffffzzz"), UserId = user.UserId.ToString(), isFacebook =false }); } } //get a service facebook or twitter Service service = _db.User.FirstOrDefault(c => c.UserId == WebSecurity.CurrentUserId).Services.FirstOrDefault(c => c.Provider == "facebook"); if (service != null) { FacebookAPI facebook = new FacebookAPI(service.Token); Proposal proposal = _db.Proposal.FirstOrDefault(c => c.Id == Id && c.FacebookPostId != null && c.FacebookPostId != ""); if (proposal != null) { dynamic comments = facebook.getComments(proposal.FacebookPostId); //get facebook post comments if ((comments is int) == false && comments != null &&comments.ContainsKey("data")) { foreach (dynamic item in comments.data) { string id = item.id; string body = item.message; string created_date = item.created_time; string created_by = item.from.name; string created_by_facebookID = item.from.id; string userID = OAuthWebSecurity.GetUserName("facebook",created_by_facebookID); var LoggedInUserID = OAuthWebSecurity.GetAccountsFromUserName(userID).FirstOrDefault(c=>c.Provider=="facebook").ProviderUserId; if (LoggedInUserID != null && LoggedInUserID == created_by_facebookID) { output.Add(new ViewCommentHistory { Id = id, Body = body, DateCreated = created_date, CreatedBy = created_by, UserId = created_by_facebookID, isFacebook = true, Artist = false }); } else { output.Add(new ViewCommentHistory { Body = body, DateCreated = created_date, CreatedBy = created_by, UserId = created_by_facebookID, isFacebook = true, Artist = false }); } } } output = output.OrderByDescending(c => DateTime.Parse(c.DateCreated)).ToList(); //reorder the comments if (proposal.FacebookPostIdArtist != "" && proposal.FacebookPostIdArtist != null)//used to identify if an artist post has been made if yes then grab the latest comment from Artist { comments = facebook.getComments(proposal.FacebookPostIdArtist); if ((comments is int) == false && comments != null && comments.ContainsKey("data")) { foreach (dynamic item in comments.data) { string id = item.id; string body = item.message; string created_date = item.created_time; string created_by = item.from.name; string created_by_facebookID = item.from.id; output.Insert(0,new ViewCommentHistory { Body = body, DateCreated = created_date, CreatedBy = created_by, UserId = created_by_facebookID, isFacebook = true, Artist = true }); break; } } } } proposal = _db.Proposal.FirstOrDefault(c => c.Id == Id && c.FacebookPostId != null && c.FacebookPostId != ""); } output = output.OrderByDescending(c => DateTime.Parse(c.DateCreated)).ToList(); return output.ToList(); }
public HttpResponseMessage PostComment(ViewComment comment) { if (ModelState.IsValid) { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created); _db.Comment.Add(new Comment { ProposalId = comment.Id, Body = comment.Body, CreatedBy = WebSecurity.CurrentUserId, CreatedDate = DateTime.UtcNow }); _db.SaveChanges(); Service service = _db.User.FirstOrDefault(c => c.UserId == WebSecurity.CurrentUserId).Services.FirstOrDefault(c => c.Provider == "facebook"); //get service for posting to feed Proposal proposal = _db.Proposal.FirstOrDefault(c=>c.Id == comment.Id && c.FacebookPostId != null && c.FacebookPostId != ""); if (service != null && proposal != null) { FacebookAPI facebook = new FacebookAPI(service.Token); int status = facebook.postCommentToPost(proposal.FacebookPostId, comment.Body,WebSecurity.CurrentUserId); if (status == 1) { return Request.CreateResponse(HttpStatusCode.NotFound); } else if(status == 2) { return Request.CreateResponse(HttpStatusCode.BadGateway); } else if (status == 3) { return Request.CreateResponse(HttpStatusCode.BadRequest); } //facebook.postCommentToPost(); } return response; } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } }
public void RunScheduler(string NewToken, int CurrentLoggedInUser) { ContextDb _db = new ContextDb(); DatabaseCallsApi _api = new DatabaseCallsApi(); FacebookAPI facebook = new FacebookAPI(NewToken); _api.AddOrUpdateService(CurrentLoggedInUser, "facebook", NewToken); //update user's token var Proposals_lists = _db.FacebookPostSchedule.Where(c => c.UserId == CurrentLoggedInUser && c.ErrorCode != 900).ToList() ; var Comments_lists = _db.FacebookCommentSchedule.Where(c => c.UserId == CurrentLoggedInUser && c.ErrorCode != 900).ToList() ; if (Proposals_lists.Count >0) { // foreach (var post in Proposals_lists) { Proposal proposal = _db.Proposal.FirstOrDefault(c => c.Id == post.ProposalID); if (proposal != null) { dynamic status; if (post.ArtistPost) { status = facebook.InsertToArtistFeed(proposal, CurrentLoggedInUser, System.Web.HttpContext.Current.Request.UrlReferrer.ToString()); if (!(status is int)) { proposal.FacebookPostIdArtist = status.id; _db.FacebookPostSchedule.Remove(post); _db.SaveChanges(); } } else { status = facebook.InsertToFeed(proposal, CurrentLoggedInUser, System.Web.HttpContext.Current.Request.UrlReferrer.ToString()); if (!(status is int)) { proposal.FacebookPostId = status.id; _db.FacebookPostSchedule.Remove(post); _db.SaveChanges(); } } //do something } else { _db.FacebookPostSchedule.Remove(post); _db.SaveChanges(); } } // } if (Comments_lists.Count > 0) { foreach (var comment in Comments_lists) { int status = facebook.postCommentToPost(comment.FacebookPostId, comment.Body, comment.UserId); if (status == 0) { _db.FacebookCommentSchedule.Remove(comment); _db.SaveChanges(); } } } }
public HttpResponseMessage Post(int Id, bool ArtistPost) { Proposal currProposal = _db.Proposal.FirstOrDefault(c=>c.Id == Id); Models.Service service = _db.User.FirstOrDefault(c => c.UserId == WebSecurity.CurrentUserId).Services.FirstOrDefault(c=>c.Provider == "facebook"); if (service != null ) { FacebookAPI facebook = new FacebookAPI(service.Token); if (service != null && currProposal != null) { dynamic status; if (ArtistPost) { status = facebook.InsertToArtistFeed(currProposal, WebSecurity.CurrentUserId, System.Web.HttpContext.Current.Request.UrlReferrer.ToString()); } else { status = facebook.InsertToFeed(currProposal, WebSecurity.CurrentUserId,System.Web.HttpContext.Current.Request.UrlReferrer.ToString()); } if (status is int && status == 1) { return Request.CreateResponse(HttpStatusCode.NotFound); } else if (status is int && status == 2) { return Request.CreateResponse(HttpStatusCode.BadGateway); } else if (status is int && status == 3) { return Request.CreateResponse(HttpStatusCode.BadRequest); } else if (status is int && status == 4) { return Request.CreateResponse(HttpStatusCode.Created); } else { if (ArtistPost) { _api.AddOrUpdateFacebookArtistPost(currProposal.Id, WebSecurity.CurrentUserId, status["id"].ToString()); //saving post id from facebook } else { _api.AddOrUpdateFacebookPost(currProposal.Id, WebSecurity.CurrentUserId, status["id"].ToString()); } return Request.CreateResponse(HttpStatusCode.Created); } } } return Request.CreateResponse(HttpStatusCode.BadRequest); }