예제 #1
0
        // ******************
        // 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();
        }
예제 #2
0
        // adds a new rss resource.
        public void addRssSource(RssFeed rssSource)
        {
            IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
            rssSource.idMovimiento = IdMovement;

            indignadoContext.RssFeeds.InsertOnSubmit(rssSource);
            indignadoContext.SubmitChanges();
        }
예제 #3
0
 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();
     }
 }
예제 #4
0
        // 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)
            {
            }
        }
예제 #5
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)
            {
            }
        }
예제 #6
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)
     {
     }
 }
예제 #7
0
        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;
        }
예제 #8
0
        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;
        }
 // 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)
     {
     }
 }
        // 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();
        }
예제 #15
0
 // changes the configuration of the movement.
 public void setMovement(Movimiento movement)
 {
     IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext();
     Movimiento mov = indignadoContext.Movimientos.SingleOrDefault(m => m.id == IdMovement);
     mov.nombre = movement.nombre;
     mov.descripcion = movement.descripcion;
     mov.latitud = movement.latitud;
     mov.longitud = movement.longitud;
     mov.idLayout = movement.idLayout;
     if ((movement.logo != null) && (movement.logo != ""))
     {
         mov.logo = movement.logo;
     }
     mov.maxMarcasInadecuadasRecursoX = movement.maxMarcasInadecuadasRecursoX;
     mov.maxRecursosInadecuadosUsuarioZ = movement.maxRecursosInadecuadosUsuarioZ;
     mov.maxRecursosPopularesN = movement.maxRecursosPopularesN;
     mov.maxUltimosRecursosM = movement.maxUltimosRecursosM;
     indignadoContext.SubmitChanges();
     //indignadoContext.ExecuteCommand("UPDATE Movimiento SET nombre = {0}, descripcion = {1}, latitud = {2}, longitud = {3}, idLayout = {4}, logo={6} WHERE id = {5}", movement.nombre, movement.descripcion, movement.latitud, movement.longitud, movement.idLayout, IdMovement);
 }