Exemple #1
0
        public static Models.ValidationResult CheckApprovalAndChecksum(Models.Image image,int userId)
        {
            var validationResult = new Models.ValidationResult();
            if (image == null)
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Does Not Exist";
                return validationResult;
            }

            if (image.Enabled == 0)
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Is Not Enabled";
                return validationResult;
            }

            if (Settings.RequireImageApproval.ToLower() == "true")
            {
                var user = BLL.User.GetUser(userId);
                if (user.Membership != "Administrator") //administrators don't need image approval
                {
                    if (!Convert.ToBoolean(image.Approved))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "Image Has Not Been Approved";
                        return validationResult;
                    }
                }
            }

            validationResult.IsValid = true;
            return validationResult;
        }
        public static Models.ValidationResult ValidateDistributionPoint(Models.DistributionPoint distributionPoint, bool isNewDistributionPoint)
        {
            var validationResult = new Models.ValidationResult();



            if (Convert.ToBoolean(distributionPoint.IsPrimary))
            {
                if (!distributionPoint.PhysicalPath.Trim().EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    distributionPoint.PhysicalPath += Path.DirectorySeparatorChar;
                }
            }

            if (string.IsNullOrEmpty(distributionPoint.DisplayName) || distributionPoint.DisplayName.Contains(" "))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Distribution Point Name Is Not Valid";
                return(validationResult);
            }

            if (isNewDistributionPoint)
            {
                var primaryDp = GetPrimaryDistributionPoint();
                if (primaryDp != null && Convert.ToBoolean(distributionPoint.IsPrimary))
                {
                    validationResult.IsValid = false;
                    validationResult.Message = "There Can Only Be One Primary Distribution Point";
                    return(validationResult);
                }

                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.DistributionPointRepository.Exists(h => h.DisplayName == distributionPoint.DisplayName))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Distribution Point Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalDistributionPoint = uow.DistributionPointRepository.GetById(distributionPoint.Id);
                    if (originalDistributionPoint.DisplayName != distributionPoint.DisplayName)
                    {
                        if (uow.DistributionPointRepository.Exists(h => h.DisplayName == distributionPoint.DisplayName))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Distribution Point Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
        public Models.ValidationResult GlobalLogin(string userName, string password, string loginType)
        {
            var tmp = Helpers.Utility.CreatePasswordHash("password", "salt");

            var validationResult = new Models.ValidationResult
            {
                Message = "Login Was Not Successful",
                IsValid = false
            };

            //Check if user exists in Clone Deploy
            var user = BLL.User.GetUser(userName);
            if (user == null) return validationResult;

            if (BLL.UserLockout.AccountIsLocked(user.Id))
            {
                BLL.UserLockout.ProcessBadLogin(user.Id);
                validationResult.Message = "Account Is Locked";
                return validationResult;
            }

            //Check against AD
            if (!string.IsNullOrEmpty(Settings.AdLoginDomain))
            {
                try
                {
                    var context = new PrincipalContext(ContextType.Domain, Settings.AdLoginDomain,
                        userName, password);
                    var adUser = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userName);
                    if (adUser != null) validationResult.IsValid = true;
                }
                catch (Exception)
                {
                    //Fallback to local db in case ad auth isn't working
                    var hash = Helpers.Utility.CreatePasswordHash(password, user.Salt);
                    if (user.Password == hash) validationResult.IsValid = true;

                }
            }
            //Check against local DB
            else
            {
                var hash = Helpers.Utility.CreatePasswordHash(password, user.Salt);
                if (user.Password == hash) validationResult.IsValid = true;
            }
           
            if (validationResult.IsValid)
            {
                BLL.UserLockout.DeleteUserLockouts(user.Id);
                validationResult.Message = "Success";
                return validationResult;
            }
            else
            {
                BLL.UserLockout.ProcessBadLogin(user.Id);
                return validationResult;
            }
        }
Exemple #4
0
        public static Models.ValidationResult ValidateTemplate(Models.FileFolder fileFolder, bool isNewTemplate)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(fileFolder.Name))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Name Is Not Valid";
                return(validationResult);
            }

            if (fileFolder.Path.Trim().EndsWith("/") || fileFolder.Path.Trim().EndsWith(@"\"))
            {
                char[] toRemove = { '/', '\\' };
                string trimmed  = fileFolder.Path.TrimEnd(toRemove);
                fileFolder.Path = trimmed;
            }

            if (fileFolder.Path.Trim().StartsWith("/") || fileFolder.Path.Trim().StartsWith(@"\"))
            {
                char[] toRemove = { '/', '\\' };
                string trimmed  = fileFolder.Path.TrimStart(toRemove);
                fileFolder.Path = trimmed;
            }

            fileFolder.Path = Utility.WindowsToUnixFilePath(fileFolder.Path);

            if (isNewTemplate)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.FileFolderRepository.Exists(h => h.Name == fileFolder.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "File / Folder Name Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalTemplate = uow.FileFolderRepository.GetById(fileFolder.Id);
                    if (originalTemplate.Name != fileFolder.Name)
                    {
                        if (uow.FileFolderRepository.Exists(h => h.Name == fileFolder.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "File / Folder Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #5
0
        public static Models.ValidationResult ValidateTemplate(Models.FileFolder fileFolder, bool isNewTemplate)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(fileFolder.Name))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Name Is Not Valid";
                return validationResult;
            }

            if (fileFolder.Path.Trim().EndsWith("/") || fileFolder.Path.Trim().EndsWith(@"\"))
            {
                char[] toRemove = { '/', '\\' };
                string trimmed = fileFolder.Path.TrimEnd(toRemove);
                fileFolder.Path = trimmed;
            }

            if (fileFolder.Path.Trim().StartsWith("/") || fileFolder.Path.Trim().StartsWith(@"\"))
            {
                char[] toRemove = { '/', '\\' };
                string trimmed = fileFolder.Path.TrimStart(toRemove);
                fileFolder.Path = trimmed;
            }

            fileFolder.Path = Utility.WindowsToUnixFilePath(fileFolder.Path);

            if (isNewTemplate)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.FileFolderRepository.Exists(h => h.Name == fileFolder.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "File / Folder Name Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalTemplate = uow.FileFolderRepository.GetById(fileFolder.Id);
                    if (originalTemplate.Name != fileFolder.Name)
                    {
                        if (uow.FileFolderRepository.Exists(h => h.Name == fileFolder.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "File / Folder Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
        public static Models.ValidationResult ValidateDistributionPoint(Models.DistributionPoint distributionPoint, bool isNewDistributionPoint)
        {
            var validationResult = new Models.ValidationResult();

            

            if(Convert.ToBoolean(distributionPoint.IsPrimary))
                if (!distributionPoint.PhysicalPath.Trim().EndsWith(Path.DirectorySeparatorChar.ToString()))
                    distributionPoint.PhysicalPath += Path.DirectorySeparatorChar;

            if (string.IsNullOrEmpty(distributionPoint.DisplayName) || distributionPoint.DisplayName.Contains(" "))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Distribution Point Name Is Not Valid";
                return validationResult;
            }

            if (isNewDistributionPoint)
            {
                var primaryDp = GetPrimaryDistributionPoint();
                if (primaryDp != null && Convert.ToBoolean(distributionPoint.IsPrimary))
                {
                    validationResult.IsValid = false;
                    validationResult.Message = "There Can Only Be One Primary Distribution Point";
                    return validationResult;
                }

                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.DistributionPointRepository.Exists(h => h.DisplayName == distributionPoint.DisplayName))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Distribution Point Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalDistributionPoint = uow.DistributionPointRepository.GetById(distributionPoint.Id);
                    if (originalDistributionPoint.DisplayName != distributionPoint.DisplayName)
                    {
                        if (uow.DistributionPointRepository.Exists(h => h.DisplayName == distributionPoint.DisplayName))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Distribution Point Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
Exemple #7
0
        public static Models.ValidationResult DeleteImage(Models.Image image)
        {
            var result = new Models.ValidationResult()
            {
                IsValid = false
            };

            using (var uow = new DAL.UnitOfWork())
            {
                if (Convert.ToBoolean(image.Protected))
                {
                    result.Message = "This Image Is Protected And Cannot Be Deleted";
                    result.IsValid = false;
                    return(result);
                }

                uow.ImageRepository.Delete(image.Id);
                if (uow.Save())
                {
                    if (string.IsNullOrEmpty(image.Name))
                    {
                        return(result);
                    }
                    BLL.UserImageManagement.DeleteImage(image.Id);
                    BLL.ImageProfile.DeleteImage(image.Id);
                    try
                    {
                        if (Directory.Exists(Settings.PrimaryStoragePath + "images" + Path.DirectorySeparatorChar + image.Name))
                        {
                            Directory.Delete(Settings.PrimaryStoragePath + "images" + Path.DirectorySeparatorChar + image.Name, true);
                        }

                        result.IsValid = true;
                    }
                    catch (Exception ex)
                    {
                        Logger.Log(ex.Message);
                        result.Message = "Could Not Delete Image Folder";
                        result.IsValid = false;
                    }
                }
                else
                {
                    result.Message = "Could Not Delete Image";
                    result.IsValid = false;
                }
                return(result);
            }
        }
Exemple #8
0
        private ValidationResults CheckViews(XDocument customizationsXml)
        {
            ValidationResults results = new ValidationResults();
            var entitiesXml           = (from c in customizationsXml.Descendants("Entity") select c).Distinct();
            Dictionary <string, List <XElement> > viewsCollections = new Dictionary <string, List <XElement> >();

            foreach (var entityXml in entitiesXml)
            {
                if (entityXml.Element("EntityInfo") != null && entityXml.Element("EntityInfo").Element("entity") != null)
                {
                    if (entityXml.Element("EntityInfo").Element("entity").Element("EntitySetName") != null && !entityXml.Element("EntityInfo").Element("entity").Element("EntitySetName").Value.Contains("_") && entityXml.Descendants("savedquery") != null)
                    {
                        viewsCollections[entityXml.Descendants("EntitySetName").ElementAt(0).Value] = (from x in entityXml.Descendants("savedquery") select x).ToList <XElement>();
                    }
                }
            }

            foreach (var viewCollection in viewsCollections)
            {
                if (viewCollection.Value.Count > 0)
                {
                    StringBuilder           stringBuilder = new StringBuilder();
                    Models.ValidationResult result        = new Models.ValidationResult();
                    stringBuilder.Append("Only add these views to the solution:\n\n");
                    foreach (XElement viewElement in viewCollection.Value)
                    {
                        if (viewElement.Descendants("LocalizedName") != null)
                        {
                            stringBuilder.Append(viewElement.Descendants("LocalizedName").ElementAt(0).Attribute("description").Value + ",   \n");
                            result.IDs.Add(new Guid(viewElement.Element("savedqueryid").Value));
                        }
                    }

                    if (viewsCollections.Count > 0)
                    {
                        result.EntityLogicalName     = viewCollection.Key;
                        result.SolutionComponentType = SolutionComponentType.View;
                        result.Description           = stringBuilder.ToString();
                        result.Suggestions           = "Try to have only the needed views in the solution. Any custom views or a modified managed views are good to be in the solution but nothing else.";
                        result.Regarding             = viewCollection.Key + " " + "Entity Views";
                        results.AddResult(result);
                    }
                }
            }

            AllResults.AddResultSet(results);

            return(results);
        }
Exemple #9
0
        private ValidationResults CheckAttributes(XDocument customizationsXml)
        {
            ValidationResults results = new ValidationResults();
            var entitiesXml           = (from c in customizationsXml.Descendants("Entity") select c).Distinct();
            Dictionary <string, List <XElement> > attributesCollections = new Dictionary <string, List <XElement> >();

            foreach (var entityXml in entitiesXml)
            {
                if (entityXml.Element("EntityInfo") != null && entityXml.Element("EntityInfo").Element("entity") != null)
                {
                    if (entityXml.Element("EntityInfo").Element("entity").Element("EntitySetName") != null && !entityXml.Element("EntityInfo").Element("entity").Element("EntitySetName").Value.Contains("_") && entityXml.Descendants("attribute") != null)
                    {
                        attributesCollections[entityXml.Element("EntityInfo").Element("entity").Element("EntitySetName").Value] = (from x in entityXml.Descendants("attribute") select x).ToList <XElement>();
                    }
                }
            }

            foreach (var attCollection in attributesCollections)
            {
                if (attCollection.Value.Count > 0)
                {
                    StringBuilder           s      = new StringBuilder();
                    Models.ValidationResult result = new Models.ValidationResult();
                    s.Append("Only add these fields to the solution:\n\n");
                    foreach (XElement attElement in attCollection.Value)
                    {
                        if (attElement.Attribute("PhysicalName") != null && attElement.Descendants("displayname") != null)
                        {
                            s.Append($"{attElement.Descendants("displayname").ElementAt(0).Attribute("description").Value} ({ attElement.Attribute("PhysicalName").Value}),   \n");
                            result.LogicalNames.Add(attElement.Element("LogicalName").Value);
                        }
                    }
                    if (attributesCollections.Count > 0)
                    {
                        result.EntityLogicalName     = attCollection.Key;
                        result.SolutionComponentType = SolutionComponentType.Attribute;
                        result.Description           = s.ToString();
                        result.Suggestions           = "Try to have only the needed fields in the solution. Any custom field or a modified managed field are good to be in the solution but nothing else.";
                        result.Regarding             = attCollection.Key + " " + "Entity Fields";
                        results.AddResult(result);
                    }
                }
            }

            AllResults.AddResultSet(results);
            return(results);
        }
Exemple #10
0
        public static Models.ValidationResult DeleteImage(Models.Image image)
        {
            var result = new Models.ValidationResult(){IsValid = false};
            using (var uow = new DAL.UnitOfWork())
            {
                if (Convert.ToBoolean(image.Protected))
                {
                    result.Message = "This Image Is Protected And Cannot Be Deleted";
                    result.IsValid = false;
                    return result;
                }

                uow.ImageRepository.Delete(image.Id);
                if (uow.Save())
                {
                    if (string.IsNullOrEmpty(image.Name)) return result;
                    BLL.UserImageManagement.DeleteImage(image.Id);
                    BLL.ImageProfile.DeleteImage(image.Id);
                    try
                    {
                        if (Directory.Exists(Settings.PrimaryStoragePath + "images" + Path.DirectorySeparatorChar + image.Name))
                            Directory.Delete(Settings.PrimaryStoragePath + "images" + Path.DirectorySeparatorChar + image.Name, true);

                        result.IsValid = true;
                    }
                    catch (Exception ex)
                    {
                        Logger.Log(ex.Message);
                        result.Message = "Could Not Delete Image Folder";
                        result.IsValid = false;

                    }

                }
                else
                {
                    result.Message = "Could Not Delete Image";
                    result.IsValid = false;
                }
                return result;
                
            }

        }
Exemple #11
0
        public static Models.ValidationResult ValidateScript(Models.Script script, bool isNewScript)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(script.Name) || !script.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Script Name Is Not Valid";
                return(validationResult);
            }

            if (isNewScript)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.ScriptRepository.Exists(h => h.Name == script.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Script Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalScript = uow.ScriptRepository.GetById(script.Id);
                    if (originalScript.Name != script.Name)
                    {
                        if (uow.ScriptRepository.Exists(h => h.Name == script.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Script Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #12
0
        public static Models.ValidationResult ValidateRoom(Models.Room room, bool isNewRoom)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(room.Name) || !room.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Room Name Is Not Valid";
                return(validationResult);
            }

            if (isNewRoom)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.RoomRepository.Exists(h => h.Name == room.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Room Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalRoom = uow.RoomRepository.GetById(room.Id);
                    if (originalRoom.Name != room.Name)
                    {
                        if (uow.RoomRepository.Exists(h => h.Name == room.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Room Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #13
0
        public static  Models.ValidationResult ValidateBuilding(Models.Building building, bool isNewBuilding)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(building.Name) || building.Name.Contains(" "))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Building Name Is Not Valid";
                return validationResult;
            }

            if (isNewBuilding)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.BuildingRepository.Exists(h => h.Name == building.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Building Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalBuilding = uow.BuildingRepository.GetById(building.Id);
                    if (originalBuilding.Name != building.Name)
                    {
                        if (uow.BuildingRepository.Exists(h => h.Name == building.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Building Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
Exemple #14
0
        public static Models.ValidationResult ValidateEntry(Models.BootEntry bootEntry, bool isNewEntry)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(bootEntry.Name))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Boot Entry Name Is Not Valid";
                return validationResult;
            }

            if (isNewEntry)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.BootEntryRepository.Exists(h => h.Name == bootEntry.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Boot Entry Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalTemplate = uow.BootEntryRepository.GetById(bootEntry.Id);
                    if (originalTemplate.Name != bootEntry.Name)
                    {
                        if (uow.BootEntryRepository.Exists(h => h.Name == bootEntry.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Boot Template Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
Exemple #15
0
        public static Models.ValidationResult ValidateBuilding(Models.Building building, bool isNewBuilding)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(building.Name) || building.Name.Contains(" "))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Building Name Is Not Valid";
                return(validationResult);
            }

            if (isNewBuilding)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.BuildingRepository.Exists(h => h.Name == building.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Building Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalBuilding = uow.BuildingRepository.GetById(building.Id);
                    if (originalBuilding.Name != building.Name)
                    {
                        if (uow.BuildingRepository.Exists(h => h.Name == building.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Building Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #16
0
        public static Models.ValidationResult ValidateSite(Models.Site site, bool isNewSite)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(site.Name))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Site Name Is Not Valid";
                return(validationResult);
            }

            if (isNewSite)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.SiteRepository.Exists(h => h.Name == site.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Site Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalSite = uow.SiteRepository.GetById(site.Id);
                    if (originalSite.Name != site.Name)
                    {
                        if (uow.SiteRepository.Exists(h => h.Name == site.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Site Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #17
0
        public static Models.ValidationResult ValidateImage(Models.Image image, bool isNewImage)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(image.Name) || !image.Name.All(c => char.IsLetterOrDigit(c) || c == '_' || c == '-'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Name Is Not Valid";
                return(validationResult);
            }

            if (isNewImage)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.ImageRepository.Exists(h => h.Name == image.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Image Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalImage = uow.ImageRepository.GetById(image.Id);
                    if (originalImage.Name != image.Name)
                    {
                        if (uow.ImageRepository.Exists(h => h.Name == image.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Image Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #18
0
        public static Models.ValidationResult ValidateRoom(Models.Room room, bool isNewRoom)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(room.Name) || !room.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Room Name Is Not Valid";
                return validationResult;
            }

            if (isNewRoom)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.RoomRepository.Exists(h => h.Name == room.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Room Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalRoom = uow.RoomRepository.GetById(room.Id);
                    if (originalRoom.Name != room.Name)
                    {
                        if (uow.RoomRepository.Exists(h => h.Name == room.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Room Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
        public static Models.ValidationResult ValidateManifest(Models.MunkiManifestTemplate manifest, bool isNewManifest)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(manifest.Name) || manifest.Name.Contains(" "))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Manifest Name Is Not Valid";
                return(validationResult);
            }

            if (isNewManifest)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.MunkiManifestRepository.Exists(h => h.Name == manifest.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Manifest Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalManifest = uow.MunkiManifestRepository.GetById(manifest.Id);
                    if (originalManifest.Name != manifest.Name)
                    {
                        if (uow.MunkiManifestRepository.Exists(h => h.Name == manifest.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Manifest Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #20
0
        public static Models.ValidationResult ValidateSite(Models.Site site, bool isNewSite)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(site.Name))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Site Name Is Not Valid";
                return validationResult;
            }

            if (isNewSite)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.SiteRepository.Exists(h => h.Name == site.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Site Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalSite = uow.SiteRepository.GetById(site.Id);
                    if (originalSite.Name != site.Name)
                    {
                        if (uow.SiteRepository.Exists(h => h.Name == site.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Site Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
        public static Models.ValidationResult ValidatePartitionLayout(Models.PartitionLayout partitionLayout, bool isNewPartitionLayout)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(partitionLayout.Name) || partitionLayout.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Partition Layout Name Is Not Valid";
                return(validationResult);
            }

            if (isNewPartitionLayout)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.PartitionLayoutRepository.Exists(h => h.Name == partitionLayout.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Partition Layout Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalPartitionLayout = uow.PartitionLayoutRepository.GetById(partitionLayout.Id);
                    if (originalPartitionLayout.Name != partitionLayout.Name)
                    {
                        if (uow.PartitionLayoutRepository.Exists(h => h.Name == partitionLayout.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Partition Layout Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #22
0
        public static Models.ValidationResult ValidateTemplate(Models.BootTemplate bootTemplate, bool isNewTemplate)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(bootTemplate.Name) || bootTemplate.Name.Contains(" "))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Template Name Is Not Valid";
                return(validationResult);
            }

            if (isNewTemplate)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.BootTemplateRepository.Exists(h => h.Name == bootTemplate.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Boot Template Already Exists";
                        return(validationResult);
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalTemplate = uow.BootTemplateRepository.GetById(bootTemplate.Id);
                    if (originalTemplate.Name != bootTemplate.Name)
                    {
                        if (uow.BootTemplateRepository.Exists(h => h.Name == bootTemplate.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Boot Template Already Exists";
                            return(validationResult);
                        }
                    }
                }
            }

            return(validationResult);
        }
Exemple #23
0
        public static Models.ValidationResult ValidateScript(Models.Script script, bool isNewScript)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(script.Name) || !script.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Script Name Is Not Valid";
                return validationResult;
            }

            if (isNewScript)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.ScriptRepository.Exists(h => h.Name == script.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Script Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalScript = uow.ScriptRepository.GetById(script.Id);
                    if (originalScript.Name != script.Name)
                    {
                        if (uow.ScriptRepository.Exists(h => h.Name == script.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Script Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
Exemple #24
0
        public static Models.ValidationResult ValidateImageProfile(Models.ImageProfile imageProfile, bool isNewImageProfile)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(imageProfile.Name) || !imageProfile.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Profile Name Is Not Valid";
                return validationResult;
            }

            if (isNewImageProfile)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.ImageProfileRepository.Exists(h => h.Name == imageProfile.Name && h.ImageId == imageProfile.ImageId))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Image Profile Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalImageProfile = uow.ImageProfileRepository.GetById(imageProfile.Id);
                    if (originalImageProfile.Name != imageProfile.Name)
                    {
                        if (uow.ImageProfileRepository.Exists(h => h.Name == imageProfile.Name && h.ImageId == imageProfile.ImageId))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Image Profile Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
        public static Models.ValidationResult ValidateManifest(Models.MunkiManifestTemplate manifest, bool isNewManifest)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(manifest.Name) || manifest.Name.Contains(" "))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Manifest Name Is Not Valid";
                return validationResult;
            }

            if (isNewManifest)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.MunkiManifestRepository.Exists(h => h.Name == manifest.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Manifest Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalManifest = uow.MunkiManifestRepository.GetById(manifest.Id);
                    if (originalManifest.Name != manifest.Name)
                    {
                        if (uow.MunkiManifestRepository.Exists(h => h.Name == manifest.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Manifest Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
        public static Models.ValidationResult ValidatePartitionLayout(Models.PartitionLayout partitionLayout, bool isNewPartitionLayout)
        {
            var validationResult = new Models.ValidationResult();

            if (string.IsNullOrEmpty(partitionLayout.Name) || partitionLayout.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
            {
                validationResult.IsValid = false;
                validationResult.Message = "Partition Layout Name Is Not Valid";
                return validationResult;
            }

            if (isNewPartitionLayout)
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    if (uow.PartitionLayoutRepository.Exists(h => h.Name == partitionLayout.Name))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "This Partition Layout Already Exists";
                        return validationResult;
                    }
                }
            }
            else
            {
                using (var uow = new DAL.UnitOfWork())
                {
                    var originalPartitionLayout = uow.PartitionLayoutRepository.GetById(partitionLayout.Id);
                    if (originalPartitionLayout.Name != partitionLayout.Name)
                    {
                        if (uow.PartitionLayoutRepository.Exists(h => h.Name == partitionLayout.Name))
                        {
                            validationResult.IsValid = false;
                            validationResult.Message = "This Partition Layout Already Exists";
                            return validationResult;
                        }
                    }
                }
            }

            return validationResult;
        }
Exemple #27
0
        public static Models.ValidationResult CheckApprovalAndChecksum(Models.Image image, int userId)
        {
            var validationResult = new Models.ValidationResult();

            if (image == null)
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Does Not Exist";
                return(validationResult);
            }

            if (image.Enabled == 0)
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Is Not Enabled";
                return(validationResult);
            }

            if (Settings.RequireImageApproval.ToLower() == "true")
            {
                var user = BLL.User.GetUser(userId);
                if (user.Membership != "Administrator") //administrators don't need image approval
                {
                    if (!Convert.ToBoolean(image.Approved))
                    {
                        validationResult.IsValid = false;
                        validationResult.Message = "Image Has Not Been Approved";
                        return(validationResult);
                    }
                }
            }



            validationResult.IsValid = true;
            return(validationResult);
        }
Exemple #28
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);
        }
Exemple #29
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;
        }
Exemple #30
0
        public static Models.ValidationResult CheckApprovalAndChecksum(Models.Image image)
        {
            var validationResult = new Models.ValidationResult();
            if (image == null)
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Does Not Exist";
                return validationResult;
            }

            if (image.Enabled == 0)
            {
                validationResult.IsValid = false;
                validationResult.Message = "Image Is Not Enabled";
                return validationResult;
            }

            if (Settings.RequireImageApproval.ToLower() == "true")
            {
                if (!Convert.ToBoolean(image.Approved))
                {
                    validationResult.IsValid = false;
                    validationResult.Message = "Image Has Not Been Approved";
                    return validationResult;
                }
            }

          

            validationResult.IsValid = true;
            return validationResult;
        }