示例#1
0
        public IActionResult Create([FromBody] DataFromPage data)
        {
            if (accountsRepository.IsAccountInSystem(data.accountName) == false)
            {
                return(StatusCode((int)HttpStatusCode.NotFound));
            }

            if (contactsRepository.IsContactInSystem(data.contactEmail))
            {
                Contact updatedContact = contactsRepository.GetContactByEmail(data.contactEmail);
                Account updatedAccount = accountsRepository.GetAccountByName(data.accountName);

                updatedContact.FirstName = data.contactFirstName;
                updatedContact.LastName  = data.contactLastName;
                updatedContact.Email     = data.contactEmail;
                updatedAccount.ContactId = updatedContact.Id;

                contactsRepository.UpdateContact(updatedContact);
                accountsRepository.UpdateAccount(updatedAccount);
            }
            else
            {
                Contact newContact = new Contact
                {
                    FirstName = data.contactFirstName,
                    LastName  = data.contactLastName,
                    Email     = data.contactEmail
                };
                Account updatedAccount = accountsRepository.GetAccountByName(data.accountName);
                updatedAccount.ContactId = newContact.Id;

                contactsRepository.CreateContact(newContact);
                accountsRepository.UpdateAccount(updatedAccount);
            }

            Incident newIncident = new Incident {
                Description = data.incidentDescription, AccountName = data.accountName
            };

            incidentsRepository.CreateIncident(newIncident);
            return(Ok());
        }