示例#1
0
        public void Hello(DT.Slave slaveInfo)
        {
            RoleVerifier.AuthenticateForAnyRole(HiveRoles.Slave);
            if (UserManager.CurrentUser.UserName != "hiveslave")
            {
                slaveInfo.OwnerUserId = UserManager.CurrentUserId;
            }
            var pm = PersistenceManager;

            using (new PerformanceLogger("Hello")) {
                var slaveDao = pm.SlaveDao;
                pm.UseTransaction(() => {
                    var slave = slaveDao.GetById(slaveInfo.Id);
                    if (slave == null)
                    {
                        slaveDao.Save(slaveInfo.ToEntity());
                    }
                    else
                    {
                        bool oldIsAllowedToCalculate = slave.IsAllowedToCalculate;
                        Guid?oldParentResourceId     = slave.ParentResourceId;
                        slaveInfo.CopyToEntity(slave);
                        slave.IsAllowedToCalculate = oldIsAllowedToCalculate;
                        slave.ParentResourceId     = oldParentResourceId;
                        slave.LastHeartbeat        = DateTime.Now;
                        slave.SlaveState           = DA.SlaveState.Idle;
                    }
                    pm.SubmitChanges();
                });
            }
        }
示例#2
0
        public Guid AddSlave(DT.Slave slaveDto)
        {
            RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator);
            var pm = PersistenceManager;

            using (new PerformanceLogger("AddSlave")) {
                var slaveDao = pm.SlaveDao;
                return(pm.UseTransaction(() => {
                    var slave = slaveDao.Save(slaveDto.ToEntity());
                    pm.SubmitChanges();
                    return slave.ResourceId;
                }));
            }
        }
示例#3
0
        public void UpdateSlave(DT.Slave slaveDto)
        {
            RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
            var pm = PersistenceManager;

            using (new PerformanceLogger("UpdateSlave")) {
                var slaveDao = pm.SlaveDao;
                pm.UseTransaction(() => {
                    var slave = slaveDao.GetById(slaveDto.Id);
                    if (slave != null)
                    {
                        slaveDto.CopyToEntity(slave);
                    }
                    else
                    {
                        slaveDao.Save(slaveDto.ToEntity());
                    }
                    pm.SubmitChanges();
                });
            }
        }