我的英语不好,但我会尽力解释的
模特看起来像
incidents -> accounts -> contacts
incident -> account, 1->M,
account -> contact , 1-> M.
添加新事件的逻辑:
1.如果帐户名不在系统中-〉API必须返回404 - NotFound
1.如果联系人在系统中(通过电子邮件检查)-〉更新联系人记录,将联系人链接到帐户
如果帐户不在系统中,一切都是好的(我得到404)。
但是,当帐户存在时,我会遇到重复的异常,因为我试图添加一个与已存在的帐户同名的新帐户。
我该如何解决这个问题?如果帐户已经性别歧视-〉使用这个帐户,不要添加新的。
[HttpPost]
public async Task<ActionResult<Incident>> PostIncident(Incident incident)
{
foreach(var account in incident.Accounts)
{
bool accountexist = _context.Accounts.Any(x => x.Name == account.Name);
if (!accountexist)
return NotFound();
foreach (var contact in account.Contacts)
{
var contactfromdb = _context.Contacts.Where(x => x.Email == contact.Email).FirstOrDefault();
if (contactfromdb != null)
{
contactfromdb.FirstName = contact.FirstName;
contactfromdb.LastName = contact.LastName;
contactfromdb.AccountId = account.Id;
_context.Contacts.Update(contactfromdb);
_context.SaveChanges();
}
}
}
}
下面是经过POST
艾德的JSON数据:
{
"description": "stringаа",
"accounts": [
{
"name": "string3213",
"contacts": [
{
"firstName": "string",
"lastName": "string",
"email": "string231231"
}
]
}
]
}
1条答案
按热度按时间zz2j4svz1#
我认为你应该创建一个服务层。如果你没有找到一个用户,你应该抛出未找到异常。如果已有的数据来了,抛出冲突异常等。
我认为你的项目结构有问题