public UmlDiagramClassAttribute AddAttributeFromModel(UmlClass umlClass, UmlAttribute umlAttribute) { var umlDiagramClass = modelToDiagramClasses[umlClass]; var umlDiagramClassAttribute = new UmlDiagramClassAttribute(umlAttribute); umlDiagramClass.Attributes.Add(umlDiagramClassAttribute); return(umlDiagramClassAttribute); }
public IUmlTaggedValue getFacetTaggedValue(string tagname) { //first check if there is an overridden version var overriddenTagName = "override_" + tagname; var overriddentag = UmlAttribute.GetTaggedValue(overriddenTagName); return(overriddentag.IsDefined ? overriddentag : UmlAttribute.GetTaggedValue(tagname)); }
public void RemoveAttributeFromModel(UmlClass umlClass, UmlAttribute attributeToRemove) { var umlDiagramClass = modelToDiagramClasses[umlClass]; var attributesToRemove = umlDiagramClass.Attributes.Where(u => u.UmlAttribute == attributeToRemove).ToList(); foreach (var attribute in attributesToRemove) { umlDiagramClass.Attributes.Remove(attribute); } }
public UmlAttribute CreateModelAttribute(UmlClass umlClass, string name, string type) { // TODO: check if attribute is already in the model var umlAttribute = new UmlAttribute(name, type); umlClass.Attributes.Add(umlAttribute); // // Exception for now: immediately create the attribute in the diagram too. This should happen via an event from the model, // but for now, we do it directly. // AddAttributeFromModel(umlClass, umlAttribute); return(umlAttribute); }
public string PropertySetterBefore(UmlAttribute attribute) { var sb = new StringBuilder(); sb.Append(@" if (!OrmLoading) {"); foreach (var validation in GetSetPropertyValidations(attribute)) { sb.Append($@" if ({validation.Key}) throw new DomainViolationException(this, ""{validation.Value}"");"); } sb.Append(@" }"); return(sb.ToString()); }
public Dictionary <string, string> GetSetPropertyValidations(UmlAttribute attribute) { var result = new Dictionary <string, string>(); if (attribute.Type == "string" && attribute.IsMandatory) { result.Add("string.IsNullOrEmpty(value)", attribute.Name + " is mandatory."); } var minLength = attribute.Stereotypes.GetTagValue <int?>("Text", "MinLength"); if (minLength != null && minLength > 0) { result.Add("!string.IsNullOrEmpty(value) && value.Length < " + minLength, attribute.Name + " cannot be less than " + minLength + " characters."); } var maxLength = attribute.Stereotypes.GetTagValue <int?>("Text", "MaxLength"); if (maxLength != null) { result.Add("!string.IsNullOrEmpty(value) && value.Length > " + maxLength, attribute.Name + " cannot be more than " + maxLength + " characters."); } var minValue = attribute.Stereotypes.GetTagValue <int?>("Numeric", "MinValue"); if (minValue != null) { result.Add("value < " + minValue, attribute.Name + " cannot be less than " + minValue + "."); } var maxValue = attribute.Stereotypes.GetTagValue <int?>("Numeric", "MaxValue"); if (maxValue != null) { result.Add("value > " + maxValue, attribute.Name + " cannot be more than " + maxValue + "."); } var maxDecimalPlaces = attribute.Stereotypes.GetTagValue <int?>("Numeric", "MaxDecimalPlaces"); if (maxDecimalPlaces != null) { result.Add(string.Format("(value * {0}) != Math.Floor(value * {0})", Math.Pow(10, maxDecimalPlaces.Value)), attribute.Name + " cannot have more than " + maxDecimalPlaces + " decimal places."); } return(result); }
public string PropertyAnnotations(UmlAttribute attribute) { return(null); }
public string PropertySetterAfter(UmlAttribute attribute) { return(GetDecorators().Aggregate(x => x.PropertySetterAfter(attribute))); }
public string PropertySetterBefore(UmlAttribute attribute) => null;
public string PropertySetterAfter(UmlAttribute attribute) => null;
public override int GetHashCode() { return(UmlAttribute != null ? UmlAttribute.GetHashCode() : 0); }
public string PropertyAnnotations(UmlAttribute attribute) => null;
public static bool HasComplexDomainType(this UmlAttribute attribute) { return(ComplexDomainType(attribute) != null); }
public static string ComplexDomainType(this UmlAttribute attribute) { return(attribute.Stereotypes.GetTagValue <string>("DomainType", "Type")); }
public string PropertySetterAfter(UmlAttribute attribute) { return(null); }
public string PropertyAnnotations(UmlAttribute attribute) { return(GetDecorators().Aggregate(x => x.PropertyAnnotations(attribute))); }
public static string DomainType(this UmlAttribute attribute) { return(ConvertType(attribute.Type, !attribute.IsMandatory, false, attribute.ModelType, attribute.EnumDefinition)); }
public void AddAttribute(UmlAttribute attribute) { if (attribute.Stereotypes.Any(x => x.Name == "Calculated")) { return; } #line default #line hidden #line 205 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(PropertyFieldAnnotations(attribute))); #line default #line hidden #line 206 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" private "); #line default #line hidden #line 206 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.DomainType())); #line default #line hidden #line 206 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" "); #line default #line hidden #line 206 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.Name.ToPrivateMember())); #line default #line hidden #line 206 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(";"); #line default #line hidden #line 206 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(PropertyAnnotations(attribute))); #line default #line hidden #line 206 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write("\r\n public "); #line default #line hidden #line 207 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.DomainType())); #line default #line hidden #line 207 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" "); #line default #line hidden #line 207 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.Name.ToPascalCase())); #line default #line hidden #line 207 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" \r\n {\r\n get { return "); #line default #line hidden #line 209 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.Name.ToPrivateMember())); #line default #line hidden #line 209 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write("; }\r\n set\r\n {\r\n"); #line default #line hidden #line 212 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" if (attribute.Stereotypes.GetTagValue("Text", "TrimAutomatically", false)) { #line default #line hidden #line 212 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" value = value?.Truncate("); #line default #line hidden #line 213 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.Stereotypes.GetTagValue("Text", "MaxLength", 8000))); #line default #line hidden #line 213 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(");\r\n"); #line default #line hidden #line 214 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" } #line default #line hidden #line 214 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(PropertySetterBefore(attribute))); #line default #line hidden #line 214 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write("\r\n"); #line default #line hidden #line 215 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" if (attribute.Type == "date") { if (attribute.IsMandatory) { #line default #line hidden #line 218 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" "); #line default #line hidden #line 219 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.Name.ToPrivateMember())); #line default #line hidden #line 219 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" = value.Date;\r\n"); #line default #line hidden #line 220 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" } else { #line default #line hidden #line 223 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" "); #line default #line hidden #line 224 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.Name.ToPrivateMember())); #line default #line hidden #line 224 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" = (value == null) ? value : value.Value.Date;\r\n"); #line default #line hidden #line 225 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" } } else { #line default #line hidden #line 228 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" "); #line default #line hidden #line 229 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(attribute.Name.ToPrivateMember())); #line default #line hidden #line 229 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" = value;\r\n"); #line default #line hidden #line 230 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" } #line default #line hidden #line 230 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(PropertySetterAfter(attribute))); #line default #line hidden #line 231 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" this.Write(" }\r\n }\r\n\r\n"); #line default #line hidden #line 234 "C:\Dev\Intent.Modules\Modules\Intent.Modules.RichDomain\Templates\EntityState\DomainEntityStateTemplate.tt" }
public UmlDiagramClassAttribute(UmlAttribute umlAttribute) : base(umlAttribute) { UmlAttribute = umlAttribute; }