/// <summary> /// 新增指定数量评委. /// </summary> /// <param name="expertCount">评委数.</param> /// <param name="projectName">项目名称.</param> /// <param name="projectId">项目编号.</param> public void AddExpert(int expertCount, string projectName, int projectId) { List <Expert> list = new List <Expert>(); for (int i = 1; i <= expertCount; i++) { Expert expert = new Expert { Account = i.ToString(), Name = projectName + "-" + i + "号评委", ProjectId = projectId, Status = "未投票", Password = GetRandomString.GenerateRandomNumber(), }; expert.CodePath = CreateCodePath(expert.Account, expert.Password, expert.Name); list.Add(expert); } Db.Insertable(list).ExecuteCommand(); }
/// <summary> /// Create fake files + some duplicates for testing /// </summary> /// <param name="rootFolderPath"></param> public static void CreateFakeFiles(string rootFolderPath, int originalFileCount = 0, int dupeFileCount = 0) { if (IsNullOrWhiteSpace(rootFolderPath)) { throw new ArgumentNullException(nameof(rootFolderPath)); } var random = new Random(42); originalFileCount = (originalFileCount <= 0) ? random.Next(10, 50) : originalFileCount; dupeFileCount = (dupeFileCount <= 0) ? random.Next(10, 20) : dupeFileCount; // random file path generator string GetRandomString(int length = 2) => Path.GetRandomFileName().Replace(".", "").Substring(0, length); // Return n character string string GetRandomDirs() => Path.Combine(Enumerable.Range(0, random.Next(1, 3)).Select(i => GetRandomString()).ToArray()); string GetRandomFilePath(string src = null) => Path.Combine(rootFolderPath, GetRandomDirs(), $"{GetRandomString()}{(src != null ? $"_copyof_{src}" : "")}.data"); int sizeMB; var filePaths = Enumerable.Range(0, originalFileCount).Select(i => GetRandomFilePath()).ToList(); foreach (string filePath in filePaths) { sizeMB = random.Next(1, 10); try { Directory.CreateDirectory(Path.GetDirectoryName(filePath)); using (FileStream fs = File.Create(filePath)) { fs.Seek(sizeMB * 1024L * 1024L, SeekOrigin.Begin); fs.WriteByte(0); } Trace.WriteLine(filePath); } catch (IOException ex) // file exists already { Trace.WriteLine(ex.Message); } } // create duplicates var dupes = Enumerable.Range(0, dupeFileCount).Select(i => filePaths[random.Next(0, filePaths.Count() - 1)]).Select(s => (src: s, dest: GetRandomFilePath(Path.GetFileNameWithoutExtension(s)))); foreach (var dupe in dupes) { try { Directory.CreateDirectory(Path.GetDirectoryName(dupe.dest)); File.Copy(dupe.src, dupe.dest, true); } catch (IOException ex) // file exists already { Trace.WriteLine(ex.Message); } } }
/// <summary> /// 新建病历. /// </summary> /// <param name="recordDTO">传入数据.</param> /// <returns>Json.</returns> public ActionResult AddRecord(RecordDTO recordDTO) { Record record = new Record { Id = recordDTO.Id, Name = recordDTO.Name, Sex = recordDTO.Sex, Age = recordDTO.Age, Phone = recordDTO.Phone, DepartmentId = int.Parse(recordDTO.Department.Split(' ')[0]), BedId = int.Parse(recordDTO.Bed.Split(' ')[0]), MedicalCost = recordDTO.MedicalCost, Deposit = recordDTO.Deposit, Status = recordDTO.Status, InTime = DateTime.Now.ToString(), Account = GetRandomString.GenerateRandomNumber(), PassWord = "******", }; // 自增列用法 int recordId = Db.Insertable(record).ExecuteReturnIdentity(); // 生成日志 Log log = new Log { Id = 0, Time = DateTime.Now.ToString(), Content = "病历号:" + recordId + "-姓名:" + record.Name + "办理入院登记", }; // 自增列用法 Db.Insertable(log).ExecuteReturnIdentity(); // 生成账单 Bill bill = new Bill { Id = 0, RecordId = recordId, Time = DateTime.Now.ToString(), Status = "待支付", }; bill.Type = "押金"; bill.Cost = record.Deposit; Db.Insertable(bill).ExecuteReturnIdentity(); bill.Type = "医疗费"; bill.Cost = record.MedicalCost; Db.Insertable(bill).ExecuteReturnIdentity(); bill.Type = "床位费"; var department = Db.Queryable <Department>().Where(it => it.Id == record.DepartmentId).Single(); bill.Cost = department.Cost; Db.Insertable(bill).ExecuteReturnIdentity(); // 更新病床和科室 department.FreeBedNum--; var bed = Db.Queryable <Bed>().Where(it => it.Id == record.BedId).Single(); bed.IsFree = "已占用"; bed.RecordId = recordId; Db.Updateable(department).ExecuteCommand(); Db.Updateable(bed).ExecuteCommand(); // 新增家属 AddUser(record, recordId); return(Json(new { code = 200 }, JsonRequestBehavior.AllowGet)); }