public static Usuario DTToUser(DTUser dtUser) { Usuario user = new Usuario(); user.id = dtUser.id; user.apodo = dtUser.username; user.nombre = dtUser.fullName; user.mail = dtUser.mail; user.fechaRegistro = dtUser.registerDate; user.latitud = dtUser.locationLati; user.longitud = dtUser.locationLong; user.cantRecursosMarcadosInadecuados = dtUser.numberResourcesMarkedInappr; user.cantRecursosDeshabilitados = dtUser.numberResourcesDisabled; user.banned = dtUser.banned; if (dtUser.password != null) { HashAlgorithm sha = new SHA1CryptoServiceProvider(); byte[] passwordHash = sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(dtUser.password)); user.contraseña = passwordHash; } return user; }
public static DTUser_Users UserToDT_Users(Usuario user) { DTUser_Users dtUser = new DTUser_Users(); dtUser.id = user.id; dtUser.username = user.apodo; dtUser.fullName = user.nombre; dtUser.mail = user.mail; dtUser.registerDate = (user.fechaRegistro == null) ? new DateTime() : user.fechaRegistro.Value; dtUser.locationLati = (float)user.latitud; dtUser.locationLong = (float)user.longitud; dtUser.numberResourcesMarkedInappr = (user.cantRecursosMarcadosInadecuados == null) ? 0 : user.cantRecursosMarcadosInadecuados.Value; dtUser.numberResourcesDisabled = (user.cantRecursosDeshabilitados == null) ? 0 : user.cantRecursosDeshabilitados.Value; dtUser.banned = user.banned; return dtUser; }
// 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); } }
public static Usuario DTToUsuario(DTRegisterModel dtUser) { Usuario user = new Usuario(); user.idMovimiento = dtUser.idMovimiento; user.latitud = dtUser.latitud; user.longitud = dtUser.longitud; user.mail = dtUser.mail; user.nombre = dtUser.nombre; user.apodo = dtUser.apodo; HashAlgorithm sha = new SHA1CryptoServiceProvider(); byte[] passwordHash = sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(dtUser.contraseña)); user.contraseña = passwordHash; return user; }
partial void UpdateUsuario(Usuario instance);
partial void DeleteUsuario(Usuario instance);
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; }
partial void InsertUsuario(Usuario instance);
// 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; } }
// returns all resources published by the given user. public DTResourcesCol_NewsResources getResourcesListUser(Usuario user, int pageNumber) { IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext(); 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, user.id); Movimiento movement = indignadoContext.Movimientos.Single(x => x.id == IdMovement); return toResourcesCol(resourcesEnum, movement.maxUltimosRecursosM, pageNumber); }
// bans a user. public void banUser(Usuario user) { IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext(); indignadoContext.ExecuteCommand("UPDATE Usuarios SET banned = {0} WHERE id = {1}", 1, user.id); }
// returns all the data of the user. public Usuario getUser(Usuario user) { IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext(); Usuario userFull = indignadoContext.Usuarios.SingleOrDefault(u => (u.id == user.id)); // get number of resources marked as inappropriate. IEnumerable<int> numbersMarksInappropriateResources = indignadoContext.ExecuteQuery<int> ("SELECT COUNT(*) FROM (SELECT idRecurso FROM MarcasInadecuados GROUP BY idRecurso) RecursosMarcadosInadecuado LEFT JOIN Recursos ON Recursos.id = RecursosMarcadosInadecuado.idRecurso WHERE Recursos.idUsuario = {0}", userFull.id); foreach (int numberMarksInappropriateResources in numbersMarksInappropriateResources) { userFull.cantRecursosMarcadosInadecuados = numberMarksInappropriateResources; } // get number of disabled resources. IEnumerable<int> numbersDisabledResources = indignadoContext.ExecuteQuery<int> ("SELECT COUNT(*) FROM Recursos WHERE (idUsuario = {0}) AND (deshabilitado = {1})", userFull.id, 1); foreach (int numberDisabledResources in numbersDisabledResources) { userFull.cantRecursosDeshabilitados = numberDisabledResources; } return userFull; }
// returns all resources published by the given user. public Collection<Recurso> getResourcesListUser(Usuario user) { IndignadoDBDataContext indignadoContext = new IndignadoDBDataContext(); IEnumerable<Recurso> resourcesEnum = indignadoContext.ExecuteQuery<Recurso> ("SELECT Recursos.id, Recursos.idUsuario, Usuarios.apodo AS apodoUsuario, titulo, descripcion, fecha, tipo, urlLink, urlImage, urlVideo, urlThumb, deshabilitado, CantAprobaciones.cantAprobaciones, CantMarcasInadecuados.cantMarcasInadecuado 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) LEFT JOIN (SELECT idRecurso, COUNT (idUsuario) AS cantMarcasInadecuado FROM MarcasInadecuados GROUP BY idRecurso) CantMarcasInadecuados ON (CantMarcasInadecuados.idRecurso = Recursos.id) WHERE (Usuarios.id = {0}) ORDER BY CantMarcasInadecuados.cantMarcasInadecuado DESC, Recursos.id DESC", user.id); return toResourcesCol(resourcesEnum); }