public ExperimentsInfo GetExperimentById(Guid experimentId)
 {
     using (WanTaiEntities entities = new WanTaiEntities())
     {
         ExperimentsInfo experimentInfo = entities.ExperimentsInfoes.FirstOrDefault(p => p.ExperimentID == experimentId);
         return experimentInfo;
     }
 }
Example #2
0
        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();
            }
        }
Example #3
0
        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 = "添加实验失败。";
            }
        }
Example #4
0
 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);
     }
 }
Example #5
0
 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);
     }
 }
Example #6
0
 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);
     }
 }
Example #7
0
 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;
        }
Example #9
0
        /// <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);
        }