コード例 #1
0
ファイル: JewelController.cs プロジェクト: skolev/CodeJewels
        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);
        }
コード例 #2
0
        private CodeJewelModel DesirializeCodeJewel(CodeJewel code)
        {
            CodeJewelModel model = new CodeJewelModel
            {
                AuthorName = code.AuthorMail,
                CodeJewel  = code.SourceCode,
                Id         = code.Id
            };

            return(model);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        // 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);
        }
コード例 #5
0
        // 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);
        }