Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }