示例#1
0
        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)));
        }
示例#4
0
        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));
        }
示例#5
0
        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)));
        }
示例#6
0
        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 }));
        }