public void UpdateHardware(InstalledHardwareViewModel o) { try { var collection = MongoHelper.database.GetCollection <InstalledHardwareViewModel>("Hardware"); var builder = Builders <InstalledHardwareViewModel> .Filter; var filter = builder.Eq("_id", o._id); var update = Builders <InstalledHardwareViewModel> .Update.Set("status", false).Set("uninstalldate", DateTime.Now); var result = collection.UpdateOne(filter, update); } catch (Exception ex) { throw ex; } }
private HardwareModel SendHardware() { List <InstalledHardwareViewModel> InstalledHardwareViewModel = new List <InstalledHardwareViewModel>(); InstalledHardwareViewModel ih = new InstalledHardwareViewModel(); //video card ManagementObjectSearcher myVideoObject = new ManagementObjectSearcher("select * from Win32_VideoController"); foreach (ManagementObject obj in myVideoObject.Get()) { ih = new InstalledHardwareViewModel(); ih.Hardware = obj["Name"].ToString(); ih.Type = HardwareType.VideoCard.ToString(); ih.Pc = Environment.MachineName; ih.User = Environment.UserName; InstalledHardwareViewModel.Add(ih); break; } //procesor ManagementObjectSearcher myProcessorObject = new ManagementObjectSearcher("select * from Win32_Processor"); foreach (ManagementObject obj in myProcessorObject.Get()) { ih = new InstalledHardwareViewModel(); ih.Hardware = obj["Name"].ToString(); ih.Type = HardwareType.Procesor.ToString(); ih.Pc = Environment.MachineName; ih.User = Environment.UserName; InstalledHardwareViewModel.Add(ih); break; } //SO ManagementObjectSearcher myOperativeSystemObject = new ManagementObjectSearcher("select * from Win32_OperatingSystem"); foreach (ManagementObject obj in myOperativeSystemObject.Get()) { ih = new InstalledHardwareViewModel(); ih.Hardware = obj["Caption"].ToString(); ih.Type = HardwareType.OperativeSystem.ToString(); ih.Pc = Environment.MachineName; ih.User = Environment.UserName; InstalledHardwareViewModel.Add(ih); break; } //sound card ManagementObjectSearcher myAudioObject = new ManagementObjectSearcher("select * from Win32_SoundDevice"); foreach (ManagementObject obj in myAudioObject.Get()) { ih = new InstalledHardwareViewModel(); ih.Hardware = obj["Name"].ToString(); ih.Type = HardwareType.SoundCard.ToString(); ih.Pc = Environment.MachineName; ih.User = Environment.UserName; InstalledHardwareViewModel.Add(ih); break; } //hard drive (just primary) DriveInfo[] allDrives = DriveInfo.GetDrives(); foreach (DriveInfo d in allDrives) { ih = new InstalledHardwareViewModel(); ih.Hardware = "Name: " + d.Name + " Size: " + SizeSuffix(d.TotalSize); ih.Type = HardwareType.HardDrive.ToString(); ih.Pc = Environment.MachineName; ih.User = Environment.UserName; InstalledHardwareViewModel.Add(ih); } //memory ObjectQuery wql = new ObjectQuery("SELECT * FROM Win32_OperatingSystem"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(wql); ManagementObjectCollection results = searcher.Get(); foreach (ManagementObject result in results) { ih = new InstalledHardwareViewModel(); ih.Hardware = SizeSuffix(Int64.Parse(result["TotalVisibleMemorySize"].ToString()) * 1024); ih.Type = HardwareType.TotalMemory.ToString(); ih.Pc = Environment.MachineName; ih.User = Environment.UserName; InstalledHardwareViewModel.Add(ih); break; } HardwareModel hm = new HardwareModel(); hm.token = token; hm.InstalledHardwareViewModel = InstalledHardwareViewModel; return(hm); }
//GUARDA EL HARDWARE QUE TIENEN LOS USUARIOS, REVISA SI HAY NUEVOS Y LOS QUE YA NO, LOS MARCA COMO DESINSTALADOS public object SaveHardware(HardwareModel model) { Response rp = new Response(); try { cp = tvh.getprincipal(Convert.ToString(model.token)); if (cp != null) { string empresa = cp.Claims.Where(c => c.Type == ClaimTypes.GroupSid).Select(c => c.Value).FirstOrDefault(); List <InstalledHardwareViewModel> livm = new List <InstalledHardwareViewModel>(); foreach (var i in model.InstalledHardwareViewModel) { InstalledHardwareViewModel ivm = new InstalledHardwareViewModel(); i.IdCompany = empresa.ToString(); Copier.CopyPropertiesTo(i, ivm); livm.Add(ivm); } ; if (livm.Count() > 0) { List <InstalledHardwareViewModel> installed = opc.GetHardware(empresa, livm[0].Pc); foreach (var i in installed) { //paso 1, validar las que ya estan en base de datos, para agregar las que no InstalledHardwareViewModel ipvm = livm.Where(l => l.Hardware == i.Hardware && l.Type == i.Type).SingleOrDefault(); //si no esta en la lista que viene del monitor, es porque se desinstalo if (ipvm == null) { opc.UpdateHardware(i); } else { //si si esta, entonces la quito de la lista que viene del monitor para quedarme solo con las que no estan en BD que son las nuevas livm.Remove(ipvm); } } //si qedo algo lo agrego if (livm.Count() > 0) { opc.AddHardware(livm); } } rp.response_code = GenericErrors.SaveOk.ToString(); } else { //token invalido rp = autil.ReturnMesagge(ref rp, (int)GenericErrors.InvalidToken, string.Empty, null, HttpStatusCode.OK); return(rp); } return(rp); } catch (Exception ex) { //error general rp = autil.ReturnMesagge(ref rp, (int)GenericErrors.GeneralError, ex.Message + " " + ex.InnerException, null, HttpStatusCode.InternalServerError); return(rp); } return(rp); }