/// <summary> /// Initializes a new instance of the <see cref="DrawInfoCI"/> class /// </summary> /// <param name="dto">A <see cref="DrawResultDTO"/> instance containing information about the draw result</param> /// <param name="culture">The culture of the <see cref="DrawResultDTO"/> used to create new instance</param> public DrawResultCI(DrawResultDTO dto, CultureInfo culture) { Guard.Argument(dto, nameof(dto)).NotNull(); Names = new Dictionary <CultureInfo, string>(); Merge(dto, culture); }
/// <summary> /// Initializes a new instance of the <see cref="DrawInfoCI"/> class /// </summary> /// <param name="dto">A <see cref="DrawResultDTO"/> instance containing information about the draw result</param> /// <param name="culture">The culture of the <see cref="DrawResultDTO"/> used to create new instance</param> public DrawResultCI(DrawResultDTO dto, CultureInfo culture) { Contract.Requires(dto != null); Names = new Dictionary <CultureInfo, string>(); Merge(dto, culture); }
/// <summary> /// Merges the specified <see cref="DrawResultDTO"/> into instance /// </summary> /// <param name="dto">The <see cref="DrawResultDTO"/> used to merge into instance</param> /// <param name="culture">The culture of the <see cref="DrawResultDTO"/> used to merge</param> internal void Merge(DrawResultDTO dto, CultureInfo culture) { Guard.Argument(dto, nameof(dto)).NotNull(); Guard.Argument(culture, nameof(culture)).NotNull(); if (dto.Value.HasValue) { Value = dto.Value; } Names[culture] = dto.Name; }
/// <summary> /// Merges the specified <see cref="DrawResultDTO"/> into instance /// </summary> /// <param name="dto">The <see cref="DrawResultDTO"/> used to merge into instance</param> /// <param name="culture">The culture of the <see cref="DrawResultDTO"/> used to merge</param> internal void Merge(DrawResultDTO dto, CultureInfo culture) { Contract.Requires(dto != null); Contract.Requires(culture != null); if (dto.Value.HasValue) { Value = dto.Value; } Names[culture] = dto.Name; }
private DrawResultDTO ExecuteCommands(IEnumerable <DrawCommand> commandsToExecute, IEnumerable <string> previousErrors) { var result = new DrawResultDTO(); List <string> lines = new List <string>(); List <string> errors = new List <string>(); if (previousErrors != null && previousErrors.Any()) { errors.AddRange(previousErrors); } foreach (var command in commandsToExecute) { try { if (this.MainCanvas == null && command.Type.Equals(DrawCommandType.C)) { this.MainCanvas = this.generateCanvasCommand.Execute(command.Source); } else if (this.MainCanvas != null) { switch (command.Type) { case DrawCommandType.C: this.MainCanvas = this.generateCanvasCommand.Execute(command.Source); break; case DrawCommandType.L: this.writeCanvasLineCommand.Execute(this.MainCanvas, command.Source, command.Destination); break; case DrawCommandType.R: this.writeRectangleCommand.Execute(this.MainCanvas, command.Source, command.Destination); break; case DrawCommandType.B: this.fillCanvasCommand.MainCanvas = this.MainCanvas; this.fillCanvasCommand.Execute(command.Source, command.Character); break; } } else { var error = $"fail while executing the following command: {command.SourceCommandLine} because doesn't exist a previous canvas"; lines.Add(error); errors.Add(error); } } catch (Exception ex) { var error = $"fail while executing the following command: {command.SourceCommandLine}, error: {ex.Message}"; lines.Add(error); errors.Add(error); } var linesToAdd = this.getStringToWriteFromCanvasCommand.Execute(this.MainCanvas); if (linesToAdd != null) { lines.AddRange(linesToAdd); } #if DEBUG lines.ForEach(x => Debug.WriteLine(x)); #endif } result.FileContent = this.writeFileToResponseCommand.Execute(lines.ToList()); result.Errors = errors; return(result); }