Exemplo n.º 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();
                });
            }
        }