public ExperimentsInfo GetExperimentById(Guid experimentId) { using (WanTaiEntities entities = new WanTaiEntities()) { ExperimentsInfo experimentInfo = entities.ExperimentsInfoes.FirstOrDefault(p => p.ExperimentID == experimentId); return experimentInfo; } }
public void UpdataExperimentStatus(Guid ExperimentID, bool isFinal, ExperimentStatus State) { using (WanTaiEntities _WanTaiEntities = new WanTaiEntities()) { ExperimentsInfo experiment = _WanTaiEntities.ExperimentsInfoes.Where(c => c.ExperimentID == ExperimentID).FirstOrDefault(); if (experiment != null) { experiment.State = (short)State; if (isFinal) { experiment.EndTime = DateTime.Now; } } _WanTaiEntities.SaveChanges(); } }
private void btnSave_Click(object sender, RoutedEventArgs e) { string experimentName = txtExperimentName.Text.Trim(); if (experimentName == string.Empty) { errInfo.Text = "实验名称不能为空。"; return; } else if (System.Text.Encoding.Default.GetByteCount(experimentName) > 255) { errInfo.Text = "实验名称允许最大长度为127个汉字"; return; } ExperimentController controller = new ExperimentController(); if (controller.ExperimentNameExists(experimentName)) { errInfo.Text = "实验名称\"" + txtExperimentName.Text + "\"已存在。"; return; } ExperimentsInfo experimentsInfo = new ExperimentsInfo(); experimentsInfo.ExperimentID = WanTaiObjectService.NewSequentialGuid(); experimentsInfo.ExperimentName = experimentName; experimentsInfo.LoginName = txtOrperatorName.Text; experimentsInfo.Remark = txtRemark.Text; experimentsInfo.StartTime = DateTime.Now; experimentsInfo.State = (short)ExperimentStatus.Create;; SessionInfo.CurrentExperimentsInfo = experimentsInfo; if (controller.CreateExperiment(experimentsInfo)) { SessionInfo.ExperimentID = experimentsInfo.ExperimentID; SessionInfo.RotationFormulaParameters = new Dictionary <Guid, FormulaParameters>(); SessionInfo.PraperRotation = null; LogInfoController.AddLogInfo(LogInfoLevelEnum.Operate, "新建实验 成功", SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID); this.DialogResult = true; this.Close(); } else { errInfo.Text = "添加实验失败。"; } }
public bool DeleteExperiment(Guid experimentID) { try { using (WanTaiEntities entities = new WanTaiEntities()) { ExperimentsInfo experimentsInfo = entities.ExperimentsInfoes.FirstOrDefault(p => p.ExperimentID == experimentID); entities.ExperimentsInfoes.DeleteObject(experimentsInfo); return(true); } } catch (Exception ex) { string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace; LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID); return(false); } }
public bool CreateExperiment(ExperimentsInfo experimentInfo) { try { using (WanTaiEntities entities = new WanTaiEntities()) { entities.AddToExperimentsInfoes(experimentInfo); entities.SaveChanges(); return(true); } } catch (Exception ex) { string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace; LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID); return(false); } }
public bool UpdateExperimentState(Guid ExperimentID, int State) { try { using (WanTaiEntities entities = new WanTaiEntities()) { ExperimentsInfo tempExperimentsInfo = entities.ExperimentsInfoes.FirstOrDefault(p => p.ExperimentID == ExperimentID); if (tempExperimentsInfo != null) { tempExperimentsInfo.State = (short)State; entities.SaveChanges(); } } return(true); } catch (Exception ex) { string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace; LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID); return(false); } }
public bool ExperimentNameExists(string experimentName) { try { using (WanTaiEntities entities = new WanTaiEntities()) { ExperimentsInfo experimentInfo = entities.ExperimentsInfoes.FirstOrDefault(p => p.ExperimentName == experimentName); if (experimentInfo != null) { return(true); } else { return(false); } } } catch (Exception ex) { string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace; LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID); return(false); } }
public List<ExperimentsInfo> GetNextExperiments(string experimentName, string experimentDate, string userName, int startRowIndex, int rowNumber, string sortColumnName, string sortDirection) { List<ExperimentsInfo> recordList = new List<ExperimentsInfo>(); try { string connectionString = WanTai.Common.Configuration.GetConnectionString(); ///todo: add control,each role user only can see the specific experiments string commandText = "SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY @orderBy) AS [ROW_NUMBER], [t0].*" + " FROM [dbo].[ExperimentsInfo] AS [t0] {0}) AS [t1] WHERE [t1].[ROW_NUMBER] BETWEEN @startIndex AND @endIndex" + " ORDER BY [t1].[ROW_NUMBER]"; string defaulOrderBy = "StartTime desc"; if (!string.IsNullOrEmpty(sortColumnName) && !string.IsNullOrEmpty(sortDirection)) { defaulOrderBy = sortColumnName + " " + sortDirection; } commandText = commandText.Replace("@orderBy", defaulOrderBy); StringBuilder sbWhere = new StringBuilder(); if (!string.IsNullOrEmpty(experimentName)) { string experimentName2 = experimentName.Replace("'", "''").Replace("[", "[[]"); sbWhere.Append(" WHERE [t0].ExperimentName like '%" + experimentName2 + "%'"); } if (!string.IsNullOrEmpty(experimentDate)) { sbWhere.Append(sbWhere.Length > 0 ? " AND " : " WHERE "); sbWhere.Append(" StartTime between CONVERT(datetime,'" + experimentDate + "',101) and DATEADD(dd, 1, CONVERT(datetime,'" + experimentDate + "',101))"); } if (!string.IsNullOrEmpty(userName)) { sbWhere.Append(sbWhere.Length > 0 ? " AND " : " WHERE "); sbWhere.Append(" LoginName='" + userName + "'"); } // UserInfoController userInfoController = new UserInfoController(); // userInfoController.GetRoleByUserName(SessionInfo.LoginName); // RoleInfo userRole = userInfoController.GetRoleByUserName(SessionInfo.LoginName); // sbWhere.Append(sbWhere.Length > 0 ? " AND " : " WHERE "); // if (userInfoController.GetAuthorize(AccessAuthority.ExperimentHistory) == AccessAuthority.Self) // { // sbWhere.Append(" LoginName='" + SessionInfo.LoginName + "'"); // } // else // sbWhere.Append(@" 1=1 "); //// { //// sbWhere.Append(@" (LoginName is null or LoginName in //// (select LoginName from UserInfo u left join roleinfo r on r.RoleName=u.RoleName where r.RoleLevel<=" + userRole.RoleLevel + " ))"); //// } commandText = String.Format(commandText, sbWhere.ToString()); using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand cmd = new SqlCommand(commandText, conn)) { cmd.Parameters.AddWithValue("@startIndex", startRowIndex); cmd.Parameters.AddWithValue("@endIndex", startRowIndex + rowNumber - 1); using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.Default)) { while (reader.Read()) { ExperimentsInfo info = new ExperimentsInfo(); info.ExperimentID = (Guid)reader.GetValue(1); info.ExperimentName = reader.GetValue(2).ToString(); info.StartTime = (DateTime)reader.GetValue(3); if (reader.GetValue(4) != DBNull.Value) { info.EndTime = (DateTime)reader.GetValue(4); } info.LoginName = reader.GetValue(5).ToString(); if (reader.GetValue(6) != DBNull.Value) { info.Remark = reader.GetValue(6).ToString(); } info.State = (short)reader.GetValue(7); recordList.Add(info); } } } } } catch (Exception e) { string errorMessage = e.Message + System.Environment.NewLine + e.StackTrace; LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().ToString() + "->GetNextExperiments", SessionInfo.ExperimentID); throw; } return recordList; }
/// <summary> /// Exporttopdf /// </summary> /// <param name="ds"></param> /// <param name="fileName"></param> /// <returns></returns> private bool ExportToPdf(DataSet ds, string fileName, ExperimentsInfo expInfo) { ///设置导出字体 string FontPath = "C://WINDOWS//Fonts//simsun.ttc,1"; int FontSize = 8; Boolean result = true; //竖排模式,大小为A4,四周边距均为25 Document document = new Document(PageSize.A4, 10, 10, 10, 10); //调用PDF的写入方法流 //注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); //创建PDF文档中的字体 BaseFont baseFont = BaseFont.CreateFont( FontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //根据字体路径和字体大小属性创建字体 iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, FontSize); iTextSharp.text.Font fontTitle = new iTextSharp.text.Font(baseFont, 9); iTextSharp.text.Font fontWanTag = new iTextSharp.text.Font(baseFont, 14); fontWanTag.IsBold(); DateTime dTime = DateTime.Now; HeaderFooter footer = new HeaderFooter(new Phrase(dTime.ToString("yyyy/MM/dd HH:mm:ss") + " Page: "), true); footer.Border = Rectangle.NO_BORDER; footer.Alignment = Element.ALIGN_RIGHT; document.Footer = footer; //HeaderFooter Header = new HeaderFooter(new Phrase("WanTag 实验报告"),false); //Header.Border = Rectangle.NO_BORDER; //Header.Alignment = Element.ALIGN_CENTER; //document.Header = Header; //打开目标文档对象 document.Open(); document.Add(new Paragraph("\n")); Paragraph p_WanTag = new Paragraph("WanTag 实验报告", fontWanTag); p_WanTag.Alignment = 1; document.Add(p_WanTag); document.Add(new Paragraph("\n")); Paragraph p_expName = new Paragraph(" 实验名称:" + expInfo.ExperimentName, fontTitle); //p_expName.Alignment = 1; document.Add(p_expName); Paragraph p_expLoginName = new Paragraph(" 操 作 员:" + expInfo.LoginName, fontTitle); //p_expName.Alignment = 1; document.Add(p_expLoginName); Paragraph p_expStartDate = new Paragraph(" 开始时间:" + expInfo.StartTime.ToString("yyyy/MM/dd HH:mm:ss"), fontTitle); //p_expName.Alignment = 1; document.Add(p_expStartDate); Paragraph p_expEndDate = new Paragraph(" 结束时间:" + Convert.ToDateTime(expInfo.EndTime).ToString("yyyy/MM/dd HH:mm:ss"), fontTitle); //p_expName.Alignment = 1; document.Add(p_expEndDate); document.Add(new Paragraph("\n")); for (int k = 0; k < ds.Tables.Count; k++) { if (k > 0) { document.NewPage(); } string tableName = ds.Tables[k].TableName; if (ds.Tables[k].Rows[0]["检测结果"].ToString() == "重新测定" || ds.Tables[k].Rows[1]["检测结果"].ToString() == "重新测定") { tableName += " 质控品结果不符合标准,实验结果无效"; } Paragraph p_Name = new Paragraph(tableName, fontTitle); document.Add(p_Name); document.Add(new Paragraph("\n")); //根据数据表内容创建一个PDF格式的表 PdfPTable table = new PdfPTable(ds.Tables[k].Columns.Count - 1); table.SetTotalWidth(new float[] { 5, 10, 12, 10, 8, 6, 12, 6, 13, 20 }); // 添加表头,每一页都有表头 for (int j = 0; j < ds.Tables[k].Columns.Count - 1; j++) { string cellName = ds.Tables[k].Columns[j].ColumnName; cellName = cellName.Replace("BarCode", "条码").Replace("Position", "孔位"); PdfPCell cell = new PdfPCell(new Phrase(cellName, font)); cell.UseAscender = true; cell.VerticalAlignment = Element.ALIGN_MIDDLE; cell.HorizontalAlignment = Element.ALIGN_CENTER; cell.BackgroundColor = new Color(220, 220, 220); table.AddCell(cell); } // 告诉程序这行是表头,这样页数大于1时程序会自动为你加上表头。 table.HeaderRows = 1; //遍历原datatable的数据行 for (int i = 0; i < ds.Tables[k].Rows.Count; i++) { for (int j = 0; j < ds.Tables[k].Columns.Count - 1; j++) { try { PdfPCell cell = new PdfPCell(new Phrase(ds.Tables[k].Rows[i][j].ToString(), font)); System.Drawing.Color Color = System.Drawing.ColorTranslator.FromHtml(ds.Tables[k].Rows[i]["Color"].ToString()); cell.BackgroundColor = new iTextSharp.text.Color(Color); table.AddCell(cell); // table.AddCell(new Phrase(ds.Tables[k].Rows[i][j].ToString(), font)); } catch (Exception e) { result = false; } } } //在目标文档中添加转化后的表数据 document.Add(table); } //关闭目标文件 document.Close(); //关闭写入流 writer.Close(); return(result); }