Esempio n. 1
0
        internal DeviceHelper()
        {
            try
            {
                // TODO(revive): Revive this once .NET Core 3.0 is released
//                var mc = new ManagementClass("Win32_ComputerSystem");
//                foreach (ManagementObject mo in mc.GetInstances())
//                {
//                    Manufacturer = mo["Manufacturer"].ToString();
//                    Model = mo["Model"].ToString();
//                    break;
//                }
            }
            catch (Exception ex)
            {
                AmplitudeService.s_logger(LogLevel.Warning, $"Failed to get device make/model: {ex.ToString()}");
            }

            try
            {
                // TODO(revive): Revive this once .NET Core 3.0 is released
//                var mc = new ManagementClass("Win32_OperatingSystem");
//                foreach (ManagementObject mo in mc.GetInstances())
//                {
//                    OSVersion = mo["Version"].ToString();
//                    break;
//                }
            }
            catch (Exception ex)
            {
                OSVersion = Environment.OSVersion.Version.ToString();
                AmplitudeService.s_logger(LogLevel.Warning, $"Failed to get OS Version from WMI, using Environment which may not be accurate: {ex.ToString()}");
            }

            string majorMinor = new Version(OSVersion).ToString(2);

            OSName = WindowsVersions.TryGet(majorMinor, "Windows");

            try
            {
                var memStatus = new NativeMethods.MEMORYSTATUSEX();
                if (NativeMethods.GlobalMemoryStatusEx(memStatus))
                {
                    // Round to nearest 0.5GB
                    RamMbs = (ulong)Math.Round((memStatus.ullTotalPhys >> 20) / 512.0) * 512;
                }
            }
            catch (Exception ex)
            {
                AmplitudeService.s_logger(LogLevel.Warning, $"Failed to get device RAM size: {ex}");
            }

            Is64BitDevice = Environment.Is64BitOperatingSystem;
        }
Esempio n. 2
0
        private void LoadPastEvents(Stream persistenceStore)
        {
            try
            {
                using (var reader = new StreamReader(persistenceStore))
                {
                    string persistedData = reader.ReadLine();
                    var    data          = JsonConvert.DeserializeObject <List <IAmplitudeEvent> >(persistedData, new JsonSerializerSettings()
                    {
                        TypeNameHandling = TypeNameHandling.Objects
                    });

                    eventQueue.InsertRange(0, data);
                    eventsReady.Release();
                }
            }
            catch (Exception e)
            {
                AmplitudeService.s_logger(LogLevel.Error, $"Failed to load persisted events: {e.ToString()}");
            }
        }
Esempio n. 3
0
 private void SaveEvents(Stream persistenceStore)
 {
     if (persistenceStore != null)
     {
         try
         {
             string persistedData = JsonConvert.SerializeObject(eventQueue, new JsonSerializerSettings()
             {
                 TypeNameHandling = TypeNameHandling.Objects
             });
             using (var writer = new StreamWriter(persistenceStore))
             {
                 writer.Write(persistedData);
             }
         }
         catch (Exception e)
         {
             AmplitudeService.s_logger(LogLevel.Error, $"Failed to persist events: {e.ToString()}");
         }
     }
 }