Esempio n. 1
0
        private GuidKey recursiveUpdateOrInsert(DTOCategoria categoria)
        {
            if (!_context.tabCategorie.Any(x => x.ID == categoria.ID))
            {
                categoria.ID = new Guid();
            }
            var tab = new tabCategorie();

            tab.ID   = categoria.ID;
            tab.Nome = categoria.Nome;
            if (categoria.CategoriaPadre != null)
            {
                tab.IdCategoriaPadre = categoria.CategoriaPadre.ID;
            }
            _context.tabCategorie.AddOrUpdate(tab);
            if (categoria.CategorieFiglie != null)
            {
                foreach (var figlia in categoria.CategorieFiglie)
                {
                    figlia.CategoriaPadre = categoria;
                    recursiveUpdateOrInsert(categoria);
                }
            }
            return(categoria);
        }
Esempio n. 2
0
        protected DTOCategoria mapTable(tabCategorie categorie, bool includiPadre, bool includiFiglie)
        {
            if (categorie == null)
            {
                return(null);
            }
            var ret = new DTOCategoria();

            ret.ID   = categorie.ID;
            ret.Nome = categorie.Nome;
            if (includiPadre && categorie.IdCategoriaPadre.HasValue)
            {
                ret.CategoriaPadre = GetByID(new GuidKey {
                    ID = categorie.IdCategoriaPadre.Value
                });
            }
            if (includiFiglie)
            {
                ret.CategorieFiglie = new List <DTOCategoria>();
                foreach (var det in categorie.CategorieFiglie)
                {
                    ret.CategorieFiglie.Add(mapTable(det, false, true));
                }
            }
            return(ret);
        }