Example #1
0
        private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            RecordData user = (RecordData)gridUser.DataContext;

            if (isAdd)
            {
                if (bll.AddRecord(user))
                {
                    MessageBox.Show("添加成功!");
                }
            }
            else
            {
                if (bll.UpdateRecord(user))
                {
                    MessageBox.Show("修改成功!");
                }
            }
            this.Close();
        }
        public HttpResponseMessage PatientUpload([FromBody] dynamic credentials)
        {
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Unauthorized);
            string jwt;
            string deviceID;
            string retrievedNRIC;

            AccountBLL accountBLL = new AccountBLL();
            JWTBLL     jwtBll     = new JWTBLL();

            HttpContext httpContext = HttpContext.Current;
            string      authHeader  = httpContext.Request.Headers["Authorization"];

            // Ensure Authorization Header exists
            if (authHeader != null && authHeader.StartsWith("Bearer"))
            {
                string   authHeaderValue        = authHeader.Substring("Bearer ".Length).Trim();
                string   authHeaderValueDecoded = Encoding.UTF8.GetString(Convert.FromBase64String(authHeaderValue));
                string[] authHeaderParts        = authHeaderValueDecoded.Split(':');
                jwt      = authHeaderParts[0];
                deviceID = authHeaderParts[1];
            }
            else
            {
                return(response);
            }

            // Ensure jwt, deviceID exists
            if (!(!string.IsNullOrEmpty(jwt) && AccountBLL.IsDeviceIDValid(deviceID)))
            {
                return(response);
            }

            // Validate jwt
            if (!jwtBll.ValidateJWT(jwt))
            {
                return(response);
            }
            else
            {
                retrievedNRIC = jwtBll.getNRIC(jwt);
            }

            // Validate deviceID for retrievedNRIC
            if (!(accountBLL.IsValid(retrievedNRIC, deviceID)))
            {
                return(response);
            }

            // Upload record
            accountBLL.SetRole(retrievedNRIC, "Patient");
            Account account = accountBLL.GetStatus(retrievedNRIC);

            if (account.status == 1)
            {
                try
                {
                    Record record = new Record();
                    record.patientNRIC = retrievedNRIC;
                    record.creatorNRIC = retrievedNRIC;
                    record.title       = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Convert.ToString(credentials.title)));
                    record.description = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Convert.ToString(credentials.description)));
                    record.type        = RecordType.Get(Convert.ToString(credentials.type));
                    record.content     = string.Empty;

                    if (!record.IsTitleValid())
                    {
                        return(Request.CreateResponse(HttpStatusCode.Forbidden, "Invalid record title"));
                    }

                    if (!record.IsDescriptionValid())
                    {
                        return(Request.CreateResponse(HttpStatusCode.Forbidden, "Invalid record description"));
                    }

                    if (record.type.isContent)
                    {
                        record.content = credentials.content;

                        if (!record.IsContentValid())
                        {
                            return(Request.CreateResponse(HttpStatusCode.Forbidden, "Invalid record content"));
                        }
                    }
                    else
                    {
                        record.fileName      = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Convert.ToString(credentials.fileName)));
                        record.fileExtension = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Convert.ToString(credentials.fileExtension)));
                        byte[] fileContent = Convert.FromBase64String(Convert.ToString(credentials.fileContent));
                        record.fileSize = fileContent.Length;

                        if (Convert.ToInt64(record.fileSize) > Convert.ToInt64(credentials.fileSize))
                        {
                            return(Request.CreateResponse(HttpStatusCode.Forbidden, "Record file size mismatch"));
                        }

                        if (!record.IsFileValid())
                        {
                            return(Request.CreateResponse(HttpStatusCode.Forbidden, "Invalid record file"));
                        }

                        record.createTime = DateTime.Now;

                        Directory.CreateDirectory(record.GetFileServerPath() + "\\" + record.GetFileDirectoryNameHash());

                        File.WriteAllBytes(record.fullpath, fileContent);
                    }

                    recordBLL.AddRecord(record);

                    response = Request.CreateResponse(HttpStatusCode.OK);
                    response.Headers.Add("Authorization", "Bearer " + jwtBll.UpdateJWT(jwt));
                }
                catch
                {
                    response = Request.CreateResponse(HttpStatusCode.InternalServerError);
                }

                return(response);
            }

            return(response);
        }
Example #3
0
        protected void buttonSubmit_ServerClick(object sender, EventArgs e)
        {
            #region Page Validation
            if (HttpContext.Current.Request.QueryString["Patient-NRIC"] == null)
            {
                Server.TransferRequest("~/Errors/401.aspx");
                return;
            }

            // todo check if patient is in rtp table
            Classes.Entity.Patient patient = new TherapistBLL().GetPatientPermissions(Convert.ToString(HttpContext.Current.Request.QueryString["Patient-NRIC"]));

            if (!AccountBLL.IsNRICValid(patient.nric) || patient.permissionApproved == 0)
            {
                Server.TransferRequest("~/Errors/401.aspx");
                return;
            }
            #endregion

            Record record = new Record();
            record.creatorNRIC = AccountBLL.GetNRIC();
            record.patientNRIC = patient.nric;
            record.title       = inputTitle.Value.Trim();
            record.description = inputDescription.Value.Trim();
            record.content     = string.Empty;
            record.type        = GetSelectedType();
            record.isEmergency = patient.isEmergency;

            #region Validation
            bool[] validate = Enumerable.Repeat(true, 3).ToArray();

            // If any fields are empty
            if (!record.IsTitleValid())
            {
                validate[0] = false;
                inputTitle.Attributes.Add("class", "form-control form-control-sm is-invalid");
            }
            else
            {
                inputTitle.Attributes.Add("class", "form-control form-control-sm is-valid");
            }

            if (!record.IsDescriptionValid())
            {
                validate[1] = false;
                inputDescription.Attributes.Add("class", "form-control form-control-sm is-invalid");
            }
            else
            {
                inputDescription.Attributes.Add("class", "form-control form-control-sm is-valid");
            }

            if (record.type.isContent)
            {
                record.content = inputContent.Value.Trim();

                if (!record.IsContentValid())
                {
                    validate[2] = false;
                    inputContent.Attributes.Add("class", "form-control form-control-sm is-invalid");
                }
                else
                {
                    inputContent.Attributes.Add("class", "form-control form-control-sm is-valid");
                }
            }
            else
            {
                inputContent.Attributes.Add("class", "form-control form-control-sm is-invalid");

                record.fileName      = Path.GetFileNameWithoutExtension(inputFile.FileName);
                record.fileExtension = Path.GetExtension(inputFile.FileName);
                record.fileSize      = inputFile.PostedFile.ContentLength;

                if (!inputFile.HasFile)
                {
                    validate[2]            = false;
                    LabelFileError.Visible = true;
                    LabelFileError.Text    = "<i class=\"fas fa-fw fa-exclamation-circle\"></i>No file chosen.";
                }
                else if (!record.IsFileValid())
                {
                    validate[2]            = false;
                    LabelFileError.Visible = true;
                    LabelFileError.Text    = "<i class=\"fas fa-fw fa-exclamation-circle\"></i>Chosen file is of incorrect format or exceeding size for this type of record.";
                }
                else
                {
                    LabelFileError.Visible = false;
                }
            }

            #endregion

            if (validate.Contains(false))
            {
                spanMessage.Visible = true;
            }
            else
            {
                spanMessage.Visible = false;

                try
                {
                    if (!record.type.isContent)
                    {
                        record.createTime = DateTime.Now;

                        Directory.CreateDirectory(record.GetFileServerPath() + "\\" + record.GetFileDirectoryNameHash());
                        inputFile.SaveAs(record.fullpath);
                    }

                    recordBLL.AddRecord(record);

                    Session["NewRecordSuccess"] = "success";
                }
                catch
                {
                    Session["NewRecordSuccess"] = "error";
                }

                if (Master.IsLocalUrl(Request.RawUrl))
                {
                    Response.Redirect(Request.RawUrl);
                }
            }
        }
        protected void buttonSubmit_ServerClick(object sender, EventArgs e)
        {
            Record record = new Record();

            record.patientNRIC = AccountBLL.GetNRIC();
            record.title       = inputTitle.Value.Trim();
            record.description = inputDescription.Value.Trim();
            record.content     = string.Empty;
            record.type        = GetSelectedType();

            #region Validation
            bool[] validate = Enumerable.Repeat(true, 3).ToArray();

            // If any fields are empty
            if (!record.IsTitleValid())
            {
                validate[0] = false;
                inputTitle.Attributes.Add("class", "form-control form-control-sm is-invalid");
            }
            else
            {
                inputTitle.Attributes.Add("class", "form-control form-control-sm is-valid");
            }

            if (!record.IsDescriptionValid())
            {
                validate[1] = false;
                inputDescription.Attributes.Add("class", "form-control form-control-sm is-invalid");
            }
            else
            {
                inputDescription.Attributes.Add("class", "form-control form-control-sm is-valid");
            }

            if (record.type.isContent)
            {
                record.content = inputContent.Value.Trim();

                if (!record.IsContentValid())
                {
                    validate[2] = false;
                    inputContent.Attributes.Add("class", "form-control form-control-sm is-invalid");
                }
                else
                {
                    inputContent.Attributes.Add("class", "form-control form-control-sm is-valid");
                }
            }
            else
            {
                inputContent.Attributes.Add("class", "form-control form-control-sm is-invalid");

                record.fileName      = Path.GetFileNameWithoutExtension(inputFile.FileName);
                record.fileExtension = Path.GetExtension(inputFile.FileName);
                record.fileSize      = inputFile.PostedFile.ContentLength;

                if (!inputFile.HasFile)
                {
                    validate[2]            = false;
                    LabelFileError.Visible = true;
                    LabelFileError.Text    = "<i class=\"fas fa-fw fa-exclamation-circle\"></i>No file chosen.";
                }
                else if (!record.IsFileValid())
                {
                    validate[2]            = false;
                    LabelFileError.Visible = true;
                    LabelFileError.Text    = "<i class=\"fas fa-fw fa-exclamation-circle\"></i>Chosen file is of incorrect format or exceeding size for this type of record.";
                }
                else
                {
                    LabelFileError.Visible = false;
                }
            }

            #endregion

            if (validate.Contains(false))
            {
                spanMessage.Visible = true;
            }
            else
            {
                spanMessage.Visible = false;

                try
                {
                    if (!record.type.isContent)
                    {
                        record.createTime = DateTime.Now;

                        Directory.CreateDirectory(record.GetFileServerPath() + "\\" + record.GetFileDirectoryNameHash());
                        inputFile.SaveAs(record.fullpath);
                    }

                    recordBLL.AddRecord(record);

                    Session["NewRecordSuccess"] = "success";
                }
                catch
                {
                    Session["NewRecordSuccess"] = "error";
                }
                Response.Redirect(Request.RawUrl);
            }
        }