Пример #1
0
        public static DTO UpdateUserEmail(string newEmail, string userName)
        {
            DTO dto = new DTO();

            MembershipUser user     = Membership.GetUser(userName);
            string         oldEmail = user.Email;

            string userName2 = Membership.GetUserNameByEmail(newEmail);

            //check for another user with the same email as the new one
            if (userName2 != null)
            {
                if (userName2 != userName)
                {
                    dto.IsSuccessful = false;
                    dto.Message      = "The email address, " + newEmail + " could not be saved. It is being used by another user";
                    nlogger.LogInfo("UpdateUserEmail - user:"******", message: " + dto.Message);
                    return(dto);
                }
            }

            user.Email = newEmail;
            Membership.UpdateUser(user);

            dto.IsSuccessful = true;
            dto.Message      = "You email has been changed to " + newEmail + ". Contact your coordinator if you did not request this change";
            nlogger.LogInfo("UpdateUserEmail - user:"******", message: " + dto.Message);
            dto.Bag = oldEmail;
            return(dto);
        }
Пример #2
0
        public static List <UserRole> GetAssignedRoles(string userName)
        {
            nlogger.LogInfo("GetAssignedRoles for user:" + userName);

            String[] allRoles      = null;
            String[] assignedRoles = null;
            try
            {
                allRoles      = Roles.GetAllRoles();
                assignedRoles = Roles.GetRolesForUser(userName);
            }
            catch (Exception ex)
            {
                nlogger.LogFatal(ex);
            }

            List <UserRole> roles = new List <UserRole>();

            foreach (var allRole in allRoles)
            {
                UserRole ur = new UserRole();
                ur.RoleName = allRole;
                foreach (var ar in assignedRoles)
                {
                    if (ar == allRole)
                    {
                        ur.IsAssigned = true;
                    }
                }

                roles.Add(ur);
            }

            return(roles);
        }
Пример #3
0
        public ActionResult Index()
        {
            List <Site> sites = new List <Site>();

            sites = DbUtils.GetSitesActive();
            if (sites.Count == 0)
            {
                throw new Exception("There was an error retreiving the sites list from the database");
            }
            sites.Insert(0, new Site {
                ID = 0, Name = "Select a site", SiteID = ""
            });
            ViewBag.Sites = new SelectList(sites, "ID", "Name");

            nlogger.LogInfo("Admin Backdoor Index - user: "******"UserName", "UserName");
            if (!SiteMapManager.SiteMaps.ContainsKey("adminbackdoor"))
            {
                SiteMapManager.SiteMaps.Register <XmlSiteMap>("adminbackdoor", sitmap => sitmap.LoadFrom("~/adminbackdoor.sitemap"));
            }
            return(View());
        }
Пример #4
0
        ///<Summary>
        /// Search method to perform search
        ///</Summary>
        public async Task <Response> Search(string fileName, string folderName, string query)
        {
            // License.SetAsposeCellsLicense();

            var taskResp = Process("SearchResults", folderName, ".txt", false,
                                   (inFilePath, outPath, zipOutFolder) =>
            {
                var fn        = AppSettings.WorkingDirectory + folderName + "/" + fileName;
                var stopWatch = new Stopwatch();
                stopWatch.Start();
                NLogger.LogInfo($"Search {query}=>{fn}=>Start");

                var task        = Task.Run(() => { SearchQuery(fileName, folderName, query, outPath); });
                var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout);

                if (!isCompleted)
                {
                    NLogger.LogError($"Search {query}=>{fn}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                stopWatch.Stop();
                NLogger.LogInfo($"Search {query}=>{fn}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
            });

            if (MFoundNothing)
            {
                taskResp.Result.FileProcessingErrorCode = FileProcessingErrorCode.NoSearchResults;
            }

            return(await taskResp);
        }
Пример #5
0
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            updateModel.CardNo          = txtCardNo.Text;
            updateModel.Name            = txtName.Text;
            updateModel.IDCard          = txtIDCard.Text;
            updateModel.PinYin          = txtPinyin1.Text;
            updateModel.Gender          = cmbGender.SelectedValue.ToString();
            updateModel.GenderName      = cmbGender.Text;
            updateModel.Address         = txtAddress.Text;
            updateModel.BirthDay        = txtBirthDay.Text;
            updateModel.CurrentAge      = txtAge.Text;
            updateModel.Phone           = txtPhone.Text;
            updateModel.PostCode        = txtPostCode.Text;
            updateModel.Email           = txtEmail.Text;
            updateModel.ImageNumber     = txtImageNumber.Text;
            updateModel.PatientType     = cmbPatientType.Text;
            updateModel.VisitType       = cmbVisitType.Text;
            updateModel.CheckNo         = txtCheckNo.Text;
            updateModel.BillHospital    = txtBillHospital.Text;
            updateModel.ApplyDept       = cmbApplyDept.SelectedValue.ToString();
            updateModel.ApplyDeptName   = cmbApplyDept.Text;
            updateModel.ApplyDocter     = txtApplyDocterCode.Text;
            updateModel.ApplyDocterName = txtApplyDocter.Text;
            updateModel.Area            = txtArea.Text;
            updateModel.Bed             = txtBed.Text;
            updateModel.ApplyDate       = dtpApplyDate.Value;
            updateModel.CheckDept       = cmbCheckDept.SelectedValue.ToString();
            updateModel.CheckDeptName   = cmbCheckDept.Text;
            updateModel.CheckType       = cmbCheckType.Text;
            updateModel.Equipment       = cmbEquipment.Text;
            updateModel.Position        = cmbPosition.Text;
            updateModel.Method          = cmbMethod.Text;
            updateModel.Symptom         = txtSymptom.Text;
            updateModel.Diagnosis       = txtDiagnosis.Text;
            updateModel.DockerAsk       = txtRemarks.Text;
            updateModel.RequestID       = lblRequestID.Text;
            updateModel.Projects        = dgvApplys.DataSource as List <ApplyItem>;
            var result = _registerBll.UpdateRegister(updateModel, out string errorMsg);

            this.ShowInfo(errorMsg);
            if (result)
            {
                var msg = $"操作员:{CurrentUser.Name},工号:{CurrentUser.UserName},{DateTime.Now.ToString()} 修改登记信息,登记ID:{updateModel.PatientID}.";
                NLogger.LogInfo(msg, CurrentUser.UserName);
                RestTextBox();
                Rest();
                updateModel         = null;
                btnUpdate.Visible   = false;
                btnRegister.Visible = true;
            }
            else
            {
                var msg = $"操作员:{CurrentUser.Name},工号:{CurrentUser.UserName},{DateTime.Now.ToString()} 修改登记信失败,登记ID:{updateModel.PatientID}.";
                NLogger.LogInfo(msg, CurrentUser.UserName);
                Rest();
                this.Close();
            }
        }
Пример #6
0
        public async Task <Response> Editor()
        {
            var sessionId = Guid.NewGuid().ToString();

            try
            {
                var taskUpload = Task.Run(() => UploadWorkbooks(sessionId));
                taskUpload.Wait(Api.Configuration.MillisecondsTimeout);
                if (!taskUpload.IsCompleted)
                {
                    NLogger.LogError($"Editor UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                var docs = taskUpload.Result;
                if (docs == null)
                {
                    return(PasswordProtectedResponse);
                }
                if (docs.Length == 0 || docs.Length > MaximumUploadFiles)
                {
                    return(MaximumFileLimitsResponse);
                }
                SetDefaultOptions(docs);
                Opts.AppName     = "Editor";
                Opts.MethodName  = "Editor";
                Opts.ZipFileName = docs.Length > 1 ? "Editor documents" : Path.GetFileNameWithoutExtension(docs[0].FileName);

                return(await Process((inFilePath, outPath, zipOutFolder) =>
                {
                    var stopWatch = new Stopwatch();
                    stopWatch.Start();
                    NLogger.LogInfo($"{App}=>{string.Join(",", docs.Select(t => t.FileName))}=>Start");

                    var tasks = docs.Select(doc => Task.Factory.StartNew(() => { SaveDocument(doc, outPath, zipOutFolder, GetSaveFormatType(doc.FileName)); })).ToArray();
                    Task.WaitAll(tasks);

                    stopWatch.Stop();
                    NLogger.LogInfo($"{App}=>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
                }));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                NLogger.LogError(App, "Editor", exception.Message, sessionId);

                return(new Response
                {
                    StatusCode = 500,
                    Status = exception.Message,
                    FolderName = sessionId,
                    Text = "Editor"
                });
            }
        }
Пример #7
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (IsChange && CurrentUser.UserName == txtUserName.Text.Trim())
            {
                this.ShowInfo("当前登录账户相同.");
                return;
            }
            if (checkBox1.Checked)
            {
                if (string.IsNullOrEmpty(txtPhone.Text))
                {
                    this.ShowInfo("请输入手机.");
                }
            }
            else
            {
                if (string.IsNullOrEmpty(txtUserName.Text))
                {
                    this.ShowInfo("请输入用户名..");
                }
            }
            if (string.IsNullOrEmpty(txtPassword.Text))
            {
                this.ShowInfo("请输入密码.");
            }
            UserModel userModel = new UserModel
            {
                UserName = txtUserName.Text,
                Phone    = txtPhone.Text,
                Password = txtPassword.Text,
                Status   = 1,
            };
            var user = _userBll.Login(userModel);

            if (user != null)
            {
                CurrentUser = user;
                //如果是切换用户,直接隐藏,否则弹出主页面.
                if (!IsChange)
                {
                    MainForm mainForm = new MainForm();
                    mainForm.Show();
                }
                var msg = $"操作员:{user.Name},工号:{user.UserName},{DateTime.Now.ToString()}登录成功.";
                NLogger.LogInfo(msg, user.UserName);
                this.Hide();
            }
            else
            {
                var msg = $"工号/手机号:{txtUserName.Text + txtPhone.Text},{DateTime.Now.ToString()}登录失败.";
                NLogger.LogInfo(msg, txtUserName.Text + txtPhone.Text);
                this.ShowInfo("用户名或密码错误.");
            }
        }
        public ActionResult ResetSitePassword([Bind(Include = "UserName, UserPassword")] SiteGerenicNurse nurseUser)
        {
            if (ModelState.IsValid)
            {
                if (nurseUser.UserName.Trim().Length == 0)
                {
                    return(Json("This is not a valid user name;"));
                }


                var user = Membership.GetUser(nurseUser.UserName);
                if (user == null)
                {
                    return(Json("This is not a valid user name;"));
                }

                if (user.IsLockedOut)
                {
                    user.UnlockUser();
                }

                string resetPassword = user.ResetPassword();
                user.ChangePassword(resetPassword, nurseUser.UserPassword);

                _nlogger.LogInfo("ResetSitePassword, generic user: "******"Generic nurse account has been reset!"));
            }
            else
            {
                return(null);
            }
        }
        public async Task <Response> Download(JObject obj)
        {
            Opts.AppName    = "Metadata";
            Opts.MethodName = "Download";
            try
            {
                Opts.FileName       = Convert.ToString(obj["FileName"]);
                Opts.ResultFileName = Opts.FileName;
                Opts.FolderName     = Convert.ToString(obj["id"]);
                var workbook = new Workbook(Opts.WorkingFileName);

                var pars = obj["properties"]["BuiltIn"].ToObject <List <DocProperty> >();
                SetBuiltInProperties(workbook, pars);
                pars = obj["properties"]["Custom"].ToObject <List <DocProperty> >();
                SetCustomProperties(workbook, pars);

                return(await Process((inFilePath, outPath, zipOutFolder) =>
                {
                    var stopWatch = new Stopwatch();
                    stopWatch.Start();
                    NLogger.LogInfo($"Excel Metadata=>{outPath}=>Start");

                    var task = Task.Run(() => { workbook.Save(outPath); });
                    var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout);

                    if (!isCompleted)
                    {
                        NLogger.LogError($"Excel Metadata=>{outPath}=>{AppSettings.ProcessingTimedout}");
                        throw new TimeoutException(AppSettings.ProcessingTimedout);
                    }

                    stopWatch.Stop();
                    NLogger.LogInfo($"Excel Metadata=>{outPath}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
                }));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                var message   = $"{exception.Message} | FileName = {Convert.ToString(obj["FileName"])}";
                NLogger.LogError(App, "Download", message, Convert.ToString(obj["id"]));

                return(await Task.FromResult(new Response
                {
                    StatusCode = 500,
                    Status = exception.Message,
                    FolderName = Convert.ToString(obj["id"]),
                    Text = "Metadata Download"
                }));
            }
        }
Пример #10
0
        private static void AssembleCellsData(string inFilePath, string outPath, string templateFilename, string datasourceFilename, string datasourceName)
        {
            var dirPath = Path.GetDirectoryName(inFilePath) + "/";

            var dataXlsx = dirPath + datasourceFilename;

            // var dataDir = Path.GetDirectoryName(dataFolderName) + "/";
            // var dataXlsx = dataDir + datasourceFilename;

            var wb = new Workbook(dataXlsx);

            var ws = wb.Worksheets[0];

            var totalRows    = ws.Cells.LastCell.Row + 1;
            var totalColumns = ws.Cells.LastCell.Column + 1;

            var dt = ws.Cells.ExportDataTable(0, 0, totalRows, totalColumns, true);

            dt.TableName = datasourceName;

            var templateXlsx = dirPath + templateFilename;

            // var tempDir = Path.GetDirectoryName(tempFolderName) + '/';
            // var templateXlsx = tempDir + templateFilename;

            var wbTemplate = new Workbook(templateXlsx);
            var wbd        = new WorkbookDesigner(wbTemplate);

            wbd.SetDataSource(dt);

            wbd.Process();

            var stopWatch = new Stopwatch();

            stopWatch.Start();
            NLogger.LogInfo($"Assemble=>dataXlsx:{dataXlsx}||templateXlsx:{templateXlsx}=>Start");

            var task        = Task.Run(() => { wbTemplate.Save(outPath); });
            var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout);

            if (!isCompleted)
            {
                NLogger.LogError($"Assemble=>dataXlsx:{dataXlsx}||templateXlsx:{templateXlsx}=>{AppSettings.ProcessingTimedout}");
                throw new TimeoutException(AppSettings.ProcessingTimedout);
            }

            stopWatch.Stop();
            NLogger.LogInfo($"Assemble=>dataXlsx:{dataXlsx}||templateXlsx:{templateXlsx}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
        }
Пример #11
0
        public ActionResult LogOn([Bind(Include = "UserName,Password,RemberMe")] LogOnModel model, string returnUrl)
        {
            nlogger.LogInfo("Logon Post - user:"******"Logon Post Success - user:"******"Reset")
                        {
                            return(RedirectToAction("ResetPassword", "Account"));
                        }

                        if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") &&
                            !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
                        {
                            return(Redirect(returnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                }
                else
                {
                    MembershipUser user = Membership.GetUser(model.UserName);
                    if (user == null)
                    {
                        ModelState.AddModelError("", "The user name or password provided is incorrect.");
                    }
                    else
                    {
                        if (user.IsLockedOut)
                        {
                            ModelState.AddModelError("", "This user name is locked out.");

                            //send email to admin
                            var admins = DbUtils.GetUserInRole("Admin", 1);
                            Utility.SendUserLockedOutMail(admins.Select(membershipUser => membershipUser.Email).ToArray(), null, model.UserName, Server, Utility.GetSiteLogonUrl(this.Request));
                        }
                        else
                        {
                            ModelState.AddModelError("", "The user name or password provided is incorrect.");
                        }
                    }
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Пример #12
0
 /// <summary>
 /// 新增登记
 /// </summary>
 /// <param name="registerModel"></param>
 /// <returns></returns>
 public bool Register(RegisterModel registerModel, out string errorMsg)
 {
     if (InputVerification(registerModel, out errorMsg))
     {
         registerModel.PatientID   = Guid.NewGuid().ToString("N");
         registerModel.IDCard      = AesUnit.AESEncrypt(registerModel.IDCard, AppConfSetting.AesKey);//AppConfSetting.AesKey
         registerModel.ImageStatus = "图像未到达";
         var registerEntity = registerModel.MapTo <RegisterModel, tb_Register>();
         var projectEntitys = registerModel.Projects.MapListTo <ApplyItem, tb_ApplyProjects>();
         projectEntitys.ForEach(x =>
         {
             x.RegisterID = registerEntity.PatientID;
         });
         bool IsSuccess = false;
         try
         {
             if (_registerService.RequestIDIsExist(registerEntity.RequestID))
             {
                 errorMsg = "申请单ID已存在.";
                 return(false);
             }
             _registerService.db.Ado.BeginTran();
             int num  = _registerService.Insert(registerEntity);
             int num2 = _registerService.InsertProjects(projectEntitys);
             _registerService.db.Ado.CommitTran();
             IsSuccess = true;
         }
         catch (Exception ex)
         {
             _registerService.db.Ado.RollbackTran();
             throw ex;
         }
         errorMsg = IsSuccess ? "添加成功." : "添加失败.";
         NLogger.LogInfo(IsSuccess ? $"登记成功,影像号:{registerModel.ImageNumber},操作员{UserName}" : $"登记失败,影像号:{registerModel.ImageNumber},操作员{UserName}", UserName);
         return(IsSuccess);
     }
     else
     {
         return(false);
     }
 }
        public async Task <Response> Convert(string outputType)
        {
            var sessionId = Guid.NewGuid().ToString();
            var action    = $"Convert to {outputType}";

            try
            {
                var taskUpload = Task.Run(() => UploadWorkbooks(sessionId));
                taskUpload.Wait(Api.Configuration.MillisecondsTimeout);
                if (!taskUpload.IsCompleted)
                {
                    NLogger.LogError($"Convert UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                var docs = taskUpload.Result;
                if (docs == null)
                {
                    return(PasswordProtectedResponse);
                }
                if (docs.Length == 0 || docs.Length > MaximumUploadFiles)
                {
                    return(MaximumFileLimitsResponse);
                }
                SetDefaultOptions(docs);
                Opts.AppName     = "Conversion";
                Opts.MethodName  = "Convert";
                Opts.ZipFileName = docs.Length > 1 ? "Converted files" : Path.GetFileNameWithoutExtension(docs[0].FileName);
                Opts.OutputType  = outputType.Trim().ToLower();

                if (Opts.OutputType.Equals(".html"))
                {
                    if (docs.Length > 1)
                    {
                        Opts.CreateZip = true;
                    }
                    else
                    {
                        Opts.CreateZip = docs[0].Workbook.Worksheets.Count > 1;
                    }
                }

                var saveOpt = GetSaveOptions(outputType.Trim().ToLower());
                return(await Process((inFilePath, outPath, zipOutFolder) =>
                {
                    var stopWatch = new Stopwatch();

                    stopWatch.Start();
                    NLogger.LogInfo($"Convert to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>Start");

                    var tasks = docs.Select(doc => Task.Factory.StartNew(() => SaveDocument(doc, outPath, zipOutFolder, saveOpt))).ToArray();
                    var isCompleted = Task.WaitAll(tasks, Api.Configuration.MillisecondsTimeout);
                    if (!isCompleted)
                    {
                        NLogger.LogError($"Convert to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>{AppSettings.ProcessingTimedout}");
                        throw new TimeoutException(AppSettings.ProcessingTimedout);
                    }

                    stopWatch.Stop();
                    NLogger.LogInfo($"Convert to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
                }));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                var message   = $"{exception.Message} | outputType = {outputType}";
                NLogger.LogError(App, "Convert", message, sessionId);

                return(new Response
                {
                    StatusCode = 500,
                    Status = exception.Message,
                    FolderName = sessionId,
                    Text = action
                });
            }
        }
Пример #14
0
        public async Task <HttpResponseMessage> PreChart(string outputType)
        {
            var sessionId = Guid.NewGuid().ToString();
            var action    = $"Chart to {outputType}";

            try
            {
                var taskUpload = Task.Run(() => UploadWorkbooks(sessionId));
                taskUpload.Wait(Api.Configuration.MillisecondsTimeout);
                if (!taskUpload.IsCompleted)
                {
                    NLogger.LogError($"Chart UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                var docs = taskUpload.Result;
                if (docs == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, PasswordProtectedResponse.Status));
                }
                if (docs.Length == 0 || docs.Length > MaximumUploadFiles)
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, MaximumFileLimitsResponse.Status));
                }

                var guid      = Guid.NewGuid().ToString();
                var outFolder = AppSettings.OutputDirectory + guid;
                if (!Directory.Exists(outFolder))
                {
                    Directory.CreateDirectory(outFolder);
                }

                var charts    = new List <PreviewChart>();
                var stopWatch = new Stopwatch();
                stopWatch.Start();
                NLogger.LogInfo($"Chart to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>Start");

                var tasks       = docs.Select(doc => Task.Factory.StartNew(() => { charts.AddRange(PreCharts(doc, outFolder, guid)); })).ToArray();
                var isCompleted = Task.WaitAll(tasks, Api.Configuration.MillisecondsTimeout);

                if (!isCompleted)
                {
                    NLogger.LogError($"Chart to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                stopWatch.Stop();
                NLogger.LogInfo($"Chart to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");

                if (charts.Count > 0)
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, new { charts, outputType }));
                }

                var response = new Response
                {
                    StatusCode = 404,
                    Status     = "There's no chart in the Excel file.",
                    FolderName = sessionId,
                    Text       = "There's no chart in the Excel file."
                };
                return(Request.CreateResponse(HttpStatusCode.NotFound, response));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                var message   = $"{exception.Message} | outputType = {outputType}";
                NLogger.LogError(App, "PreChart", message, sessionId);

                var response = new Response
                {
                    StatusCode = 500,
                    Status     = exception.Message,
                    FolderName = sessionId,
                    Text       = action
                };
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, response));
            }
        }
        public async Task <Response> Unlock(string passw)
        {
            var          sessionId = Guid.NewGuid().ToString();
            const string action    = "Unlock";

            try
            {
                var taskUpload = Task.Run(() => UploadFiles(sessionId, passw));
                taskUpload.Wait(Api.Configuration.MillisecondsTimeout);
                if (!taskUpload.IsCompleted)
                {
                    NLogger.LogError($"Unlock UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                var docs = taskUpload.Result;
                if (docs == null)
                {
                    return new Response
                           {
                               Status     = "Invalid password.",
                               StatusCode = 201
                           }
                }
                ;
                if (docs.Length == 0 || docs.Length > MaximumUploadFiles)
                {
                    return(MaximumFileLimitsResponse);
                }

                SetDefaultOptions(docs);
                Opts.AppName     = "Unlock";
                Opts.MethodName  = "Unlock";
                Opts.ZipFileName = "Unlocked files";

                return(await Process((inFilePath, outPath, zipOutFolder) =>
                {
                    var stopWatch = new Stopwatch();
                    stopWatch.Start();
                    NLogger.LogInfo($"Unlock=>{string.Join(",", docs.Select(t => t.FileName))}=>Start");

                    var task = Task.Run(() =>
                    {
                        foreach (var doc in docs)
                        {
                            doc.Workbook.Settings.Password = "";
                            SaveDocument(doc, outPath, zipOutFolder, GetSaveFormatType(doc.FileName));
                        }
                    });
                    var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout);

                    if (!isCompleted)
                    {
                        NLogger.LogError($"Unlock=>{string.Join(",", docs.Select(t => t.FileName))}=>{AppSettings.ProcessingTimedout}");
                        throw new TimeoutException(AppSettings.ProcessingTimedout);
                    }

                    stopWatch.Stop();
                    NLogger.LogInfo($"Unlock=>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
                }));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                var message   = $"{exception.Message} | password = {passw}";
                NLogger.LogError(App, "Unlock", message, sessionId);

                return(new Response
                {
                    StatusCode = 201,
                    Status = exception.Message,
                    FolderName = sessionId,
                    Text = action
                });
            }
        }
Пример #16
0
        public async Task <Response> Split(string outputType)
        {
            var sessionId = Guid.NewGuid().ToString();
            var action    = $"Split to {outputType}";

            try
            {
                var taskUpload = Task.Run(() => UploadWorkbooks(sessionId));
                taskUpload.Wait(Api.Configuration.MillisecondsTimeout);
                if (!taskUpload.IsCompleted)
                {
                    NLogger.LogError($"Splitter UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                var docs = taskUpload.Result;
                if (docs.Length == 0 || docs.Length > MaximumUploadFiles)
                {
                    return(MaximumFileLimitsResponse);
                }

                SetDefaultOptions(docs);
                Opts.AppName     = "Splitter";
                Opts.MethodName  = "Split";
                Opts.CreateZip   = true;
                Opts.ZipFileName = "Splitted files";
                Opts.OutputType  = outputType.Trim().ToLower();

                var saveOpt = GetSaveOptions(outputType.Trim().ToLower());
                return(await Process((inFilePath, outPath, zipOutFolder) =>
                {
                    var stopWatch = new Stopwatch();
                    stopWatch.Start();
                    NLogger.LogInfo($"Split to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>Start");

                    var task = Task.Run(() =>
                    {
                        foreach (var doc in docs)
                        {
                            var workbook = doc.Workbook;
                            var worksheetCollection = workbook.Worksheets;
                            var i = worksheetCollection.Count;

                            for (var j = 0; j < i; j++)
                            {
                                var sheet = worksheetCollection[j];
                                var newWorkbook = new Workbook();
                                newWorkbook.Worksheets[0].Copy(sheet);
                                var documentInfo = new DocumentInfo {
                                    Workbook = newWorkbook
                                };

                                string ext;
                                if (outputType.Equals("-"))
                                {
                                    ext = Path.GetExtension(doc.FileName);
                                }
                                else
                                {
                                    ext = "." + outputType.Trim().ToLower();
                                }

                                var l = outPath.Split('.');
                                var newOutPath = l[0] + "_" + sheet.Name + ext;
                                newOutPath = NewOutPath(newOutPath);
                                newWorkbook.Save(newOutPath);
                                documentInfo.FileName = Path.GetFileName(newOutPath);

                                SaveDocument(documentInfo, newOutPath, zipOutFolder, saveOpt);
                            }
                        }
                    });
                    var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout);

                    if (!isCompleted)
                    {
                        NLogger.LogError($"Split to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>{AppSettings.ProcessingTimedout}");
                        throw new TimeoutException(AppSettings.ProcessingTimedout);
                    }

                    stopWatch.Stop();
                    NLogger.LogInfo($"Split to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
                }));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                var message   = $"{exception.Message} | outputType = {outputType}";
                NLogger.LogError(App, "Split", message, sessionId);

                return(new Response
                {
                    StatusCode = 500,
                    Status = exception.Message,
                    FolderName = sessionId,
                    Text = action
                });
            }
        }
Пример #17
0
        public JsonResult CreateName()
        {
            var dto = new DTO();

            var siteId    = DbUtils.GetSiteidIdForUser(HttpContext.User.Identity.Name);
            var lastName  = Request.Params["LastName"];
            var firstName = Request.Params["FirstName"];
            var empId     = Request.Params["EmpID"];
            var email     = Request.Params["Email"];

            dto.ReturnValue = DbPostTestsUtils.DoesStaffNameExist(lastName, firstName, siteId);
            if (dto.ReturnValue != 0)
            {
                if (dto.ReturnValue == -1)
                {
                    dto.Message = "There was an error in determinig if this name was already in the database.";
                }
                if (dto.ReturnValue == 0)
                {
                    dto.Message = "This name already exists. Select your name from the drop down list.";
                }

                _logger.LogInfo("PostTests.CreateName - message: " + dto.Message + ", name: " + lastName + "," + firstName + ", site: " + siteId.ToString(CultureInfo.InvariantCulture));
                return(Json(dto));
            }

            dto.ReturnValue = DbPostTestsUtils.AddNurseStaff(lastName, firstName, empId, siteId, email);

            var staff = NotificationUtils.GetStaffForEvent(3, siteId);

            string siteName = DbUtils.GetSiteNameForUser(User.Identity.Name);
            var    u        = new UrlHelper(Request.RequestContext);

            Debug.Assert(Request.Url != null, "Request.Url != null");
            var url = "http://" + Request.Url.Host + u.RouteUrl("Default", new { Controller = "Account", Action = "Logon" });

            Utility.SendNurseAccountCreatedMail(staff.ToArray(), new[] { Request.Params["Email"] }, firstName + " " + lastName, siteName, empId, Server, url);

            _logger.LogInfo("PostTests.CreateName - message: " + dto.Message + ", name: " + lastName + "," + firstName + ", site: " + siteId.ToString(CultureInfo.InvariantCulture));
            return(Json(dto));
        }
Пример #18
0
        public static bool InitializeSs(string physicalAppPath, string studyId, SSInsertionData ssInsert, int sensorType, int language)
        {
            physicalAppPath = Encoder.HtmlEncode(physicalAppPath);
            studyId         = Encoder.HtmlEncode(studyId);
            if (DbUtils.IsStudyIdValid(studyId) != 1)
            {
                return(false);
            }

            Nlogger.LogInfo("SsUtils.InitializeSS: " + studyId);

            var path          = physicalAppPath + "sstemplate\\";
            var file          = path + "Checks_tmpl.xlsm";
            var file2         = path + studyId + ".xlsm";
            var iSensorType   = sensorType;
            var iGGonlyModeOn = 0;

            if (iSensorType == 0)
            {
                iGGonlyModeOn = 1;
            }

            if (!File.Exists(file2))
            {
                File.Copy(file, file2);
            }

            Nlogger.LogInfo("SsUtils.InitializeSS - insert data into ss: " + studyId);

            try
            {
                using (var document = SpreadsheetDocument.Open(file2, true))
                {
                    var wbPart   = document.WorkbookPart;
                    var theSheet =
                        wbPart.Workbook.Descendants <Sheet>().FirstOrDefault(s => s.Name == "ParameterDefaults");

                    //WorksheetPart wsPart = (WorksheetPart)wbPart.GetPartById(theSheet.Id);

                    UpdateValue(wbPart, "D2", studyId, 0, true, "ParameterDefaults");
                    UpdateValue(wbPart, "E2", studyId, 0, true, "ParameterDefaults");
                    UpdateValue(wbPart, "D3", ssInsert.BodyWeight, 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "E3", ssInsert.BodyWeight, 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "D4", ssInsert.InsulinConcentration, 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "E4", ssInsert.InsulinConcentration, 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "D5", ssInsert.TargetLow, 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "E5", ssInsert.TargetLow, 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "D6", ssInsert.TargetHigh, 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "E6", ssInsert.TargetHigh, 0, false, "ParameterDefaults");

                    UpdateValue(wbPart, "D47", iGGonlyModeOn.ToString(), 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "D49", iSensorType.ToString(), 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "D50", "", 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "D51", "", 0, false, "ParameterDefaults");
                    UpdateValue(wbPart, "D53", language.ToString(), 0, false, "ParameterDefaults");

                    if (sensorType > 0)
                    {
                        UpdateValue(wbPart, "A2", "1", 0, true, "SensorData");
                        UpdateValue(wbPart, "B2", ssInsert.MonitorDate, 0, true, "SensorData");
                        UpdateValue(wbPart, "C2", ssInsert.MonitorTime, 0, true, "SensorData");
                        UpdateValue(wbPart, "D2", ssInsert.MonitorId, 0, true, "SensorData");
                        UpdateValue(wbPart, "E2", ssInsert.TransmitterId, 0, true, "SensorData");
                        UpdateValue(wbPart, "F2", ssInsert.SensorLot, 0, true, "SensorData");
                        UpdateValue(wbPart, "G2", ssInsert.InserterFirstName, 0, true, "SensorData");
                        UpdateValue(wbPart, "H2", ssInsert.InserterLastName, 0, true, "SensorData");
                        UpdateValue(wbPart, "I2", GetSensorLocationString(ssInsert.SensorLocation), 0, true,
                                    "SensorData");
                        UpdateValue(wbPart, "J2", "Initial Insertion", 0, true, "SensorData");
                        UpdateValue(wbPart, "K2", DateTime.Today.ToShortDateString(), 0, true, "SensorData");
                        UpdateValue(wbPart, "L2", ssInsert.ExpirationDate, 0, true, "SensorData");
                    }
                    document.Close();
                }



                //get the path to the site folder
                var siteCode = studyId.Substring(0, 2);
                var sitePath = physicalAppPath + "xcel\\" + siteCode;
                //if it doesn't exist then create it
                if (!Directory.Exists(sitePath))
                {
                    Directory.CreateDirectory(sitePath);
                }

                var file3 = sitePath + "\\" + studyId + ".xlsm";
                if (File.Exists(file3))
                {
                    File.Delete(file3);
                }

                File.Move(file2, file3);
            }
            catch (Exception ex)
            {
                Nlogger.LogError(ex);
                return(false);
            }

            return(true);
        }
Пример #19
0
        public ActionResult Initialize()
        {
            _logger.LogInfo("InitializeSubject.Initialize: GET");
            int siteId  = DbUtils.GetSiteidIdForUser(User.Identity.Name);
            var insCons = DbUtils.GetInsulinConcItems(siteId);

            insCons.Insert(0, new InsulinConcentration {
                Name = "Select ", Concentration = ""
            });

            ViewBag.Concentrations = new SelectList(insCons, "Concentration", "Name");

            var sl = DbUtils.GetLookupItems("SensorLocations");

            if (sl.Count == 0)
            {
                throw new Exception("There was an error retrieving the senor locations list from the database");
            }
            sl.Insert(0, new Site {
                ID = 0, Name = "Select"
            });

            var inititalizeSiteSpecific = DbUtils.GetSiteSpecificForInitialize(siteId);

            ViewBag.SensorLocations = new SelectList(sl, "ID", "Name");
            ViewBag.SensorType      = inititalizeSiteSpecific.Sensor;
            ViewBag.UseCafpint      = inititalizeSiteSpecific.UseCalfpint;
            ViewBag.UseVampjr       = inititalizeSiteSpecific.UseVampjr;

            _logger.LogInfo("InitializeSubject.Initialize: GET, Site: " + siteId);
            return(View());
        }
Пример #20
0
        public ActionResult Index()
        {
            string role = "Coordinator";

            if (HttpContext.User.IsInRole("Admin"))
            {
                role = "Admin";
            }
            ViewBag.Role = role;

            if (role == "Admin")
            {
                var sites = DbUtils.GetSitesActive();
                if (sites.Count == 0)
                {
                    throw new Exception("There was an error retreiving the sites list from the database");
                }
                sites.Insert(0, new Site {
                    ID = 0, Name = "Select a site", SiteID = ""
                });
                ViewBag.Sites = new SelectList(sites, "ID", "Name");
            }

            _nlogger.LogInfo("Admin Index - user: "******", role: " + role);

            List <MembershipUser> users = new List <MembershipUser>();

            if (role == "Admin")
            {
                users = AccountUtils.GetAllUsers();
            }
            else
            {
                int siteID = DbUtils.GetSiteidIdForUser(HttpContext.User.Identity.Name);
                users = DbUtils.GetUsersForSite(siteID);
            }

            ViewBag.Users = new SelectList(users, "UserName", "UserName");
            if (!SiteMapManager.SiteMaps.ContainsKey("admin"))
            {
                SiteMapManager.SiteMaps.Register <XmlSiteMap>("admin", sitmap => sitmap.LoadFrom("~/admin.sitemap"));
            }
            return(View());
        }
        public async Task <Response> AddTextWatermark(string watermarkText, string watermarkColor)
        {
            var          sessionId = Guid.NewGuid().ToString();
            const string action    = "AddTextWatermark";

            try
            {
                var taskUpload = Task.Run(() => UploadWorkbooks(sessionId));
                taskUpload.Wait(Api.Configuration.MillisecondsTimeout);
                if (!taskUpload.IsCompleted)
                {
                    NLogger.LogError($"Watermark UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                var docs = taskUpload.Result;
                if (docs == null)
                {
                    return(PasswordProtectedResponse);
                }
                if (docs.Length == 0 || docs.Length > MaximumUploadFiles)
                {
                    return(MaximumFileLimitsResponse);
                }
                var color = GetColor(watermarkColor);
                SetDefaultOptions(docs);
                Opts.AppName     = "Watermark";
                Opts.MethodName  = "AddTextWatermark";
                Opts.ZipFileName = docs.Length > 1 ? "Watermark files" : Path.GetFileNameWithoutExtension(docs[0].FileName);

                return(await Process((inFilePath, outPath, zipOutFolder) =>
                {
                    var stopWatch = new Stopwatch();
                    stopWatch.Start();
                    NLogger.LogInfo($"Watermark=>{string.Join(",", docs.Select(t => t.FileName))}=>Start");

                    var task = Task.Run(() =>
                    {
                        foreach (var doc in docs)
                        {
                            var workbook = doc.Workbook;
                            foreach (var sheet in workbook.Worksheets)
                            {
                                //// Add Watermark
                                var addTextEffect = sheet.Shapes.AddTextEffect(MsoPresetTextEffect.TextEffect1,
                                                                               watermarkText, "Arial Black", 60, true, true
                                                                               , 18, 8, 1, 1, 130, 800);
                                addTextEffect.Fill.FillType = FillType.Solid;
                                addTextEffect.Fill.SolidFill.Color = color;
                            }

                            SaveDocument(doc, outPath, zipOutFolder, GetSaveFormatType(doc.FileName));
                        }
                    });
                    var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout);

                    if (!isCompleted)
                    {
                        NLogger.LogError($"Watermark=>{string.Join(",", docs.Select(t => t.FileName))}=>{AppSettings.ProcessingTimedout}");
                        throw new TimeoutException(AppSettings.ProcessingTimedout);
                    }

                    stopWatch.Stop();
                    NLogger.LogInfo($"Watermark =>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
                }));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                var message   = $"{exception.Message} | watermarkText = {watermarkText} | watermarkColor = {watermarkColor}";
                NLogger.LogError(App, "AddTextWatermark", message, sessionId);

                return(new Response
                {
                    StatusCode = 500,
                    Status = exception.Message,
                    FolderName = sessionId,
                    Text = action
                });
            }
        }
Пример #22
0
        public FilePathResult GetFile(string fileName, string folder)
        {
            fileName = Encoder.HtmlEncode(fileName);
            folder   = Encoder.HtmlEncode(folder);

            if (fileName.StartsWith("Site~"))
            {
                GetSiteFileNameAndFolder(ref fileName, ref folder);
            }

            var docPath = @"C:\Dropbox.New\Dropbox\HalfPint Website Docs Library";

            if (folder != null)
            {
                if (folder.Length > 0)
                {
                    if (folder.IndexOf('~') > -1)
                    {
                        folder = folder.Replace('~', '\\');
                    }
                    docPath = Path.Combine(docPath, folder);
                }
            }

            var file        = Path.Combine(docPath, fileName);
            var contentType = "";
            var pos         = 0;

            pos = fileName.LastIndexOf(".");
            var ext = fileName.Substring(pos).ToLower();

            switch (ext)
            {
            case ".docx":
                contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
                break;

            case ".doc":
                contentType = "application/msword";
                break;

            case ".ppt":
                contentType = "applica​tion/vnd.m​s-powerpoi​nt";
                break;

            case ".pptx":
                contentType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
                break;

            case ".xlsx":
                contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                break;

            case ".xls":
                contentType = "application/msexcel";
                break;

            case ".pdf":
                contentType = "application/pdf";
                break;

            case ".exe":
                contentType = "application/exe";
                break;

            case ".dll":
                contentType = "application/dll";
                break;

            case ".msi":
                contentType = "application/msi";
                break;

            case ".mp4":
                contentType = "video/mp4";
                break;
            }

            nlogger.LogInfo("Download.GetFile: " + fileName);
            return(this.File(file, contentType, fileName));
        }
Пример #23
0
        public async Task <Response> Merge(string outputType, string mergerType)
        {
            var sessionId = Guid.NewGuid().ToString();
            var action    = $"Merge to {outputType}";

            try
            {
                var taskUpload = Task.Run(() => UploadWorkbooks(sessionId));
                taskUpload.Wait(Api.Configuration.MillisecondsTimeout);
                if (!taskUpload.IsCompleted)
                {
                    NLogger.LogError($"Merge UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}");
                    throw new TimeoutException(AppSettings.ProcessingTimedout);
                }

                var docs = taskUpload.Result;
                if (docs == null)
                {
                    return(PasswordProtectedResponse);
                }
                if (docs.Length <= 1 || docs.Length > MaximumUploadFiles)
                {
                    return(MaximumFileLimitsResponse);
                }

                SetDefaultOptions(docs);
                Opts.AppName            = "Merger";
                Opts.MethodName         = "Merge";
                Opts.ResultFileName     = $"Merged file{Opts.OutputType}";
                Opts.CreateZip          = Opts.OutputType.Equals(".html");
                Opts.ZipFileName        = "Merged file";
                Opts.FolderName         = docs[0].FolderName;
                Opts.DeleteSourceFolder = true;

                var saveOpt = GetSaveOptions(outputType.Trim().ToLower());
                return(await Process((inFilePath, outPath, zipOutFolder) =>
                {
                    var outWorkbook = new Workbook();
                    if (!IsImage(docs[0].FileName))
                    {
                        outWorkbook.Worksheets.RemoveAt(0);
                    }

                    var index = 0;
                    foreach (var doc in docs)
                    {
                        switch (Path.GetExtension(doc.FileName))
                        {
                        case ".jpg":
                        case ".png":
                            var upperLeftRow = outWorkbook.Worksheets[0].Pictures.Count > 0
                                    ? outWorkbook.Worksheets[0].Pictures[index].LowerRightRow
                                    : index;
                            index = outWorkbook.Worksheets[0].Pictures.Add(upperLeftRow, 0, doc.FileName);
                            break;

                        case ".html":
                        case ".mht":
                        case ".mhtml":
                        case ".xlsx":
                        case ".xls":
                        case ".xlsm":
                        case ".xlsb":
                        case ".ods":
                        case ".csv":
                        case ".tsv":
                            outWorkbook.Combine(new Workbook(doc.FileName));
                            break;
                        }
                    }

                    if (mergerType.Equals("s"))
                    {
                        outWorkbook = MergeToSheet(outWorkbook);
                    }

                    var documentInfo = new DocumentInfo {
                        FileName = outPath, FolderName = Path.GetDirectoryName(outPath), Workbook = outWorkbook
                    };

                    var stopWatch = new Stopwatch();
                    stopWatch.Start();
                    NLogger.LogInfo($"Merge to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>Start");

                    var task = Task.Run(() => { SaveDocument(documentInfo, outPath, zipOutFolder, saveOpt); });
                    var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout);

                    if (!isCompleted)
                    {
                        NLogger.LogError($"Merge to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>{AppSettings.ProcessingTimedout}");
                        throw new TimeoutException(AppSettings.ProcessingTimedout);
                    }

                    stopWatch.Stop();
                    NLogger.LogInfo($"Merge to {outputType.Trim().ToLower()}=>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}");
                }));
            }
            catch (Exception e)
            {
                var exception = e.InnerException ?? e;
                var message   = $"{exception.Message} | outputType = {outputType} | mergerType = {mergerType}";
                NLogger.LogError(App, "Merge", message, sessionId);

                return(new Response
                {
                    StatusCode = 500,
                    Status = exception.Message,
                    FolderName = sessionId,
                    Text = action
                });
            }
        }