//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); }
//CREA LOS PROGRAMAS QUE TIENN LOS USUARIOS INSTALADOS EN SUS MAQUINAS, SI YA NO LOS TIENE LOS MARCA COMO DESACTIVADOS public object SaveIntalledPrograms(InstalledModel o) { Response rp = new Response(); try { cp = tvh.getprincipal(Convert.ToString(o.token)); if (cp != null) { string empresa = cp.Claims.Where(c => c.Type == ClaimTypes.GroupSid).Select(c => c.Value).SingleOrDefault(); List <InstalledProgramsViewModel> livm = new List <InstalledProgramsViewModel>(); foreach (var i in o.InstalledProgramsViewModel) { InstalledProgramsViewModel ivm = new InstalledProgramsViewModel(); i.IdCompany = empresa.ToString(); Copier.CopyPropertiesTo(i, ivm); livm.Add(ivm); } ; if (livm.Count() > 0) { List <InstalledProgramsViewModel> installed = opc.GetSoftWare(empresa.ToString(), livm[0].Pc); foreach (var i in installed) { //paso 1, validar las que ya estan en base de datos, para agregar las que no InstalledProgramsViewModel ipvm = livm.Where(l => l.Name == i.Name && l.Vertion == i.Vertion).FirstOrDefault(); //si no esta en la lista que viene del monitor, es porque se desinstalo if (ipvm == null) { opc.UpdateSotfware(i); } else { livm.Remove(ipvm); } } if (livm.Count() > 0) { opc.AddSoftware(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) { rp = autil.ReturnMesagge(ref rp, (int)GenericErrors.GeneralError, ex.Message + " " + ex.InnerException, null, HttpStatusCode.InternalServerError); return(rp); } return(rp); }