public void ModelCloner_TryCloneRecord() { // Arrange ModelRecord model = new ModelRecord { Name = "Mr. Unit Test" }; // Act bool success = ModelCloner.TryCloneRecord(model, out ModelRecord modelClone); // Assert Assert.IsTrue(success); Assert.AreNotSame(model, modelClone); Assert.AreEqual(model.Name, modelClone.Name); }
public string BookRoomEvent([FromBody] ModelRecord recordobj) { string ret = "成功預約"; DateTime out1; try { APIHelper ws = new APIHelper(); UserInfo vUserInfo = new UserInfo(); string roomid = recordobj.ROOMID; ModelMR mr = ws.GetMeetingRoomByID(roomid); if (mr == null) { throw new Exception("找不到會議室"); } DateTime sdt = DateTime.Parse(recordobj.STARTTIME); DateTime edt = DateTime.Parse(recordobj.ENDTIME); // .ToString("yyyy/MM/dd HH:mm:ss"), List <int> minuInt = new List <int> { 0, 15, 30, 45 }; if (!minuInt.Contains(sdt.Minute) || !minuInt.Contains(edt.Minute)) { throw new Exception("時間格式錯誤"); } TimeSpan ts = edt.Subtract(sdt); if (ts.TotalSeconds == 0) { throw new Exception("起始結束時間不可一樣"); } if (DateTime.Compare(DateTime.Today, sdt) > 0) { throw new Exception("預約日期不可小於今日"); } // 檢查預約天數 if (DateTime.Compare(sdt, DateTime.Today.AddDays(mr.POSTPERIOD)) > 0) { throw new Exception("預約日期不可大於 (" + mr.POSTPERIOD + ") 天"); } // 檢查會議室時間是否為系統預約 int dateday = (int)sdt.DayOfWeek; List <string> sqls = new List <string>(); #region 檢查 是否被預約 sqls.Add(string.Format(@" select * from MBS_RECORD t where t.roomid = '{0}' and( t.starttime between to_date('{1}', 'yyyy/mm/dd hh24:mi:ss') AND to_date('{2}', 'yyyy/mm/dd hh24:mi:ss') or t.endtime between to_date('{1}', 'yyyy/mm/dd hh24:mi:ss') AND to_date('{2}', 'yyyy/mm/dd hh24:mi:ss')) ", roomid, sdt.AddSeconds(1).ToString("yyyy/MM/dd HH:mm:ss"), edt.AddSeconds(-1).ToString("yyyy/MM/dd HH:mm:ss"))); #endregion #region 檢查系統預約 sql sqls.Add(string.Format(@"select a.dateday,a.starttime,a.endtime from MBS_LOCKROOM a where a.roomid = '{0}' and (a.starttime between '{2}' AND '{3}' or a.endtime between '{4}' AND '{5}') and a.dateday = '{1}' ", roomid , dateday.ToString(), sdt.ToString("HHmm"), edt.AddMinutes(-1).ToString("HHmm"), sdt.AddMinutes(1).ToString("HHmm"), edt.ToString("HHmm") )); #endregion DataSet ds = DALService.ExecuteBatchQuery(sqls.ToArray()); IEnumerable <DataRow> drow = ds.Tables[0].AsEnumerable(); if (drow.Count() > 0) { string sRepeat = string.Join("\n", drow.Select( x => x["applier"].ToString() + " From : " + x["starttime"].ToString() + " To :" + x["endtime"].ToString()).ToArray()); throw new Exception("重覆預約 \n" + sRepeat); } IEnumerable <DataRow> Srow = ds.Tables[1].AsEnumerable(); ds.Dispose(); if (Srow.Count() > 0) { string sRepeat = string.Join("\n", Srow.Select( x => Enum.GetName(typeof(DayOfWeek), int.Parse(x["dateday"].ToString())) + " : " + x["starttime"].ToString() + " To :" + x["endtime"].ToString() ).ToArray()); throw new Exception("此會議室已被系統預約 時間 \n" + sRepeat); } recordobj.RECORDID = Guid.NewGuid().ToString(); recordobj.BOOKTYPE = "USER"; recordobj.APPLIER = vUserInfo.CName; recordobj.APPLIEREXT = vUserInfo.Ext; recordobj.APPLIERID = vUserInfo.UserId; recordobj.UPDATET = "sysdate"; ws.BookingEvent(new [] { recordobj }); } catch (Exception ex) { ret = ex.Message; } //檢查預約事件 格式是否異常 return(ret); }
private void PrintModellInfo(ModelRecord mr) { var entryText = $"5D File: {mr.ModelPath}, Last Updated: {mr.LastUpdated.ToShortDateString()}"; PrintInfo(entryText); }