public IActionResult PostPosition([FromForm] BibliographicPositionViewModel model) { if (!ModelState.IsValid) { return(this.BadRequest("Podano błędne dane!")); } var redis = ConnectionMultiplexer.Connect("redis_image:6379"); var db = redis.GetDatabase(); var x = db.StringGet("user_" + model.UserGuid); if (x.IsNullOrEmpty) { return(this.NotFound($"Użytkownik z id {model.UserGuid} nie został znaleziony")); } BibliographicPosition position = new BibliographicPosition(); position.Title = model.Title; position.Author = model.Author; position.PublicationDate = model.PublicationDate; position.Links = new List <Link>(); position.Files = new List <File>(); position.UserId = model.UserGuid; //this.CreateLinksForUser(position); position.Guid = Guid.NewGuid().ToString(); var serialized = JsonConvert.SerializeObject(position); db.StringSet("position_" + position.Guid, serialized); var user = JsonConvert.DeserializeObject <User>(x.ToString()); user.Positions.Add(position.Guid); var serializedU = JsonConvert.SerializeObject(user); db.StringSet("user_" + user.Id, serializedU); return(Ok(this.CreateLinksForPosition(position, model.UserGuid))); }
public async Task <ActionResult> ConnectFile(string link1, string link2) { string id = HttpContext.User.Claims.FirstOrDefault(b => b.Type == ClaimTypes.NameIdentifier).Value; if (!CheckIfUserInRedis(id)) { return(RedirectToAction("Denied", "Home")); } HttpClient client = new HttpClient(); var response = await client.GetAsync(link1); var data = await response.Content.ReadAsStringAsync(); BibliographicPosition position = JsonConvert.DeserializeObject <BibliographicPosition>(data); var response2 = await client.GetAsync(link2); var data2 = await response2.Content.ReadAsStringAsync(); List <File> files = JsonConvert.DeserializeObject <List <File> >(data2); ConnectFileViewModel model = new ConnectFileViewModel { Position = position, Files = files }; return(View(model)); }
public async Task <ActionResult> ShowPosition(string link) { string id = HttpContext.User.Claims.FirstOrDefault(b => b.Type == ClaimTypes.NameIdentifier).Value; if (!CheckIfUserInRedis(id)) { return(RedirectToAction("Denied", "Home")); } HttpClient client = new HttpClient(); var response = await client.GetAsync(link); var data = await response.Content.ReadAsStringAsync(); BibliographicPosition position = JsonConvert.DeserializeObject <BibliographicPosition>(data); return(View(position)); }
private BibliographicPosition CreateLinksForPosition(BibliographicPosition position, string userGuid) { position.Links = new List <Link>(); var idObj = new { guid = position.Guid }; position.Links.Add( new Link(Request.Scheme + "://" + Request.Host + "/rest/" + nameof(this.GetPositions) + "/" + userGuid, "get-positions", "GET")); position.Links.Add( new Link(Request.Scheme + "://" + Request.Host + "/rest/" + nameof(this.GetPosition) + "/" + userGuid + "/" + position.Guid, "get-position", "GET")); position.Links.Add( new Link(Request.Scheme + "://" + Request.Host + "/rest/" + nameof(this.PostPosition), "post-position", "POST")); position.Links.Add( new Link(Request.Scheme + "://" + Request.Host + "/rest/" + nameof(this.ConnectFile) + "/" + userGuid + "/" + position.Guid + "?fileGuid=", "connect-file", "PATCH")); position.Links.Add( new Link(Request.Scheme + "://" + Request.Host + "/rest/" + nameof(this.DisconnectFile) + "/" + userGuid + "/" + position.Guid + "?fileGuid=", "disconnect-file", "PATCH")); position.Links.Add( new Link(Request.Scheme + "://" + Request.Host + "/rest/" + nameof(this.DeletePosition) + "/" + userGuid + "/" + position.Guid, "delete-position", "DELETE")); position.Links.Add( new Link(Request.Scheme + "://" + Request.Host + "/rest/" + nameof(this.GetFiles) + "/" + userGuid, "get-files", "GET")); return(position); }