コード例 #1
0
        public IActionResult Hello()
        {
            var model = new UserIDModel
            {
                idValidationResult = HttpContext.Session.Get <IdValidationResult>(SessionKeyIdValid)
            };

            return(View(model));
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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"));
            }
        }
コード例 #4
0
        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());
        }