示例#1
0
        public IActionResult details([FromBody] RequestedPlacementContract contract)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("incoming post request received: api/home/details<---------------||");
            if (contract != null)
            {
                foreach (Placement placement in model.PlasementList)
                {
                    if (placement.id == contract.id)
                    {
                        foreach (User user in model.UserList)
                        {
                            if (user.id.ToString() == placement.owner_credentials)
                            {
                                PlacementDetails placementDetails = new PlacementDetails();

                                placementDetails.id = placement.id.ToString();

                                placementDetails.header   = placement.header;
                                placementDetails.type     = placement.type;
                                placementDetails.location = placement.location;
                                placementDetails.entity   = placement.entity;
                                placementDetails.size     = placement.size;
                                placementDetails.fromDate = placement.fromDate;
                                placementDetails.toDate   = placement.toDate;

                                placementDetails.mainphoto = placement.mainphoto;
                                placementDetails.image_2   = placement.image_2;
                                placementDetails.image_3   = placement.image_3;
                                placementDetails.image_4   = placement.image_4;
                                placementDetails.image_5   = placement.image_5;

                                placementDetails.userEmail      = user.userEmail;
                                placementDetails.userPhone      = user.userPhone;
                                placementDetails.userReputation = user.userReputation;
                                placementDetails.userPhoto      = user.userPhoto;
                                placementDetails.userName       = user.userLogin;
                                placementDetails.userSurName    = user.userSurName;
                                placementDetails.userCity       = user.userCity;

                                placementDetails.userId = user.id.ToString();

                                return(Json(placementDetails));
                            }
                        }
                    }
                }
            }
            return(Json("invalid request"));
        }
	// Update is called once per frame
	void Update () {
		//mouse
		Vector3 pz = Camera.main.ScreenToWorldPoint(Input.mousePosition);
		pz.z = 0;
		if (useGrid && state == editingState.planets) {
			pz.x = (int)pz.x;
			pz.y = (int)pz.y;
		}
		if (underCursor != null) {
			underCursor.transform.position = pz;
		}

		//right click escapes
		if (Input.GetMouseButton (1)) {
			GameObject.Destroy (currentlyPlacing);
			GameObject.Destroy (underCursor);
			End ();
		}

		switch (state) {
		case editingState.planets:
			if (Input.GetMouseButton (0)) {
				if (currentlyTyped != null) {
					var pd = new PlacementDetails (currentlyTyped, currentlyPlacing.transform.position);
					pd.thePlanetGob = currentlyPlacing;
					record.Add (pd);
				}
				currentlyPlacing = null;
				currentlyTyped = null;
				underCursor = null;
				state = editingState.none;
			}
			break;
		case editingState.vine:
			//TODO stretch
			if (vineEnd1 != null) {
				Vector3 end2 = Vector3.zero;
				if (vineEnd2 != null)
					end2 = vineEnd2.transform.position;
				else 
					end2 = pz;
				FlowerDragManager.PlaceVine (vineEnd1.transform.position, end2, vine);
			}

			if (Input.GetMouseButtonDown (0) && currentPlanetByMouse != null) {
				if (vineEnd1 == null) {
					//Debug.Log ("Vine1");
					vineEnd1 = currentPlanetByMouse;
					
					vine.gameObject.transform.SetAsFirstSibling ();
					//startPos = flo.gameObject.transform.parent.position;
				} else if (currentPlanetByMouse != vineEnd1) {
					//Debug.Log ("Vine2");
					vineEnd2 = currentPlanetByMouse;
					
					//record vine
					PlacementDetails p1 = null;
					PlacementDetails p2 = null;
					foreach (var p in record) {
						if (p.thePlanetGob == currentPlanetByMouse.gameObject)
							p1 = p;
						if (p.thePlanetGob == vineEnd1.gameObject)
							p2 = p;
					}
					if (p1 != null && p2 != null)
						p1.AddVineNeighbor (p2);
					else
						Debug.Log ("Vine recording problem: " + p1 + "-" + p2);

					//straighten out the end
					Vector3 end2 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
					FlowerDragManager.PlaceVine (vineEnd1.transform.position, end2, vine);

					//end
					vineEnd1 = null;
					vineEnd2 = null;
					vine = null;
					state = editingState.none;
					currentlyPlacing = null;
					underCursor = null;
				}
			}
			break;
		case editingState.flower:
			if (Input.GetMouseButtonDown (0) && currentPlanetByMouse != null) {
				//give the planet a flower
				//record flower
				foreach (var p in record) {
					if (p.thePlanetGob == currentPlanetByMouse.gameObject)
						p.hasFlower = true;
				}

				End ();
			}
			break;
		case editingState.demands:
			if (Input.GetMouseButtonDown (0) && currentPlanetByMouse != null && currentDemand != "") {
				//TODO record demand
				//Debug.Log ("Adding demand: "+ currentDemand);
				currentPlanetByMouse.hasDemands.AddDemand (currentDemand, false, false);
			}
			break;
		}
	}
	public void AddVineNeighbor (PlacementDetails pd) {
		neighbors.Add (pd.id);
		pd.neighbors.Add (id);
	}