public async Task <ResultCrmDb> AddAsync(LevelOrgAddArgs args) { var result = new ResultCrmDb(); var toAdd = new t_levelorg(); try { var org = await _crmDbContext.t_levelorg.FirstOrDefaultAsync(r => r.Inn == args.Inn& r.Kpp == args.Kpp& r.Oktmo == args.Oktmo); if (org != null) { result.AddError("", "Организация с такими ИНН, КПП, ОКТМО уже существует!"); return(result); } var l = _crmDbContext.t_levelorg.Count(); toAdd = args; if (toAdd.Parent == null || toAdd.Parent == 0) { if (await _crmDbContext.t_levelorg.FirstOrDefaultAsync(f => f.Parent == null || f.Parent == 0) != null) { throw new Exception("Не возможно иметь 2 основных уровня levelorg"); } else { if (_crmDbContext.t_levelorg.Count() != 0) { if (await _crmDbContext.t_levelorg.FirstOrDefaultAsync(f => toAdd.Parent.ToString() == f.Sysid.ToString()) == null) { throw new Exception("Не существует родительской записи для levelorg"); } } } } await _crmDbContext.t_levelorg.AddAsync(toAdd); await _crmDbContext.SaveChangesAsync(); } catch (Exception e) { result.AddError("", e.Message); } return(result); }
public async Task <IActionResult> AddLevelOrg(LevelOrgAddArgs args) { return(Tools.CreateResult(true, "", await _levelOrg.AddAsync(args))); }