public ActionResult SaveParsedObjects(int eventId, List <string> styleInfo)
        {
            long sessionID = sessionService.GetSessionID(this.HttpContext, true, true);

            string errMsg = "Please check input information";
            bool   ret    = styleInfo == null ? false :
                            styleInfo.Count == 0 ? false :
                            verifyTypeAndStyle(styleInfo, out errMsg);

            // if succed deletion, process insertion.
            if (ret && DeleteEventObjects(eventId))
            {
                Polygons poly = Polygons.GetInstance();
                // save styleUrl
                MySqlBulkInsert.InsertStyleUrl(poly, eventId);

                //  -> retrieve styleUrl to link type's styleUrl
                poly.AddStyle(styles.GetQueryable().Where(x => x.idIPMEvent == eventId).ToList());

                // set type's styleUrl
                updateType_idStyleUrl(eventId, styleInfo);

                //  -> retrieve siteType to link placeinmap's siteType
                poly.AddType(types.GetQueryable().Where(x => x.idIPMEvent == eventId).ToList());

                //  -> build site's siteType
                poly.MakeSiteRelation(eventId);

                // save placeinmap
                MySqlBulkInsert.InsertPlaceInMap(poly, eventId);

                //  -> retrieve placeinmap to link coordinate's placeinmap
                poly.AddSite(places.GetQueryable().Where(x => x.idIPMEvent == eventId).ToList());

                // set coord's placeId
                poly.SetPlaceIdInCoords();

                // save coordinates
                MySqlBulkInsert.InsertCoordinates(poly);

                //  -> retrieve coordinate to change init=true
                poly.AddCoordinates(coords.GetQueryable().Where(x => x.idIPMEvent == eventId).ToList());

                // update placeinmap with isRVSite
                MySqlBulkInsert.UpdateIsRVSite_PlaceInMap(poly);

                //poly.Initialized = true;
                //poly.eventId = eventId;

                // reset msg with no error
                errMsg = "";
            }

            // return
            return(Json(new
            {
                success = ret,
                msg = errMsg
            }, JsonRequestBehavior.AllowGet));
        }
        public void resetPolygons(Polygons poly, long eventId, long year)
        {
            if (poly.eventId != eventId || !poly.Initialized)
            {
                poly.AddSize(sizes.GetAll());
                poly.AddService(services.GetAll());
                poly.AddStyle(styles.GetQueryable().Where(x => x.idIPMEvent == eventId).OrderByDescending(x => x.ID).ToList());
                poly.AddType(types.GetQueryable().Where(x => x.idIPMEvent == eventId).ToList());
                poly.AddSite(places.GetQueryable().Where(x => x.idIPMEvent == eventId).ToList());
                poly.AddCoordinates(coords.GetQueryable().Where(x => x.idIPMEvent == eventId).ToList());
                poly.UpdateSite(status.GetQueryable().Where(x => x.Year == year).ToList());

                poly.Initialized = true;
                poly.eventId     = eventId;
            }
        }