/// <summary> /// 修改申请书提交日期参数 /// </summary> /// <returns></returns> public SysSettingHistory UpdateApplicationSetting(GetApplicationSettingDTO appSetting) { //验证提交日期合法 if ((appSetting.ApplicationSubmitBeginTime < appSetting.ApplicationSubmitDeadline) && (appSetting.ApplicationSubmitDeadline <= appSetting.ApplicationVerifyDeadline) && (appSetting.ApplicationVerifyDeadline < appSetting.ApplicationExpertDeadline) && (DateTime.Now.Year <= appSetting.ApplicationStartYear && appSetting.ApplicationStartYear <= DateTime.Now.AddYears(3).Year) ) { Configuration config = WebConfigurationManager.OpenWebConfiguration("~/"); AppSettingsSection appSection = (AppSettingsSection)config.GetSection("appSettings"); appSetting.ApplicationSubmitBeginTime = Convert.ToDateTime(appSetting.ApplicationSubmitBeginTime.ToString("yyyy-MM-dd") + " 00:00:00"); appSection.Settings["ApplicationSubmitBeginTime"].Value = appSetting.ApplicationSubmitBeginTime.ToString("yyyy-MM-dd HH:mm:ss"); appSetting.ApplicationSubmitDeadline = Convert.ToDateTime(appSetting.ApplicationSubmitDeadline.ToString("yyyy-MM-dd") + " 23:59:59"); appSection.Settings["ApplicationSubmitDeadline"].Value = appSetting.ApplicationSubmitDeadline.ToString("yyyy-MM-dd HH:mm:ss"); appSetting.ApplicationVerifyDeadline = Convert.ToDateTime(appSetting.ApplicationVerifyDeadline.ToString("yyyy-MM-dd") + " 23:59:59"); appSection.Settings["ApplicationVerifyDeadline"].Value = appSetting.ApplicationVerifyDeadline.ToString("yyyy-MM-dd HH:mm:ss"); appSetting.ApplicationExpertDeadline = Convert.ToDateTime(appSetting.ApplicationExpertDeadline.ToString("yyyy-MM-dd") + " 23:59:59"); appSection.Settings["ApplicationExpertDeadline"].Value = appSetting.ApplicationExpertDeadline.ToString("yyyy-MM-dd HH:mm:ss"); appSection.Settings["ApplicationStartYear"].Value = appSetting.ApplicationStartYear.ToString(); config.Save(); using (var db = new AspodesDB()) { SysSettingHistory setings = new SysSettingHistory(); setings.ApplicationSubmitBeginTime = SystemConfig.ApplicationSubmitBeginTime; setings.ApplicationSubmitDeadline = SystemConfig.ApplicationSubmitDeadline; setings.ApplicationVerifyDeadline = SystemConfig.ApplicationVerifyDeadline; setings.ApplicationExpertDeadline = SystemConfig.ApplicationExpertDeadline; setings.ApplicationStartYear = SystemConfig.ApplicationStartYear; setings.UpdateTime = DateTime.Now; setings.UpdateId = HttpContext.Current.User.Identity.Name; setings.UpdateIp = HttpContext.Current.Request.UserHostAddress; var aa = db.SysSettingHistorys.Add(setings); db.SaveChanges(); return(aa); } } else { throw new ModelValidException("日期参数不符合规定"); } }
/// <summary> /// 开启第year年度的申请 /// </summary> /// <param name="year">申请年度</param> public void StartApplication(int year) { if (year <= 0 || SystemConfig.ApplicationStartYear >= year) { throw new OtherException("请年度不合法或者已经使用"); } using (var db = new AspodesDB()) { using (var transaction = db.Database.BeginTransaction()) { try { //添加修改记录 SysSettingHistory setings = new SysSettingHistory(); setings.ApplicationStartYear = SystemConfig.ApplicationStartYear; setings.UpdateTime = DateTime.Now; setings.UpdateId = HttpContext.Current.User.Identity.Name; setings.UpdateIp = HttpContext.Current.Request.UserHostAddress; db.SysSettingHistorys.Add(setings); //重置一些字段 string resetProjectTypeLimit = "update ProjectTypes set Limit=0;"; string resetExpertReviewAmount = "update [User] set ReviewAmount=0;"; string setRevewAssignmentOverdue = "update ReviewAssignment set Overdue=1 where Overdue = 0;"; db.Database.ExecuteSqlCommand(resetProjectTypeLimit); db.Database.ExecuteSqlCommand(resetExpertReviewAmount); db.Database.ExecuteSqlCommand(setRevewAssignmentOverdue); //修改配置文件 Configuration config = WebConfigurationManager.OpenWebConfiguration("~/"); AppSettingsSection appSection = (AppSettingsSection)config.GetSection("appSettings"); appSection.Settings["ApplicationStartYear"].Value = year.ToString(); config.Save(); //删除临时文件 //删除压缩的临时文件 DirectoryInfo subdir = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, SystemConfig.DeleteZipFileAddress)); if (subdir.Exists) { subdir.Delete(true); subdir.Create(); } subdir = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, SystemConfig.ExportExcel)); if (subdir.Exists) { subdir.Delete(true); subdir.Create(); } transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw e; } } } }