public IActionResult RegistrationStatus([FromRoute] string eventId, [FromHeader(Name = "Authorization")] string userToken) { ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken(userToken)); String status = MongoUtil.GetRegistrationStatus(new ObjectId(eventId), userId); return(Ok(status)); }
public IActionResult RegisterUserToEvent([FromRoute] string eventId, [FromHeader(Name = "Authorization")] string token) { ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken(token)); Boolean ok = MongoUtil.RegisterUserToEvent(new ObjectId(eventId), userId); return(Ok(ok)); }
public async Task <IActionResult> SendFileToAnalysis(IFormFile file, [FromHeader] string authorization) { var model = JwtUtil.GetUserIdFromToken(authorization); var fileId = await _analysisService.SendFileToAnalysis(file, model.UserId); return(new OkObjectResult(new SendFileToAnalysisResponse(fileId))); }
public IActionResult DeleteReview([FromRoute] String eventId, [FromHeader(Name = "Authorization")] String userToken) { MongoUtil.DeleteReview(new ObjectId(JwtUtil.GetUserIdFromToken(userToken)), new ObjectId(eventId)); return(Ok()); }
public async Task <IActionResult> AnalyzeFile([FromRoute] Guid id, [FromHeader] string authorization) { var model = JwtUtil.GetUserIdFromToken(authorization); var taskId = await _analysisService.AnalyzeFile(id, model.UserId); return(new AcceptedResult($"api/analysis/{taskId}", new AnalysisResponse(taskId))); }
public async Task <IActionResult> GetAnalysisReport([FromRoute] Guid id, [FromHeader] string authorization) { var model = JwtUtil.GetUserIdFromToken(authorization); try { var analysis = await _analysisService.GetByIdAsync(id, model.UserId); if (analysis.Status != OperationStatus.Complete) { return(BadRequest()); } var report = _reportService.GenerateReport(analysis.ToAnalysisFile(model.UserId)); return(File(report, "application/pdf")); } catch (InvalidOperationException e) { return(new NotFoundResult()); } catch (StreamNotFoundException exception) { return(new NotFoundResult()); } }
public async Task <IActionResult> CreateSource(IFormFile file, [FromHeader] string authorization) { var model = JwtUtil.GetUserIdFromToken(authorization); var taskId = await _sourceService.CreateSource(file, model.UserId); return(new AcceptedResult($"api/source/{taskId}", new CreateSourceResponse(taskId))); }
public IActionResult ChangePassword([FromBody] UserApiModel newPass, [FromHeader(Name = "Authorization")] string token) { ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken(token)); MongoUtil.ChangePassword(userId, newPass.Password); return(Ok()); }
public IActionResult Created([FromRoute] int pageSize, [FromRoute] int pageId, [FromHeader(Name = "Authorization")] string token) { ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken(token)); return(Ok(MongoUtil.GetCreatedEvents(userId, pageSize, pageId) .ConvertAll(new Converter <EventModel, EventApiModel>(e => { return e.getEventApiModel(); })))); }
public IActionResult EditReview([FromRoute] String eventId, [FromHeader(Name = "Authorization")] String userToken, [FromBody] ReviewApiModel reviewApiModel) { MongoUtil.EditReview(new ObjectId(JwtUtil.GetUserIdFromToken(userToken)), new ObjectId(eventId), reviewApiModel.Rating, reviewApiModel.Opinion, DateTime.Now); return(Ok()); }
public IActionResult Create([FromHeader(Name = "Authorization")] string token, [FromBody] EventApiModel eventApiModel) { String userId = JwtUtil.GetUserIdFromToken(token); EventModel eventModel = eventApiModel.getEventModel(userId, DateTime.Now); eventModel.Image = "StaticFiles/Images/standard.jpg"; MongoUtil.AddEvent(eventModel); return(Ok("Event created")); }
public IActionResult WhoIAm([FromHeader(Name = "Authorization")] string token) { ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken(token)); UserModel um = MongoUtil.GetUser(userId); UserApiModel uam = um.getUserApiModel(); uam.Password = ""; uam.Birthday = ""; return(Ok(uam)); }
public IActionResult GetReviewsStats([FromHeader(Name = "Authorization")] string token, [FromRoute] string eventId) { string userId = JwtUtil.GetUserIdFromToken(token); EventModel ev = MongoUtil.GetEvent(new ObjectId(eventId)); if (ev.CreatorId == new ObjectId(userId)) { return(Ok(MongoUtil.getReviewsStats(new ObjectId(eventId)))); } return(Unauthorized()); }
public IActionResult Reviewed([FromRoute] int pageSize, [FromRoute] int pageId, [FromHeader(Name = "Authorization")] string token) { ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken(token)); List <ReviewModel> reviews = MongoUtil.GetUserReviews(userId, pageSize, pageId); List <EventApiModel> events = new List <EventApiModel>(); foreach (ReviewModel review in reviews) { events.Add(MongoUtil.GetEvent(review.EventId).getEventApiModel()); } return(Ok(events)); }
public IActionResult GetReview([FromRoute] string eventId, [FromHeader(Name = "Authorization")] string userToken) { ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken(userToken)); ReviewModel review = MongoUtil.GetReview(userId, new ObjectId(eventId)); UserModel user = MongoUtil.GetUser(userId); if (review != null) { return(Ok(review.getReviewApiModel(user.Name))); } return(Ok(new ReviewModel { Rating = 0, Opinion = "" })); }
public async Task <IActionResult> GetUserDocumentsWithLatestStatuses([FromHeader] string authorization) { var model = JwtUtil.GetUserIdFromToken(authorization); try { var documents = await _documentsToAnalysisService.GetDocumentsWithLatestAnalysisStatuses(model.UserId); return(new OkObjectResult(documents)); } catch (StreamNotFoundException ex) { return(new OkObjectResult(new List <AnalysisStatusDto>())); } }
public IActionResult GetMessages([FromRoute] String eventId, [FromHeader(Name = "Authorization")] string token) { ObjectId reqUserId = new ObjectId(JwtUtil.GetUserIdFromToken(token)); List <MessageModel> messages = MongoUtil.GetMessages(new ObjectId(eventId)); List <MessageApiModel> apiMessages = messages.ConvertAll(new Converter <MessageModel, MessageApiModel>(msg => { ObjectId pubUserId = msg.UserId; if (pubUserId == reqUserId) { return(msg.getMessageApiModel()); } msg.DateSent = msg.DateSent.AddHours(3); return(msg.getMessageApiModel(MongoUtil.GetUser(pubUserId).Name)); })); return(Ok(apiMessages)); }
public async Task <IActionResult> GetUserAnalyses([FromHeader] string authorization) { var model = JwtUtil.GetUserIdFromToken(authorization); try { var allAnalysis = await _analysisService.GetUserAnalysesAsync(model.UserId); var dtos = allAnalysis.Select(analysis => new AnalysisDto(analysis.DocumentName, analysis.DocumentId, analysis.TaskId, Enum.GetName(typeof(OperationStatus), analysis.Status), analysis.LatestChangeDate, analysis.Result)); return(new OkObjectResult(dtos)); } catch (StreamNotFoundException ex) { return(new OkObjectResult(new List <AnalysisDto>())); } }
public async Task <IActionResult> GetAnalysisResult(Guid id, [FromHeader] string authorization) { var model = JwtUtil.GetUserIdFromToken(authorization); try { var analysis = await _analysisService.GetByIdAsync(model.UserId, id); return(new OkObjectResult(new AnalysisFileResponse(analysis.ToAnalysisFile(model.UserId)))); } catch (InvalidOperationException exception) { return(new NotFoundResult()); } catch (StreamNotFoundException exception) { return(new NotFoundResult()); } }
public IActionResult Upload([FromHeader(Name = "Authorization")] string token) { try { String userId = JwtUtil.GetUserIdFromToken(token); var file = Request.Form.Files[0]; var folderName = Path.Combine("StaticFiles", "Images"); var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName); if (file.Length > 0) { var fileName = userId + "_" + DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString() + ".jpg"; var fullPath = Path.Combine(pathToSave, fileName); using (var stream = new FileStream(fullPath, FileMode.Create)) { file.CopyTo(stream); } List <EventModel> eventList = MongoUtil.GetCreatedEvents(new ObjectId(userId), 1, 0); if (eventList.Count > 0 && eventList[0].Image == "StaticFiles/Images/standard.jpg") { string newImage = "StaticFiles/Images/" + fileName; MongoUtil.UpdateImage(eventList[0].Id, newImage); } return(Ok("Image updated")); } else { return(BadRequest()); } } catch (Exception ex) { return(StatusCode(500, "Internal server error")); } }
public IActionResult GetRecommendations([FromHeader(Name = "Authorization")] string token, [FromRoute] int pageSize, [FromRoute] int pageId) { string userId = JwtUtil.GetUserIdFromToken(token); string filename = @"eventRecommenderTestedOnMovieLensSmallDataSet\predictions\" + userId.ToString() + ".txt"; if (!System.IO.File.Exists(filename)) { Process cmd = new Process(); cmd.StartInfo.FileName = "cmd.exe"; cmd.StartInfo.Arguments = "/C cd eventRecommenderTestedOnMovieLensSmallDataSet & Python35\\python.exe predict.py " + userId; cmd.Start(); cmd.WaitForExit(); } List <EventApiModel> apiEvents = new List <EventApiModel>(); if (System.IO.File.Exists(filename)) { using (StreamReader reader = new StreamReader(filename)) { for (int i = 0; i < pageSize * pageId && !reader.EndOfStream; i++) { reader.ReadLine(); } for (int i = 0; i < pageSize && !reader.EndOfStream; i++) { string line = reader.ReadLine(); string[] values = line.Split(','); string eventIdStr = values[0]; ObjectId eventId = new ObjectId(eventIdStr); EventModel em = MongoUtil.GetEvent(eventId); apiEvents.Add(em.getEventApiModel()); } } } return(Ok(apiEvents)); }
private async Task PingRequest(HttpContext context, WebSocket socket) { var buffer = new byte[600 * 1024]; WebSocketReceiveResult result = await socket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); string received = Encoding.Default.GetString(buffer, 0, result.Count); string[] splits = received.Split(' '); string eventIdStr = splits[0]; ObjectId eventId = new ObjectId(eventIdStr); ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken("Bearer " + splits[1])); string userName = MongoUtil.GetUser(userId).Name; if (chatRooms.ContainsKey(eventIdStr)) { chatRooms[eventIdStr].Add(socket); } else { chatRooms.AddOrUpdate(eventIdStr, new ConcurrentBag <WebSocket> { socket }, (string x, ConcurrentBag <WebSocket> y) => { return(null); }); } while (!result.CloseStatus.HasValue) { result = await socket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); received = Encoding.Default.GetString(buffer, 0, result.Count); if (received == "") { continue; } MessageModel msg = new MessageModel { Message = received, UserId = userId, EventId = eventId, DateSent = DateTime.Now }; MongoUtil.SaveMessage(msg); MessageApiModel msgApi = msg.getMessageApiModel(userName); string toSend = msgApi.Message + "!#|||#!" + msgApi.DateSent + "!#|||#!" + msgApi.userName; Encoding.ASCII.GetBytes(toSend, 0, toSend.Length, buffer, 0); foreach (WebSocket ws in chatRooms[eventIdStr]) { if (ws != socket) { if (ws.State == WebSocketState.Open) { ws.SendAsync(new ArraySegment <byte>(buffer, 0, toSend.Length), result.MessageType, result.EndOfMessage, CancellationToken.None); } } } } await socket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None); }