Example #1
0
        public async Task <ActionResult> UpdateChat(int id, string name, string description)
        {
            //verificar token do client
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); // 400 bad request - solicitação invalida
            }
            try
            {
                var result = await _chat.UpdateName(id, name, description);

                if (result == null)
                {
                    return(NotFound());
                }
                else
                {
                    return(Ok(result));
                }
            }
            catch (Exception ex)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Example #2
0
        public async Task <ActionResult> UpdateUser(string name, string email, string imagePath, string folderPath)
        {
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); // 400 bad request - solicitação invalida
            }
            try
            {
                string username = string.Empty;
                var    result   = await _user.UpdateUser(name, username, email, imagePath, folderPath);

                if (result == null)
                {
                    return(NotFound());
                }
                else
                {
                    return(Ok(result));
                }
            }
            catch (Exception ex)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Example #3
0
        public async Task <IActionResult> UploadFile(string folderPath, string newFile, IFormFile file) //ver como aceitar ficheiros
        {
            //verificar token do client
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); // 400 bad request - solicitação invalida
            }
            try
            {
                if (file.Length > 0)
                {
                    using (var stream = new MemoryStream())
                    {
                        await file.CopyToAsync(stream);

                        Ok(await _ftp.UploadFile(TokenMng.UsernameToken(Request.Headers[HeaderNames.Authorization]), folderPath, newFile, stream));
                    }
                    return(BadRequest());
                }
                return(BadRequest());
            }
            catch (System.Exception ex)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Example #4
0
        public async Task <object> GetByPath(string path)
        {
            //verificar token do client
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); // 400 bad request - solicitação invalida
            }
            try
            {
                var aux = await _ftp.GetByPath(TokenMng.UsernameToken(Request.Headers[HeaderNames.Authorization]), path);

                if (aux == null)
                {
                    return(NotFound());
                }
                else
                {
                    return(Ok(aux));
                }
            }
            catch (Exception ex)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Example #5
0
        public async Task Invoke(HttpContext context)
        {
            if (!context.WebSockets.IsWebSocketRequest)
            {
                return;
            }

            var socket = await context.WebSockets.AcceptWebSocketAsync();



            await Receive(socket, async (result, buffer) =>
            {
                try
                {
                    var values = JsonConvert.DeserializeObject <Dictionary <string, string> >(Encoding.UTF8.GetString(buffer, 0, result.Count));
                    object tokenValidate;
                    if (values != null && values.ContainsKey("token") && TokenMng.ValidateToken(values["token"], out tokenValidate))
                    {
                        var username = TokenMng.UsernameToken(values["token"]);

                        if (result.MessageType == WebSocketMessageType.Text)
                        {
                            if (values.ContainsKey("type") && values["type"] == "1" && values.ContainsKey("token"))
                            {
                                await _webSocketHandler.ReceiveAsync(username, socket, result, values);
                                return;
                            }
                            else if (values.ContainsKey("type") && values["type"] == "authenticate")
                            {
                                await _webSocketHandler.OnConnected(username, socket, values);
                                return;
                            }
                        }
                        else if (result.MessageType == WebSocketMessageType.Close)
                        {
                            await _webSocketHandler.OnDisconnected(socket);
                            return;
                        }
                    }
                    else if (values != null)
                    {
                    }
                    else
                    {
                        return;
                    }
                }
                catch (System.Exception)
                {
                    throw;
                }
            });
        }
Example #6
0
 private void FillToken(HttpClient client)
 {
     client.DefaultRequestHeaders.Add("apiKey", ComponentApiKey);
     client.DefaultRequestHeaders.Add("salt", TokenMng.GetSalt());
     client.DefaultRequestHeaders.Add("token",
                                      TokenMng.GetToken(
                                          client.DefaultRequestHeaders.GetValues("apiKey").First(),
                                          ComponentSecretKey,
                                          client.DefaultRequestHeaders.GetValues("salt").First()
                                          )
                                      );
 }
Example #7
0
 public async Task <object> ValidToken()
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest()); // 400 bad request - solicitação invalida
     }
     try
     {
         //verificar token do client
         object tokenValidate = new { authenticate = false };
         if (Request.Headers.ContainsKey(HeaderNames.Authorization))
         {
             TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate);
         }
         return(tokenValidate);
     }
     catch (Exception ex)
     {
         // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
         return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
     }
 }
Example #8
0
        public async Task <ActionResult> DeleteUser(int id)
        {
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(false)); // 400 bad request - solicitação invalida
            }
            try
            {
                return(Ok(await _user.RemoveUser(id))); // 50 ok - Bem conseguida
            }
            catch (Exception ex)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Example #9
0
        public async Task <ActionResult> GetAllMessages()
        {
            //verificar token do client
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); // 400 bad request - solicitação invalida
            }
            try
            {
                return(Ok(await _chat.GetAllMessages()));
            }
            catch (Exception ex)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Example #10
0
        public async Task <bool> RenameFile(string path, string oldName, string newName)
        {
            //verificar token do client
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(false);
            }

            if (!ModelState.IsValid)
            {
                return(false); // 400 bad request - solicitação invalida
            }
            try
            {
                return(await _ftp.RenameFile(TokenMng.UsernameToken(Request.Headers[HeaderNames.Authorization]), path, oldName, newName));
            }
            catch (Exception ex)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(false);
            }
        }
Example #11
0
        public async Task <HttpResponseMessage> DownloadFile(string fullPath) //ver como aceitar ficheiros
        {
            //verificar token do client
            object tokenValidate;

            if (!Request.Headers.ContainsKey(HeaderNames.Authorization) || !TokenMng.ValidateToken(Request.Headers[HeaderNames.Authorization], out tokenValidate))
            {
                return(null);
            }

            if (!ModelState.IsValid)
            {
                return(null); // 400 bad request - solicitação invalida
            }
            try
            {
                Stream stream = await _ftp.DownloadFile(TokenMng.UsernameToken(Request.Headers[HeaderNames.Authorization]), fullPath);

                if (stream == null)
                {
                    return(null); // returns a NotFoundResult with Status404NotFound response.
                }
                HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
                httpResponseMessage.Content = new StreamContent(stream);
                httpResponseMessage.Content.Headers.ContentDisposition          = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
                httpResponseMessage.Content.Headers.ContentDisposition.FileName = "video.mp4";
                httpResponseMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");

                return(httpResponseMessage);
            }
            catch (Exception)
            {
                // 500 Internal error - O server encontrou um erro com o qual não consegue lidar
                return(null);
            }
        }