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);
        }
예제 #2
0
 public async Task <IActionResult> AddLevelOrg(LevelOrgAddArgs args)
 {
     return(Tools.CreateResult(true, "", await _levelOrg.AddAsync(args)));
 }