public IActionResult Hello() { var model = new UserIDModel { idValidationResult = HttpContext.Session.Get <IdValidationResult>(SessionKeyIdValid) }; return(View(model)); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { req.Headers.TryGetValue("sessionToken", out StringValues sessionToken); User requester = SessionValidator.ValidateSession(sessionToken.ToString()); if (requester == null) { return(new StatusCodeResult(403)); } List <string> errors = new List <string>(); UserIDModel data = new UserIDModel(); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); try { data = JsonConvert.DeserializeObject <UserIDModel>(requestBody); } catch { return(new BadRequestResult()); } using (DataContext dc = new DataContext()) { User u = dc.User.Where(x => x.UserID == data.UserID).FirstOrDefault(); if (u == null) { errors.Add("User does not exist"); } if (errors.Count > 0) { return(new BadRequestObjectResult(errors)); } Session s = dc.Sessions.Include(x => x.User).Where(x => x.User.UserID == u.UserID).FirstOrDefault(); if (s == null) { return(new BadRequestResult()); } dc.Remove(s); dc.SaveChanges(); } return(new OkResult()); }
public async Task <IActionResult> IDform(UserIDModel model) { string userId = model.UserID; // validation var IdValidationResult = await ValidateID(userId); if (IdValidationResult == IdValidationResult.Valid) { string group = ""; try { var probe = await Database.GetProbe(model.UserID); group = probe.Group; } catch (Exception) { group = ""; } var probeResult = new ProbeResult { ID = model.UserID, Group = group }; HttpContext.Session.Set(SessionKeyProbeResult, probeResult); ProbeBegin(); return(RedirectToAction("Quiz")); } else { Console.WriteLine("ID invalid"); HttpContext.Session.Set(SessionKeyIdValid, IdValidationResult); return(RedirectToAction("Hello")); } }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { req.Headers.TryGetValue("sessionToken", out StringValues sessionToken); User requester = SessionValidator.ValidateSession(sessionToken.ToString()); if (requester == null) { return(new StatusCodeResult(403)); } UserIDModel data = new UserIDModel(); bool isProfilePicture; try { req.Form.TryGetValue("id", out StringValues id); req.Form.TryGetValue("isProfilePicture", out StringValues ProfilePicture); bool.TryParse(ProfilePicture, out isProfilePicture); data.UserID = Convert.ToInt32(id.ToString()); } catch { return(new BadRequestResult()); } using (DataContext dc = new DataContext()) { User u = dc.User.Where(x => x.UserID == data.UserID).FirstOrDefault(); if (u == null) { return(new BadRequestResult()); } if (requester.UserType.UserTypeName != "Admin" && requester.UserID != u.UserID) { return(new StatusCodeResult(403)); } var f = req.Form.Files[0]; // Create Reference to Azure Storage Account string strorageconn = "DefaultEndpointsProtocol=https;AccountName=team10projecta916;AccountKey=4V9RYDcZUjn442xOgaSW/RwC7mzB+zguDgfHM0tyqff8cSeomPMj6cvOA2ATav0Vor2eoAR64A7L+DCsFDrZCw==;EndpointSuffix=core.windows.net"; CloudStorageAccount storageacc = CloudStorageAccount.Parse(strorageconn); //Create Reference to Azure Blob CloudBlobClient blobClient = storageacc.CreateCloudBlobClient(); //The next 2 lines create if not exists a container named "democontainer" CloudBlobContainer container = blobClient.GetContainerReference("user" + data.UserID.ToString()); await container.CreateIfNotExistsAsync(); await container.SetPermissionsAsync(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); //The next 7 lines upload the file CloudBlockBlob blockBlob = container.GetBlockBlobReference(f.FileName); using (var filestream = f.OpenReadStream()) { await blockBlob.UploadFromStreamAsync(filestream); } if (isProfilePicture) { Document doc = dc.Documents.Where(x => x.IsProfilePicture && x.User == u).FirstOrDefault(); if (doc != null) { dc.Documents.Remove(doc); } } Document d = dc.Documents.Where(x => x.FileName == f.FileName).FirstOrDefault(); if (d != null) { dc.Documents.Remove(d); } dc.Documents.Add(new Document { User = u, FileName = f.FileName, FileLocation = blockBlob.Uri.AbsoluteUri, IsProfilePicture = isProfilePicture }); dc.SaveChanges(); } return(new OkResult()); }