public CreateTaskArguments(Models.Computer computer, Models.ImageProfile imageProfile, string direction) { _computer = computer; _imageProfile = imageProfile; _direction = direction; _activeTaskArguments = new StringBuilder(); }
public static void DeleteBootFiles(Models.Computer computer) { if (BLL.ActiveImagingTask.IsComputerActive(computer.Id)) { return; //Files Will Be Processed When task is done } var pxeMac = Utility.MacToPxeMac(computer.Mac); List <Tuple <string, string> > list = new List <Tuple <string, string> > { Tuple.Create("bios", ""), Tuple.Create("bios", ".ipxe"), Tuple.Create("efi32", ""), Tuple.Create("efi32", ".ipxe"), Tuple.Create("efi64", ""), Tuple.Create("efi64", ".ipxe"), Tuple.Create("efi64", ".cfg") }; foreach (var tuple in list) { new FileOps().DeletePath(Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + tuple.Item1 + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + tuple.Item2); } foreach (var ext in new[] { "", ".ipxe", ".cfg" }) { new FileOps().DeletePath(Settings.TftpPath + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + ext); } }
public ActionResult Post(ComputerAddField field) { try { var authUser = Models.User.GetByUsernameAndPassword(field.AuthUsername, field.AuthPassword); if (authUser == null) { return(StatusCode(403)); } if (!authUser.IsMinimumAdmin()) { return(StatusCode(403)); } var computer = new Models.Computer(); computer.Name = field.Name; computer.Spec = field.Spec; computer.Insert(); } catch (SqlException ex) { return(BadRequest(new { Message = ex.Message })); } return(Ok()); }
public static string GetComputerNonProxyPath(Models.Computer computer, bool isActiveOrCustom) { var mode = Settings.PxeMode; var pxeComputerMac = Utility.MacToPxeMac(computer.Mac); string path; var fileName = isActiveOrCustom ? pxeComputerMac : "default"; if (mode.Contains("ipxe")) { path = Settings.TftpPath + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else if (mode.Contains("grub")) { if (isActiveOrCustom) { path = Settings.TftpPath + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeComputerMac + ".cfg"; } else { path = Settings.TftpPath + "grub" + Path.DirectorySeparatorChar + "grub.cfg"; } } else { path = Settings.TftpPath + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } return(path); }
public async Task <ActionResult> Create(ViewModels.Computer addComputer) { if (ModelState.IsValid) { var brand = await db.Brands.Where(x => x.IdBrand == addComputer.Brand).SingleOrDefaultAsync(); var processor = await db.Processors.Where(x => x.IdProcessor == addComputer.Processor).SingleOrDefaultAsync(); var computer = new Models.Computer() { SKU = addComputer.SKU, Title = addComputer.Title, Description = addComputer.Description, Brand = brand, Processor = processor, ProductionYear = addComputer.ProductionYear, ScreenSize = addComputer.ScreenSize, RAM = addComputer.RAM, Storage = addComputer.Storage, Stock = addComputer.Stock, Price = addComputer.Price }; db.Computers.Add(computer); var result = await db.SaveChangesAsync(); if (result > 0) { return(RedirectToAction("Index")); } } return(View("Error")); }
public static void CreateBootFiles(Models.Computer computer) { if (BLL.ActiveImagingTask.IsComputerActive(computer.Id)) { return; //Files Will Be Processed When task is done } var bootMenu = GetComputerBootMenu(computer.Id); if (bootMenu == null) { return; } var pxeMac = Utility.MacToPxeMac(computer.Mac); string path; if (Settings.ProxyDhcp == "Yes") { List <Tuple <string, string, string> > list = new List <Tuple <string, string, string> > { Tuple.Create("bios", "", bootMenu.BiosMenu), Tuple.Create("bios", ".ipxe", bootMenu.BiosMenu), Tuple.Create("efi32", "", bootMenu.Efi32Menu), Tuple.Create("efi32", ".ipxe", bootMenu.Efi32Menu), Tuple.Create("efi64", "", bootMenu.Efi64Menu), Tuple.Create("efi64", ".ipxe", bootMenu.Efi64Menu), Tuple.Create("efi64", ".cfg", bootMenu.Efi64Menu) }; foreach (var tuple in list) { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + tuple.Item1 + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + tuple.Item2; if (!string.IsNullOrEmpty(tuple.Item3)) { new FileOps().WritePath(path, tuple.Item3); } } } else { var mode = Settings.PxeMode; path = Settings.TftpPath + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac; if (mode.Contains("ipxe")) { path += ".ipxe"; } else if (mode.Contains("grub")) { path += ".cfg"; } if (!string.IsNullOrEmpty(bootMenu.BiosMenu)) { new FileOps().WritePath(path, bootMenu.BiosMenu); } } }
public static bool ToggleComputerBootMenu(Models.Computer computer, bool enable) { computer.CustomBootEnabled = Convert.ToInt16(enable); BLL.Computer.UpdateComputer(computer); if (enable) { CreateBootFiles(computer); } return(true); }
public static Models.ValidationResult UpdateComputer(Models.Computer computer) { using (var uow = new DAL.UnitOfWork()) { computer.Mac = Utility.FixMac(computer.Mac); var validationResult = ValidateComputer(computer, "update"); if (validationResult.IsValid) { uow.ComputerRepository.Update(computer, computer.Id); validationResult.IsValid = uow.Save(); } return(validationResult); } }
public static Models.ValidationResult DeleteComputer(Models.Computer computer) { using (var uow = new DAL.UnitOfWork()) { var validationResult = ValidateComputer(computer, "delete"); if (validationResult.IsValid) { BLL.GroupMembership.DeleteComputerMemberships(computer.Id); BLL.ComputerBootMenu.DeleteComputerBootMenus(computer.Id); BLL.ComputerLog.DeleteComputerLogs(computer.Id); uow.ComputerRepository.Delete(computer.Id); validationResult.IsValid = uow.Save(); } return(validationResult); } }
public static Models.ValidationResult AddComputer(Models.Computer computer) { using (var uow = new DAL.UnitOfWork()) { computer.Mac = Utility.FixMac(computer.Mac); var validationResult = ValidateComputer(computer, "new"); if (validationResult.IsValid) { uow.ComputerRepository.Insert(computer); validationResult.IsValid = uow.Save(); if (validationResult.IsValid) { validationResult.ObjectId = computer.Id; //BLL.Group.UpdateAllSmartGroupsMembers(); } } return(validationResult); } }
public static Models.DistributionPoint GetDistributionPoint(Models.Computer computer) { Models.DistributionPoint dp = null; if (computer.RoomId != -1) { var room = BLL.Room.GetRoom(computer.RoomId); if (room != null) { dp = DistributionPoint.GetDistributionPoint(room.DistributionPointId); } } else if (computer.BuildingId != -1) { var building = BLL.Building.GetBuilding(computer.BuildingId); if (building != null) { dp = DistributionPoint.GetDistributionPoint(building.DistributionPointId); } } else if (computer.SiteId != -1) { var site = BLL.Site.GetSite(computer.SiteId); if (site != null) { dp = DistributionPoint.GetDistributionPoint(site.DistributionPointId); } } if (dp == null) { dp = DistributionPoint.GetPrimaryDistributionPoint(); } return(dp); }
public static Models.ValidationResult ValidateComputer(Models.Computer computer, string type) { var validationResult = new Models.ValidationResult { IsValid = false }; if (type == "new" || type == "update") { if (string.IsNullOrEmpty(computer.Name) || computer.Name.Any(c => c == ' ')) { validationResult.Message = "Computer Name Is Not Valid"; return(validationResult); } if (string.IsNullOrEmpty(computer.Mac) || !computer.Mac.All(c => char.IsLetterOrDigit(c) || c == ':' || c == '-') && (computer.Mac.Length == 12 && !computer.Mac.All(char.IsLetterOrDigit))) { validationResult.Message = "Computer Mac Is Not Valid"; return(validationResult); } if (type == "new") { using (var uow = new DAL.UnitOfWork()) { if (uow.ComputerRepository.Exists(h => h.Name == computer.Name || h.Mac == computer.Mac)) { validationResult.Message = "This Computer Already Exists"; return(validationResult); } } } else { using (var uow = new DAL.UnitOfWork()) { var originalComputer = uow.ComputerRepository.GetById(computer.Id); if (originalComputer.Name != computer.Name) { if (uow.ComputerRepository.Exists(h => h.Name == computer.Name)) { validationResult.Message = "This Computer Already Exists"; return(validationResult); } } else if (originalComputer.Mac != computer.Mac) { if (uow.ComputerRepository.Exists(h => h.Mac == computer.Mac)) { validationResult.Message = "This Computer Already Exists"; return(validationResult); } } } } } if (type == "delete") { if (BLL.ActiveImagingTask.IsComputerActive(computer.Id)) { validationResult.Message = "A Computer Cannot Be Deleted While It Has An Active Task"; return(validationResult); } } validationResult.IsValid = true; return(validationResult); }
public Unicast(Models.Computer computer, string direction, int userId) { _direction = direction; _computer = computer; _userId = userId; }
public TaskBootMenu(Models.Computer computer, Models.ImageProfile imageProfile, string direction) { _computer = computer; _direction = direction; _imageProfile = imageProfile; }
public CleanTaskBootFiles(Models.Computer computer) { _computer = computer; _bootFile = Utility.MacToPxeMac(_computer.Mac); }
public static bool ToggleProxyReservation(Models.Computer computer, bool enable) { computer.ProxyReservation = Convert.ToInt16(enable); BLL.Computer.UpdateComputer(computer); return(true); }
public static string GetComputerProxyPath(Models.Computer computer, bool isActiveOrCustom, string proxyType) { var pxeComputerMac = Utility.MacToPxeMac(computer.Mac); string path = null; var biosFile = Settings.ProxyBiosFile; var efi32File = Settings.ProxyEfi32File; var efi64File = Settings.ProxyEfi64File; var fileName = isActiveOrCustom ? pxeComputerMac : "default"; switch (proxyType) { case "bios": if (biosFile.Contains("ipxe")) { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } break; case "efi32": if (efi32File.Contains("ipxe")) { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } break; case "efi64": if (efi64File.Contains("ipxe")) { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else if (efi64File.Contains("grub")) { if (isActiveOrCustom) { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeComputerMac + ".cfg"; } else { path = Settings.TftpPath + "grub" + Path.DirectorySeparatorChar + "grub.cfg"; } } else { path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } break; } return(path); }