Exemple #1
0
        //--TIENDAS--
        public void AgregarTienda(Tienda tienda, string idAdmin)
        {
            try
            {
                if (tienda == null)
                {
                    throw new Exception("Debe pasar una tienda.");
                }
                using (var context = ChebayDBPublic.CreatePublic())
                {
                    var qAdmin = from ad in context.administradores
                                 where ad.AdministradorID == idAdmin
                                 select ad;
                    if (tienda.administradores == null)
                    {
                        tienda.administradores = new HashSet <Administrador>();
                    }
                    tienda.administradores.Add(qAdmin.FirstOrDefault());
                    Personalizacion p = new Personalizacion
                    {
                        PersonalizacionID = tienda.TiendaID,
                        template          = 1,
                        algoritmo         = null
                    };
                    context.personalizaciones.Add(p);
                    context.tiendas.Add(tienda);
                    context.SaveChanges();

                    Debug.WriteLine("Creando schema...");
                    ChebayDBContext.ProvisionTenant(tienda.TiendaID);
                    Debug.WriteLine("Tienda " + tienda.TiendaID + " creada con éxito.");

                    //Crea la Categoria Raiz.
                    var schema = ChebayDBContext.CreateTenant(tienda.TiendaID);
                    CategoriaCompuesta raiz = new CategoriaCompuesta();
                    raiz.Nombre = "/";
                    raiz.hijas  = new List <Categoria>();
                    schema.categorias.Add(raiz);
                    schema.SaveChanges();
                    Debug.WriteLine("Categoría raíz de " + tienda.TiendaID + " creada con éxito.");
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
                //Dropear las tablas creadas.
            }
        }