Пример #1
0
        public JsonResult GetSynastryAspectChartObjects(
            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));
        }
Пример #2
0
        public JsonResult GetTransitAspectChartObjectsForArabicPart(
            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))
                .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));
        }