public void UpdateTextDraw() { float distanceFromLeader; var leader = Members[0]; var numberOfMembers = Members.Count; string furthestMemberName; if (Members.Count > 1) { var furthestMember = GetFurthestMember(); furthestMemberName = furthestMember.Name; distanceFromLeader = GetDistanceBetweenMembers(leader, furthestMember); } else { furthestMemberName = " - "; distanceFromLeader = 0.0f; } LeaderText.Text = $"Members: ~g~{numberOfMembers}~w~, Furthest member: ~g~{furthestMemberName}~w~, Distance: ~r~{distanceFromLeader}~w~"; LeaderText.Show(leader); foreach (var member in Members.Where(member => member != Members[0])) { distanceFromLeader = GetDistanceBetweenMembers(leader, member); MemberText.Text = $"Leader: ~r~{leader.Name}~w~, distance: ~r~{distanceFromLeader}~w~, members: ~r~{numberOfMembers}~w~"; MemberText.Show(member); } }
public override string Visit(MemberText memberText) { string typeName = memberText.IsUnicode ? "nvarchar" : "varchar"; string lengthString = memberText.Length == -1 ? "MAX" : memberText.Length.ToString(); return(typeName + "(" + lengthString + ")"); }
public abstract TResult Visit(MemberText memberText);
public static string SignatureOfMethod <TArg0, TResult>(Expression <Func <TArg0, TResult> > methodExpr) => MemberText.GetMethodSignatureText(expr: methodExpr);
// TODO: Put strings into the resources. // public static MethodInfo GetMethod(this Type type, string name, Type[] parameterTypes = default, bool throwIfNotFound = default) { if (type is null) { throw new ArgumentNullException(paramName: nameof(type)); } else if (name is null) { throw new ArgumentNullException(paramName: nameof(name)); } else if (string.Empty == name) { throw new ArgumentException(paramName: nameof(name), message: "Cannot be an empty string."); } // var result = type.GetMethod(name: name, types: parameterTypes ?? Type.EmptyTypes); if (result is null && throwIfNotFound) { throw new MissingMemberException(string.Format($"Method not found.{Environment.NewLine}\tMethod:{Environment.NewLine}\t\t{MemberText.GetMethodSignatureText(declaringType: type, name: name, parameterTypes: parameterTypes)}")); }
public override string Visit(MemberText memberText) { string typeName = StringExt.ToTitleCase(_member.Name); var template = $@" [Serializable] [JsonConverter(typeof(StringStrongTypeConverter<{typeName}>))] public partial struct {typeName} : ITypedString, IStrongTypeFactory<string, {typeName}>, IEquatable<{typeName}> {{ private readonly string _value; private {typeName}(string value) {{ _value = value; }} public static explicit operator {typeName}(string value) {{ return new {typeName}(value); }} public static implicit operator string({typeName} value) {{ return value._value; }} public override string ToString() {{ return _value; }} public string UnderlyingValue() {{ return _value; }} public string Value {{ get {{ return _value; }} }} {typeName} IStrongTypeFactory<string, {typeName}>.NewWithValue(string value) {{ return new {typeName}(value); }} public TResult Accept<TResult>(IStrongTypeVistor<TResult> visitor) {{ return visitor.Visit(this); }} public override bool Equals(object other) {{ if (other is {typeName}) {{ return Equals(({typeName})other); }} return false; }} public override int GetHashCode() {{ return _value.GetHashCode(); }} public bool Equals({typeName} other) {{ if(_value == null) {{ if(other._value == null) {{ return true; }} return false; }} return _value.Equals(other._value); }} public static bool operator ==({typeName} left, {typeName} right) {{ return left.Equals(right); }} public static bool operator !=({typeName} left, {typeName} right) {{ return !left.Equals(right); }} }}"; return(template); }
public override TResult Visit(MemberText memberText) { return(DefaultVisit(memberText)); }
public override string Visit(MemberText memberText) { return("string"); }
public override string Visit(MemberText memberText) { return(_typeNameVistor.Visit(memberText) + " COLLATE SQL_Latin1_General_CP1_CI_AS"); }