示例#1
0
 public override string Handle(Influencer influencer, UserInfluencerAuth userInfluencerAuthKey)
 {
     //var url = @"https://api.linkedin.com/v1/people/~?format=json";
     //var r = _handle(url, influencer, userInfluencerAuthKey);
     //return r;
     return(GetProfile(influencer, userInfluencerAuthKey));
 }
示例#2
0
        public string GetProfile(Influencer influencer, UserInfluencerAuth userInfluencerAuthKey)
        {
            var url = @"https://api.linkedin.com/v1/people/~:(id,first-name,last-name,maiden-name,formatted-name,phonetic-first-name,phonetic-last-name,formatted-phonetic-name,headline,location,industry,num-connections,num-connections-capped,summary,specialties,positions,picture-url,picture-urls::(original),site-standard-profile-request,api-standard-profile-request)?format=json";
            var r   = _handle(url, influencer, userInfluencerAuthKey);

            return(r);
        }
示例#3
0
        public override async Task <(string authToken, int expiresIn)> GetAuthToken(Influencer influencer, string authCode)
        {
            var    clientId     = influencer.ApiKey;
            var    clientSecret = influencer.Other1;
            string callBackUrl  = $"{ConnectionStrings.REDIRECT_URL_DOMAIN}/api/oauth/googleplus/callback";

            //get access token
            using (var httpClient = new HttpClient()
            {
                BaseAddress = new Uri(@"https://www.googleapis.com/")
            })
            {
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                var authRelUrl = $"oauth2/v4/token";
                var body       = JsonConvert.SerializeObject(new
                {
                    code          = authCode,
                    client_id     = clientId,
                    client_secret = clientSecret,
                    redirect_uri  = callBackUrl,
                    grant_type    = "authorization_code"
                });
                var tokenresponse = await httpClient.PostAsync(authRelUrl, new StringContent(body, Encoding.UTF8, "application/json"));

                if (tokenresponse?.IsSuccessStatusCode ?? false)
                {
                    var token = await tokenresponse.Content.ReadAsStringAsync();

                    var tokenJson = JsonConvert.DeserializeObject <dynamic>(token);

                    return(tokenJson.access_token, tokenJson.expires_in);
                }
                return(string.Empty, 0);
            }
        }
        public async Task <ActionResult <InfluencerVM> > CreateInfluencer(InfluencerVM influencerVM)
        {
            try
            {
                if (influencerVM == null)
                {
                    return(BadRequest());
                }

                // Add custom model validation error
                Influencer influencer = await influencerRepository.GetInfluencerByname(influencerVM.Influencer);

                if (influencer != null)
                {
                    ModelState.AddModelError("Name", $"Influencer name: {influencerVM.Influencer.Name} already in use");
                    return(BadRequest(ModelState));
                }

                await influencerRepository.CreateInfluencer(influencerVM);

                return(CreatedAtAction(nameof(GetInfluencer),
                                       new { id = influencerVM.Influencer.Id }, influencerVM));
            }
            catch (DbUpdateException Ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  Ex.InnerException.Message));
            }
        }
示例#5
0
        private void _Deactivate()
        {
            IsActive = false;

            IsSelected = false;
            SpawnVersion++;
            if (onDeactivation.IsNotNull())
            {
                onDeactivation(this);
            }

            abilityManager.Deactivate();

            Body.Deactivate();
            if (Influencer.IsNotNull())
            {
                Influencer.Deactivate();
            }

            if (StatsBarer != null)
            {
                StatsBarer.Deactivate();
            }
            if (Ringer.IsNotNull())
            {
                Ringer.Deactivate();
            }
        }
        public Paged <Influencer> SearchPaginated(string search, int pageIndex, int pageSize)
        {
            Paged <Influencer> pagedList = null;
            List <Influencer>  list      = null;
            int totalCount = 0;

            _dataProvider.ExecuteCmd(
                "dbo.Influencer_SearchPaginated",
                (paramCol) =>
            {
                paramCol.AddWithValue("@Search", search);
                paramCol.AddWithValue("@PageIndex", pageIndex);
                paramCol.AddWithValue("@PageSize", pageSize);
            },
                (reader, set) =>
            {
                Influencer influencer = PageMapper(reader);

                totalCount = reader.GetSafeInt32(12);

                if (list == null)
                {
                    list = new List <Influencer>();
                }
                list.Add(influencer);
            }
                );
            if (list != null)
            {
                pagedList = new Paged <Influencer>(list, pageIndex, pageSize, totalCount);
            }
            return(pagedList);
        }
        public Influencer SelectById(int id)
        {
            Influencer influencer = null;

            _dataProvider.ExecuteCmd(
                "dbo.Influencer_SelectById",
                (param) =>
            {
                param.AddWithValue("@id", id);
            },
                (reader, recordSetIndex) =>
            {
                influencer             = new Influencer();
                int index              = 0;
                influencer.Id          = reader.GetSafeInt32(index++);
                influencer.UserId      = reader.GetSafeInt32(index++);
                influencer.Bio         = reader.GetSafeString(index++);
                influencer.FaqId       = reader.GetSafeInt32(index++);
                influencer.MilestoneId = reader.GetSafeInt32(index++);
                influencer.IsActive    = reader.GetSafeBool(index++);
                influencer.FirstName   = reader.GetSafeString(index++);
                influencer.LastName    = reader.GetSafeString(index++);
            });


            return(influencer);
        }
示例#8
0
        public override async Task <(string authToken, int expiresIn)> GetAuthToken(Influencer influencer, string authCode)
        {
            string appId       = influencer.ApiKey,
                   appSecret   = influencer.Other1,
                   redirectUri = $"{ConnectionStrings.REDIRECT_URL_DOMAIN}/api/oauth/facebook/callback";

            using (var httpClient = new HttpClient()
            {
                BaseAddress = new Uri(@"https://graph.facebook.com/")
            })
            {
                httpClient.DefaultRequestHeaders.Accept
                .Add(new MediaTypeWithQualityHeaderValue("application/json"));
                string authRelUrl    = $"oauth/access_token?client_id={appId}&redirect_uri={redirectUri}&client_secret={appSecret}&code={authCode}";
                var    tokenresponse = await httpClient.GetAsync(authRelUrl);

                if (tokenresponse?.IsSuccessStatusCode ?? false)
                {
                    var token = await tokenresponse.Content.ReadAsStringAsync();

                    var tokenJson = JsonConvert.DeserializeObject <dynamic>(token);

                    //string endpoint = "me";
                    //string args = "fields=id,name,email,first_name,last_name,age_range,birthday,gender,location";
                    //var response = await httpClient.GetAsync($"{endpoint}?access_token={tokenJson.access_token}&{args}");
                    //var result = await response.Content.ReadAsStringAsync();

                    return(tokenJson.access_token, tokenJson.expires_in);
                }
                return(string.Empty, 0);
            }
        }
示例#9
0
        public void Initialize(
            Vector2d position = default(Vector2d),
            Vector2d rotation = default(Vector2d))
        {
            IsActive     = true;
            CheckCasting = true;


            CachedGameObject.SetActive(true);
            if (Body.IsNotNull())
            {
                Body.Initialize(position.ToVector3d(), rotation);
            }

            if (Influencer.IsNotNull())
            {
                Influencer.Initialize();
            }



            abilityManager.Initialize();
            if (Animator.IsNotNull())
            {
                Animator.Initialize();
            }
        }
        private InfluencerFormViewModel(Influencer influencer, IEnumerable <MembershipType> membershipTypes, string pageName, string buttonName, string fullName)
        {
            ID                  = influencer.ID;
            MainLanguage        = influencer.MainLanguage;
            MainPlatform        = influencer.MainPlatform;
            Exposure            = influencer.Exposure;
            MainTopic           = influencer.MainTopic;
            AudienceAge         = influencer.AudienceAge;
            AudienceMainCountry = influencer.AudienceMainCountry;
            AudienceMainState   = influencer.AudienceMainState;
            AudienceMainTrait   = influencer.AudienceMainTrait;
            AboutTheInfluencer  = influencer.AboutTheInfluencer;
            MembershipTypeID    = influencer.MembershipTypeID;
            MembershipTypes     = membershipTypes;
            MembershipType      = influencer.MembershipType;
            //UserID = influencer.UserID;

            //VIEW PROPERTIES
            PageName   = pageName;
            ButtonName = buttonName;
            FullName   = fullName;

            //FILES
            FileUploads = influencer.FileUploads;
        }
        public ActionResult <ItemResponse <Influencer> > SelectById(int id)
        {
            ItemResponse <Influencer> response = null;
            ActionResult result = null;

            try
            {
                Influencer influencer = _influencerService.SelectById(id);
                if (influencer == null)
                {
                    result = NotFound404(new ErrorResponse("This influencer does not exist"));
                }
                else
                {
                    response      = new ItemResponse <Influencer>();
                    response.Item = influencer;

                    result = Ok200(response);
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.ToString());
                result = StatusCode(500, new ErrorResponse(ex.Message.ToString()));
            }
            return(result);
        }
        public ActionResult <ItemResponse <Influencer> > SelectByUserId(int userId)
        {
            ItemResponse <Influencer> response = null;
            ActionResult result = null;

            try
            {
                Influencer influencer = _influencerService.SelectByUserId(userId);
                if (influencer == null)
                {
                    result = NotFound404(new ErrorResponse("This user is not an Influencer."));
                }
                else
                {
                    response      = new ItemResponse <Influencer>();
                    response.Item = influencer;
                    result        = Ok200(response);
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.ToString());
                result = StatusCode(500, "Internal Server Error");
            }
            return(result);
        }
示例#13
0
        public void Initialize(
            Vector2d position = default(Vector2d),
            Vector2d rotation = default(Vector2d))
        {
            IsActive     = true;
            CheckCasting = true;


            CachedGameObject.SetActiveIfNot(true);
            if (Body.IsNotNull())
            {
                Body.Initialize(new Vector2dHeight(position), rotation);
            }

            if (Triggers.IsNotNull())
            {
                foreach (LSTrigger trigger in Triggers)
                {
                    trigger.Initialize();
                }
            }

            if (Influencer.IsNotNull())
            {
                Influencer.Initialize();
            }



            abilityManager.Initialize();
            if (Animator.IsNotNull())
            {
                Animator.Initialize();
            }
        }
示例#14
0
        public override async Task <(string authToken, int expiresIn)> GetAuthToken(Influencer influencer, string authCode)
        {
            string clientId     = influencer.ApiKey;
            string clientSecret = influencer.Other1;

            string credentials = $"{HttpUtility.UrlEncode(clientId)}:{HttpUtility.UrlEncode(clientSecret)}";
            string base64EncodedCredintials = Convert.ToBase64String(new ASCIIEncoding().GetBytes(credentials));

            using (var httpClient = new HttpClient()
            {
                BaseAddress = new Uri(@"https://api.twitter.com/")
            })
            {
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                httpClient.DefaultRequestHeaders.Add("Authorization", $"Basic {base64EncodedCredintials}");
                string body = "grant_type=client_credentials";

                var tokenresponse = await httpClient.PostAsync("oauth2/token",
                                                               new StringContent(body, Encoding.UTF8, "application/x-www-form-urlencoded"));

                if (tokenresponse?.IsSuccessStatusCode ?? false)
                {
                    var token = await tokenresponse.Content.ReadAsStringAsync();

                    var tokenJson = JsonConvert.DeserializeObject <dynamic>(token);
                    //var tweets = await GetTweets(tokenJson.access_token.ToString(), "arrahman");
                    if (tokenJson.token_type == "bearer")
                    {
                        return(tokenJson.access_token, -1);
                    }
                }
            }
            return(string.Empty, 0);
        }
示例#15
0
 private void Update()
 {
     if (!inside)
     {
         GetComponentInChildren <MeshRenderer>().material.color = Influencer.Eval(Weight);
     }
 }
示例#16
0
        public override async Task <(string authToken, int expiresIn)> GetAuthToken(Influencer influencer, string authCode)
        {
            var    clientId     = influencer.ApiKey;
            var    clientSecret = influencer.Other1;
            string callBackUrl  = $"{ConnectionStrings.REDIRECT_URL_DOMAIN}/api/oauth/linkedin/callback";

            //get access token
            using (var httpClient = new HttpClient()
            {
                BaseAddress = new Uri(@"https://www.linkedin.com/")
            })
            {
                httpClient.DefaultRequestHeaders.Accept
                .Add(new MediaTypeWithQualityHeaderValue("application/json"));
                var authRelUrl = $"/oauth/v2/accessToken?grant_type=authorization_code&code={authCode}" +
                                 $"&redirect_uri={callBackUrl}&client_id={clientId}&client_secret={clientSecret}";

                var tokenresponse = await httpClient.GetAsync(authRelUrl);

                if (tokenresponse?.IsSuccessStatusCode ?? false)
                {
                    var token = await tokenresponse.Content.ReadAsStringAsync();

                    var tokenJson = JsonConvert.DeserializeObject <dynamic>(token);

                    return(tokenJson.access_token, tokenJson.expires_in);
                }
                return(string.Empty, 0);
            }
        }
示例#17
0
        public Paged <Influencer> Pagination(int pageIndex, int pageSize)
        {
            Paged <Influencer> pagedList = null;
            List <Influencer>  list      = null;
            int totalCount = 0;

            _dataProvider.ExecuteCmd(
                "dbo.Influencer_SelectAllPaginated",
                (param) =>
            {
                param.AddWithValue("@PageIndex", pageIndex);
                param.AddWithValue("@PageSize", pageSize);
            },
                (reader, recordSetIndex) =>
            {
                Influencer influencer = PageMapper(reader);

                totalCount = reader.GetSafeInt32(12);

                if (list == null)
                {
                    list = new List <Influencer>();
                }
                list.Add(influencer);
            }
                );
            if (list != null)
            {
                pagedList = new Paged <Influencer>(list, pageIndex, pageSize, totalCount);
            }
            return(pagedList);
        }
示例#18
0
        public virtual void Initialize(
            Vector2d position = default(Vector2d),
            Vector2d rotation = default(Vector2d))
        {
            IsActive     = true;
            CheckCasting = true;

            // put game object under it's agent commander
            CachedGameObject.transform.parent = this.Controller.Commander.GetComponentInChildren <RTSAgents>().transform;

            CachedGameObject.SetActive(true);
            if (Body.IsNotNull())
            {
                Body.Initialize(position.ToVector3d(), rotation);
            }

            if (Influencer.IsNotNull())
            {
                Influencer.Initialize();
            }

            abilityManager.Initialize();
            if (Animator.IsNotNull())
            {
                Animator.Initialize();
            }
        }
示例#19
0
        public override string Handle(Influencer influencer, UserInfluencerAuth userInfluencerAuthKey)
        {
            var twitter = new Twitter(influencer.ApiKey, influencer.Other1, influencer.Other2, influencer.Other3);

            var response = twitter.GetTweets(userInfluencerAuthKey.UserName, 50);

            return(response);
        }
示例#20
0
        public ActionResult Create(InfluencerFormViewModel viewModel, HttpPostedFileBase upload)
        {
            // BAD SCENARIO IF THE MODEL IS INVALID
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Create"));
            }

            // GET USER ID AND USER
            var userId = User.Identity.GetUserId();
            var user   = unitOfWork.ApplicationUserRepository.GetUser(userId);

            // BRING AURORA WALLET TO ALLOW THE USER PAY US
            var auroraWallet = unitOfWork.AuroraWalletRepository.GetAuroraWallet();

            if (auroraWallet == null)
            {
                return(HttpNotFound());
            }

            // THIS TRY CATCH CHECKS IF THE PAYMENT CAN BE DONE, AND IN GENERAL IF SOMETHING GOES WRONG
            try
            {
                //CREATE THE INFLUENCER
                var influencer = Influencer.CreateInflunecerWithPayment(viewModel, user, auroraWallet);

                //IF THERE IS NEW FILE UPLOADED
                if (upload != null && upload.ContentLength > 0)
                {
                    //WE WILL CREATE A NEW FILE WITH THE TYPE OF AVATAR (THIS IS WHAT I NEED HERE)
                    var avatar = FileUpload.GiveInfluencerAvatar(System.IO.Path.GetFileName(upload.FileName), upload.ContentType, null, FileType.Avatar, influencer.ID);

                    //BLACK MAGIC
                    using (var reader = new System.IO.BinaryReader(upload.InputStream))
                    {
                        avatar.Content = reader.ReadBytes(upload.ContentLength);
                    }

                    // GIVE INFLUENCER THE LIST OF FILES WITH THE AVATAR FILE
                    influencer.FileUploads = new List <FileUpload> {
                        avatar
                    };
                }

                unitOfWork.InfluencerRepository.AddInfluencer(influencer);

                // SAVE CHANGES TO DB
                unitOfWork.Complete();
            }
            catch (Exception)
            {
                // HERE YOU CAN ADD THE SAME PAGE WITH A NEW VIEW PROPERTY TO DISPLAY THAT THE PAYMENT COULDNT BE DONE
                return(RedirectToAction("Create"));
            }

            // REDIRECT TO ADD A GIG (USER EXPIRIENCE)
            return(RedirectToAction("Create", "Gig", null));
        }
示例#21
0
        public string AuthorizeUser(ConnectorType connectorType)
        {
            Influencer influencer = authDataAccess.GetInfluncerAuthInfo(connectorType);
            var        handler    = handlerContainer.GetHandler(connectorType);

            string authRequestUrl = handler.AuthorizeUser(influencer);

            return(authRequestUrl);
        }
示例#22
0
        public void Initialize(
            AgentController controller,
            ushort localID,
            ushort globalID,
            Vector2d position = default(Vector2d),
            Vector2d rotation = default(Vector2d))
        {
            LocalID    = localID;
            GlobalID   = globalID;
            Controller = controller;

            IsActive     = true;
            CheckCasting = true;
            Selectable   = true;


            CachedGameObject.SetActiveIfNot(true);
            if (Body.IsNotNull())
            {
                Body.Initialize(new Vector2dHeight(position), rotation);
            }

            if (Triggers.IsNotNull())
            {
                foreach (LSTrigger trigger in Triggers)
                {
                    trigger.Initialize();
                }
            }

            if (Influencer.IsNotNull())
            {
                Influencer.Initialize();
            }

            if (Animator.IsNotNull())
            {
                Animator.Initialize();
            }

            abilityManager.Initialize();
            if (StatsBarer != null)
            {
                StatsBarer.Initialize();
            }
            if (Ringer.IsNotNull())
            {
                Ringer.Initialize();
                IsSelected    = false;
                IsHighlighted = false;
            }
            if (onInitialized != null)
            {
                onInitialized(this);
            }
        }
示例#23
0
        public override string AuthorizeUser(Influencer influencer)
        {
            var    clientId    = influencer.ApiKey;
            string callBackUrl = $"{ConnectionStrings.REDIRECT_URL_DOMAIN}/api/oauth/linkedin/callback";

            return(@"https://www.linkedin.com/oauth/v2/authorization?" +
                   "response_type=code" +
                   "&client_id=" + clientId +
                   "&redirect_uri=" + callBackUrl +
                   "&scope=r_basicprofile");
        }
示例#24
0
    // Adds a red unit and adjusts influence based on their strength and team
    public void AddRedUnit(Influencer influencer)
    {
        // Place the red unit
        int x = influencer.xLoc;
        int z = influencer.yLoc; // Discrepancy between programmers. Z = Y in this case.

        map[x, z] += FULL_INFLUENCE * RED;

        // Modify influence map
        CreateInfluence(x, z, RED, influencer.influenceVal);
    }
示例#25
0
        private static void Mapper(IDataReader reader, Influencer influencer)
        {
            int index = 0;

            influencer.Id          = reader.GetSafeInt32(index++);
            influencer.UserId      = reader.GetSafeInt32(index++);
            influencer.Bio         = reader.GetSafeString(index++);
            influencer.FaqId       = reader.GetSafeInt32(index++);
            influencer.MilestoneId = reader.GetSafeInt32(index++);
            influencer.IsActive    = reader.GetSafeBool(index++);
        }
示例#26
0
        public override string AuthorizeUser(Influencer influencer)
        {
            string appId       = influencer.ApiKey;
            string callBackUrl = $"{ConnectionStrings.REDIRECT_URL_DOMAIN}/api/oauth/facebook/callback";

            return(@"https://www.facebook.com/dialog/oauth?" +
                   "client_id=" + appId +
                   "&scope=public_profile,email" +
                   "&response_type=code" +
                   "&redirect_uri= " + callBackUrl);
        }
示例#27
0
        private string _handle(string url, Influencer influencer, UserInfluencerAuth userInfluencerAuthKey)
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userInfluencerAuthKey.Secret);
                var response = client.GetAsync(url).Result;

                return(response.Content.ReadAsStringAsync().Result);
            }
        }
示例#28
0
        public override string Handle(Influencer influencer, UserInfluencerAuth userInfluencerAuthKey)
        {
            var url = @"https://www.googleapis.com/customsearch/v1?key=AIzaSyBAUIgRfOlx8e4OcsZm0CojOTbLnwNyYRs&cx=010411868023207416729:pkel_dw1rf8&q=";

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Clear();

                var response = client.GetAsync(url + WebUtility.UrlEncode(userInfluencerAuthKey.User.FirstName + " " + userInfluencerAuthKey.User.LastName)).Result;

                return(response.Content.ReadAsStringAsync().Result);
            }
        }
示例#29
0
        public void Simulate()
        {
            if (Influencer.IsNotNull())
            {
                Influencer.Simulate();
            }

            abilityManager.Simulate();

            if (IsCasting == false)
            {
                SetState(AnimState.Idling);
            }
        }
示例#30
0
        public override string Handle(Influencer influencer, UserInfluencerAuth userInfluencerAuthKey)
        {
            var baseUrl     = @"https://graph.facebook.com/";
            var accessToken = "EAAH7RGc2T5QBAKnGzM2XJGOWLcN3o9v4hCN5WZBZA0DjTCrrZBgHR0BgNozl0A1Vz8WJJrFh2NUFiTdpbuBxS4IDJT7GsYFxEeQ1RGUxoNUmhBKULQqpPa11jfWZA6sLwIneCVQwEO54JEnQeEYaCa1d7z4ZCVXtc1GUyhu8TB9QZAr18jHt7DzLZBlZBlkDzFgkBerX1XALPgZDZD";
            var url         = $"{baseUrl}{influencer.Other2}/me?access_token={accessToken}";

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Clear();
                var response = client.GetAsync(url).Result;

                return(response.Content.ReadAsStringAsync().Result);
            }
        }