public HttpResponseMessage AddCertificate(
            [FromBody] CertificateCreateModel model, [FromUri] string sessionKey)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions(() =>
            {
                this.ValidateCertificateName(model.Name);
                this.ValidateCertificateUrl(model.Url);

                var user        = this.GetUserBySessionKey(sessionKey);
                var certificate = new Certificate()
                {
                    Name = model.Name,
                    Url  = model.Url
                };

                user.Certificates.Add(certificate);
                this.db.Users.Update(user);
                this.db.SaveChanges();

                var returnData = new CertificateModel()
                {
                    Id   = certificate.Id,
                    Name = certificate.Name
                };

                var response = this.Request.CreateResponse(HttpStatusCode.Created, returnData);
                return(response);
            });

            return(responseMsg);
        }
Пример #2
0
        public void AddCertificate_WhenNameIsNull_ShouldReturnBadRequest()
        {
            using (new TransactionScope())
            {
                this.db.Users.Add(user);
                this.db.SaveChanges();

                var certificate = new CertificateCreateModel()
                {
                    Url = "asd"
                };

                var response = this.httpServer.CreatePostRequest(
                    string.Format("/api/certificates/add?sessionKey={0}", this.user.SessionKey),
                    certificate);
                Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
            }
        }
Пример #3
0
        public void AddCertificate_WhenDataIsValid_ShouldSaveInDatabase()
        {
            using (new TransactionScope())
            {
                this.db.Users.Add(user);
                this.db.SaveChanges();

                var certificate = new CertificateCreateModel()
                {
                    Name = "asd",
                    Url  = "asd"
                };

                var response = this.httpServer.CreatePostRequest(
                    string.Format("/api/certificates/add?sessionKey={0}", this.user.SessionKey),
                    certificate);
                Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);

                var returnedData = this.GetCertificateModelFromResponse(response);
                Assert.IsNotNull(returnedData);
                Assert.AreEqual(0, this.user.Certificates.Count());
            }
        }