public IHttpActionResult Update(int id, CodeSnipetDataModel codeSnipet)
        {
            if (!this.ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var existingCodeSnipet = this.data.CodeSnipets.All().FirstOrDefault(a => a.Id == id);

            if (existingCodeSnipet == null)
            {
                return(BadRequest(NO_CODE_SNIPET));
            }

            var currentUserId = this.userIdProvider.GetUserId();

            if (existingCodeSnipet.UserId != currentUserId)
            {
                return(BadRequest(NOT_YOUR_SNIPET));
            }

            existingCodeSnipet.Content  = codeSnipet.Content;
            existingCodeSnipet.Language = codeSnipet.Language;
            existingCodeSnipet.Title    = codeSnipet.Title;
            this.data.SaveChanges();

            codeSnipet.Id      = id;
            codeSnipet.UserId  = existingCodeSnipet.UserId;
            codeSnipet.AddedOn = existingCodeSnipet.AddedOn;
            codeSnipet.Score   = CalculateScoreForSnipet(id);

            UpdateLastActivityForUser();

            return(Ok(codeSnipet));
        }
        public IHttpActionResult Create(CodeSnipetDataModel codeSnipet)
        {
            if (!this.ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var currentUserId = this.userIdProvider.GetUserId();
            var newCodeSnipet = new CodeSnipet
            {
                Content  = codeSnipet.Content,
                Language = codeSnipet.Language,
                Title    = codeSnipet.Title,
                UserId   = currentUserId,
                AddedOn  = DateTime.Now
            };

            this.data.CodeSnipets.Add(newCodeSnipet);
            this.data.SaveChanges();

            UpdateLastActivityForUser();

            return(Ok(newCodeSnipet.Id));
        }