Advertisement
Guest User

constructor

a guest
Jul 21st, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.84 KB | None | 0 0
  1. public class Constructor
  2.     {
  3.         private Message CurrentMessage { get; }
  4.         private Message Parent { get; set; }
  5.  
  6.         public Constructor(Message current) => CurrentMessage = current;
  7.  
  8.         public string GeneratorConstructor()
  9.         {
  10.             var toReturn = string.Empty;
  11.             if (CurrentMessage.HasParent)
  12.             {
  13.                 Parent = MessageGenerator.Messages.messages.FirstOrDefault(x => x.Name == CurrentMessage.Parent);
  14.                 toReturn = "";
  15.                 toReturn += $"public {CurrentMessage.Name} ({GetInitFields()}) : base({GetParentInitFields()})" +
  16.                             $"\r\n{{" +
  17.                             $"\r\n{GetFieldsToInit()}" +
  18.                             $"\r\n}}";
  19.                 return toReturn;
  20.             }
  21.             toReturn += $"public {CurrentMessage.Name} ({GetInitFields()})" +
  22.                         $"\r\n{{" +
  23.                         $"\r\n{GetFieldsToInit()}" +
  24.                         $"\r\n}}";
  25.             return toReturn;
  26.         }
  27.  
  28.         #region InitFields
  29.         private string GetInitFields()
  30.         {
  31.             var toReturn = string.Empty;
  32.             if (CurrentMessage.HasParent)
  33.             {
  34.                 var totalLength = CurrentMessage.Fields.Count + Parent.Fields.Count;
  35.                 for (var i = 0; i < CurrentMessage.Fields.Count; i++)
  36.                 {
  37.                     toReturn += CurrentMessage.Fields[i].GetInitFields();
  38.                     if (i < totalLength - 1)
  39.                         toReturn += ", ";
  40.                 }
  41.                 for (var i = 0; i < Parent.Fields.Count; i++)
  42.                 {
  43.                     toReturn += Parent.Fields[i].GetInitFields();
  44.                     if (i < Parent.Fields.Count - 1)
  45.                         toReturn += ", ";
  46.                 }
  47.                 return toReturn;
  48.             }
  49.             var totalLengh = CurrentMessage.Fields.Count;
  50.             for (var i = 0; i < totalLengh; i++)
  51.             {
  52.                 toReturn += CurrentMessage.Fields[i].GetInitFields();
  53.                 if (i < totalLengh - 1)
  54.                     toReturn += ", ";
  55.             }
  56.             return toReturn;
  57.         }
  58.  
  59.         private string GetParentInitFields()
  60.         {
  61.             var toReturn = string.Empty;
  62.             var totalLengh = Parent.Fields.Count;
  63.             for (var i = 0; i < totalLengh; i++)
  64.             {
  65.                 toReturn += Parent.Fields[i].GetInitFields();
  66.                 if (i < totalLengh - 1)
  67.                     toReturn += ", ";
  68.             }
  69.             return toReturn;
  70.         }
  71.         #endregion
  72.  
  73.         #region FieldsToInit
  74.         public string GetFieldsToInit() => CurrentMessage.Fields.Aggregate(string.Empty,
  75.             (current, field) => current + field.GetFieldsToInit() + "\r\n");
  76.         #endregion
  77.  
  78.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement