示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }
示例#3
0
        //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);
        }