/// <summary> /// Agrega curso y carga archivos /// </summary> /// <param name="entity"></param> /// <param name="appPath"></param> /// <param name="fileStream"></param> public void AddCurso(Curso entity, string appPath, Stream fileStream) { // -- Seteo propiedades entity.Activo = true; entity.FechaAlta = DateTime.Now; // -- Cargado false porque aun no se suben archivos entity.Cargado = false; // -- Itero hasta obtener guid no usado bool flag = true; while (flag) { // -- Obtengo el friendly guid entity.FilesFolder = GuidEncoder.Encode(Guid.NewGuid()); // -- Obtengo si esta disponible bool disponible = Dalc.FilePathDisponible(entity.FilesFolder); if (disponible) { // -- Cambio flag flag = false; } } // -- Obtengo usuario logueado var usuarioLogueado = SessionManager.Get <Usuario>(Global.SessionsKeys.USER_SESSION); //Si el usuario no es administrador del sitio o administrador guardo la empresa if (usuarioLogueado.Rol.EntityID != Convert.ToInt64(Global.Roles.ADMINISTRADOR) || usuarioLogueado.Rol.EntityID != Convert.ToInt64(Global.Roles.ADMINISTRADOR_SITIO)) { entity.Empresa = new EmpresaLogic().GetByID(usuarioLogueado.Empresa.EntityID); } base.Add(entity); //Si es diferente de null implica que el curso lo creo una empresa, por lo tanto se lo asigno directamente if (entity.Empresa != null) { AsignarCursoEmpresa(entity.Empresa.EntityID, entity.EntityID); } #region Creacion de carpeta y subida de archivos // -- Concateno appPath += entity.FilesFolder; // -- Subida de archivos using (ZipFile zip = ZipFile.Read(fileStream)) { // -- Creo directorio System.IO.Directory.CreateDirectory(appPath); // -- Descomprimo zip.ExtractAll(appPath); } // -- Actualizo el estado de subida entity.Cargado = true; Dalc.Update(entity); #endregion // -- Copiar archivos en }