private static UserSessionData GetUser(IConfiguration config)
        {
            _user          = new UserSessionData();
            _user.UserName = config.GetSection("InstagramConfig").GetSection("Username").Value;
            _user.Password = config.GetSection("InstagramConfig").GetSection("Password").Value;

            return(_user);
        }
Пример #2
0
        static public IInstaApi BuildApi(string username = null, string password = null)
        {
            var fakeUserData = UserSessionData.ForUsername(username ?? "FAKEUSER").WithPassword(password ?? "FAKEPASS");

            return(InstaApiBuilder.CreateBuilder()
                   .SetUser(fakeUserData)
                   .Build());
        }
Пример #3
0
 public InstaApi(UserSessionData user, IInstaLogger logger, AndroidDevice deviceInfo,
                 IHttpRequestProcessor httpRequestProcessor)
 {
     _user                 = user;
     _logger               = logger;
     _deviceInfo           = deviceInfo;
     _httpRequestProcessor = httpRequestProcessor;
 }
Пример #4
0
 private IInstaApi CreateInstaInstance(UserSessionData userSessionData)
 {
     return(InstaApiBuilder.CreateBuilder()
            .SetUser(userSessionData)
            .UseLogger(new DebugLogger(LogLevel.All))
            .SetRequestDelay(RequestDelay.FromSeconds(min: 0, max: 1))
            .Build());
 }
 public CommentProcessor(AndroidDevice deviceInfo, UserSessionData user,
                         IHttpRequestProcessor httpRequestProcessor, IInstaLogger logger)
 {
     _deviceInfo           = deviceInfo;
     _user                 = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger               = logger;
 }
Пример #6
0
        public void GetUserModuleByRefTest()
        {
            var moduleOk        = "MONITOR";
            var moduleBad       = "NOT_EXISTING_MODULE";
            var moduleMultiple1 = "MONITOR,CONSOLA";
            var moduleMultiple2 = "MONITOR,NOT_EXISTING_MODULE";
            var moduleMultiple3 = "NOT_EXISTING_MODULE,CONSOLA";

            WebSecurity.AuthenticatedUser = null;

            Module actual = WebSecurity.GetUserModuleByRef(moduleOk);

            Assert.IsNull(actual);

            var usd = new UserSessionData(GetUsuario(), new List <int> {
                1
            });

            usd.Modules.Add("MONITOR", new Module(new MovMenu()
            {
                Funcion = new Funcion()
                {
                    Ref = "MONITOR", Sistema = new Sistema()
                    {
                    }
                }
            }));
            usd.Modules.Add("CONSOLA", new Module(new MovMenu()
            {
                Funcion = new Funcion()
                {
                    Ref = "CONSOLA", Sistema = new Sistema()
                    {
                    }
                }
            }));

            WebSecurity.AuthenticatedUser = usd;

            actual = WebSecurity.GetUserModuleByRef(moduleBad);
            Assert.IsNull(actual);

            actual = WebSecurity.GetUserModuleByRef(moduleOk);
            Assert.IsNotNull(actual);
            Assert.AreEqual(actual.RefName, moduleOk);

            actual = WebSecurity.GetUserModuleByRef(moduleMultiple1);
            Assert.IsNotNull(actual);
            Assert.IsTrue(moduleMultiple1.Contains(actual.RefName));

            actual = WebSecurity.GetUserModuleByRef(moduleMultiple2);
            Assert.IsNotNull(actual);
            Assert.IsTrue(moduleMultiple2.Contains(actual.RefName));

            actual = WebSecurity.GetUserModuleByRef(moduleMultiple3);
            Assert.IsNotNull(actual);
            Assert.IsTrue(moduleMultiple3.Contains(actual.RefName));
        }
Пример #7
0
        private async void LoginButton_Click(object sender, EventArgs e)
        {
            Size = NormalSize;
            var userSession = new UserSessionData
            {
                UserName = txtUsername.Text,
                Password = txtPassword.Text
            };

            InstaApi = InstaApiBuilder.CreateBuilder()
                       .SetUser(userSession)
                       .UseLogger(new DebugLogger(LogLevel.Exceptions))
                       .SetRequestDelay(RequestDelay.FromSeconds(0, 1))
                       .Build();
            Text = $"{AppName} Connecting";
            try
            {
                if (File.Exists(StateFile))
                {
                    Debug.WriteLine("Loading state from file");
                    using (var fs = File.OpenRead(StateFile))
                    {
                        InstaApi.LoadStateDataFromStream(fs);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }

            if (!InstaApi.IsUserAuthenticated)
            {
                var logInResult = await InstaApi.LoginAsync();

                Debug.WriteLine(logInResult.Value);
                if (logInResult.Succeeded)
                {
                    Text = $"{AppName} Connected";
                    // Save session
                    SaveSession();
                }
                else
                {
                    // two factor is required
                    if (logInResult.Value == InstaLoginResult.TwoFactorRequired)
                    {
                        // open a box so user can send two factor code
                        Size = TwoFactorSize;
                    }
                }
            }
            else
            {
                Text = $"{AppName} Connected";
            }
        }
Пример #8
0
        public static void Login(Usuario usuario, IEnumerable <int> perfiles, IEnumerable <MovMenu> modules, IEnumerable <Asegurable> asegurables)
        {
            var user = new UserSessionData(usuario, perfiles.ToList());

            user.SetModules(modules);
            user.SetSecurables(asegurables);

            AuthenticatedUser = user;
        }
Пример #9
0
 public MediaProcessor(AndroidDevice deviceInfo, UserSessionData user,
                       IHttpRequestProcessor httpRequestProcessor, IInstaLogger logger, UserAuthValidate userAuthValidate)
 {
     _deviceInfo           = deviceInfo;
     _user                 = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger               = logger;
     _userAuthValidate     = userAuthValidate;
 }
Пример #10
0
        public InstaScraper(UserSessionData user, IInstaLogger logger,
                            IHttpRequestProcessor httpRequestProcessor)
        {
            _user   = user;
            _logger = logger;
            _httpRequestProcessor = httpRequestProcessor;

            InvalidateProcessors();
        }
        static void Main(string[] args)
        {
            user          = new UserSessionData();
            user.UserName = username;
            user.Password = password;
            Login();

            Console.Read();
        }
Пример #12
0
        public static IInstaApi GetDefaultInstaApiInstance(UserSessionData user)
        {
            var apiInstance = InstaApiBuilder.CreateBuilder()
                              .SetUser(user)
                              .SetRequestDelay(TimeSpan.FromSeconds(5))
                              .Build();

            return(apiInstance);
        }
Пример #13
0
        public static IInstaApi GetDefaultInstaApiInstance(UserSessionData user)
        {
            var apiInstance = new InstaApiBuilder()
                              .SetUser(user)
                              .UseLogger(new TestLogger())
                              .Build();

            return(apiInstance);
        }
        public List <SqlParameter> MapParamsForDelete(UserSessionData entity)
        {
            List <SqlParameter> sql_params = new List <SqlParameter>();

            sql_params.Add(new SqlParameter("@session_key", entity.SessionKey));
            sql_params.Add(this.GetOutParam());

            return(sql_params);
        }
        /// <summary>
        /// Insta Giriş Yapma
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Button_InstaGirisYap_Click(object sender, EventArgs e)
        {
            // Session Başlatma
            var userSession = new UserSessionData
            {
                UserName = textBox_InstaGiris_kadi.Text,
                Password = textBox_InstaGiris_Sifre.Text
            };

            string StateYol = StateFile;

            // dosya var mı kontrol et varsa eğer sil
            if (File.Exists(StateYol))
            {
                File.Delete(StateYol);
            }

            // Oturum oluşturma
            InstaApi = InstaApiBuilder.CreateBuilder()
                       .SetUser(userSession)
                       .SetRequestDelay(RequestDelay.FromSeconds(0, 1))
                       .SetSessionHandler(new FileSessionHandler()
            {
                FilePath = StateYol
            })
                       .Build();
            LoadSession();


            // Giriş kontrolü
            if (!InstaApi.IsUserAuthenticated)
            {
                // Başarısız

                // Giriş çıktısı
                var logInResult = await InstaApi.LoginAsync();

                // Başarılı mı?
                if (logInResult.Succeeded)
                {
                    // Bilgi Mesajı
                    BilgiMesaji("basarili", "Giriş yapıldı.", this.Text, true);
                    SaveSession();
                }
                else
                {
                    // Bilgi Mesajı
                    BilgiMesaji("basarili", "Giriş yapılamadı.", this.Text, true);
                }
            }
            else
            {
                // Bilgi Mesajı
                BilgiMesaji("basarili", "Giriş yapıldı.", this.Text, true);
                SaveSession();
            }
        }
Пример #16
0
        protected void LikeButton_Click1(object sender, EventArgs e)
        {
            string url = UrlText.Text;

            long   id = shortcodeToInstaID(url);
            string Id = id.ToString();

            LikeButton.Text = Id;

            DataTable dt = new DataTable();

            dt = db.Fill("select * from Userstbl ");


            for (int i = 0; i < dt.Rows.Count; i++)
            {
                var userSession = new UserSessionData
                {
                    UserName = dt.Rows[i]["Username"].ToString(),
                    Password = dt.Rows[i]["Password"].ToString()
                };


                var delay = RequestDelay.FromSeconds(2, 2);
                ınstagramApi = InstaApiBuilder.CreateBuilder()
                               .SetUser(userSession)
                               .UseLogger(new DebugLogger(LogLevel.Exceptions)) // use logger for requests and debug messages
                               .SetRequestDelay(delay)
                                                                                //.SetDevice(androidDevice);
                               .SetSessionHandler(new FileSessionHandler()
                {
                    FilePath = StateFile
                })
                               .Build();
                var r = Task.Run(() => ınstagramApi.LoginAsync());
                if (r.Result.Succeeded)
                {
                    LikeButton.Text = "Login";
                }


                //    var z = Task.Run(() => ınstagramApi.MediaProcessor.GetMediaIdFromUrlAsync(uri));

                //    string ID = z.Result.Value;

                //string id = "2372503629901614370";

                var x = Task.Run(() => ınstagramApi.MediaProcessor.LikeMediaAsync(Id));

                //if (x.Result.Succeeded)
                //{
                //    LikeButton.Text = "Liked Successfully";
                //}
            }
            //LoadSession();
        }
Пример #17
0
        public async Task <IInstaApi> Login()
        {
            var userName = ConfigurationManager.AppSettings["InstUserName"];
            var pass     = ConfigurationManager.AppSettings["InstPassword"];

            var userSession = new UserSessionData
            {
                UserName = userName,
                Password = pass
            };

            var instaApi = InstaApiBuilder.CreateBuilder()
                           .SetUser(userSession)
                           .UseLogger(new DebugLogger(LogLevel.Exceptions))
                           .Build();
            const string stateFile = "state.bin";

            try
            {
                if (File.Exists(stateFile))
                {
                    Console.WriteLine("Loading state from file");
                    using (var fs = File.OpenRead(stateFile))
                    {
                        await instaApi.LoadStateDataFromStreamAsync(fs);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            if (!instaApi.IsUserAuthenticated)
            {
                // login
                Console.WriteLine($"Logging in as {userSession.UserName}");
                var logInResult = await instaApi.LoginAsync();

                if (!logInResult.Succeeded)
                {
                    Console.WriteLine($"Unable to login: {logInResult.Info.Message}");
                    return(instaApi);
                }
            }

            var state = await instaApi.GetStateDataAsStreamAsync();

            using (var fileStream = File.Create(stateFile))
            {
                state.Seek(0, SeekOrigin.Begin);
                await state.CopyToAsync(fileStream);
            }

            return(instaApi);
        }
Пример #18
0
        public async void Start()
        {
            foreach (var u in mUsers)
            {
                var userSession = new UserSessionData
                {
                    UserName = u.Username,
                    Password = u.Password
                };
                var api = new InstaApiBuilder()
                          .SetUser(userSession)
                          .Build();
                var logInResult = await api.LoginAsync();

                if (!logInResult.Succeeded)
                {
                    if (logInResult.Info.ResponseType == ResponseType.CheckPointRequired)
                    {
                        Console.WriteLine($"Unable to login: CheckPoint Required");
                    }
                    else if (logInResult.Info.ResponseType == ResponseType.Unknown)
                    {
                        Console.WriteLine($"Unable to login: {logInResult.Info.Message}");
                    }
                    else if (logInResult.Info.ResponseType == ResponseType.RequestsLimit)
                    {
                        Console.WriteLine($"Unable to login: Rate Limit");
                        Environment.Exit(-10);
                    }
                }
                else
                {
                    try
                    {
                        var user = await api.GetCurrentUserAsync();

                        var state = await api.FollowUserAsync(mTarget);

                        if (state.Succeeded == true)
                        {
                            Console.WriteLine($"{user.Value.UserName} followed!");
                        }
                        else
                        {
                            Console.WriteLine("Failed To Follow :(");
                        }
                        await Task.Delay(mDelay);
                    }
                    catch (Exception er)
                    {
                    }
                }
                await Task.Delay(mDelay);
            }
            Environment.Exit(0);
        }
 //private readonly UserAuthValidate _userAuthValidate;
 public TransitoProcessor(UserSessionData user,
                          IHttpRequestProcessor httpRequestProcessor /*,IGobiernoLogger logger,*/
                          /*UserAuthValidate userAuthValidate*/, GobiernoApi gobiernoApi, HttpHelper httpHelper)
 {
     _user = user;
     _httpRequestProcessor = httpRequestProcessor;
     //_logger = logger;
     _gobiernoApi = gobiernoApi;
     _httpHelper  = httpHelper;
 }
Пример #20
0
 public UserProcessor(AndroidDevice deviceInfo, UserSessionData user, IHttpRequestProcessor httpRequestProcessor,
                      IInstaLogger logger, UserAuthValidate userAuthValidate, InstaApi instaApi)
 {
     _deviceInfo           = deviceInfo;
     _user                 = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger               = logger;
     _userAuthValidate     = userAuthValidate;
     _instaApi             = instaApi;
 }
Пример #21
0
 public MainWindow()
 {
     InitializeComponent();
     user = new UserSessionData();
     //#region hidden
     //txtUsername.Text = "NoonEasy";
     //txtPassword.Password = "******";
     //#endregion
     AppDomain.CurrentDomain.SetData("DataDirectory", Directory.GetCurrentDirectory());
 }
Пример #22
0
 public UserProcessor(UserSessionData user,
                      IHttpRequestProcessor httpRequestProcessor, IPinLogger logger,
                      UserAuthValidate userAuthValidate, PinApi pinapi, HttpHelper httpHelper)
 {
     _user = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger           = logger;
     _userAuthValidate = userAuthValidate;
     _httpHelper       = httpHelper;
 }
Пример #23
0
        /// <summary>
        ///     Loads the state data from stream.
        /// </summary>
        /// <param name="stream">The stream.</param>
        public void LoadStateDataFromStream(Stream stream)
        {
            var data = SerializationHelper.DeserializeFromStream <StateData>(stream);

            _deviceInfo = data.DeviceInfo;
            _user       = data.UserSession;
            _httpRequestProcessor.HttpHandler.CookieContainer = data.Cookies;
            IsUserAuthenticated = data.IsAuthenticated;
            InvalidateProcessors();
        }
Пример #24
0
        public async Task <ActionResult <UserSessionData> > GetUserSessionDataAsync()
        {
            var sessionData = new UserSessionData
            {
                ActiveSidebarItem = await _cacheService.GetActiveSidebarItemAsync(User.GetUserId(), User.GetWorkspaceId()),
                UserStatus        = await _userQueryService.GetUserStatus(User.GetUserId(), User.GetWorkspaceId())
            };

            return(Ok(sessionData));
        }
Пример #25
0
        public async void rememberLogin()
        {
            try
            {
                if (File.Exists(startupPath2 + "//user.txt") == true && File.Exists(startupPath2 + "//pass.txt") == true)
                {
                    loginStatus.Text = "Logging...";
                    var userSession = new UserSessionData
                    {
                        UserName = File.ReadAllText(startupPath2 + "//user.txt"),
                        Password = File.ReadAllText(startupPath2 + "//pass.txt"),
                    };
                    InstaApi = InstaApiBuilder.CreateBuilder()
                               .SetUser(userSession)
                               .UseLogger(new DebugLogger(LogLevel.All))
                               .Build();

                    var loginResult = await InstaApi.LoginAsync();

                    if (loginResult.Succeeded == true)
                    {
                        loginStatus.ForeColor = Color.DarkGreen;
                        btnLogout.Enabled     = true;
                        loginStatus.Text      = "Succeess";
                    }
                    else if (loginResult.Value.ToString() == "ChallengeRequired")
                    {
                        MessageBox.Show("ChallengeRequired please try to login again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        File.Delete(startupPath2 + "//user.txt");
                        File.Delete(startupPath2 + "//pass.txt");
                        btnLogout.Enabled = false;
                        loginStatus.Text  = "Not Login";
                    }
                    else if (loginResult.Value.ToString() == "Invalid User")
                    {
                        File.Delete(startupPath2 + "//user.txt");
                        File.Delete(startupPath2 + "//pass.txt");
                        MessageBox.Show("Invalid User please try to login again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        btnLogout.Enabled = false;
                        loginStatus.Text  = "Not Login";
                    }
                }

                else
                {
                    loginStatus.Text  = "Not Login";
                    btnLogout.Enabled = false;
                }
            }
            catch
            {
                loginStatus.ForeColor = Color.Red;
                loginStatus.Text      = "Connection Faild";
            }
        }
Пример #26
0
        //登录账号
        public static async System.Threading.Tasks.Task InsLoginAsync()
        {
            #region 登录Ins
            Console.WriteLine("登录Ins...");
            var userSession = new UserSessionData
            {
                UserName = "******",
                Password = "******"
            };

            var delay = RequestDelay.FromSeconds(2, 2);
            InstaApi = InstaApiBuilder.CreateBuilder()
                       .SetUser(userSession)
                       .UseLogger(new DebugLogger(LogLevel.All))
                       .SetRequestDelay(delay)
                       .Build();
            const string stateFile = "state.bin";
            try
            {
                if (System.IO.File.Exists(stateFile))
                {
                    Console.WriteLine("从文件加载登录.");
                    using (var fs = System.IO.File.OpenRead(stateFile))
                    {
                        InstaApi.LoadStateDataFromStream(fs);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            if (!InstaApi.IsUserAuthenticated)
            {
                // login
                Console.WriteLine($"Logging in as {userSession.UserName}");
                delay.Disable();
                var logInResult = await InstaApi.LoginAsync();

                delay.Enable();
                if (!logInResult.Succeeded)
                {
                    Console.WriteLine($"Unable to login: {logInResult.Info.Message}");
                }
            }
            var state = InstaApi.GetStateDataAsStream();
            using (var fileStream = System.IO.File.Create(stateFile))
            {
                state.Seek(0, SeekOrigin.Begin);
                state.CopyTo(fileStream);
            }
            Console.WriteLine("已登录");
            #endregion
        }
Пример #27
0
        public static async Task <bool> LoadAndLogin()
        {
            if (!File.Exists(SessionPath))
            {
                return(false);
            }
            try
            {
                var userSession = new UserSessionData
                {
                    UserName = "******",
                    Password = "******"
                };
                if (Helper.Settings != null && Helper.Settings.UseProxy && !string.IsNullOrEmpty(Helper.Settings.ProxyIP) && !string.IsNullOrEmpty(Helper.Settings.ProxyPort))
                {
                    var proxy = new WebProxy()
                    {
                        Address               = new Uri($"http://{Helper.Settings.ProxyIP}:{Helper.Settings.ProxyPort}"),
                        BypassProxyOnLocal    = false,
                        UseDefaultCredentials = false,
                    };
                    var httpClientHandler = new HttpClientHandler()
                    {
                        Proxy = proxy,
                    };
                    Helper.InstaApi = InstaApiBuilder.CreateBuilder()
                                      .SetUser(userSession)
                                      .UseLogger(new DebugLogger(LogLevel.Exceptions))
                                      .UseHttpClientHandler(httpClientHandler)
                                      .Build();
                }
                else
                {
                    Helper.InstaApi = InstaApiBuilder.CreateBuilder()
                                      .SetUser(userSession)
                                      .UseLogger(new DebugLogger(LogLevel.Exceptions))
                                      .Build();
                }
                var text = LoadSession();
                Helper.InstaApi.LoadStateDataFromString(text);
                if (!Helper.InstaApi.IsUserAuthenticated)
                {
                    await Helper.InstaApi.LoginAsync();
                }

                $"Us: {Helper.InstaApi.GetLoggedUser().UserName}".Output();
                return(true);
            }
            catch (Exception ex)
            {
                ex.PrintException("LoadAndLogin");
                Helper.InstaApi = null;
            }
            return(false);
        }
Пример #28
0
 public LoginPage(ref UserSessionData user, ref IInstaApi instaApi, Action methdod, Action cancelBlureAction, Action closeLoadung, Action <IInstaApi> setInstaApi, Action <UserSessionData> setUSerUserSession)
 {
     InitializeComponent();
     _userSession    = user;
     _instaApi       = instaApi;
     _blureAction    = methdod;
     _cancelBlure    = cancelBlureAction;
     _close          = closeLoadung;
     _setInstaApi    = setInstaApi;
     _setUserSession = setUSerUserSession;
 }
Пример #29
0
        public static async Task Worker(string login, string password, string mail, string proxy, string name)
        {
            HttpClientHandler handler = new HttpClientHandler
            {
                Proxy    = new WebProxy(proxy),
                UseProxy = true
            };

            var userSession = new UserSessionData
            {
                UserName = SessionLog,
                Password = SessionPwd
            };

            HttpClient cl = new HttpClient(handler);


            cl.DefaultRequestHeaders.Add("User-Agent",
                                         "Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");

            IInstaApi instaApi = InstaApiBuilder.CreateBuilder()
                                 .SetUser(userSession)
                                 .UseHttpClientHandler(handler)
                                 .UseHttpClient(cl)
                                 .Build();


            try
            {
                var nd = await instaApi.CreateNewAccount(login, password, mail,
                                                         name);


                switch (nd.Info.Message)
                {
                case "feedback_required":
                    Console.WriteLine("Ban account!");
                    break;

                case "No errors detected":
                    CreationResponse ni1 = nd.Value;
                    Console.WriteLine("Created: " + ni1.AccountCreated);
                    break;

                default:
                    Console.WriteLine(nd.Info.Message);
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #30
0
        public void AuthenticatedUserTest()
        {
            var expected = new UserSessionData(GetUsuario(), new List <int> {
                1
            });
            UserSessionData actual;

            WebSecurity.AuthenticatedUser = expected;
            actual = WebSecurity.AuthenticatedUser;
            Assert.AreEqual(expected, actual);
        }
Пример #31
0
 /// <summary>
 /// Uploads the Users Averaged Session Data to the Live Site.
 /// 
 /// Calls: grucox.aspx
 /// Uses: action=uploadaverage
 /// Returns: (Plain Text String)
 ///
 ///     OK 
 ///     FAILED|Reason. (Remote Host not available, Missing required data parameters etc..)
 ///
 /// Injects into GrucoxUserSessionData (Averaged) Table.
 /// 
 /// </summary>
 /// <param name="userSessionData"></param>
 /// <returns></returns>
 public string UploadSessionDataAveraged(UserSessionData userSessionData)
 {
     return UploadSessionData(userSessionData);
 }
Пример #32
0
 private static UserSessionData ZeroSession(UserSessionData s)
 {
     s.session_id = UUID.Zero;
     s.agent_id = UUID.Zero;
     s.region_id = UUID.Zero;
     s.last_updated = Util.UnixTimeSinceEpoch();
     s.remote_ip = "";
     s.name_f = "";
     s.name_l = "";
     s.avg_agents_in_view = 0;
     s.min_agents_in_view = 0;
     s.max_agents_in_view = 0;
     s.mode_agents_in_view = 0;
     s.avg_fps = 0;
     s.min_fps = 0;
     s.max_fps = 0;
     s.mode_fps = 0;
     s.a_language = "";
     s.mem_use = 0;
     s.meters_traveled = 0;
     s.avg_ping = 0;
     s.min_ping = 0;
     s.max_ping = 0;
     s.mode_ping = 0;
     s.regions_visited = 0;
     s.run_time = 0;
     s.avg_sim_fps = 0;
     s.min_sim_fps = 0;
     s.max_sim_fps = 0;
     s.mode_sim_fps = 0;
     s.start_time = 0;
     s.client_version = "";
     s.s_cpu = "";
     s.s_gpu = "";
     s.s_os = "";
     s.s_ram = 0;
     s.d_object_kb = 0;
     s.d_texture_kb = 0;
     s.d_world_kb = 0;
     s.n_in_kb = 0;
     s.n_in_pk = 0;
     s.n_out_kb = 0;
     s.n_out_pk = 0;
     s.f_dropped = 0;
     s.f_failed_resends = 0;
     s.f_invalid = 0;
     s.f_off_circuit = 0;
     s.f_resent = 0;
     s.f_send_packet = 0;
     s._ping = new List<float>();
     s._fps = new List<float>();
     s._sim_fps = new List<float>();
     s._agents_in_view = new List<int>();
     return s;
 }
Пример #33
0
        public static void UpdateMultiItems(ref UserSessionData s, int agents_in_view, float ping, float sim_fps, float fps)
        {
            // don't insert zero values here or it'll skew the statistics.
            if (agents_in_view == 0 && fps == 0 && sim_fps == 0 && ping == 0)
                return;
            s._agents_in_view.Add(agents_in_view);
            s._fps.Add(fps);
            s._sim_fps.Add(sim_fps);
            s._ping.Add(ping);

            int[] __agents_in_view = s._agents_in_view.ToArray();

            s.avg_agents_in_view = ArrayAvg_i(__agents_in_view);
            s.min_agents_in_view = ArrayMin_i(__agents_in_view);
            s.max_agents_in_view = ArrayMax_i(__agents_in_view);
            s.mode_agents_in_view = ArrayMode_i(__agents_in_view);

            float[] __fps = s._fps.ToArray();
            s.avg_fps = ArrayAvg_f(__fps);
            s.min_fps = ArrayMin_f(__fps);
            s.max_fps = ArrayMax_f(__fps);
            s.mode_fps = ArrayMode_f(__fps);

            float[] __sim_fps = s._sim_fps.ToArray();
            s.avg_sim_fps = ArrayAvg_f(__sim_fps);
            s.min_sim_fps = ArrayMin_f(__sim_fps);
            s.max_sim_fps = ArrayMax_f(__sim_fps);
            s.mode_sim_fps = ArrayMode_f(__sim_fps);

            float[] __ping = s._ping.ToArray();
            s.avg_ping = ArrayAvg_f(__ping);
            s.min_ping = ArrayMin_f(__ping);
            s.max_ping = ArrayMax_f(__ping);
            s.mode_ping = ArrayMode_f(__ping);

        }
Пример #34
0
        /// <summary>
        /// Uploads the Users Instance Session Data to the Live Site.
        /// 
        /// i.e. Every 10 seconds the Users current readings.
        ///  
        /// Calls: grucox.aspx
        /// Uses: action=uploadinstance
        /// Returns: (Plain Text String)
        ///
        ///     OK
        ///     FAILED|Reason. (Remote Host not available, Missing required data parameters etc..)
        /// 
        /// Injects into GrucoxUserSessionDataInstance (Instance) Table. 
        /// 
        /// </summary>
        /// <param name="userSessionData"></param>
        /// <returns></returns>
        public string UploadSessionDataInstance(UserSessionData userSessionData)
        {
            string responseText = "";
            try
            {
                Uri uri = new Uri(
                    apiURL + "/grucox.aspx" +
                    "?apikey=" + guid.ToString() + "&pass=1234&action=uploadinstance" +
                    "&client=grucox" +
                    "&actiondate=" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") +
                    "&DeviceUID=" + userSessionData.DeviceUID +
                    "&LiveUserID=" + userSessionData.LiveUserID +
                    "&DeviceUserID=" + userSessionData.DeviceUserID +
                    "&DeviceTableName=" + userSessionData.DeviceTableName +
                    "&DeviceIndexId=" + userSessionData.DeviceIndexId +
                    "&CustomProgram=" + userSessionData.CustomProgram +
                    "&BasicProgram=" + userSessionData.BasicProgram +
                    "&SessionDate=" + userSessionData.SessionDate.ToString("yyyy-MM-dd hh:mm:ss tt") +
                    "&SessionDuration=" + userSessionData.SessionDuration +
                    "&LeftMaxConcP=" + userSessionData.LeftMaxConcP +
                    "&LeftMaxEcceP=" + userSessionData.LeftMaxEcceP +
                    "&RightMaxConcP=" + userSessionData.RightMaxConcP +
                    "&RightMaxEcceP=" + userSessionData.RightMaxEcceP +
                    "&LeftAvgConcP=" + userSessionData.LeftAvgConcP +
                    "&LeftAvgEcceP=" + userSessionData.LeftAvgEcceP +
                    "&RightAvgConcP=" + userSessionData.RightAvgConcP +
                    "&RightAvgEcceP=" + userSessionData.RightAvgEcceP +
                    "&LeftStrengthIndex=" + userSessionData.LeftStrengthIndex +
                    "&LeftEnduranceIndex=" + userSessionData.LeftEnduranceIndex +
                    "&RightStrengthIndex=" + userSessionData.RightStrengthIndex +
                    "&RightEnduranceIndex=" + userSessionData.RightEnduranceIndex +
                    "&DistConc=" + userSessionData.DistConc +
                    "&DistEcce=" + userSessionData.DistEcce +
                    "&EnergyBurned=" + userSessionData.EnergyBurned
                    );

                // Insert into the live database using the HTTPRequest.
                request = (HttpWebRequest)WebRequest.Create(uri);

                // Set some reasonable limits on resources used by this request
                //request.MaximumAutomaticRedirections = 4;
                //request.MaximumResponseHeadersLength = 4;

                // Set credentials to use for this request.
                request.Credentials = CredentialCache.DefaultCredentials;
                response = (HttpWebResponse)request.GetResponse();

                //Console.WriteLine ("Content length is {0}", response.ContentLength);
                //Console.WriteLine ("Content type is {0}", response.ContentType);

                // Get the stream associated with the response.
                receiveStream = response.GetResponseStream();

                // Pipes the stream to a higher level stream reader with the required encoding format. 
                readStream = new StreamReader(receiveStream, Encoding.UTF8);

                //responseText = "NO RESPONSE";
                Console.WriteLine(responseText = readStream.ReadToEnd());

                if (response != null)
                    response.Close();
                if (readStream != null)
                    readStream.Close();
                if (receiveStream != null)
                    receiveStream.Dispose();
            }
            catch (Exception e)
            {
                responseText = "FAILED|" + e.Message;
                if (response != null)
                    response.Close();
                if (readStream != null)
                    readStream.Close();
                if (receiveStream != null)
                    receiveStream.Dispose();
            }
            return responseText; // Marker used to keep track of the last uplaoded Index.
        }
Пример #35
0
 /// <summary>
 /// This method can be used at all times to upload User Session Data.
 /// All items in the User Session Data Items in the Queue are processed as and when a live connection is available.
 /// 
 /// Note: This list is only kept in memory, a power surge will lose this list.
 /// Consideration/TODO: Use and XML list instead to avoid the above situation.
 /// 
 /// </summary>
 /// <param name="userSessionData"></param>
 public void EnqueueAveragedUserSessionForUpload(UserSessionData userSessionData)
 {
     uploadAveragedQueue.Enqueue(userSessionData);
 }
Пример #36
0
 /// <summary>
 /// This method can be used at all times to upload User Session Data.
 /// All items in the User Session Data Items in the Queue are processed as and when a live connection is available.
 /// 
 /// i.e. Every 10 seconds the Users current readings.
 /// 
 /// Note: This list is only kept in memory, a power surge will lose this list.
 /// Consideration/TODO: Use and XML list instead to avoid the above situation.
 /// 
 /// </summary>
 /// <param name="userSessionData"></param>
 public void EnqueueInstanceUserSessionDataForUpload(UserSessionData userSessionData)
 {
     uploadInstanceQueue.Enqueue(userSessionData);
 }