// Use this for initialization void Start() { menu = GameObject.FindGameObjectWithTag("MainMenu").GetComponent <MenuMove>(); moveSpeed = 8f; moveSpeedX = 0.2f; moveSpeedY = 0.04f; rotateSpeed = 2.5f; moving = false; holdMoved = false; rotateMoved = false; touchTimer = 0; touchDelayTimer = 0; }
public MenuResult UpdateMenu( AuthIdentity identity, Guid? menuId, Guid[] recipesAdd, Guid[] recipesRemove, MenuMove[] recipesMove, bool clear, string newName = null) { var menuResult = new MenuResult(); menuResult.MenuUpdated = true; // TODO: Verify actual changes were made before setting MenuUpdated to true using (var session = this.GetSession()) { using (var transaction = session.BeginTransaction()) { Menus dbMenu = null; IList<Favorites> dbRecipes; if (menuId.HasValue) { dbMenu = session .QueryOver<Menus>() .Fetch(prop => prop.Recipes).Eager .Where(p => p.MenuId == menuId) .SingleOrDefault(); if (dbMenu == null) { throw new MenuNotFoundException(); } if (dbMenu.UserId != identity.UserId) { throw new UserDoesNotOwnMenuException(); } if (!string.IsNullOrWhiteSpace(newName)) { dbMenu.Title = newName.Trim(); } dbRecipes = dbMenu.Recipes; } else { dbRecipes = session .QueryOver<Favorites>() .Where(p => p.UserId == identity.UserId) .Where(p => p.Menu == null) .List(); } if (recipesAdd.Any()) { var existing = from r in dbRecipes select r.Recipe.RecipeId; recipesAdd = recipesAdd.Except(existing).ToArray(); foreach (var rid in recipesAdd) { var fav = new Favorites { UserId = identity.UserId, Recipe = new Recipes { RecipeId = rid }, Menu = dbMenu }; session.Save(fav); } } if (recipesRemove.Any()) { var toDelete = from r in dbRecipes where recipesRemove.Contains(r.Recipe.RecipeId) select r; toDelete.ForEach(session.Delete); } if (clear) { dbRecipes.ForEach(session.Delete); } if (recipesMove.Any()) { foreach (var moveAction in recipesMove) { Menus dbTarget = null; if (moveAction.TargetMenu.HasValue) { dbTarget = session .QueryOver<Menus>() .Where(p => p.MenuId == moveAction.TargetMenu.Value) .Where(p => p.UserId == identity.UserId) .SingleOrDefault(); if (dbTarget == null) { throw new MenuNotFoundException(moveAction.TargetMenu.Value); } } var rToMove = moveAction.MoveAll ? dbRecipes : dbRecipes.Where(r => moveAction.RecipesToMove.Contains(r.Recipe.RecipeId)); rToMove.ForEach(a => a.Menu = dbTarget); } } transaction.Commit(); } } return menuResult; }