Ejemplo n.º 1
0
        private bool MatchMIMETipus(string mimeType, string extensio, TipusDocument tipusDocument)
        {
            bool correcte = false;

            if (tipusDocument == TipusDocument.LinkExtern || tipusDocument == TipusDocument.LinkYoutube)
            {
                correcte = true;
            }
            else
            {
                if (mimeType == "application/msword" || //.doc
                    mimeType == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" || //.docx
                    mimeType == "application/vnd.oasis.opendocument.text" ||
                    mimeType == "application/pdf" || //.pdf
                    mimeType == "text/plain" || //.txt
                    mimeType == "application/vnd.ms-powerpoint" || //.ppt
                    mimeType == "application/vnd.openxmlformats-officedocument.presentationml.presentation" || //.pptx
                    ((mimeType == "multipart/x-zip" || mimeType == "application/zip" || (mimeType == "application/octet-stream" && extensio == ".zip")) && tipusDocument == TipusDocument.Practica)) //Les practiques poden estar tambe en format .zip
                {
                    correcte = true;
                }
            }

            return correcte;
        }
Ejemplo n.º 2
0
        public ActionResult Filtrar(TipusDocument Tipus)
        {
            using (var connection = new MySqlConnection(ConnectionString))
            {
                Log.Info("Filtrar documents per tipus: " + Tipus.ToString());

                connection.Open();
                var command = new MySqlCommand("SELECT d.Id, d.Nom, d.Tipus, d.DataAfegit, d.IdUsuari, u.Username, d.IdAssignatura, a.Nom AS NomAssignatura, c.Nom AS NomCarrera," +
                                               " IF(EXISTS(SELECT v.IdDocument FROM Valoracions v WHERE v.IdDocument = d.Id), (SELECT AVG(v.Valoracio) FROM Valoracions v WHERE v.IdDocument = d.Id), 0) AS Valoracio " +
                                               " FROM Documents d, Usuaris u, Assignatures a, Carreres c" +
                                               " WHERE d.IdUsuari = u.Id AND d.IdAssignatura = a.Id AND a.IdCarrera = c.Id" +
                                               " AND d.Tipus = @TipusDocument" +
                                               " AND (IdAssignatura IN (SELECT a.Id FROM Assignatures a, Matricules m WHERE a.IdCarrera = m.IdCarrera AND a.Curs = m.Curs AND m.IdUsuari = @IdUsuari)" +
                                               " OR IdUsuari IN (SELECT Id FROM Usuaris u, Subscripcions s WHERE u.Id = s.IdUsuariSubscrit AND s.IdUsuariSubscriu = @IdUsuari))" +
                                               " ORDER BY DataAfegit DESC" +
                                               " LIMIT 100", connection);

                command.Parameters.AddWithValue("@IdUsuari", IdUsuari);
                command.Parameters.AddWithValue("@TipusDocument", Tipus.ToString());

                MySqlDataReader reader = command.ExecuteReader();

                var resultats = new List<DocumentLlistat>();

                while (reader.Read())
                {
                    var d = new DocumentLlistat
                    {
                        Id = reader.GetInt32(reader.GetOrdinal("Id")),
                        Nom = reader.GetString(reader.GetOrdinal("Nom")),
                        Tipus = (TipusDocument)Enum.Parse(typeof(TipusDocument), reader.GetString(reader.GetOrdinal("Tipus"))),
                        DataAfegit = reader.GetDateTime(reader.GetOrdinal("DataAfegit")),
                        IdUsuari = reader.GetInt32(reader.GetOrdinal("IdUsuari")),
                        Username = reader.GetString(reader.GetOrdinal("Username")),
                        IdAssignatura = reader.GetInt32(reader.GetOrdinal("IdAssignatura")),
                        NomAssignatura = reader.GetString(reader.GetOrdinal("NomAssignatura")),
                        NomCarrera = reader.GetString(reader.GetOrdinal("NomCarrera")),
                        Valoracio = reader.GetDouble(reader.GetOrdinal("Valoracio")),
                    };

                    d.DataAfegitString = d.DataAfegit.ToShortDateString() + " " + d.DataAfegit.ToShortTimeString();
                    d.TipusString = Lang.GetString(lang, d.Tipus.ToString());
                    d.LinkDocument = Url.Action("Veure", "Document", new { Id = d.Id });
                    d.LinkUsuari = Url.Action("Perfil", "Usuari", new { Id = d.IdUsuari });
                    d.LinkAssignatura = Url.Action("Assignatura", "Document", new { Id = d.IdAssignatura });

                    resultats.Add(d);
                }

                Log.Info("Total de documents: " + resultats.Count);

                ViewBag.Tipus = Tipus;

                return View(resultats);
            }
        }