protected static bool DatabaseHasSuchObject(ISerialDataObject serialDataObject, IObjectSpace os) { var criteria = GroupOperator.And( (serialDataObject.Numerator != null) ? (CriteriaOperator)new BinaryOperator("Numerator", serialDataObject.Numerator) : (CriteriaOperator)new UnaryOperator(UnaryOperatorType.IsNull, "Numerator"), new BinaryOperator("ObjectCode", serialDataObject.ObjectCode), new BinaryOperator("NumeratorExpression", serialDataObject.NumeratorExpression) ); var collection = os.GetObjects<ISerialDataObject>(criteria); return !(collection.Count == 0 || ((collection.Count == 1) && (collection[0] == serialDataObject))); }
protected static String ParseExtension(ISerialDataObject serialDataObject, String extension) { return ObjectFormatter.Format(extension, serialDataObject, EmptyEntriesMode.RemoveDelimeterWhenEntryIsEmpty); }
/// <summary> /// Обрабатывает генерацию нового регистрационного номера и кода документа в соответствии с нумератором /// </summary> public static void OnSaving(ISerialDataObject serialDataObject, IObjectSpace os) { if (os != null ? os.IsNewObject(serialDataObject) : false) { serialDataObject.RegDate = DateTime.Now; serialDataObject.Number = 0; GenerateSequence(serialDataObject, os); if (serialDataObject.Numerator == null) { serialDataObject.Numerator = DBNumerator.GetNumerator(os, XafTypesInfo.Instance.FindTypeInfo(serialDataObject.GetType()), serialDataObject.Department); } if (String.IsNullOrEmpty(serialDataObject.RegCode)) { serialDataObject.RegCode = serialDataObject.Numerator != null ? ParseExtension(serialDataObject, serialDataObject.Numerator.ExpressionCodeGeneration) : serialDataObject.Number.ToString(); } if (String.IsNullOrEmpty(serialDataObject.ObjectCode)) { serialDataObject.ObjectCode = serialDataObject.RegCode; } } }
public static string Get_ClassFullName(ISerialDataObject serialDataObject) { return serialDataObject.GetType().FullName; }
public static void GenerateSequence(ISerialDataObject instance, IObjectSpace space) { var typeToExistsMap = new Dictionary<string, bool>(); if (sequenceGenerator == null) { sequenceGenerator = new SequenceGenerator(typeToExistsMap); } instance.Number = (int)sequenceGenerator.GetNextSequence(XafTypesInfo.Instance.FindTypeInfo(instance.GetType())); if (!(space is XPNestedObjectSpace)) { space.Committed += new EventHandler((s, e) => space_Committed(s, e, space)); } }
public static void AfterConstruction(ISerialDataObject serialDataObject, IObjectSpace os) { serialDataObject.ReplicationId = Guid.NewGuid(); serialDataObject.ObjectCode = String.Empty; serialDataObject.RegCode = String.Empty; serialDataObject.Number = 0; var user = os.GetObjectByKey<SecuritySystemUser>(SecuritySystem.CurrentUserId); if (user != null) { var employee = user as Employee; if (employee != null) { serialDataObject.User = employee; serialDataObject.Department = employee.Department; } } }
public static void AfterChange_ObjectCode(ISerialDataObject serialDataObject) { }