Esempio n. 1
0
        public async Task <IActionResult> UpdateContact(ContactEditData contactEditData)
        {
            var response = await this._contactService.UpdateContactAsync(contactEditData);

            if (!response.Success)
            {
                return(BadRequest(response.Message));
            }

            await _hubContext.Clients.All.BroadcastMessage();

            return(Ok());
        }
Esempio n. 2
0
        public async Task <ServiceResult> UpdateContactAsync(ContactEditData model)
        {
            var contact = await this.Context.Contacts
                          .Include(c => c.PhoneNumbers)
                          .FirstOrDefaultAsync(c => c.Id == model.Id);

            if (contact == null)
            {
                return(this.Failure("Contact not found"));
            }

            contact.Name        = model.Name;
            contact.DateOfBirth = model.DateOfBirth;
            contact.Address     = model.Address;

            // Wipeout old numbers and insert new ones
            if (contact.PhoneNumbers.Any())
            {
                foreach (var oldPhoneNumber in contact.PhoneNumbers)
                {
                    this.Context.Remove(oldPhoneNumber);
                }
            }

            foreach (var phoneNumber in model.PhoneNumbers)
            {
                var newPhoneNumber = new PhoneNumber
                {
                    Number      = phoneNumber.Number,
                    CountryCode = phoneNumber.CountryCode,
                    Description = phoneNumber.Description
                };

                contact.PhoneNumbers.Add(newPhoneNumber);
            }

            this.Context.Update(contact);

            var response = await this.SaveAll();

            return(response);
        }
Esempio n. 3
0
        public async Task <ServiceResult> InsertContactAsync(ContactEditData model)
        {
            var contact = this.CreateNewEntity <Contact>();

            contact.Name        = model.Name;
            contact.DateOfBirth = model.DateOfBirth;
            contact.Address     = model.Address;

            var newPhoneNumbers = model.PhoneNumbers
                                  .Select(p => new PhoneNumber
            {
                ContactId   = contact.Id,
                Number      = p.Number,
                CountryCode = p.CountryCode,
                Description = p.Description
            }).ToList();

            contact.PhoneNumbers = newPhoneNumbers;
            await this.Context.AddAsync(contact);

            var response = await this.SaveAll();

            return(response);
        }