Example #1
0
        //MenuItem Object Scope Validation check the entire object for validity...
        private byte MenuItemIsValid(NestedMenuItem item, out string errorMessage)
        {   //validate key
            errorMessage = "";
            if (string.IsNullOrEmpty(item.MenuItemID))
            {
                errorMessage = "ID Is Required.";
                return(1);
            }
            MenuItem     menuItem    = MenuItemList.FirstOrDefault(q => q.AutoID == item.AutoID);
            EntityStates entityState = GetMenuItemState(menuItem);

            if (entityState == EntityStates.Added && MenuItemExists(item.MenuItemID))
            {
                errorMessage = "Item All Ready Exists.";
                return(1);
            }
            //check cached list for duplicates...
            int count = MenuItemList.Count(q => q.MenuItemID == item.MenuItemID);

            if (count > 1)
            {
                errorMessage = "Item All Ready Exists.";
                return(1);
            }
            //validate Description
            if (string.IsNullOrEmpty(item.Name))
            {
                errorMessage = "Name Is Required.";
                return(1);
            }
            //a value of 2 is pending changes...
            //On Commit we will give it a value of 0...
            return(2);
        }
Example #2
0
        private bool Delete(NestedMenuItem item)
        {//deletes are done indenpendently of the repository as a delete will not commit
            //dirty records it will simply just delete the record...
            MenuItem menuItem = MenuItemList.FirstOrDefault(q => q.AutoID == item.AutoID);

            _serviceAgent.DeleteFromMenuItemRepository(menuItem);
            //remove it from the cache repository list
            MenuItemList.Remove(menuItem);
            return(true);
        }
Example #3
0
        public void SaveCommand()
        {
            MenuItem menuItem = MenuItemList.FirstOrDefault(q => q.AutoID == SelectedMenuItem.AutoID);

            if (GetMenuItemState(menuItem) != EntityStates.Detached)
            {
                if (Update(SelectedMenuItem, "", ""))
                {
                    Commit();
                }
                else//if and where we have a hole in our allowcommit logic...
                {
                    NotifyMessage("Save Failed Check Your Work And Try Again...");
                }
            }
        }
Example #4
0
        //udpate merely updates the repository a commit is required
        //to commit it to the db...
        private bool Update(NestedMenuItem item, string propertyName, object propertyValue)
        {//get the menuItem from the Repository List...
            MenuItem menuItem = MenuItemList.FirstOrDefault(q => q.AutoID == item.AutoID);

            //Set the edited field when present...
            if (!string.IsNullOrEmpty(propertyName))
            {
                menuItem.SetPropertyValue(propertyName, propertyValue);
            }
            //update the repository with the field change...
            _serviceAgent.UpdateMenuItemRepository(menuItem);
            Dirty = true;
            if (CommitIsAllowed())
            {
                AllowCommit = true;
            }
            else
            {
                AllowCommit = false;
            }
            return(AllowCommit);
        }
Example #5
0
        //Object.Property Scope Validation...
        private bool MenuItemIsValid(NestedMenuItem item, _menuItemValidationProperties validationProperties, out string errorMessage)
        {
            errorMessage = "";
            switch (validationProperties)
            {
            case _menuItemValidationProperties.MenuItemID:
                //validate key
                if (string.IsNullOrEmpty(item.MenuItemID))
                {
                    errorMessage = "ID Is Required.";
                    return(false);
                }
                MenuItem     menuItem    = MenuItemList.FirstOrDefault(q => q.AutoID == item.AutoID);
                EntityStates entityState = GetMenuItemState(menuItem);
                if (entityState == EntityStates.Added && MenuItemExists(item.MenuItemID))
                {
                    errorMessage = "Item All Ready Exists...";
                    return(false);
                }
                //check cached list for duplicates...
                int count = MenuItemList.Count(q => q.MenuItemID == item.MenuItemID);
                if (count > 1)
                {
                    errorMessage = "Item All Ready Exists...";
                    return(false);
                }
                break;

            case _menuItemValidationProperties.Name:
                //validate Description
                if (string.IsNullOrEmpty(item.Name))
                {
                    errorMessage = "Description Is Required.";
                    return(false);
                }
                break;
            }
            return(true);
        }
Example #6
0
 private void ResetTreeTempFields(NestedMenuItem parent)
 {
     foreach (NestedMenuItem child in parent.Children)
     {
         child.IsValid         = 0;
         child.NotValidMessage = "";
         //autoID is set a negative value until it is seeded from the db...
         if (child.AutoID < 0)
         {
             //locate the record to fetch the seeded autoid value...
             MenuItem menuItem = MenuItemList.FirstOrDefault(q => q.MenuItemID == child.MenuItemID &&
                                                             q.CompanyID == ClientSessionSingleton.Instance.CompanyID);
             child.AutoID = menuItem.AutoID;
         }
         //if it is selected we need to modify SelectedMenuItem as well...
         if (child.IsSelected == true)
         {
             SelectedMenuItem.IsValid         = 0;
             SelectedMenuItem.NotValidMessage = "";
         }
         ResetTreeTempFields(child);
     }
 }
Example #7
0
 private IMasterPageMenuItem getDefaultMenuItem()
 {
     return(MenuItemList.FirstOrDefault(f => f.IsDefault));
 }
Example #8
0
        private void SelectedMenuItem_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {//these properties are not to be persisted we will igore them...
            if (e.PropertyName == "IsSelected" ||
                e.PropertyName == "IsExpanded" ||
                e.PropertyName == "IsValid" ||
                e.PropertyName == "NotValidMessage" ||
                e.PropertyName == "LastModifiedBy" ||
                e.PropertyName == "LastModifiedByDate")
            {
                return;
            }
            //Key ID Logic...
            if (e.PropertyName == "MenuItemID")
            {     //make sure it is has changed...
                if (SelectedMenuItemMirror.MenuItemID != SelectedMenuItem.MenuItemID)
                { //convert to the Entity MenuItem...
                    MenuItem     menuItem    = MenuItemList.FirstOrDefault(q => q.AutoID == SelectedMenuItem.AutoID);
                    EntityStates entityState = GetMenuItemState(menuItem);

                    if (entityState == EntityStates.Unchanged ||
                        entityState == EntityStates.Modified)
                    {//once a key is added it can not be modified...
                        MessageBox.Show("Once A Key Is Added It Can Not Be Modified.");
                        return;
                    }
                }
            }//end KeyID logic...

            object propertyChangedValue = SelectedMenuItem.GetPropertyValue(e.PropertyName);
            object prevPropertyValue    = SelectedMenuItemMirror.GetPropertyValue(e.PropertyName);
            string propertyType         = SelectedMenuItem.GetPropertyType(e.PropertyName);
            //in some instances the value is not really changing but yet it still is tripping property change..
            //This will ensure that the field has physically been modified...
            //As well when we revert back it constitutes a property change but they will be = and it will bypass the logic...
            bool objectsAreEqual;

            if (propertyChangedValue == null)
            {
                if (prevPropertyValue == null)//both values are null
                {
                    objectsAreEqual = true;
                }
                else//only one value is null
                {
                    objectsAreEqual = false;
                }
            }
            else
            {
                if (prevPropertyValue == null)//only one value is null
                {
                    objectsAreEqual = false;
                }
                else //both values are not null use .Equals...
                {
                    objectsAreEqual = propertyChangedValue.Equals(prevPropertyValue);
                }
            }
            if (!objectsAreEqual)
            {
                //Here we do property change validation if false is returned we will reset the value
                //Back to its mirrored value and return out of the property change w/o updating the repository...
                if (MenuItemPropertyChangeIsValid(e.PropertyName, propertyChangedValue, prevPropertyValue, propertyType))
                {//pass in the propertyname and value as we will update the CRUD MenuItem and pass the
                    //change to the repository...
                    Update(SelectedMenuItem, e.PropertyName, propertyChangedValue);
                    //set the mirrored objects field...
                    SelectedMenuItemMirror.SetPropertyValue(e.PropertyName, propertyChangedValue);
                    SelectedMenuItemMirror.IsValid         = SelectedMenuItem.IsValid;
                    SelectedMenuItemMirror.IsExpanded      = SelectedMenuItem.IsExpanded;
                    SelectedMenuItemMirror.NotValidMessage = SelectedMenuItem.NotValidMessage;
                }
                else
                {
                    SelectedMenuItem.SetPropertyValue(e.PropertyName, prevPropertyValue);
                    SelectedMenuItem.IsValid         = SelectedMenuItemMirror.IsValid;
                    SelectedMenuItem.IsExpanded      = SelectedMenuItemMirror.IsExpanded;
                    SelectedMenuItem.NotValidMessage = SelectedMenuItemMirror.NotValidMessage;
                }
            }
        }