/// <summary> /// Adds a new mockup response to the database. /// </summary> /// <param name="response">The new response.</param> /// <param name="transactionId">The identifier for the current transaction. For logging purpose.</param> /// <returns>The new mockup response with the matching id.</returns> /// <exception cref="WebApiMockException">Thrown with error code #3 if the id of the given response is not 0 (zero).</exception> /// <exception cref="WebApiMockException">Thrown with error code #4 if a response with the same values already exists.</exception> public static MockupResponse AddResponse(MockupResponse response, Guid?transactionId = null) { var logId = Guid.Empty; if (transactionId.HasValue) { logId = transactionId.Value; } if (logId.Equals(Guid.Empty)) { logId = Guid.NewGuid(); } if (response.Id != 0) { Program.Logger.Error($"[{logId}] The id for a new response must be 0."); throw new WebApiMockException("The id for a new response must be 0.", 3); } if (ResponseExists(response.StatusCode, response.Response, response.MimeType, logId)) { Program.Logger.Error($"[{logId}] The response already exists."); throw new WebApiMockException("The response already exists.", 4); } var newData = new ResponseDefinition { StatusCode = response.StatusCode, Response = response.Response, MimeType = response.MimeType }; using var ctx = new DataContext(); ctx.Responses.Add(newData); ctx.SaveChanges(true); Program.Logger.Info($"[{logId}] Successfully created response (HTTP {response.StatusCode}) with id #{newData.Id}."); return(newData.ToMockupResponse()); }
/// <summary> /// Converts a <see cref="ResponseDefinition"/> to a <see cref="MockupResponse"/>. /// </summary> /// <param name="response">The <see cref="ResponseDefinition"/> to convert.</param> /// <returns>A <see cref="MockupResponse"/> with the values from the <see cref="ResponseDefinition"/>.</returns> public static MockupResponse ToMockupResponse(this ResponseDefinition response) => new MockupResponse { Id = response.Id, StatusCode = response.StatusCode, Response = response.Response, MimeType = response.MimeType };