PageRenderTime 42ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/Gradebook/Controllers/TaskTypesController.cs

https://bitbucket.org/academium/gradebook
C# | 39 lines | 30 code | 7 blank | 2 comment | 3 complexity | d03bbe410ee6f86615b3561d90906438 MD5 | raw file
  1. using System.Net;
  2. using System.Net.Http;
  3. using AutoMapper;
  4. using Gradebook.Contracts;
  5. using Gradebook.Model;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Web.Http;
  9. namespace Gradebook.Controllers
  10. {
  11. public class TaskTypesController : ApiControllerBase
  12. {
  13. public TaskTypesController(IGradebookUow uow) : base(uow) { }
  14. // GET /api/taskstypes
  15. [ActionName("Default")]
  16. public IEnumerable<ViewModels.TaskType> Get(int classId, int subjectId)
  17. {
  18. if (!Unit.Classes.Contains(classId) || !Unit.Subjects.Contains(subjectId))
  19. throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest));
  20. var types = Unit.TaskTypes.Get(classId, subjectId);
  21. return types.Select(Mapper.Map<Model.TaskType, ViewModels.TaskType>);
  22. }
  23. // GET /api/taskstypes
  24. public IEnumerable<ViewModels.TaskType> GetByCode(int code)
  25. {
  26. if (!Unit.ClassCodes.Contains(code))
  27. throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest));
  28. var types = Unit.TaskTypes.GetByCode(code);
  29. return types.Select(Mapper.Map<Model.TaskType, ViewModels.TaskType>);
  30. }
  31. }
  32. }