示例#1
0
        public HttpResponseMessage PutContact(int id, ContactDto contactDto)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            var model = contactDto.ToEntity();

            if (db.Entry(model).Entity.UserId != User.Identity.Name)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }
            else
            {
                model.UserId = User.Identity.Name;
            }

            db.Entry(model).State = EntityState.Modified;

            try {
                db.SaveChanges();
            } catch (DbUpdateConcurrencyException) {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
示例#2
0
        public HttpResponseMessage PutUser(long id, ContactDto contactDto)
        {
            // Check valid parameter
            if (!contactDto.ContactId.Equals(id))
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, INVALID_PARAMEATER));
            }

            using (var db = new MishWishEntities())
            {
                // Get original contact detail.
                var contactUser = db.Contacts.FirstOrDefault(u => u.ContactId == id);

                // Check contact is exist or not
                if (contactUser == null)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, USER_NOT_FOUND));
                }

                // Convert user DTO to entity.
                var contactEntity = contactDto.ToEntity();

                try
                {
                    db.Entry(contactUser).CurrentValues.SetValues(contactEntity);
                    db.SaveChanges();
                }
                catch (DbUpdateException ex)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, REQUIRED_FIELD));
                }
                catch (Exception exGeneral)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, exGeneral.GetType().ToString()));
                }

                // Bind return Contact DTO.
                ContactDto returnUser = new ContactDto(contactEntity)
                {
                    Message = USER_SUCCESS_UPDATED
                };

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, returnUser);
                return(response);
            }
        }
示例#3
0
        public void Create(ContactDto contact)
        {
            ValidateContact(contact);

            _unitOfWork.BeginTransaction();

            var repository = _unitOfWork.GetRepository <IContactRepository>();

            if (repository.GetByPhoneNumber(contact.PhoneNumber) != null)
            {
                throw new PhonebookException("Contact with this phone number already exists");
            }

            repository.Create(contact.ToEntity());

            _unitOfWork.Save();
        }
示例#4
0
        public HttpResponseMessage PostContact(ContactDto contactDto)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }



            var model = contactDto.ToEntity();

            model.UserId = User.Identity.Name;
            db.Contacts.Add(model);
            db.SaveChanges();
            contactDto.ContactId = model.ContactId;

            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, contactDto);

            response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = contactDto.ContactId }));
            return(response);
        }
示例#5
0
        public HttpResponseMessage PostContact(ContactDto contactDto)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            using (var db = new MishWishEntities())
            {
                // Convert contact DTO to entity.
                var contactEntity = contactDto.ToEntity();

                try
                {
                    db.Contacts.Add(contactEntity);
                    db.SaveChanges();
                }
                catch (DbUpdateException)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, REQUIRED_FIELD));
                }
                catch (Exception exGeneral)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, exGeneral.GetType().ToString()));
                }

                // Bind return contact DTO.
                ContactDto returnUser = new ContactDto(contactEntity)
                {
                    Message = USER_SUCCESS_MESSAGE
                };

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, returnUser);
                return(response);
            }
        }