async Task <bool> SuccefullyUnzipped(string hostName, List <string> zip) { foreach (var path in zip) { var compress = new CompressionViewModel(hostName, path, _baseFolder, true, true, true); if (!await compress.Extract()) { return(false); } } return(true); }
void saveCommand(object obj) { if (this.SelectPattern == null) { this.ShowDialog("提示信息", "模式为空!", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning); return; } var clModel = base.LocalID.DeSerializeCL(); var algoRule = base.LocalID.DeSerializePatternAlgo(); var rule = base.LocalID.DeSerializeMixedRule(); // 1.获取操作 // 1.1 去除组合 var combinationView = this.sourceOperators.FirstOrDefault(p => p.Operator == UIPatternOperator.OperatorEnum.RemoveCombination); var removeCombinations = (combinationView.View.DataContext as RemoveCombinationViewModel).GetRemovedCombination(); // 1.2 班额调整 var classView = this.sourceOperators.FirstOrDefault(p => p.Operator == UIPatternOperator.OperatorEnum.ClassCapacity); var classCapacitys = (classView.View.DataContext as ClassCapacityViewModel).GetCapacitys(); // 1.3 课位调整 var positionView = this.sourceOperators.FirstOrDefault(p => p.Operator == UIPatternOperator.OperatorEnum.Position); var positions = (positionView.View.DataContext as PositionViewModel).GetCoursePositions(); object severialPattern = null; DataProcessing dataProcess = new DataProcessing(); MixedModel.CLCase patternCase = null; MixedModel.AlgoRule.AlgoRule patternAlgoRule = null; MixedModel.Rule.Rule patternRule = null; List <DataValidationResultInfo> validationResultInfo = new List <DataValidationResultInfo>() { }; switch (this.SelectPattern.Pattern) { case Models.Enums.PatternTypeEnum.Normal: NormalModel normal = new NormalModel() { ClassCapacity = classCapacitys, Positions = positions, RemovedCombination = removeCombinations }; severialPattern = normal; Tuple <MixedModel.CLCase, bool, List <DataValidationResultInfo> > normalTuple = dataProcess.GetModelByNormal(clModel, rule, algoRule, normal); if (normalTuple.Item2) { patternCase = normalTuple.Item1; } else { StringBuilder message = new StringBuilder(); normalTuple.Item3?.ForEach(m => { message.Append($"描述:{m.ErrorCode}-{m.Description}"); }); this.ShowDialog("错误消息", message.ToString(), CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Error); return; } break; case Models.Enums.PatternTypeEnum.Extraction: ExtractionViewModel value = this.SelectPattern.View.DataContext as ExtractionViewModel; StudentExtractionModel extraction = new StudentExtractionModel() { ExtractionRatio = value.ExtractionRate, IncreasedCapacity = value.ClassCapacity, Positions = positions, RemovedCombination = removeCombinations }; severialPattern = extraction; Tuple <MixedModel.CLCase, bool, List <DataValidationResultInfo> > extractionTuple = dataProcess.GetModelByStudentExtraction(clModel, rule, algoRule, extraction); if (extractionTuple.Item2) { patternCase = extractionTuple.Item1; } else { StringBuilder message = new StringBuilder(); extractionTuple.Item3?.ForEach(m => { message.Append($"描述:{m.ErrorCode}-{m.Description}"); }); this.ShowDialog("错误消息", message.ToString(), CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Error); return; } break; case Models.Enums.PatternTypeEnum.OptimizedExtraction: OptimizedExtractionViewModel optimizedExtractionVM = this.SelectPattern.View.DataContext as OptimizedExtractionViewModel; if (optimizedExtractionVM.SelectResult == null) { this.ShowDialog("提示信息", "没有选择结果", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning); return; } var result = Core.Http.OSHttpClient.Instance.GetResult(optimizedExtractionVM.SelectResult.TaskID); if (result.Item1) { UIOptimizedExtraction optimizedExtraction = new UIOptimizedExtraction() { ClassCapacity = optimizedExtractionVM.ClassCapacity, Result = result.Item2, RemovedCombination = removeCombinations }; severialPattern = optimizedExtraction; var extractionOptimzeTuple = dataProcess.GetModelByFixedClassTimeTable(clModel, rule, algoRule, new NormalModel() { RemovedCombination = removeCombinations }, optimizedExtraction.Result, optimizedExtraction.ClassCapacity); if (extractionOptimzeTuple.Item3) { patternCase = extractionOptimzeTuple.Item1; patternAlgoRule = extractionOptimzeTuple.Item2; } else { StringBuilder message = new StringBuilder(); extractionOptimzeTuple.Item4?.ForEach(m => { message.Append($"描述:{m.ErrorCode}-{m.Description}"); }); this.ShowDialog("错误消息", message.ToString(), CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Error); return; } } break; case Models.Enums.PatternTypeEnum.Compression: CompressionViewModel compressionVM = this.SelectPattern.View.DataContext as CompressionViewModel; TimeCompressionModel compression = new TimeCompressionModel() { CompressionRatio = compressionVM.Compression, ClassCapacity = classCapacitys, RemovedCombination = removeCombinations }; severialPattern = compression; var compressionTuple = dataProcess.GetModelByTimeCompression(clModel, rule, algoRule, compression); if (compressionTuple.Item4) { patternCase = compressionTuple.Item1; patternRule = compressionTuple.Item2; patternAlgoRule = compressionTuple.Item3; } else { StringBuilder message = new StringBuilder(); compressionTuple.Item5?.ForEach(m => { message.Append($"描述:{m.ErrorCode}-{m.Description}"); }); this.ShowDialog("错误消息", message.ToString(), CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Error); return; } break; case Models.Enums.PatternTypeEnum.OptimizedCompression: OptimizedCompressionViewModel optimizedCompressionVM = this.SelectPattern.View.DataContext as OptimizedCompressionViewModel; severialPattern = optimizedCompressionVM.SelectResult; if (optimizedCompressionVM.SelectResult == null) { this.ShowDialog("提示信息", "没有选择结果", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning); return; } var optimizedResult = Core.Http.OSHttpClient.Instance.GetResult(optimizedCompressionVM.SelectResult.TaskID); if (optimizedResult != null) { var compressionOptimize = dataProcess.GetModelByStudentsClassificationResult(clModel, rule, algoRule, optimizedResult.Item2); if (compressionOptimize.Item4) { patternCase = compressionOptimize.Item1; patternRule = compressionOptimize.Item2; patternAlgoRule = compressionOptimize.Item3; } else { StringBuilder message = new StringBuilder(); compressionOptimize.Item5?.ForEach(m => { message.Append($"描述:{m.ErrorCode}-{m.Description}"); }); this.ShowDialog("错误消息", message.ToString(), CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Error); return; } } break; case Models.Enums.PatternTypeEnum.Validation: ValidationViewModel validationVM = this.SelectPattern.View.DataContext as ValidationViewModel; UIValidation validation = new UIValidation() { AssignedStudents = validationVM.IncludeAssinged, OnlyTeacher = validationVM.OnlyTeacher }; severialPattern = validation; if (validationVM.IncludeAssinged) { var IncludeAssingedTuple = dataProcess.GetModelWithOnlyStudentsAssignedToClass(clModel, rule, algoRule); if (IncludeAssingedTuple.Item2) { patternCase = IncludeAssingedTuple.Item1; } else { StringBuilder message = new StringBuilder(); IncludeAssingedTuple.Item3?.ForEach(m => { message.Append($"描述:{m.ErrorCode}-{m.Description}"); }); this.ShowDialog("错误消息", message.ToString(), CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Error); return; } } else { var OnlyTeacherTuple = dataProcess.GetModelWithoutStudents(clModel, rule, algoRule); if (OnlyTeacherTuple.Item2) { patternCase = OnlyTeacherTuple.Item1; } else { StringBuilder message = new StringBuilder(); OnlyTeacherTuple.Item3?.ForEach(m => { message.Append($"描述:{m.ErrorCode}-{m.Description}"); }); this.ShowDialog("错误消息", message.ToString(), CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Error); return; } } break; } if (patternCase != null) { var local = CommonDataManager.GetLocalCase(base.LocalID); local.Pattern = this.SelectPattern.Pattern; local.Serialize(); base.LocalID.Serialize(severialPattern); patternCase.SerializePatternCase(base.LocalID); PatternDataManager.AddCase(base.LocalID, patternCase); if (patternAlgoRule == null) { if (algoRule != null) { algoRule.SerializePatternAlgo(base.LocalID); PatternDataManager.AddAlgoRule(base.LocalID, algoRule); } } else { patternAlgoRule.SerializePatternAlgo(base.LocalID); PatternDataManager.AddAlgoRule(base.LocalID, patternAlgoRule); } if (patternRule == null) { if (rule != null) { rule.SerializePatternRule(base.LocalID); PatternDataManager.AddRule(base.LocalID, rule); } } else { patternRule.SerializePatternRule(base.LocalID); PatternDataManager.AddRule(base.LocalID, patternRule); } SetPatternWindow win = obj as SetPatternWindow; win.PatternType = this.SelectPattern.Pattern; win.DialogResult = true; } else { this.ShowDialog("提示信息", "模式实体转换失败!", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning); } }
private DataSearch <CompressionViewModel> GetCompressionReports(DataGridoption option) { _logger.Debug("GetCompressionReports"); AdoHelper ado = new AdoHelper(); //SqlDataReader reader = null; List <CompressionViewModel> lstReports = new List <CompressionViewModel>(); List <SqlParameter> lstSqlParameter = new List <SqlParameter>(); lstSqlParameter.Add(new SqlParameter("@CurrentPage", option.pageIndex)); lstSqlParameter.Add(new SqlParameter("@NoOfRecords", option.pageSize)); AddSearchFilter(option, lstSqlParameter); try { using (SqlDataReader reader = ado.ExecDataReaderProc("RNDCompressionReports_Read", "RND", lstSqlParameter.Cast <object>().ToArray())) { if (reader.HasRows) { CompressionViewModel reports = null; while (reader.Read()) { reports = new CompressionViewModel(); reports.RecID = Convert.ToInt32(reader["RecID"]); reports.WorkStudyID = Convert.ToString(reader["WorkStudyID"]); reports.TestNo = Convert.ToInt32(reader["TestNo"]); reports.Alloy = Convert.ToString(reader["Alloy"]); reports.Temper = Convert.ToString(reader["Temper"]); reports.CustPart = Convert.ToString(reader["CustPart"]); reports.UACPart = Convert.ToDecimal(reader["UACPart"]); // reports.TestType = Convert.ToString(reader["TestType"]); reports.SubConduct = Convert.ToDecimal(reader["SubConduct"]); reports.SurfConduct = Convert.ToDecimal(reader["SurfConduct"]); reports.FcyKsi = Convert.ToDecimal(reader["FcyKsi"]); reports.EcModulusMpsi = Convert.ToDecimal(reader["EcModulusMpsi"]); reports.SpeciComment = Convert.ToString(reader["SpeciComment"]); reports.Operator = Convert.ToString(reader["Operator"]); reports.TestDate = Convert.ToString(reader["TestDate"]); //(!string.IsNullOrEmpty(reader["TestDate"].ToString())) ? Convert.ToDateTime(reader["TestDate"]) : (DateTime?)null; reports.TestTime = Convert.ToString(reader["TestTime"]); reports.EntryDate = (!string.IsNullOrEmpty(reader["EntryDate"].ToString())) ? Convert.ToDateTime(reader["EntryDate"]) : (DateTime?)null; reports.EntryBy = Convert.ToString(reader["EntryBy"]); reports.Completed = Convert.ToChar(reader["Completed"]); reports.total = Convert.ToInt32(reader["total"]); lstReports.Add(reports); } } if (ado._conn != null && ado._conn.State == System.Data.ConnectionState.Open) { ado._conn.Close(); ado._conn.Dispose(); } } } catch (Exception ex) { _logger.Error(ex.Message); } DataSearch <CompressionViewModel> ds = new DataSearch <CompressionViewModel> { items = lstReports, total = (lstReports != null && lstReports.Count > 0) ? lstReports[0].total : 0 }; return(ds); }