private CodeJewelModel DesirializeCodeJewelToFull(CodeJewel codeJewel) { double averageVote = 0; if (codeJewel.Votes.Count > 0) { averageVote = codeJewel.Votes.Average(v => v.Value); } string category = "No Category"; if (codeJewel.Category != null) { category = codeJewel.Category.Name; } CodeJewelModel modelFull = new CodeJewelModel { AuthorName = codeJewel.AuthorMail, CodeJewel = codeJewel.SourceCode, Id = codeJewel.Id, AverageVote = averageVote, category = category }; return(modelFull); }
private CodeJewelModel DesirializeCodeJewel(CodeJewel code) { CodeJewelModel model = new CodeJewelModel { AuthorName = code.AuthorMail, CodeJewel = code.SourceCode, Id = code.Id }; return(model); }
public HttpResponseMessage AddCodeJewel([FromBody] CodeJewel code) { var response = PerformOperation(() => { var context = new CodeContext(); using (context) { context.CodeJewels.Add(code); context.SaveChanges(); CodeJewelModel model = DesirializeCodeJewel(code); return(model); } }); return(response); }
// POST api/CodeJewels public HttpResponseMessage PostStudent(CodeJewelModel codeJewelModel) { if (codeJewelModel == null) { var errResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The supported code jewel model cannot be null"); throw new HttpResponseException(errResponse); } if (codeJewelModel.CategoryId == 0) { var errResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The category Id is not correct"); throw new HttpResponseException(errResponse); } DbCodeJewelsRepository codeJewelRepository = this.allRepositories.GetCodeJewelRepository(); CodeJewel codeJewel = new CodeJewel() { SourseCode = codeJewelModel.SourseCode, AuthorEmail = codeJewelModel.AuthorEmail, CategoryId = codeJewelModel.CategoryId }; codeJewelRepository.Add(codeJewel); CodeJewelModel createdCodeJewelModel = new CodeJewelModel() { CodeJewelId = codeJewel.CodeJewelId, SourseCode = codeJewel.SourseCode, AuthorEmail = codeJewel.AuthorEmail, Rating = codeJewel.Rating, CategoryId = codeJewel.CategoryId }; var response = Request.CreateResponse <CodeJewelModel>(HttpStatusCode.Created, createdCodeJewelModel); var resourceLink = Url.Link("DefaultApi", new { id = createdCodeJewelModel.CodeJewelId }); response.Headers.Location = new Uri(resourceLink); return(response); }
// GET api/CodeJewels/5 public CodeJewelModel GetCodeJewels(int id) { DbCodeJewelsRepository codeJewelsRepository = this.allRepositories.GetCodeJewelRepository(); var codeJewel = codeJewelsRepository.Get(id); if (codeJewel == null) { var errResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No such code jewel was found"); throw new HttpResponseException(errResponse); } var codeJewelModel = new CodeJewelModel() { CodeJewelId = codeJewel.CodeJewelId, SourseCode = codeJewel.SourseCode, AuthorEmail = codeJewel.AuthorEmail, Rating = codeJewel.Rating, CategoryId = codeJewel.CategoryId }; return(codeJewelModel); }