/// <summary> /// Valida que no hayan valores vacíos cuando se modifica o inserta un nuevo Row en el DataGrid /// </summary> /// <param name="obj"></param> /// <returns></returns> private bool ValidateNotNullOrEmpty(object obj) { bool result = false; //Se recuperan las properties del object pasado por params var objproperties = ManageGenericObject.GetProperties(obj); foreach (var objprop in objproperties) { //Para cada property del object, se recupera su valor object objvalue = ManageGenericObject.PropertyGetValue(obj, objprop.Name.ToString()); //Se comprueba que no sea nulo o esté vacío if (objvalue == null) { result = true; break; } else { if ((objvalue.ToString() == null) || (objvalue.ToString().Length == 0)) { result = true; break; } result = false; } } return(result); }
/// <summary> /// Valida que no hayan valores repetidos cuando se modifica o inserta un nuevo Row en el DataGrid /// </summary> /// <param name="obj"></param> /// <returns></returns> private bool ValidateDuplicateValue(object obj) { bool result = false; try { //Se recupera la EOpcion del TabItem activo EOpcion opcion = TabControlAndTabItemUtil.TabControlSelectedItemEOpcion(); //Se recupera la GenericObservableCollection del TabItem activo GenericObservableCollection auxobscollection = tabitemdictionary.Where(g => g.Key == opcion).FirstOrDefault().Value.GenericObsCollection; //Se crea un SortedSet donde se guardarán los values para cada property de la GenericObservableCollection, //y así poderlos comparar con el value del object pasado por params para esa property ISet <string> collectionTemp = new SortedSet <string>(); foreach (var itemStringItem in auxobscollection.GenericObsCollection) { //Se recorre la GenericObservableCollection, y cada object se convierte en un string //como el ejemplo: [key1, value1];[ke2, value2]... string stringItem = ManageGenericObject.PropertyConvertToDictionary(itemStringItem); //Se hace un split del string con los object de la GenericObservableCollection, y se //guardan los valores de una misma propiedad en una IList IList <string> tempString = stringItem.Split(';').ToList(); //Se recorren los valores para cada IList que corresponde a cada propiedad del object, //y se comprueba que no haya valores repetidos foreach (string itemTempString in tempString) { //Si el valor no existe, se añade a la SortedSet temporal(collectionAux), y se //comprueba que el siguiente valor no esté en esta SortedSet temporal if (!collectionTemp.Contains(itemTempString)) { collectionTemp.Add(itemTempString); } else { result = true; break; } } if (result) { break; } } } catch (Exception) { } return(result); }