Inheritance: System.Data.Linq.DataContext
        public DTTenantInfo GetTenantInfo(String movimiento)
        {
            DTTenantInfo info = new DTTenantInfo();

            var db = new IndignadoDBDataContext();
            var movInfo = db.Movimientos.SingleOrDefault(m => m.url == movimiento);

            if (movInfo == null)
            {
                // si no lo encontro
                throw new FaultException("No existe un movimiento con ese nombre!");
            }

            if (!movInfo.habilitado)
            {
                // si no lo encontro
                throw new FaultException("El movimiento fue deshabilitado!");
            }

            info.name = movInfo.nombre;
            info.habilitado = movInfo.habilitado;
            info.id = movInfo.id;
            info.logo = movInfo.logo;
            info.layoutFile = movInfo.Layout.layoutFile;

            return info;
        }
Example #2
0
        // returns all theme categories.
        public Collection<CategoriasTematica> getThemeCategoriesList()
        {
            // only get theme categories from this movement.
            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
            IEnumerable<CategoriasTematica> themeCategoriesEnum = indignadoContext.ExecuteQuery<CategoriasTematica>("SELECT id, idMovimiento, titulo, descripcion FROM CategoriasTematicas WHERE idMovimiento = {0}", IdMovement);

            Collection<CategoriasTematica> themeCategoriesCol = new Collection<CategoriasTematica>();
            foreach (CategoriasTematica themeCategory in themeCategoriesEnum)
            {
                // get own interest
                if (UserInfo != null)
                {
                    IEnumerable<int> myInterests = indignadoContext.ExecuteQuery<int>("SELECT COUNT(*) FROM Intereses WHERE (idCategoriaTematica = {0}) AND (idUsuario = {1})", themeCategory.id, UserInfo.Id);
                    foreach (int myInterest in myInterests)
                    {
                        themeCategory.miInteres = myInterest;
                    }
                }

                // add item to the collection
                themeCategoriesCol.Add(themeCategory);
            }

            // return the collection
            return themeCategoriesCol;
        }
        // adds a new rss resource.
        public void addRssSource(RssFeed rssSource)
        {
            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
            rssSource.idMovimiento = IdMovement;

            indignadoContext.RssFeeds.InsertOnSubmit(rssSource);
            indignadoContext.SubmitChanges();
        }
        // ******************
        // controller methods
        // ******************
        // creates a movement.
        public void createMovement(Movimiento movement)
        {
            // fixes the movement settings
            movement.habilitado = true;
            movement.url.Replace(' ', '_');
            if (movement.maxMarcasInadecuadasRecursoX < 1)
            {
                movement.maxMarcasInadecuadasRecursoX = 5;
            }
            if (movement.maxRecursosInadecuadosUsuarioZ < 1)
            {
                movement.maxRecursosInadecuadosUsuarioZ = 5;
            }
            if (movement.maxRecursosPopularesN < 1)
            {
                movement.maxRecursosPopularesN = 5;
            }
            if (movement.maxUltimosRecursosM < 1)
            {
                movement.maxUltimosRecursosM = 5;
            }

            // creates the movement.
            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
            indignadoContext.Movimientos.InsertOnSubmit(movement);
            indignadoContext.SubmitChanges();

            // get the movement's id.
            IEnumerable<Movimiento> movementsEnum = indignadoContext.ExecuteQuery<Movimiento> ("SELECT id FROM Movimiento WHERE nombre = {0}", movement.nombre);

            int idMov = -1;
            foreach (Movimiento mov in movementsEnum)
            {
                if (mov.nombre == movement.nombre)
                {
                    idMov = mov.id;
                }
            }

            // creates the movement admin.
            DTRegisterModel user = new DTRegisterModel();
            user.nombre = "movadmin";
            user.apodo = "movadmin";
            user.contraseña = "1234";
            user.idMovimiento = idMov;
            user.latitud = (float)movement.latitud;
            user.longitud = (float)movement.longitud;
            user.mail = movement.nombre + "@tsi1.com.uy";

            Usuario userDb = DTToClass.DTToUsuario(user);
            userDb.banned = false;
            userDb.privilegio = (short) Roles.MovAdminMask;
            userDb.fechaRegistro = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0);
            indignadoContext.Usuarios.InsertOnSubmit(userDb);

            // submit changes to the database
            indignadoContext.SubmitChanges();
        }
 public void disableMovement(int id)
 {
     var db = new IndignadoDBDataContext();
     var mov = db.Movimientos.SingleOrDefault(m => (m.id == id));
     if (mov != null)
     {
         mov.habilitado = false;
         db.SubmitChanges();
     }
 }
        public static void RefreshNewsList(object o)
        {
            try
            {
                var controller = o as NewsResourcesController;

                IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();

                List<Movimiento> movimientos = indignadoContext.Movimientos.ToList();

                foreach (Movimiento mov in movimientos)
                {
                    IEnumerable<RssFeed> fuentesEnum = indignadoContext.ExecuteQuery<RssFeed>
                        ("SELECT * FROM RssFeeds WHERE idMovimiento = {0}", mov.id);

                    // get items from the sources.
                    Collection<List<RssItem>> ColRssLists = new Collection<List<RssItem>>();
                    Collection<String> colRssSourceTitle = new Collection<String>();
                    Collection<String> colRssSourceUrl = new Collection<String>();
                    foreach (RssFeed source in fuentesEnum)
                    {
                        List<RssItem> rssItemsList = RssDocument.Load(new System.Uri(source.url)).Channel.Items;
                        ColRssLists.Add(rssItemsList);
                        colRssSourceTitle.Add(source.titulo);
                        colRssSourceUrl.Add(source.url);
                        if (ColRssLists.Count > 10)
                        {
                            break;
                        }
                    }

                    // add items to the collection.
                    Collection<DTRssItem> rssItemsCol = new Collection<DTRssItem>();
                    if (ColRssLists.Count > 0)
                    {
                        for (int j = 0; j < 10; j++)
                        {
                            List<RssItem> rssItemsList = ColRssLists[j % ColRssLists.Count];
                            if (rssItemsList.Count > (j / ColRssLists.Count))
                            {
                                DTRssItem dtRssItem = ClassToDT.RssItemToDT(rssItemsList[j / ColRssLists.Count]);
                                dtRssItem.sourceTitle = colRssSourceTitle[j % colRssSourceTitle.Count];
                                dtRssItem.sourceUrl = colRssSourceUrl[j % colRssSourceTitle.Count];
                                rssItemsCol.Add(dtRssItem);
                            }
                        }

                        controller._rssItemsCol[mov.id] = rssItemsCol;
                    }
                }
            }
            catch (Exception error) {
            }
        }
        // returns a list of available layouts
        public List<DTLayout> getLayouts()
        {
            var db = new IndignadoDBDataContext();
            var layouts = db.Layouts.ToList();

            var dtList = new List<DTLayout>();

            foreach (var layout in layouts)
            {
                dtList.Add(ClassToDT.LayoutToDT(layout));
            }

            return dtList;
        }
        public DTLoginInfo Login(int idMovimiento, String userName, String password)
        {
            if (null == userName || null == password)
            {
                throw new ArgumentNullException();
            }

            // calculo el hash del password
            HashAlgorithm sha = new SHA1CryptoServiceProvider();
            byte[] passwordHash = sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(password));

            byte[] noPass = new byte[1];
            noPass[0] = 0;

            // busco el usuario en la base de datos
            var db = new IndignadoDBDataContext();
            var user = db.Usuarios.SingleOrDefault(u => (u.idMovimiento == idMovimiento &&
                                          u.apodo == userName &&
                                          u.contraseña == passwordHash &&
                                          u.contraseña != noPass) ||
                                          (u.apodo == userName &&
                                           u.contraseña == passwordHash &&
                                           u.contraseña != noPass &&
                                           (u.privilegio & IndignadoServer.Roles.SysAdminMask) == IndignadoServer.Roles.SysAdminMask));

            // usuario inexistente o contraseña incorrecta.
            if (user == null)
            {
                throw new FaultException("Unknown username or incorrect password");
            }

            // usuario deshabilitado.

            bool isRegUser = true;
            bool isMovAdmin = (user.privilegio & IndignadoServer.Roles.MovAdminMask) == IndignadoServer.Roles.MovAdminMask;
            bool isSysAdmin = (user.privilegio & IndignadoServer.Roles.SysAdminMask) == IndignadoServer.Roles.SysAdminMask;

            if (user.banned && !isMovAdmin && !isSysAdmin)
            {
                Usuario movAdmin = db.Usuarios.SingleOrDefault(u => (u.idMovimiento == idMovimiento) && ((u.privilegio & IndignadoServer.Roles.MovAdminMask) == IndignadoServer.Roles.MovAdminMask));

                throw new FaultException("The user is banned, please contact the movement administrator at " + movAdmin.mail + ".");
            }

            String token = GenerateToken();

            _usersOnline[token] = new UserOnlineInfo(user.id, user.apodo, user.privilegio, idMovimiento, token);

            return new DTLoginInfo(user.apodo, user.id, token, isRegUser, isMovAdmin, isSysAdmin);
        }
Example #9
0
 // ******************
 // controller methods
 // ******************
 // gets the user's movement.
 public Movimiento getMovement()
 {
     // get movement from database
     Movimiento movement;
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     try
     {
         movement = indignadoContext.Movimientos.Single(x => x.id == IdMovement);
     }
     catch
     {
         movement = null;
     }
     return movement;
 }
        // adds a new theme category.
        public void addThemeCategory(CategoriasTematica themeCategory)
        {
            // set foreign ids
            themeCategory.idMovimiento = IdMovement;

            // add the theme category to the database
            try
            {
                IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
                indignadoContext.CategoriasTematicas.InsertOnSubmit(themeCategory);
                indignadoContext.SubmitChanges();
            }
            catch (Exception error)
            {
            }
        }
Example #11
0
        // get interested in a theme category.
        public void getInterestedThemeCategory(CategoriasTematica themeCategory)
        {
            // create an interest
            Interese interest = new Interese();
            interest.idCategoriaTematica = themeCategory.id;
            interest.idUsuario = UserInfo.Id;

            // add interest to the database.
            try
            {
                IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
                indignadoContext.Intereses.InsertOnSubmit(interest);
                indignadoContext.SubmitChanges();
            }
            catch (Exception error)
            {
            }
        }
        public DTUserCreateStatus RegisterUser(DTRegisterModel user)
        {
            DTUserCreateStatus status;
            status = DTUserCreateStatus.Success;

            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
            Usuario userDb = DTToClass.DTToUsuario(user);

            userDb.banned = false;
            userDb.privilegio = 0;
            userDb.fechaRegistro = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0);

            try
            {
                indignadoContext.Usuarios.InsertOnSubmit(userDb);
                indignadoContext.SubmitChanges();
            }
            catch (Exception ex)
            {
                status = DTUserCreateStatus.GenericError;
            }

            return status;
        }
        // converts a resources enumerable to a collection.
        private DTResourcesCol_NewsResources toResourcesCol(IEnumerable<Recurso> recursosEnum, int itemsNumber, int pageNumber)
        {
            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();

            // create new resources datatypes collection.
            DTResourcesCol_NewsResources dtResourcesCol = new DTResourcesCol_NewsResources();
            dtResourcesCol.items = new Collection<DTResource_NewsResources>();

            Collection<Recurso> colecciontrucha = new Collection<Recurso>();
            foreach (Recurso resource in recursosEnum)
            {
                colecciontrucha.Add(resource);
            }

            // get page number
            int itemsCount = colecciontrucha.Count();
            int maxpag = (itemsCount / itemsNumber);
            if (itemsCount  %   itemsNumber != 0){
                maxpag++;
            }
            if (pageNumber > maxpag) {
                pageNumber = maxpag;
            }
            dtResourcesCol.currentPage = pageNumber;
            dtResourcesCol.maxPage = maxpag;

            //recursosEnum = recursosEnum.Skip((pageNumber-1)*itemsNumber);

            // for each resource, ...
            int counter = 0;
            foreach (Recurso resource in colecciontrucha)
            {
                counter++;
                if (counter <= (pageNumber - 1) * itemsNumber)
                {
                    continue;
                }
                

                // get own like
                if (UserInfo != null)
                {
                    IEnumerable<int> iLikesIt = indignadoContext.ExecuteQuery<int>("SELECT COUNT(*) FROM Aprobaciones WHERE (idRecurso = {0}) AND (idUsuario = {1})", resource.id, UserInfo.Id);
                    foreach (int iLikeIt in iLikesIt)
                    {
                        resource.meGusta = iLikeIt;
                    }
                }

                // get own mark as inappropriate
                if (UserInfo != null)
                {
                    IEnumerable<int> myMarksInappr = indignadoContext.ExecuteQuery<int>("SELECT COUNT(*) FROM MarcasInadecuados WHERE (idRecurso = {0}) AND (idUsuario = {1})", resource.id, UserInfo.Id);
                    foreach (int myMarkInappr in myMarksInappr)
                    {
                        resource.yoMarqueInadecuado = myMarkInappr;
                    }
                }

                // add item to the collection
                dtResourcesCol.items.Add(ClassToDT.ResourceToDT_NewsResources(resource));

                // stop at the desired number of items.
                if (dtResourcesCol.items.Count >= itemsNumber)
                {
                    break;
                }
            }

            return dtResourcesCol;
        }
        public DTLoginInfo LoginFB(int idMovimiento, String accesToken)
        {
            if (null == accesToken)
            {
                throw new ArgumentNullException();
            }

            FacebookUser fbUser = Facebook.GetInfo(accesToken);

            // busco el usuario en la base de datos
            var db = new IndignadoDBDataContext();

            var fbUserDB = db.UsuarioFacebooks.SingleOrDefault(u => (u.idMovimiento == idMovimiento &&
                                          u.idFacebook == fbUser.id));

            if (fbUserDB == null)
            {
                throw new FaultException<LoginFault>(new LoginFault("El usuario logueado por facebook no se encuentra registrado", DTLoginFaultType.FB_NOT_REGISTERED));
            }

            var userDB = db.Usuarios.SingleOrDefault(u => (u.id == fbUserDB.idUsuario));

            if (userDB.banned)
            {
                Usuario movAdmin = db.Usuarios.SingleOrDefault(u => (u.idMovimiento == idMovimiento) && ((u.privilegio & IndignadoServer.Roles.MovAdminMask) == IndignadoServer.Roles.MovAdminMask));

                throw new FaultException("The user is banned, please contact the movement administrator at " + movAdmin.mail + ".");
            }

            String token = GenerateToken();

            _usersOnline[token] = new UserOnlineInfo(userDB.id, userDB.apodo, userDB.privilegio, idMovimiento, token);

            bool isRegUser = true;
            bool isMovAdmin = (userDB.privilegio & IndignadoServer.Roles.MovAdminMask) == IndignadoServer.Roles.MovAdminMask;
            bool isSysAdmin = (userDB.privilegio & IndignadoServer.Roles.SysAdminMask) == IndignadoServer.Roles.SysAdminMask;

            return new DTLoginInfo(userDB.apodo, userDB.id, token, isRegUser, isMovAdmin, isSysAdmin);
        }
        public DTUserCreateStatus RegisterFBUser(DTRegisterFBModel user)
        {
            DTUserCreateStatus status;
            status = DTUserCreateStatus.Success;

            FacebookUser fbUser = Facebook.GetInfo(user.token);

            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
            Usuario userDb = new Usuario();

            userDb.nombre = fbUser.name;
            userDb.apodo = fbUser.first_name;
            userDb.mail = fbUser.email;
            userDb.idMovimiento = user.idMovimiento;
            userDb.latitud = user.latitud;
            userDb.longitud = user.longitud;

            byte[] noPass = new byte[1];
            noPass[0] = 0;
            userDb.contraseña = noPass;

            userDb.banned = false;
            userDb.privilegio = 0;
            userDb.fechaRegistro = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0);

            try
            {
                indignadoContext.Usuarios.InsertOnSubmit(userDb);
                indignadoContext.SubmitChanges();
            }
            catch (Exception ex)
            {
                status = DTUserCreateStatus.GenericError;
            }

            if (status == DTUserCreateStatus.Success)
            {
                UsuarioFacebook fbUserDb = new UsuarioFacebook();
                fbUserDb.idUsuario = userDb.id;
                fbUserDb.idFacebook = (int) fbUser.id;
                fbUserDb.idMovimiento = user.idMovimiento;

                indignadoContext.UsuarioFacebooks.InsertOnSubmit(fbUserDb);
                indignadoContext.SubmitChanges();
            }

            return status;
        }
Example #16
0
 // get uninterested in a theme category.
 public void getUninterestedThemeCategory(CategoriasTematica themeCategory)
 {
     // remove interest from the database.
     try
     {
         IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
         indignadoContext.ExecuteCommand("DELETE FROM Intereses WHERE (idCategoriaTematica = {0}) AND (idUsuario = {1})", themeCategory.id, UserInfo.Id);
         indignadoContext.SubmitChanges();
     }
     catch (Exception error)
     {
     }
 }
 // returns all resources published by the movement admin.
 public DTResourcesCol_NewsResources getResourcesListMovAdmin(int pageNumber)
 {
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     Usuario movAdmin = indignadoContext.Usuarios.SingleOrDefault(u => (u.idMovimiento == IdMovement) && ((u.privilegio & IndignadoServer.Roles.MovAdminMask) == IndignadoServer.Roles.MovAdminMask));
     IEnumerable<Recurso> resourcesEnum = indignadoContext.ExecuteQuery<Recurso>
         ("SELECT Recursos.id, Recursos.idUsuario, Usuarios.apodo AS apodoUsuario, titulo, descripcion, fecha, tipo, urlLink, urlImage, urlVideo, urlThumb, CantAprobaciones.cantAprobaciones FROM Recursos LEFT JOIN Usuarios ON (Usuarios.id = Recursos.idUsuario) LEFT JOIN (SELECT idRecurso, COUNT (idUsuario) AS cantAprobaciones FROM Aprobaciones GROUP BY idRecurso) CantAprobaciones ON (CantAprobaciones.idRecurso = Recursos.id) WHERE (Usuarios.idMovimiento = {0}) AND (Usuarios.id = {1}) ORDER BY Recursos.id DESC", IdMovement, movAdmin.id);
     Movimiento movement = indignadoContext.Movimientos.Single(x => x.id == IdMovement);
     return toResourcesCol(resourcesEnum, movement.maxUltimosRecursosM, pageNumber);
 }
Example #18
0
 // updates the data of the user.
 public void setUser(Usuario user)
 {
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     indignadoContext.ExecuteCommand("UPDATE Usuarios SET nombre = {0}, mail = {1}, latitud = {2}, longitud = {3} WHERE id = {4}", user.nombre, user.mail, user.latitud, user.longitud, UserInfo.Id);
     if (user.contraseña != null)
     {
         indignadoContext.ExecuteCommand("UPDATE Usuarios SET contraseña = {0} WHERE id = {1}", user.contraseña, UserInfo.Id);
     }
 }
 // returns all the data of the user.
 public Usuario getUser(Usuario user)
 {
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     Usuario fullUser = indignadoContext.Usuarios.SingleOrDefault(u => (u.id == user.id));
     if (fullUser.idMovimiento != IdMovement) 
     {
         throw new FaultException ("The user doesn't belong to the movement");
     }
     else {
         return fullUser;
     }
 }
        // mark a resource as inappropriate.
        public void markResourceInappropriate(Recurso resource)
        {
            // create a markInappropriate
            MarcasInadecuado markInappropriate = new MarcasInadecuado();
            markInappropriate.idRecurso = resource.id;
            markInappropriate.idUsuario = UserInfo.Id;

            try
            {
                // get database context.
                IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();

                // get the movement.
                Movimiento movement = indignadoContext.Movimientos.Single(x => x.id == IdMovement);

                // add markInappropriate to the database.
                indignadoContext.MarcasInadecuados.InsertOnSubmit(markInappropriate);
                indignadoContext.SubmitChanges();
                indignadoContext = new IndignadoDBDataContext();

                // get number of marks of the resource.
                int numberMarksResource = 0;
                IEnumerable<int> numbersMarksR = indignadoContext.ExecuteQuery<int>("SELECT COUNT(*) FROM MarcasInadecuados WHERE (idRecurso = {0})", resource.id);
                foreach (int numberMarksR in numbersMarksR)
                {
                    numberMarksResource = numberMarksR;
                }

                // if number of marks matches X, disable the resource.
                if (numberMarksResource >= movement.maxMarcasInadecuadasRecursoX)
                {
                    indignadoContext.ExecuteQuery<int>("UPDATE Recursos SET deshabilitado = {0} WHERE id = {1}", 1, resource.id);
                }

                // get this resources's user id.
                int thisUserId = -1;
                IEnumerable<int> thisUsersID = indignadoContext.ExecuteQuery<int>("SELECT idUsuario FROM Recursos WHERE (id = {0})", resource.id);
                foreach (int thisUserID in thisUsersID)
                {
                    thisUserId = thisUserID;
                }

                // get number of disabled resources published by this resources's user.
                int numberMarksUser = 0;
                IEnumerable<int> numbersMarksU = indignadoContext.ExecuteQuery<int>
                    ("SELECT COUNT(*) FROM Recursos WHERE (idUsuario = {0}) AND (deshabilitado = {1})", thisUserId, 1);
                foreach (int numberMarksU in numbersMarksU)
                {
                    numberMarksUser = numberMarksU;
                }

                // if number of marks matches Z, ban the user.
                if (numberMarksUser >= movement.maxRecursosInadecuadosUsuarioZ)
                {
                    indignadoContext.ExecuteQuery<int>("UPDATE Usuarios SET banned = {0} WHERE id = {1}", true, thisUserId);
                }

                // commit changes to the database.
                indignadoContext.SubmitChanges();
            }
            catch (Exception error)
            {
            }
        }
 // unlikes a resource.
 public void unlikeResource(Recurso resource)
 {
     // remove likeResource from the database.
     try
     {
         IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
         indignadoContext.ExecuteCommand("DELETE FROM Aprobaciones WHERE (idRecurso = {0}) AND (idUsuario = {1})", resource.id, UserInfo.Id);
         indignadoContext.SubmitChanges();
     }
     catch (Exception error)
     {
     }
 }
        // likes a resource.
        public void likeResource(Recurso resource)
        {
            // create a likeResource
            Aprobacione likeResource = new Aprobacione();
            likeResource.idRecurso = resource.id;
            likeResource.idUsuario = UserInfo.Id;

            // add likeResource to the database.
            try
            {
                IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
                indignadoContext.Aprobaciones.InsertOnSubmit(likeResource);
                indignadoContext.SubmitChanges();
            }
            catch (Exception error)
            {
            }
        }
 // removes a resource by the user.
 public void removeResource(Recurso resource)
 {
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     Recurso fullResource = indignadoContext.Recursos.SingleOrDefault(res => (res.id == resource.id));
     if ((fullResource != null) && (fullResource.idUsuario == UserInfo.Id))
     {
         try
         {
             indignadoContext.ExecuteCommand("DELETE FROM Aprobaciones WHERE idRecurso = {0}", resource.id);
             indignadoContext.ExecuteCommand("DELETE FROM MarcasInadecuados WHERE idRecurso = {0}", resource.id);
             indignadoContext.SubmitChanges();
             indignadoContext = new IndignadoDBDataContext();
             indignadoContext.ExecuteCommand("DELETE FROM Recursos WHERE (id = {0}) AND (idUsuario = {1})", resource.id, UserInfo.Id);
             indignadoContext.SubmitChanges();
         }
         catch (Exception error)
         {
         }
     }
 }
        // creates a resource.
        public void createResource(Recurso resource)
        {
            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();

            // set internal and foreign ids
            resource.idUsuario = UserInfo.Id;
            resource.fecha = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0);
            resource.deshabilitado = 0;

            indignadoContext.Recursos.InsertOnSubmit(resource);
            indignadoContext.SubmitChanges();
        }
 // unmark a resource as inappropriate.
 public void unmarkResourceInappropriate(Recurso resource)
 {
     // remove markInappropriate from the database.
     try
     {
         IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
         indignadoContext.ExecuteCommand("DELETE FROM MarcasInadecuados WHERE (idRecurso = {0}) AND (idUsuario = {1})", resource.id, UserInfo.Id);
         indignadoContext.SubmitChanges();
     }
     catch (Exception error)
     {
     }
 }
 // returns all resources.
 public DTResourcesCol_NewsResources getResourcesList(int pageNumber)
 {
     // get all resources from this movement.
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     IEnumerable<Recurso> recursosEnum = indignadoContext.ExecuteQuery<Recurso>
         ("SELECT Recursos.id, Recursos.idUsuario, Usuarios.apodo AS apodoUsuario, titulo, descripcion, fecha, tipo, urlLink, urlImage, urlVideo, urlThumb, CantAprobaciones.cantAprobaciones FROM Recursos LEFT JOIN Usuarios ON (Usuarios.id = Recursos.idUsuario) LEFT JOIN (SELECT idRecurso, COUNT (idUsuario) AS cantAprobaciones FROM Aprobaciones GROUP BY idRecurso) CantAprobaciones ON (CantAprobaciones.idRecurso = Recursos.id) WHERE (Usuarios.idMovimiento = {0}) AND (Recursos.deshabilitado = {1}) ORDER BY Recursos.id DESC", IdMovement, 0);
     Movimiento movement = indignadoContext.Movimientos.Single(x => x.id == IdMovement);
     return toResourcesCol(recursosEnum, movement.maxUltimosRecursosM, pageNumber);
 }
 // reallows a resource.
 public void enableResource(Recurso resource)
 {
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     indignadoContext.ExecuteCommand("UPDATE Recursos SET deshabilitado = {0} WHERE id = {1}", 0, resource.id);
 }
Example #28
0
        private ChatUser GetChatUser(int userId)
        {
            var db = new IndignadoDBDataContext();
            var user = db.Usuarios.SingleOrDefault(u => (u.id == userId));

            if (user == null)
                throw new FaultException("Ese usuario no existe!");

            ChatUser chatUser = new ChatUser();
            chatUser.id = user.id;
            chatUser.nick = user.nombre;

            return chatUser;
        }
Example #29
0
 // returns the data of the user.
 public Usuario getUser()
 {
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     IEnumerable<Usuario> usersEnum = indignadoContext.ExecuteQuery<Usuario>
         ("SELECT * FROM Usuarios WHERE (id = {0})", UserInfo.Id);
     return usersEnum.First();
 }
        // returns all movements
        public Collection<Movimiento> getMovementsList()
        {
            // create new movements datatype collection
            Collection<Movimiento> movementsCol = new Collection<Movimiento>();

            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();

            foreach (Movimiento movement in indignadoContext.Movimientos)
            {
                movementsCol.Add(movement);
            }

            // return the collection
            return movementsCol;
        }