Для этого я создаю модель QuizResultsModel.cs:
Код: Выделить всё
namespace Quiz.Model
{
public class QuizResultsModel
{
public int UserId { get; set; }
public int Score { get; set; }
public int SuccessCount { get; set; }
public int FailCount { get; set; }
public DateTime DateAttempted { get; set; }
public TimeSpan TimeTaken { get; set; }
}
}
Код: Выделить всё
namespace Quiz.Controllers
{
[RoutePrefix("someapi/Quiz")]
public class QuizResultsController : ApiController
{
[HttpPost]
[Route("SaveQuizResults")]
public IHttpActionResult SaveQuizResults(QuizResultsModel quizResult)
{
var result = QuizService.SaveQuizResult(quizResult);
return Ok(result);
}
}
}
Код: Выделить всё
namespace Quiz.Service
{
public class QuizService
{
public static ResponseStatus SaveQuizResult(QuizResultsModel quizResult)
{
ResponseStatus responseStatus = new ResponseStatus();
string sql = @"INSERT INTO QuizResults (UserId, SuccessCount, FailCount, Score, DateAttempted, TimeTaken)
VALUES (@UserId, @SuccessCount, @FailCount, @Score, @DateAttempted, @TimeTaken);
SELECT SCOPE_IDENTITY();";
try
{
using (var connection = new SqlConnection(Database.CreateConnection().ConnectionString))
using (var command = new SqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@UserId", quizResult.UserId);
command.Parameters.AddWithValue("@SuccessCount", quizResult.SuccessCount);
command.Parameters.AddWithValue("@FailCount", quizResult.FailCount);
command.Parameters.AddWithValue("@Score", quizResult.Score);
command.Parameters.AddWithValue("@DateAttempted", quizResult.DateAttempted);
command.Parameters.AddWithValue("@TimeTaken", quizResult.TimeTaken);
connection.Open();
var quizResults = command.ExecuteScalar();
responseStatus.HttpStatusCode = HttpStatusCode.OK;
responseStatus.HttpStatusMessage = "Quiz result saved successfully " + quizResults;
}
}
catch (Exception ex)
{
responseStatus.HttpStatusCode = HttpStatusCode.InternalServerError;
responseStatus.HttpStatusMessage = ex.Message;
}
return responseStatus;
}
}
}
Код: Выделить всё
namespace Quiz.App_Start
{
public class QuizRegistration : APIRegistrationBase
{
protected override List ControllerVersions => new List()
{
nameof(QuizResultsController)
};
protected override string CurrentControllerVersion => nameof(QuizResultsController);
protected override string ControllerName => "Quiz";
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... results-in