Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Constructor
- {
- private Message CurrentMessage { get; }
- private Message Parent { get; set; }
- public Constructor(Message current) => CurrentMessage = current;
- public string GeneratorConstructor()
- {
- var toReturn = string.Empty;
- if (CurrentMessage.HasParent)
- {
- Parent = MessageGenerator.Messages.messages.FirstOrDefault(x => x.Name == CurrentMessage.Parent);
- toReturn = "";
- toReturn += $"public {CurrentMessage.Name} ({GetInitFields()}) : base({GetParentInitFields()})" +
- $"\r\n{{" +
- $"\r\n{GetFieldsToInit()}" +
- $"\r\n}}";
- return toReturn;
- }
- toReturn += $"public {CurrentMessage.Name} ({GetInitFields()})" +
- $"\r\n{{" +
- $"\r\n{GetFieldsToInit()}" +
- $"\r\n}}";
- return toReturn;
- }
- #region InitFields
- private string GetInitFields()
- {
- var toReturn = string.Empty;
- if (CurrentMessage.HasParent)
- {
- var totalLength = CurrentMessage.Fields.Count + Parent.Fields.Count;
- for (var i = 0; i < CurrentMessage.Fields.Count; i++)
- {
- toReturn += CurrentMessage.Fields[i].GetInitFields();
- if (i < totalLength - 1)
- toReturn += ", ";
- }
- for (var i = 0; i < Parent.Fields.Count; i++)
- {
- toReturn += Parent.Fields[i].GetInitFields();
- if (i < Parent.Fields.Count - 1)
- toReturn += ", ";
- }
- return toReturn;
- }
- var totalLengh = CurrentMessage.Fields.Count;
- for (var i = 0; i < totalLengh; i++)
- {
- toReturn += CurrentMessage.Fields[i].GetInitFields();
- if (i < totalLengh - 1)
- toReturn += ", ";
- }
- return toReturn;
- }
- private string GetParentInitFields()
- {
- var toReturn = string.Empty;
- var totalLengh = Parent.Fields.Count;
- for (var i = 0; i < totalLengh; i++)
- {
- toReturn += Parent.Fields[i].GetInitFields();
- if (i < totalLengh - 1)
- toReturn += ", ";
- }
- return toReturn;
- }
- #endregion
- #region FieldsToInit
- public string GetFieldsToInit() => CurrentMessage.Fields.Aggregate(string.Empty,
- (current, field) => current + field.GetFieldsToInit() + "\r\n");
- #endregion
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement