protected void Page_Load(object sender, EventArgs e) { _trainDetaiRepo = RepositoryFactory.CreateTrainDetailRepo(); _rootRepo = RepositoryFactory.CreateRootRepo(); if (!Authentication.HasResource(User.Identity.Name, "TrainDetail01")) { Response.Redirect(@"/account/logon.aspx?ReturnUrl=%2f"); } if (!IsPostBack) { PageTitle.Value = "學員意見調查維護 > 編輯"; string CLID = String.IsNullOrEmpty(Request["CLID"]) ? String.Empty : Request["CLID"].ToString(); string SID = String.IsNullOrEmpty(Request["SID"]) ? String.Empty : Request["SID"].ToString(); var employeeData = _rootRepo.QueryForEmployeeByEmpID(SID); string DepartmentID_FK = employeeData != null ? employeeData["DepartmentID_FK"].ToString() : String.Empty; model = _trainDetaiRepo.GetDetail(CLID, SID, DepartmentID_FK); // 取得 QueryString //var paggerParms = WebUtils.ParseQueryString<PaggerParms>(Page.Request); //var signListParms = WebUtils.ParseQueryString<SignListParms>(Page.Request); //signListParms.Member = Authentication.GetMemberViewModel(User.Identity.Name); //signListParms.GridView = TrainDetailGridView; //signListParms.PaginationBar = paginationBar; //paggerParms.OrderField = "qno"; ////建構頁面 //ConstructPage(signListParms, paggerParms, RepositoryFactory.CreateTrainDetailRepo()); WebUtils.PageDataBind(model, this.Page); SaveBtn.Attributes.Add("onclick ", "return confirm( '提醒:送出後就不可更改,確定要送出嗎?');"); } PageInit(); }
public ActionResult EditTrain(TrainViewModel trainView) { var mapper = new MapperConfiguration(cfg => cfg.CreateMap <TrainViewModel, TrainDTO>()).CreateMapper(); var trainDto = mapper.Map <TrainViewModel, TrainDTO>(trainView); _trainService.EditTrain(trainDto); return(RedirectToAction("ShowTrains")); }
private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e) { TrainViewModel o = this.DataContext as TrainViewModel; o.Station.SelectedTrain = o.TrainList.Find((item) => item.Name == o.SelectedTrainName); this.DataContext = o; Deb.Print(o.Station.SelectedTrain, "<======>"); }
//簽核作業頁面 > 取得學員課程明細資料 public TrainViewModel GetData(string SignDocID) { TrainViewModel model = null; string strCatelog = RepositoryFactory.PotalConn["Catelog"]; string strSQL = String.Format(@"select a.CLID CLID, class.CLNAME CLNAME, class.HOURS, class.START_DATE STARTDATE, a.SID SID, emp.EmployeeName SNAME, a.SignDocID SignDocID, dep.DepartmentID DepartmentID_FK, dep.DepartmentName DepartmentName, a.TABLE_ID TABLE_ID, Sig_M.FormID_FK FormID_FK, Sig_M.EmployeeID_FK ApplyID_FK, apply.EmployeeName ApplayName, Sig_M.SendDate ApplyDateTime from FORM_SIGN a left join {0}..SignForm_Main Sig_M on Sig_M.SignDocID=a.SignDocID left join {0}..Employee apply on apply.EmployeeID=Sig_M.EmployeeID_FK left join {0}..Employee emp on emp.EmployeeID=a.SID left join {0}..Department dep on dep.DepartmentID=emp.DepartmentID_FK left join RTCLASS class on class.CLID=a.CLID where a.SignDocID=@SignDocID", strCatelog); var strCondition = new Conditions() { { "@SignDocID", SignDocID } }; var result = _dc.QueryForDataRow(strSQL, strCondition); if (result == null) { return(null); } model = new TrainViewModel() { FormID_FK = Int32.Parse(result["FormID_FK"].ToString()), SignDocID_FK = result["SignDocID"].ToString(), ApplyID_FK = result["ApplyID_FK"].ToString(), ApplyName = result["ApplayName"].ToString(), ApplyDateTime = DateTime.Parse(result["ApplyDateTime"].ToString()), CLID = result["CLID"].ToString(), SID = result["SID"].ToString(), CLNAME = result["CLNAME"].ToString(), Start_Date = !result["STARTDATE"].IsDBNullOrWhiteSpace() ? DateTime.Parse(result["STARTDATE"].ToString()) : (DateTime?)null, HOURS = result["HOURS"].ToString(), SNAME = result["SNAME"].ToString(), DepartmentID_FK = result["DepartmentID_FK"].ToString() }; return(model); }
/// <summary> /// [NOT CONNECTED TO RECOGNIZE MODULE] Save pictures (or archive of pictures) on server, send pictures to train of recognize module /// </summary> /// <param name="model">Model to train</param> /// <returns>F1 Score of recognize valid data</returns> public async Task <double?> TrainModel(TrainViewModel model) { var modelNN = await _applicationDbContext.ModelsNN.SingleOrDefaultAsync(m => m.URL == model.ModelURL); if (modelNN != null) { List <string> pathes = new List <string>(model.Files.Count); byte[] buffer = new byte[4096]; //Save files foreach (var file in model.Files) { if (file.ContentType.IndexOf("zip") > -1) { using (ZipInputStream s = new ZipInputStream(file.OpenReadStream())) { ZipEntry theEntry; while ((theEntry = s.GetNextEntry()) != null) { var fpath = Path.GetFileName(theEntry.Name).ToLower(); if (fpath.IndexOf(".img") > -1 || fpath.IndexOf(".png") > -1 || fpath.IndexOf(".gif") > -1) { var filepath = _fileService.GetNextFilesPath(1, DirectoryType.Upload)[0]; using (FileStream streamWriter = File.Create(filepath)) { StreamUtils.Copy(s, streamWriter, buffer); pathes.Add(filepath); } } } s.Close(); } } if (file.ContentType.IndexOf("image") > -1) { pathes.Add(await SaveUploadFile(file)); } } //Create file map: path_to_file \t number_class if (pathes.Count != 0) { var mapFilePath = _fileService.GetNextFilesPath(1, DirectoryType.Model)[0] + ".map"; using (var mapStream = new StreamWriter(mapFilePath)) { foreach (var img in pathes) { await mapStream.WriteLineAsync($"{img}\t{model.Class}"); } mapStream.Close(); } } } //TODO: Send .map file path to Recognize module return(0); }
public ActionResult Insert() { if (IsAdmin) { var Train = new TrainViewModel(); return(View(Train)); } return(RedirectToAction("Login", "Account")); }
public TrainView() { InitializeComponent(); viewModel = new TrainViewModel(this); if (CheckForAdminRole()) { buttonSave.Enabled = true; buttonTrain.Enabled = true; buttonEncryptCSV.Enabled = true; } }
public ActionResult Trains() { var trainViewModel = new TrainViewModel() { Configurator = new Configurator <Train, Train>() .Configure() .Url(Url.Action(nameof(HandleTrains))) }; return(View(trainViewModel)); }
public void SubmitData(TrainViewModel model) { //Create if (String.IsNullOrWhiteSpace(model.SignDocID_FK)) { createData(model); } else//Edit { } }
public async Task UpdateSkillPointsAsync(TrainViewModel trainViewModel, int skillId) { var skill = this.GetById(skillId); skill.Grappling = trainViewModel.Grappling; skill.Striking = trainViewModel.Striking; skill.Wrestling = trainViewModel.Wrestling; skill.Stamina = trainViewModel.Stamina; skill.Health = trainViewModel.Health; skill.Strenght = trainViewModel.Strenght; await this.skillsRepository.SaveChangesAsync(); }
public virtual ActionResult NetSettings(string id = null) { Logger.LogInfo <TrainController>("Net settings opened (id=[{0}])", id ?? "null"); TrainViewModel model = null; if (id != null) { var settings = trainStorageManager.LoadTrainSettings(id); if (settings != null) { model = settings.ShallowCloneAs <TrainViewModel>(); model.HiddenLayersSizesStr = string.Join("; ", settings.HiddenLayersSizes); } } if (model == null) { model = new TrainViewModel() { InputImgSizePx = 20, PenThicknessPerc = 12, GenerateExtraInputsByRotation = 10, NormalizeInput = true, LearnRounds = 1, BatchSize = 0, MaxIteratinosPerBatch = 100, RegularizationLambda = 0.5, MinDerivCompMaxMagn = 1e-3, OptimizationAlgorithm = OptimizationAlgorithm.ImprovedRpropMinus, InitSeed = new Random().Next(), LearningRate = 0.1, MomentumStartPerc = 60, MomentumEndPerc = 90, RpropInitStep = 0.01, RpropMaxStep = 10, RpropStepUpMult = 1.2, RpropStepDownMult = 0.5, TestDataSetSizePerc = 10, TrainEvaluationIters = 3, SkipFrstIters = 6, }; } initModel(model); return(View(model)); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { _trainDetaiRepo = RepositoryFactory.CreateTrainDetailRepo(); //從QueryString取得 簽核代碼 string docID = String.IsNullOrEmpty(Request["SignDocID"]) ? String.Empty : Request["SignDocID"].ToString(); //根據查詢的 簽核代碼 搜尋忘刷單 model = _trainDetaiRepo.GetData(docID); WebUtils.PageDataBind(model, this.Page); Signed.NavigateUrl = "~/Area/Sign/WorkflowDetail.aspx?signDocID=" + docID; } PageInit(); }
private void Button_Click(object sender, RoutedEventArgs e) { TrainViewModel o = this.DataContext as TrainViewModel; if (o.SelectedPlaceArrival == "" && o.SelectedPlaceDeparture == "") { o.getTrainList(); } else { o.getAccessedTrainList(o.SelectedPlaceArrival, o.SelectedPlaceDeparture); } this.ComboTrains.ItemsSource = o.TrainList; }
public ActionResult CreateTrain(TrainViewModel train) { try { var trainDto = new TrainDTO { Name = train.Name, Description = train.Description }; _trainService.MakeTrain(trainDto); return(Content("Вы успешно создали поезд")); } catch (ValidationException ex) { ModelState.AddModelError(ex.Property, ex.Message); } return(View(train)); }
public async Task <IActionResult> Train(TrainViewModel newSkills) { var user = await this.userManager.GetUserAsync(this.User); var skillId = int.Parse(this.RouteData.Values["id"].ToString()); var skill = this.skillsService.GetById(skillId); var hasEnoughCoinsToMakeTheTraining = this.skillsService.ChechForEnoughCoinsToTrain(user, skill, newSkills); if (hasEnoughCoinsToMakeTheTraining == false) { return(this.RedirectToAction("NotEnoughCoins", "Home")); } await this.skillsService.UpdateSkillPointsAsync(newSkills, skillId); return(this.RedirectToAction("AllFighters")); }
public IActionResult Index(SortState sortState, int page = 1) { IEnumerable <Train> trains = railroadContext.Trains.Include(t => t.Type); trains = SortSearch(trains, sortState); int pageSize = 20; int count = trains.Count(); trains = trains.Skip((page - 1) * pageSize).Take(pageSize).ToList(); PageViewModel pageViewModel = new PageViewModel(count, page, pageSize); TrainViewModel viewModel = new TrainViewModel { PageViewModel = pageViewModel, Trains = trains, SortViewModel = new SortViewModel(sortState) }; return(View(viewModel)); }
public void ChechForEnoughCoinsToTrain_ShouldReturnFalse_WhenCoinsAreNotEnough() { var trainViewModel = new TrainViewModel() { Striking = 76, Grappling = 76, Wrestling = 76, Stamina = 76, Health = 76, Strenght = 76, }; var user = this.usersRepository.All().Where(x => x.Id == "51926c23-8a91-4e7e-94be-a97dd84bad1d").FirstOrDefault(); var skill = this.skillsRepository.All().Where(x => x.Id == 1).FirstOrDefault(); var result = this.skillsService.ChechForEnoughCoinsToTrain(user, skill, trainViewModel); Assert.False(result); }
protected void Page_Load(object sender, EventArgs e) { _trainDetaiRepo = RepositoryFactory.CreateTrainDetailRepo(); _rootRepo = RepositoryFactory.CreateRootRepo(); if (!Authentication.HasResource(User.Identity.Name, "TrainDetail02")) { Response.Redirect(@"/account/logon.aspx?ReturnUrl=%2f"); } if (!IsPostBack) { string signDocID = String.IsNullOrEmpty(Request["SignDocID_FK"]) ? String.Empty : Request["SignDocID_FK"].ToString(); PageTitle.Value = "受訓心得報告維護 > 編輯"; FormSeries.Value = "Train"; string CLID = String.IsNullOrEmpty(Request["CLID"]) ? String.Empty : Request["CLID"].ToString(); string SID = String.IsNullOrEmpty(Request["SID"]) ? String.Empty : Request["SID"].ToString(); var employeeData = _rootRepo.QueryForEmployeeByEmpID(SID); string DepartmentID_FK = employeeData != null ? employeeData["DepartmentID_FK"].ToString() : String.Empty; model = _trainDetaiRepo.GetDetail(CLID, SID, DepartmentID_FK); // 取得 QueryString //var paggerParms = WebUtils.ParseQueryString<PaggerParms>(Page.Request); //var signListParms = WebUtils.ParseQueryString<SignListParms>(Page.Request); //signListParms.Member = Authentication.GetMemberViewModel(User.Identity.Name); //signListParms.GridView = TrainDetailGridView; //signListParms.PaginationBar = paginationBar; //paggerParms.OrderField = "qno"; ////建構頁面 //ConstructPage(signListParms, paggerParms, RepositoryFactory.CreateTrainDetailRepo()); WebUtils.PageDataBind(model, this.Page); if (!String.IsNullOrWhiteSpace(signDocID)) { //將 viewModel 的值綁定到 頁面上 WebUtils.PageDataBind(_trainDetaiRepo.GetData(signDocID), this.Page); SignDocID_FK.Text = signDocID; PageTitle.Value = "表單編輯作業 > 忘刷單"; } } PageInit(); }
public ActionResult Edit(int?id) { if (IsAdmin) { try { TrainDetailDTO train = trainService.GetTrain(id); var Train = new TrainViewModel { Train_Name = train.Train_Name, Id = train.Id, Train_Desc = train.Train_Desc, From_City = train.From_City, To_City = train.To_City, ArrivalDate = train.ArrivalDate, DepartureDate = train.DepartureDate }; return(View(Train)); } catch (ValidationException ex) { return(Content(ex.Message)); } } return(RedirectToAction("Index")); }
public ActionResult Insert(TrainViewModel train) { if (IsAdmin) { try { var trainDto = new TrainDetailDTO { Train_Name = train.Train_Name, Train_Desc = train.Train_Desc, From_City = train.From_City, To_City = train.To_City, ArrivalDate = train.ArrivalDate, DepartureDate = train.DepartureDate }; trainService.Create(trainDto); return(Content("<h2>Поезд успешно добавлен</h2> <a href='/'> На главную </a>")); } catch (ValidationException ex) { ModelState.AddModelError(ex.Property, ex.Message); } return(View(train)); } return(RedirectToAction("Login", "Account")); }
public TrainViewModel GetDetail(string CLID, string SID, string Dept) { TrainViewModel model = null; string strSQL = @"SELECT class.clid CLID, class.clname CLNAME, class.start_date STARTDATE, class.hours HOURS, stu.sid SID, stu.sname SNAME, class.unitid UNITID, class.unitname UNITNAME FROM rtclass class RIGHT JOIN students stu ON class.clid = stu.clid WHERE stu.SID = @SID and class.clid=@CLID "; var strCondition = new Conditions() { { "@CLID", CLID }, { "@SID", SID } }; var result = _dc.QueryForDataRow(strSQL, strCondition); if (result == null) { return(null); } model = new TrainViewModel() { CLID = result["CLID"].ToString(), SID = result["SID"].ToString(), CLNAME = result["CLNAME"].ToString(), Start_Date = !result["STARTDATE"].IsDBNullOrWhiteSpace() ? DateTime.Parse(result["STARTDATE"].ToString()) : (DateTime?)null, HOURS = result["HOURS"].ToString(), SNAME = result["SNAME"].ToString(), DepartmentID_FK = Dept }; return(model); }
public bool ChechForEnoughCoinsToTrain(ApplicationUser user, Skill skill, TrainViewModel trainViewModel) { var overallSkillPointsAfterTraining = trainViewModel.Striking + trainViewModel.Grappling + trainViewModel.Wrestling + trainViewModel.Stamina + trainViewModel.Strenght + trainViewModel.Health; var curentSkillPointsOverall = this.GetSkillPointsOverall(skill); var newSkillPoints = overallSkillPointsAfterTraining - curentSkillPointsOverall; if (newSkillPoints * 1000 > user.Coins) { return(false); } user.Coins -= newSkillPoints * 1000; return(true); }
public IActionResult FirstClass() { if (HttpContext.Session.GetString("Emailadres") == null) { return(RedirectToAction("Login", "Account")); } else { Travelplan travel = new Travelplan(HttpContext.Session.GetString("Beginstation"), HttpContext.Session.GetString("Eindstation"), (int)HttpContext.Session.GetInt32("Spoor")); List <int> wagonnummers = wagonRepo.GetWagonNumber1steKlasse(travel); List <Seat> seats = seatRepo.GetAllSeat1steKlasse(travel); TrainViewModel wagonView = new TrainViewModel() { Wagonnumber = wagonnummers, Seats = seats }; return(View(wagonView)); } }
public IActionResult SecondClass() { if (HttpContext.Session.GetString("Emailadres") == null) { return(RedirectToAction("Login", "Account")); } else { Travelplan travelplan = new Travelplan(HttpContext.Session.GetString("Beginstation"), HttpContext.Session.GetString("Eindstation"), (int)HttpContext.Session.GetInt32("Spoor")); //int wagonnumber = (int)HttpContext.Session.GetInt32("Wagonnummer"); List <Seat> seats = seatRepo.GetAllSeat2deKlasse(travelplan /*, wagonnumber*/); TrainViewModel seatView = new TrainViewModel() { Seats = seats }; return(View(seatView)); } }
public async Task UpdateSkillPointsAsync_ShouldSetNewSkillPointsCorrectly() { var trainViewModel = new TrainViewModel() { Striking = 70, Grappling = 70, Wrestling = 70, Stamina = 70, Health = 70, Strenght = 70, }; await this.skillsService.UpdateSkillPointsAsync(trainViewModel, 1); var updatedSkill = await this.skillsRepository.All().FirstAsync(); Assert.Equal(70, updatedSkill.Striking); Assert.Equal(70, updatedSkill.Grappling); Assert.Equal(70, updatedSkill.Wrestling); Assert.Equal(70, updatedSkill.Strenght); Assert.Equal(70, updatedSkill.Stamina); Assert.Equal(70, updatedSkill.Health); }
public IHttpActionResult Train(TrainViewModel trainViewModel) { var faceBitmap = trainViewModel.GetImage(); var faceRecognitionTrainingStatus = _faceDetectionLibrary.TrainFaceRecognition(faceBitmap, trainViewModel.Person); switch (faceRecognitionTrainingStatus) { case FaceDetection.Library.Models.FaceRecognitionTrainingStatus.TrainingSuccessful: return(Ok()); case FaceDetection.Library.Models.FaceRecognitionTrainingStatus.FoundMoreThenOneFace: return(BadRequest("Found more then one face.")); case FaceDetection.Library.Models.FaceRecognitionTrainingStatus.NoFacesFound: return(BadRequest("No faces found.")); case FaceDetection.Library.Models.FaceRecognitionTrainingStatus.TrainingFailure: return(BadRequest("Training failure.")); default: return(BadRequest()); } }
public virtual ActionResult NetSettings(string id = null, TrainViewModel model = null) { if (ModelState.IsValid) { if (string.IsNullOrWhiteSpace(id)) { model.NetId = trainStorageManager.CreateSafeNetId(DateTime.UtcNow.ToString("yyyy-MM-dd-hh-mm-ss-") + model.NetName); } else { model.NetId = trainStorageManager.CreateSafeNetId(id); } model.HiddenLayersSizes = parseInts(model.HiddenLayersSizesStr); bool hlValid = model.HiddenLayersSizes != null && model.HiddenLayersSizes.All(s => s > 0 && s < 65536); if (hlValid) { if (trainStorageManager.SaveTrainSettings(model.NetId, model.ShallowCloneAs <TrainSettings>())) { return(RedirectToAction(Actions.Details(model.NetId))); } else { ModelState.AddModelError("", "Failed to save train settings."); } } else { ModelState.AddModelError("HiddenLayersSizesStr", "Invalid hidden layer sizes."); } } initModel(model); return(View(model)); }
/// <summary> /// 表單送出觸發事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void SaveBtn_Click(object sender, EventArgs e) { //送簽文件ID string signID = Request["SignDocID_FK"]; //取得資料庫連線字串並建立DB模型 _trainDetaiRepo = RepositoryFactory.CreateTrainDetailRepo(); //欲作業的表格對象代碼 string trainTableID = ((int)TrainingTableTypeEnum.TABLE02).ToString().PadLeft(2, '0'); //取得頁面資料 model = PageDataBind(); #region #0015 取得登入者ID 擴充可幫他人填寫受訓心得表 var empDc = ConnectionFactory.GetPortalDC(); var empRepos = new EmployeeRepository(empDc, new RootRepository(empDc)); EmployeeViewModel empResult = empRepos.GetEmployeeDataByADAccount(User.Identity.Name); (model as RinnaiForms).ApplyID_FK = empResult.EmployeeID; #endregion #0015 取得登入者ID 擴充可幫他人填寫受訓心得表 List <DataRow> QuestionDataList = _trainDetaiRepo.QueryQuestionDataByTableID(trainTableID); String chkString = ""; String ansString = ""; txterror.Text = ""; #region 遍歷所有題目 判斷是否有填答案 QuestionDataList.All(row => { //如果題目填答型態為文字 if (row["ANSTYPE"].ToString() == "C") { TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox; ansString = tmpbox.Text; if (ansString == "") { chkString += "第" + row["serial_no"].ToString() + "題 不可空白!"; } } //如果題目填答型態為數字 else if (row["ANSTYPE"].ToString() == "N") { RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString()); ansString = tmprbl.SelectedValue; if (ansString == "") { chkString += "第" + row["serial_no"].ToString() + "題 不可空白!"; } } return(true); }); #endregion 遍歷所有題目 判斷是否有填答案 //有沒填的就直接回要面並顯示警示訊息 if (chkString != "") { txterror.Text = chkString; return; } //回傳至頁面的訊息 var responseMessage = ""; try { var modelList = new List <RinnaiForms>(); modelList.Add(model); //新增畫面(即未傳入簽核ID) if (String.IsNullOrEmpty(signID)) { #region 建立簽核(送出簽核) _trainDetaiRepo.CreateSignData(modelList); #endregion 建立簽核(送出簽核) string classID = Request["CLID"]; string studentID = Request["SID"]; #region 先刪後增 #region 刪除答案 //刪除課程與簽核的關聯檔 _trainDetaiRepo.FromTableNameDeleteValue("FORM_SIGN", classID, studentID, trainTableID); //===刪除全部原有答案=== //文字型態 _trainDetaiRepo.FromTableNameDeleteValue("CHARACTER_ANSWER", classID, studentID, trainTableID); //數字型態 _trainDetaiRepo.FromTableNameDeleteValue("NUMERIC_ANSWER", classID, studentID, trainTableID); #endregion 刪除答案 #region 新增答案 QuestionDataList.All(row => { //文字類型 if (row["ANSTYPE"].ToString() == "C") { //新增 TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox; _trainDetaiRepo.AddAnswer_C(Request["CLID"].ToString(), Request["SID"].ToString(), row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmpbox.Text, User.Identity.Name); } //數字類型 else if (row["ANSTYPE"].ToString() == "N") { //新增 RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString()); _trainDetaiRepo.AddAnswer_N(Request["CLID"].ToString(), Request["SID"].ToString(), row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmprbl.SelectedValue, User.Identity.Name); } return(true); }); #endregion 新增答案 #endregion 先刪後增 string EID = _trainDetaiRepo.Find_EDITIONID(trainTableID); bool hasEmptySignFormRecords = _trainDetaiRepo.CheckHasSignFormRecords(Request["CLID"].ToString(), trainTableID, EID); //寫入空白單記錄 if (!hasEmptySignFormRecords) { _trainDetaiRepo.AddRECORDS(Request["CLID"].ToString(), trainTableID, EID); } #region 建立關聯簽核主檔 _trainDetaiRepo.AddFormSign(Request["CLID"].ToString(), Request["SID"].ToString(), trainTableID, false, modelList); #endregion 建立關聯簽核主檔 } //編輯畫面 else { //送出簽核 _trainDetaiRepo.EditData(modelList); //刪除原有答案 string strCLID = _trainDetaiRepo.Find_CLID(Request["SignDocID_FK"]); string strSID = _trainDetaiRepo.Find_SID(Request["SignDocID_FK"]); _trainDetaiRepo.FromTableNameDeleteValue("CHARACTER_ANSWER", strCLID, strSID, trainTableID); _trainDetaiRepo.FromTableNameDeleteValue("NUMERIC_ANSWER", strCLID, strSID, trainTableID); QuestionDataList.All(row => { if (row["ANSTYPE"].ToString() == "C")//填文字 { //新增 TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox; _trainDetaiRepo.AddAnswer_C(strCLID, strSID, row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmpbox.Text, User.Identity.Name); } else if (row["ANSTYPE"].ToString() == "N") { //新增 RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString()); _trainDetaiRepo.AddAnswer_N(strCLID, strSID, row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmprbl.SelectedValue, User.Identity.Name); } return(true); }); String EID = _trainDetaiRepo.Find_EDITIONID(trainTableID); bool hasEmptySignFormRecords = _trainDetaiRepo.CheckHasSignFormRecords(strCLID, trainTableID, EID); //寫入空白單記錄 if (!hasEmptySignFormRecords) { _trainDetaiRepo.AddRECORDS(strCLID, trainTableID, EID); } } responseMessage = "送出成功!"; #region 寄送email通知 MailInfo mailInfo = new MailInfo() { AddresseeTemp = System.Web.Configuration.WebConfigurationManager.AppSettings["MailTemplate"], Subject = String.Format("系統提醒!簽核單號 : {0} 已經送達!", model.SignDocID_FK), DomainPattern = ConfigUtils.ParsePageSetting("Pattern")["DomainPattern"], }; // 主管簽核 會簽 mail var deptData = _rootRepo.QueryForDepartmentByDeptID(model.DepartmentID_FK.ToString()); var empData = _rootRepo.QueryForEmployeeByEmpID(deptData["ChiefID_FK"].ToString()); var chiefAD = empData["ADAccount"].ToString(); mailInfo.To += String.Format(mailInfo.AddresseeTemp, chiefAD) + ","; var portalDomain = ConfigUtils.ParsePageSetting("Domain")["Portal"]; string body = MailTools.BodyToTable( String.Format( @"系統提醒!簽核單號 : {0} 已經送達,請儘速檢視!<br /><a href='{1}/Area/Sign/ProcessWorkflowList.aspx?queryText={0}'>連結</a> <br />此件為系統發送,請勿回覆!", model.SignDocID_FK, portalDomain)); mailInfo.Body.Append(body); mailInfo.CC = new List <string>() { String.Format(mailInfo.AddresseeTemp, User.Identity.Name) }; mailInfo.To = mailInfo.To.TrimEnd(new char[] { ',' }); if (PublicRepository.CurrentWorkflowMode == Enums.WorkflowTypeEnum.RELEASE) { new Mailer(mailInfo).SendMail(); } #endregion 寄送email通知 _log.Trace(String.Format("MailTo : {0}\r\ncc : {1}\r\nTitle : {2}\r\nContent : {3}\r\n", mailInfo.To, String.Join(",", mailInfo.CC), mailInfo.Subject, mailInfo.Body)); //btn處理 ViewUtils.ButtonOn(SaveBtn, CoverBtn); responseMessage = responseMessage.ToAlertAndRedirect(@"/Area/Sign/WorkflowQueryList.aspx?orderField=CreateDate&descending=True"); } catch (Exception ex) { responseMessage = String.Concat("送出失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat(); ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn); } finally { Response.Write(responseMessage); } }
public void SetUp() { service = new Mock <IWorkoutsService>(); viewModel = new TrainViewModel(service.Object); viewModel.ShouldAlwaysRaiseInpcOnUserInterfaceThread(false); }
/// <summary> /// 建立簽核檔以及明細歷程 /// </summary> /// <param name="modelList"></param> public void CreateSignData(List <RinnaiForms> modelList) { //建立簽核ID string newSignID = string.Empty; #region 取出view傳來的model TrainViewModel model = modelList.Cast <TrainViewModel>().First(); newSignID = GetSeqIDUtils.GetSignDocID(model.Creator, "TR"); DataRow employeeData = _rootRepo.QueryForEmployeeByEmpID(model.SID); if (String.IsNullOrWhiteSpace(newSignID)) { throw new Exception("無法建立簽核ID,或系統忙碌中。請聯絡系統管理員!"); } model.SignDocID_FK = newSignID; model.DepartmentID_FK = employeeData != null ? employeeData["DepartmentID_FK"].ToString() : String.Empty; //已經帶入登入者的ID //model.ApplyID_FK = employeeData != null ? employeeData["EmployeeID"].ToString() : String.Empty; //基底model成員 #endregion 取出view傳來的model //欲寫入的簽核狀態 string status = ((int)SignTypeEnum.READYSIGN).ToString(); var createDateTime = DateTime.UtcNow.AddHours(8); #region 取得簽屬程序 var procedureData = _rootRepo.QueryForSignProcedureByRuleID(model.RuleID_FK); #endregion 取得簽屬程序 //SignLevel =>需簽核層數 var remainder = procedureData != null?Int32.Parse(procedureData["SignLevel"].ToString()) : -1; //判斷 FlowRule if (!_pwfRepo.IsFollowFlowRule(model.RuleID_FK, model.DepartmentID_FK)) { throw new Exception("不符合簽核規則,無法新增!"); } #region 取得簽核人員部門資料 var deptData = _rootRepo.QueryForDepartmentByDeptID(model.DepartmentID_FK); if (deptData == null) { throw new Exception("查無簽核人員所屬部門資料!"); } var upperDeptData = _pwfRepo.FindUpperDeptData(model.DepartmentID_FK, model.SID); var chiefID = upperDeptData.Keys.Single(); var currentSignLevelDeptID = upperDeptData.Values.Single(); #endregion 取得簽核人員部門資料 //建立多筆SQL Conditons 語句 var manipulationConditions = new List <MultiConditions>(); #region 建立簽核主檔SQL語句 var dic = new Conditions() { { "@SignDocID", model.SignDocID_FK }, { "@FormID_FK", model.FormID_FK }, { "@EmployeeID_FK", model.ApplyID_FK }, { "@CurrentSignLevelDeptID_FK", currentSignLevelDeptID }, { "@FinalStatus", status }, { "@remainder", remainder }, { "@Creator", model.Creator }, { "@CreateDate", createDateTime }, { "@SendDate", createDateTime }, }; // 利用DB Method建立Insert語句 , 並利用靜態字典 兜出資料庫與Table名稱 RinnaiPortal..signform_main var strSQL = _dc.ConstructInsertDML(RepositoryFactory.PotalConn["Catelog"] + "..signform_main", dic); manipulationConditions.Add(new MultiConditions() { { strSQL, dic } }); #endregion 建立簽核主檔SQL語句 #region 建立簽核明細檔SQL語句 dic = new Conditions() { { "@SignDocID_FK", model.SignDocID_FK }, { "@ChiefID_FK", chiefID }, { "@Status", status }, { "@Creator", model.Creator }, { "@CreateDate", createDateTime }, }; strSQL = _dc.ConstructInsertDML(RepositoryFactory.PotalConn["Catelog"] + "..signform_detail", dic); manipulationConditions.Add(new MultiConditions() { { strSQL, dic } }); #endregion 建立簽核明細檔SQL語句 #region 建立簽核歷程檔SQL語句 dic = new Conditions() { { "@SignDocID_FK", model.SignDocID_FK }, { "@FormID_FK", model.FormID_FK }, { "@EmployeeID_FK", model.ApplyID_FK }, { "@SendDate", createDateTime }, { "@CurrentSignLevelDeptID_FK", currentSignLevelDeptID }, { "@FinalStatus", status }, { "@remainder", remainder }, { "@Creator_Main", model.Creator }, { "@CreateDate_Main", createDateTime }, { "@DetailSignDocID_FK", model.SignDocID_FK }, { "@ChiefID_FK", chiefID }, { "@Status", status }, { "@Creator_Detail", model.Creator }, { "@CreateDate_Detail", createDateTime }, { "@LogDatetime", DateTime.Now }, }; strSQL = _dc.ConstructInsertDML(RepositoryFactory.PotalConn["Catelog"] + "..signform_log", dic); manipulationConditions.Add(new MultiConditions() { { strSQL, dic } }); #endregion 建立簽核歷程檔SQL語句 try { if (!_dc.ExecuteMultAndCheck(manipulationConditions)) { throw new Exception("新增受訓心得報告失敗!"); } } catch (Exception ex) { throw new Exception("新增受訓心得報告失敗! system errorMessages :" + ex.Message); } }