Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
 /// <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
 };