public CreateTaskArguments(Models.Computer computer, Models.ImageProfile imageProfile, string direction)
 {
     _computer = computer;
     _imageProfile = imageProfile;
     _direction = direction;
     _activeTaskArguments = new StringBuilder();
 }
Esempio n. 2
0
 public CreateTaskArguments(Models.Computer computer, Models.ImageProfile imageProfile, string direction)
 {
     _computer            = computer;
     _imageProfile        = imageProfile;
     _direction           = direction;
     _activeTaskArguments = new StringBuilder();
 }
Esempio n. 3
0
        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());
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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"));
        }
Esempio n. 7
0
        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);
                }
            }
        }
Esempio n. 8
0
        public static bool ToggleComputerBootMenu(Models.Computer computer, bool enable)
        {
            computer.CustomBootEnabled = Convert.ToInt16(enable);
            BLL.Computer.UpdateComputer(computer);

            if (enable)
            {
                CreateBootFiles(computer);
            }

            return(true);
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 10
0
 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);
     }
 }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
 public Unicast(Models.Computer computer, string direction, int userId)
 {
     _direction = direction;
     _computer  = computer;
     _userId    = userId;
 }
Esempio n. 15
0
 public Unicast(Models.Computer computer, string direction, int userId)
 {
     _direction = direction;
     _computer = computer;
     _userId = userId;
 }
Esempio n. 16
0
 public TaskBootMenu(Models.Computer computer, Models.ImageProfile imageProfile, string direction)
 {
     _computer     = computer;
     _direction    = direction;
     _imageProfile = imageProfile;
 }
Esempio n. 17
0
 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);
 }
Esempio n. 19
0
 public TaskBootMenu(Models.Computer computer, Models.ImageProfile imageProfile, string direction)
 {
     _computer = computer;
     _direction = direction;
     _imageProfile = imageProfile;
 }
Esempio n. 20
0
 public CleanTaskBootFiles(Models.Computer computer)
 {
     _computer = computer;
     _bootFile = Utility.MacToPxeMac(_computer.Mac);
 }
Esempio n. 21
0
        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);
        }