public JsonResult GetTransitAspectChartObjects( int id, int firstChartId, int secondChartId, bool draconic, bool arabic, bool asteroids, bool stars, bool midpoints, byte houseSystemId) { if (id <= 0) { return this.Json(null, JsonRequestBehavior.AllowGet); } var chartCon = new EnteredChartsController(); var firstChartObject = this.db.ChartObjects.Find(id); var thisChart = this.db.ChartObjects.Where(x => x.EnteredChartID == secondChartId) .Where( objects => (!objects.CelestialObject.Draconic) && (objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.AngleHouseCusp) && (objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.ArabicPart) && ((!asteroids && objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.Asteroid) || asteroids) && ((!stars && objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.FixedStar) || stars)) .ToList() .Union(chartCon.GetAngleChartObjects(secondChartId)) .Union(chartCon.GetArabicPartChartObjects(secondChartId, houseSystemId, arabic)) .Union(chartCon.GetDraconicChartObjects(secondChartId, draconic, arabic, asteroids, midpoints, houseSystemId)) .Union(chartCon.GetMidpointChartObjects(secondChartId, midpoints)) .OrderBy(x => x.CalculatedCoordinate); var aspectList = this.db.Aspects.OrderBy(a => a.DisplayOrder).ToList(); var aspectObjectLists = chartCon.GetAspectObjectLists(thisChart, firstChartObject, secondChartId, houseSystemId); var thisList = new List<object>(); for (var i = 0; i < aspectList.Count; i++) { thisList.Add( new { aspectList[i].AspectId, aspectList[i].AspectName, aspectList[i].HtmlTextCssClass, aspectList = aspectObjectLists[i] }); } return this.Json(thisList, JsonRequestBehavior.AllowGet); }
public JsonResult GetSynastryAspectChartObjectsForArabicPart( int firstChartId, int secondChartId, [CanBeNull] string arabicPartName, [CanBeNull] string arabicPartCoordinates, bool draconic, bool arabic, bool asteroids, bool stars, bool midpoints, byte houseSystemId) { if (string.IsNullOrEmpty(arabicPartName) || string.IsNullOrEmpty(arabicPartCoordinates) || firstChartId <= 0 || secondChartId <= 0) { return this.Json(null, JsonRequestBehavior.AllowGet); } var chartCon = new EnteredChartsController(); var arabicParts = chartCon.GetArabicPartChartObjects(firstChartId, houseSystemId, arabic); if (arabicParts.Count == 0) { return this.Json(null, JsonRequestBehavior.AllowGet); } var thisObject = arabicParts.FirstOrDefault(ap => ap.CelestialObject.CelestialObjectName == arabicPartName); arabicParts = null; var secondArabicParts = chartCon.GetArabicPartChartObjects(secondChartId, houseSystemId, arabic); var thisChart = this.db.ChartObjects.Where(x => x.EnteredChartID == secondChartId) .Where( objects => (!objects.CelestialObject.Draconic) && (objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.AngleHouseCusp) && (objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.ArabicPart) && ((!asteroids && objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.Asteroid) || asteroids) && ((!stars && objects.CelestialObject.CelestialObjectTypeId != (byte)ChartObject.ObjectTypes.FixedStar) || stars)) .ToList() .Union(chartCon.GetAngleChartObjects(secondChartId)) .Union(secondArabicParts) .Union(chartCon.GetDraconicChartObjects(secondChartId, draconic, arabic, asteroids, midpoints, houseSystemId)) .Union(chartCon.GetMidpointChartObjects(secondChartId, midpoints)) .OrderBy(x => x.CalculatedCoordinate); var aspectList = this.db.Aspects.OrderBy(a => a.DisplayOrder).ToList(); var aspectObjectLists = chartCon.GetAspectObjectLists(thisChart, thisObject, secondChartId, houseSystemId); var thisList = new List<object>(); for (var i = 0; i < aspectList.Count; i++) { thisList.Add( new { aspectList[i].AspectId, aspectList[i].AspectName, aspectList[i].HtmlTextCssClass, aspectList = aspectObjectLists[i] }); } return this.Json(thisList, JsonRequestBehavior.AllowGet); }