public async Task <IHttpActionResult> addStaff(staffModifyReceiver input) { using (var trans = db.Database.BeginTransaction()) { try { var staff = new STAFF { ID = "1", ID_CARD_NUMBER = input.idCardNumber, INSERT_TIME = DateTime.Now, IS_SUPER = "0", NAME = input.name, PASSWORD = input.password, TEL_NUMBER = input.telNumber, UPDATE_TIME = DateTime.Now, ACCOUNT_ID = input.status == "0" ? "p" : input.status == "1" ? "r" : input.status == "2" ? "d" : "x" }; db.STAFF.Add(staff); db.SaveChanges(); var staffID = db.STAFF.OrderByDescending(s => s.ID).FirstOrDefault().ID; System.Diagnostics.Debug.Write(staffID + "\n"); if (input.status == "0") { var patrol = new PATROL { ID = staffID, PATROL_START = input.startTime, PATROL_STOP = input.endTime }; db.PATROL.Add(patrol); } else if (input.status == "1") { var repairer = new REPAIRER { ID = staffID, }; db.REPAIRER.Add(repairer); } else if (input.status == "2") { var dispatcher = new DISPATCHER { ID = staffID, DISPATCH_START = input.startTime, DISPATCH_STOP = input.endTime }; db.DISPATCHER.Add(dispatcher); } await db.SaveChangesAsync(); trans.Commit(); NotificationController.NotificationCallbackMsg("新增员工" + input.name + " 编号" + staff.ID); return(Ok(new staffAddDto { data = getDtoList(), info1 = "ok", info2 = staff.ACCOUNT_ID })); } catch (Exception e) { trans.Rollback(); System.Diagnostics.Debug.Write(e); return(Ok(returnHelper.fail())); } } }
public async Task <IHttpActionResult> modifyStaff(staffModifyReceiver input) { input.id = input.id.Substring(2); try { var staff = await db.STAFF.FindAsync(input.id); //cannot modify info about a super manager or an expelled if (staff == null || staff.IS_SUPER != "0") { throw new Exception(); } //repeated id if (input.accountID != staff.ACCOUNT_ID) { if (db.STAFF.Count(s => s.ACCOUNT_ID == input.accountID) > 0) { throw new Exception(); } } staff.NAME = input.name; staff.PASSWORD = input.password; staff.TEL_NUMBER = input.telNumber; staff.ID_CARD_NUMBER = input.idCardNumber; staff.UPDATE_TIME = DateTime.Now; await db.Entry(staff).Reference(s => s.REPAIRER).LoadAsync(); await db.Entry(staff).Reference(s => s.REPAIRER).LoadAsync(); await db.Entry(staff).Reference(s => s.REPAIRER).LoadAsync(); string status = ""; if (staff.DISPATCHER != null) { status = "2"; } else if (staff.PATROL != null) { status = "0"; } else if (staff.REPAIRER != null) { status = "1"; } else { throw new Exception(); } if (status == input.status) { if (input.status == "0") { staff.PATROL.PATROL_START = input.startTime; staff.PATROL.PATROL_STOP = input.endTime; } else if (input.status == "2") { staff.DISPATCHER.DISPATCH_START = input.startTime; staff.DISPATCHER.DISPATCH_STOP = input.endTime; } } else { throw new Exception(); } await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("修改员工信息 员工姓名" + input.name + " 编号" + input.id); return(Ok(returnHelper.make(getDtoList()))); } catch (Exception e) { //return Ok(returnHelper.fail()); throw; } }