Пример #1
0
        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()));
                }
            }
        }
Пример #2
0
        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;
            }
        }