private void OrchardRegister(TwitterAccountVM fvm) { IContentQuery <ContentItem> contentQuery = _orchardServices.ContentManager.Query().ForType(contentType); Int32 currentiduser = _orchardServices.WorkContext.CurrentUser.Id; Int32 elementi = contentQuery.List().Where(x => x.As <TwitterAccountPart>().IdUser == currentiduser && x.As <TwitterAccountPart>().DisplayAs == fvm.DisplayAs).Count(); if (elementi > 0) { _notifier.Add(NotifyType.Warning, T("User Twitter Account can't be added, is duplicated")); } else { var newContent = _orchardServices.ContentManager.New(contentType); _orchardServices.ContentManager.Create(newContent); newContent.As <TwitterAccountPart>().AccountType = "User"; newContent.As <TwitterAccountPart>().IdUser = currentiduser; newContent.As <TwitterAccountPart>().DisplayAs = fvm.DisplayAs; newContent.As <TwitterAccountPart>().SocialName = "Twitter"; newContent.As <TwitterAccountPart>().UserToken = fvm.UserToken; newContent.As <TwitterAccountPart>().Valid = true; newContent.As <TwitterAccountPart>().Shared = false; newContent.As <TwitterAccountPart>().UserTokenSecret = fvm.UserTokenSecret; _notifier.Add(NotifyType.Warning, T("User Twitter Account added")); } }
protected override DriverResult Editor(TwitterAccountPart part, IUpdateModel updater, dynamic shapeHelper) { TwitterAccountVM vm = new TwitterAccountVM(); updater.TryUpdateModel(vm, Prefix, null, null); Mapper.Initialize(cfg => { cfg.CreateMap <TwitterAccountVM, TwitterAccountPart>(); }); Mapper.Map <TwitterAccountVM, TwitterAccountPart>(vm, part); return(Editor(part, shapeHelper)); }
protected override DriverResult Editor(TwitterAccountPart part, dynamic shapeHelper) { TwitterAccountVM vm = new TwitterAccountVM(); Mapper.Initialize(cfg => { cfg.CreateMap <TwitterAccountPart, TwitterAccountVM>(); }); Mapper.Map <TwitterAccountPart, TwitterAccountVM>(part, vm); return(ContentShape("Parts_TwitterAccount", () => shapeHelper.EditorTemplate(TemplateName: "Parts/TwitterAccount", Model: vm, Prefix: Prefix))); }
protected override DriverResult Editor(TwitterAccountPart part, IUpdateModel updater, dynamic shapeHelper) { TwitterAccountVM vm = new TwitterAccountVM(); updater.TryUpdateModel(vm, Prefix, null, null); var mapperConfiguration = new MapperConfiguration(cfg => { cfg.CreateMap <TwitterAccountVM, TwitterAccountPart>(); }); IMapper _mapper = mapperConfiguration.CreateMapper(); _mapper.Map <TwitterAccountVM, TwitterAccountPart>(vm, part); return(Editor(part, shapeHelper)); }
protected override DriverResult Editor(TwitterAccountPart part, dynamic shapeHelper) { TwitterAccountVM vm = new TwitterAccountVM(); var mapperConfiguration = new MapperConfiguration(cfg => { cfg.CreateMap <TwitterAccountPart, TwitterAccountVM>(); }); IMapper _mapper = mapperConfiguration.CreateMapper(); _mapper.Map <TwitterAccountPart, TwitterAccountVM>(part, vm); return(ContentShape("Parts_TwitterAccount", () => shapeHelper.EditorTemplate(TemplateName: "Parts/TwitterAccount", Model: vm, Prefix: Prefix))); }
public ActionResult GetPostTokenTwitter() { ProviderConfigurationRecord pcr = _providerConfigurationService.Get("Twitter"); if (pcr == null) { _notifier.Add(NotifyType.Error, T("No twitter account setting added, add one in Settings -> Open Authentication")); return(RedirectToAction("Index", "TwitterAccount", new { area = "Laser.Orchard.Twitter", id = -10 })); } string consumerKey = pcr.ProviderIdKey; string consumerSecret = pcr.ProviderSecret; // il meccanismo utilizzato è il 3-Legged oAuth if (Request["oauth_token"] == null) { string tmpreq = Request.Url.AbsoluteUri; OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(consumerKey, consumerSecret, tmpreq); Response.Redirect(string.Format("https://api.twitter.com/oauth/authorize?oauth_token={0}", reqToken.Token)); } else { string requestToken = Request["oauth_token"].ToString(); string verifier = Request["oauth_verifier"].ToString(); var tokens = OAuthUtility.GetAccessToken(consumerKey, consumerSecret, requestToken, verifier); TwitterAccountVM vm = new TwitterAccountVM(); vm.DisplayAs = tokens.ScreenName; vm.UserToken = tokens.Token; vm.UserTokenSecret = tokens.TokenSecret; // conterrà l'account_token_secret #region [recupero immagine] OAuthTokens accessToken = new OAuthTokens(); accessToken.AccessToken = vm.UserToken; accessToken.AccessTokenSecret = vm.UserTokenSecret; accessToken.ConsumerKey = consumerKey; accessToken.ConsumerSecret = consumerSecret; TwitterResponse <TwitterUser> myTwitterUser = TwitterUser.Show(accessToken, tokens.ScreenName); TwitterUser user = myTwitterUser.ResponseObject; var profilePictureUrl = user.ProfileImageLocation; var mediaPath = HostingEnvironment.IsHosted ? HostingEnvironment.MapPath("~/Media/") ?? "" : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Media"); WebClient webClient = new WebClient(); webClient.DownloadFile(profilePictureUrl, mediaPath + _shellSettings.Name + @"\twitter_" + vm.DisplayAs + ".jpg"); #endregion // var avatarFormat = "https://api.twitter.com/1.1/users/show.json?screen_name={0}"; // var avatarUrl = string.Format(avatarFormat, vm.DisplayAs); // HttpWebRequest avatarRequest = (HttpWebRequest)WebRequest.Create(avatarUrl); // var timelineHeaderFormat = "{0} {1}"; // avatarRequest.Headers.Add("Authorization", String.Format("Bearer {0}", vm.UserToken)); //// avatarRequest.Headers.Add("Authorization", //// string.Format(timelineHeaderFormat, "oauth_token", requestToken)); // avatarRequest.Method = "Get"; // WebResponse timeLineResponse = avatarRequest.GetResponse(); // var reader = new StreamReader(timeLineResponse.GetResponseStream()); // var avatarJson = string.Empty; //using (authResponse) { // using (var reader = new StreamReader(timeLineResponse.GetResponseStream())) { // avatarJson = reader.ReadToEnd(); // } //} // Uri profilePictureUrl = new Uri(string.Format("https://api.twitter.com/1.1/users/show.json?screen_name={1}", vm.DisplayAs )); OrchardRegister(vm); } return(RedirectToAction("Index", "TwitterAccount", new { area = "Laser.Orchard.Twitter", id = -10 })); }