示例#1
0
        public Object Detail(int userid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null)
            {
                return(new { result = false, info = "Não autorizado." });
            }
            if (payload.aud != userid)
            {
                if (!payload.rol.Contains(3) && !payload.rol.Contains(6))
                {
                    if (!payload.rol.Contains(5) || (payload.rol.Contains(5) && !BParenting.GetChildren(payload.aud).Contains(userid)))
                    {
                        return(new { result = false, info = "Não autorizado." });
                    }
                }
            }
            var user = BUser.GetUserDetails(userid);

            if (user == null)
            {
                return(new { result = false, info = "Utilizador não encontrado." });
            }
            return(new { result = true, data = user });
        }
        public Object GetGrades(int evaluationid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || payload.rol.Contains(4))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            if (payload.rol.Contains(1))
            {
                return(BEvaluation.GetGradeToStudent(evaluationid, payload.aud));
            }
            else
            {
                if (payload.rol.Contains(5))
                {
                    return(BEvaluation.GetGradesToGuardian(evaluationid, payload.aud));
                }
                else
                {
                    if (payload.rol.Contains(2) && !BEvaluation.VerifyTeacher(evaluationid, payload.aud))
                    {
                        return(new { result = false, info = "Não foi encontrada avaliação." });
                    }
                    return(BEvaluation.GetGradesToTeacher(evaluationid));
                }
            }
        }
        public Object UploadPublicImage()
        {
            try
            {
                Payload payload = BAccount.ConfirmToken(this.Request);

                if (payload == null)
                {
                    return(new { result = false, info = "Não autorizado." });
                }

                if (HttpContext.Current.Request.Files.Count > 0)
                {
                    var image = HttpContext.Current.Request.Files["image"];

                    if (image != null && image.ContentType.Contains("image/"))
                    {
                        var fileFolder = HttpContext.Current.Server.MapPath("~/Files/public");
                        var fileName   = Path.GetFileName(Guid.NewGuid() + "." + image.FileName);
                        var filePath   = Path.Combine(fileFolder, fileName);
                        image.SaveAs(filePath);

                        return(new { result = true, data = fileName });
                    }
                    return(new { result = false, info = "Key inválida ou formato inaceitável." });
                }
                return(new { result = false, info = "Não submeteu nenhuma imagem" });
            }
            catch (Exception)
            {
                return(new { result = false, info = "Não foi possivel proceder ao upload." });
            }
        }
        public Object DownloadFile(string filename)
        {
            try
            {
                Payload payload = BAccount.ConfirmToken(this.Request);

                if (payload == null)
                {
                    return(new { result = false, info = "Não autorizado." });
                }

                var fileFolder = HttpContext.Current.Server.MapPath("~/Files/doc");
                var filePath   = Path.Combine(fileFolder, filename);

                HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
                var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                result.Content = new StreamContent(stream);
                result.Content.Headers.ContentType = new MediaTypeHeaderValue(MimeMapping.GetMimeMapping(filename));
                return(result);
            }
            catch (Exception)
            {
                return(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable));
            }
        }
 public Object VerifyToken()
 {
     if (BAccount.ConfirmToken(Request) != null)
     {
         return(new { result = true, data = true });
     }
     return(new { result = true, data = false });
 }
        public Object Put([FromBody] TblEvaluations evaluation)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(2) || (payload.rol.Contains(2) && evaluation.TeacherFK != payload.aud))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BEvaluation.EditEvaluation(evaluation, payload.aud));
        }
示例#7
0
        public Object RemoveUser([FromBody] ClassUser classuser)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(3) && !payload.rol.Contains(6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BClass.RemoveUser(classuser.ClassID, classuser.UserID, payload.aud));
        }
示例#8
0
        public Object SwitchActivity(int classid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(3) && !payload.rol.Contains(6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BClass.SwitchActivity(classid, payload.aud));
        }
示例#9
0
        public Object PutProfile([FromBody] TblClasses editedclass)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(3) && !payload.rol.Contains(6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BClass.EditClass(editedclass, payload.aud));
        }
示例#10
0
        public Object Delete(int documentid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(2) && !payload.rol.Contains(3) && !payload.rol.Contains(6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BDocument.DeleteDocument(documentid, payload.aud));
        }
        public Object PutFaults([FromBody] TblLessonStudents lesson)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(2) || (payload.rol.Contains(2) && !BLesson.VerifyTeacher(lesson, payload.aud)))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(new { result = BLesson.EditFaults(lesson) });
        }
示例#12
0
        public Object Post([FromBody] TblDocuments document)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(2) && !payload.rol.Contains(3) && !payload.rol.Contains(6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BDocument.CreateDocument(document, payload.aud));
        }
        public Object PutGrade([FromBody] TblEvaluationStudents grade)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(2) || !BEvaluation.VerifyTeacher(grade.EvaluationFK, payload.aud))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BEvaluation.EditGrade(grade));
        }
        public Object Done(int taskid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null)
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BTask.DoneTask(taskid, payload.aud));
        }
        public Object Post([FromBody] TblEvaluations evaluation)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(2) || !BClass.HasUser(evaluation.ClassFK, payload.aud))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BEvaluation.CreateEvaluation(evaluation, payload.aud));
        }
示例#16
0
        public Object ClassesByTeacher(int teacherid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(3) && !payload.rol.Contains(6) && !payload.rol.Contains(2)) || (payload.rol.Contains(2) && payload.aud != teacherid))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BClass.GetClassesByUser(teacherid));
        }
示例#17
0
        public Object ClassesPrimaryBySchool(int schoolid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(3) && !payload.rol.Contains(6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BClass.GetClassesPrimaryBySchool(schoolid));
        }
        public Object UploadFile()
        {
            try
            {
                Payload payload = BAccount.ConfirmToken(this.Request);

                if (payload == null || payload.rol.Contains(1) || payload.rol.Contains(4) || payload.rol.Contains(5))
                {
                    return(new { result = false, info = "Não autorizado." });
                }

                if (HttpContext.Current.Request.Files.Count > 0)
                {
                    var      file            = HttpContext.Current.Request.Files["file"];
                    String[] acceptablefiles = new string[] {
                        "application/pdf",                                                              // .pdf
                        "application/zip",                                                              // .zip
                        "application/x-rar-compressed",                                                 // .rar
                        "application/msword",                                                           // .doc
                        "application/vnd.openxmlformats-officedocument.wordprocessingml.document",      // .docx
                        "application/vnd.ms-powerpoint",                                                // .ppt
                        "application/vnd.openxmlformats-officedocument.presentationml.presentation",    // .pptx
                        "application/vnd.ms-excel",                                                     // .xls
                        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",            // .xlsx
                        "application/vnd.oasis.opendocument.text",                                      // .odt
                        "application/vnd.oasis.opendocument.presentation",                              // .odp
                        "application/vnd.oasis.opendocument.spreadsheet",                               // .ods
                        "video/x-msvideo",                                                              // .avi
                        "video/mpeg",                                                                   // .mpeg
                        "video/mp4",                                                                    // .mp4
                        "audio/x-wav",                                                                  // .wav
                        "audio/mpeg",                                                                   // .mpega / .mp3
                        "audio/mp3"                                                                     // .mp3
                    };
                    Debug.WriteLine(file.ContentType);

                    if (file != null && acceptablefiles.Contains(file.ContentType))
                    {
                        var fileFolder = HttpContext.Current.Server.MapPath("~/Files/doc");
                        var fileName   = Path.GetFileName(Guid.NewGuid() + "." + file.FileName);
                        var filePath   = Path.Combine(fileFolder, fileName);
                        file.SaveAs(filePath);

                        return(new { result = true, data = fileName });
                    }
                    return(new { result = false, info = "Key inválida ou formato inaceitável." });
                }
                return(new { result = false, info = "Não submeteu nenhum documento." });
            }
            catch (Exception)
            {
                return(new { result = false, info = "Não foi possivel proceder ao upload." });
            }
        }
        public Object Post([FromBody] TblSchools school)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(6) && !payload.rol.Contains(3)))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BSchool.CreateSchool(school));
        }
示例#20
0
        public Object GetByUser(int userid, int pageid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(3) && !payload.rol.Contains(6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BAction.GetActionsbyUser(userid, pageid));
        }
        public Object GetbyClass(int id)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || payload.rol.Contains(4) ||
                ((payload.rol.Contains(1) || payload.rol.Contains(5) || payload.rol.Contains(2)) && !payload.cla.Contains(id)))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BEvaluation.GetEvaluationsbyClass(id));
        }
        public Object GetbyTeacher(int id)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || (!payload.rol.Contains(3) && !payload.rol.Contains(6) && !payload.rol.Contains(2)) ||
                (payload.rol.Contains(2) && payload.aud != id))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BEvaluation.GetEvaluationsbyTeacher(id));
        }
示例#23
0
        public Object Post([FromBody] User user)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null ||
                (!payload.rol.Contains(3) && !payload.rol.Contains(6)) ||
                (payload.rol.Contains(3) && (user.RoleID == 3 || user.RoleID == 6)))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            return(BUser.CreateUser(user, payload.aud));
        }
示例#24
0
        public Object Profile(int classid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || payload.rol.Contains(4) ||
                ((payload.rol.Contains(1) || payload.rol.Contains(5) || payload.rol.Contains(2)) && !payload.cla.Contains(classid)))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BClass.GetClassProfile(classid));
        }
示例#25
0
        public Object DocumentsbyUser(int userid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null ||
                (!payload.rol.Contains(3) && !payload.rol.Contains(6) && !payload.rol.Contains(2) ||
                 (payload.rol.Contains(2) && payload.aud != userid)))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BDocument.GetDocumentsbyUser(userid));
        }
示例#26
0
        public Object ClassesByStudent(int studentid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || payload.rol.Contains(2) || payload.rol.Contains(4) ||
                (payload.rol.Contains(1) && payload.aud != studentid) ||
                (payload.rol.Contains(5) && !BParenting.GetGuardians(studentid).Contains(payload.aud)))
            {
                return(new { result = false, info = "Não autorizado." });
            }

            return(BClass.GetClassesByUser(studentid));
        }
        public Object PostSubject([FromBody] TblSubjects subject)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(6))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            if (BSubject.CreateSubject(subject))
            {
                return(new { result = true });
            }
            return(new { result = false, info = "Não foi possível registar a hora aula." });
        }
        public Object DeleteSubject(int subjectid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(6))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            if (BSubject.DeleteSubject(subjectid))
            {
                return(new { result = true });
            }
            return(new { result = false, info = "Não foi possível eliminar a hora de aula." });
        }
示例#29
0
        public Object RemoveUser(int sensorid)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(6))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            if (!BSensor.RemoveSensor(sensorid))
            {
                return(new { result = false, info = "Não foi possível remover o sensor." });
            }
            return(new { result = true });
        }
示例#30
0
        public Object PutProfile([FromBody] TblSensors sensor)
        {
            Payload payload = BAccount.ConfirmToken(this.Request);

            if (payload == null || !payload.rol.Contains(6))
            {
                return(new { result = false, info = "Não autorizado." });
            }
            if (!BSensor.EditSesnor(sensor))
            {
                return(new { result = false, info = "Não foi possível alterar dados do sensor." });
            }
            return(new { result = true });
        }