Exemple #1
0
        /// <summary>
        /// Add the new contact information to the database
        /// </summary>
        /// <param name="contactDetailsModel"></param>
        /// <returns>int</returns>
        public int AddContact(ContactModel contactDetailsModel)
        {
            ContactDO contactDetailsDO = Mapper.Mapper.MapToContactDO(contactDetailsModel);

            if (CheckIfContactAlreadyExist(contactDetailsDO))
            {
                return(2); //2 for contact is already exist in DB
            }
            return(_iContacts.AddContact(contactDetailsDO));
        }
        public IActionResult CreateContact([FromBody] Contact contact)
        {
            if (contact == null)
            {
                return(BadRequest());
            }

            Tuple <bool, bool, bool> notUniqueContactFields = new Tuple <bool, bool, bool>(false, false, false);

            if (String.IsNullOrEmpty(contact.Name) || String.IsNullOrEmpty(contact.Address) || String.IsNullOrEmpty(contact.MobilePhone))
            {
                ModelState.AddModelError("Name/Address/MobilePhone", "Name, Address and MobilePhone shouldn't be empty");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            notUniqueContactFields = _contactsService.CheckUniqueContactFields(contact.ContactId, contact.Name, contact.Address);

            if (notUniqueContactFields.Item1)
            {
                ModelState.AddModelError("ContactId", "ContactId is not unique");
            }
            if (notUniqueContactFields.Item2)
            {
                ModelState.AddModelError("Name", "Name is not unique");
            }
            if (notUniqueContactFields.Item3)
            {
                ModelState.AddModelError("Address", "Address is not unique");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var createdContact = _contactsService.AddContact(contact);
                // Live Update for Client Apps
                _hub.Clients.All.SendAsync("LiveUpdate");

                return(Created("contact", createdContact));
            }
            catch (Exception ex)
            {
                log.Error("PublicAddressBookApiError: ", ex);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }