예제 #1
0
        public IHttpActionResult AddHotSpot(HotspotModel hotspotModel)
        {
            var scence  = _sceneService.GetPnoramaSceneById(hotspotModel.Scence_Id);
            var hotspot = new Hotspot();

            hotspot = hotspotModel.ToEntity();
            hotspot.PanoramaScene = scence;

            _hotspotService.InsertHotspot(hotspot);

            return(Ok());
        }
        public void CreateHotspot(ID hotspotImageId, HotspotModel hotspotModel, string databaseName)
        {
            Assert.ArgumentNotNull(hotspotImageId, nameof(hotspotImageId));
            Assert.ArgumentNotNull(hotspotModel, nameof(hotspotModel));
            Assert.ArgumentNotNull(databaseName, nameof(databaseName));

            Database database = Sitecore.Data.Database.GetDatabase(databaseName);

            if (database == null)
            {
                throw new DatabaseNullException();
            }

            Item hotspotImageItem = database.GetItem(hotspotImageId);

            if (hotspotImageItem == null)
            {
                throw new ItemNotFoundException(hotspotImageId.ToString());
            }

            TemplateID templateId = new TemplateID(Templates.Hotspot.ID);

            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                string itemName = ItemUtil.ProposeValidItemName(hotspotModel.Title);

                Item hotspotItem = hotspotImageItem.Add(itemName, templateId);

                try
                {
                    hotspotItem.Editing.BeginEdit();
                    hotspotItem.Fields[Templates.Hotspot.Fields.Title].Value     = hotspotModel.Title;
                    hotspotItem.Fields[Templates.Hotspot.Fields.LocationX].Value = hotspotModel.LocationX.ToString();
                    hotspotItem.Fields[Templates.Hotspot.Fields.LocationY].Value = hotspotModel.LocationY.ToString();
                    hotspotItem.Editing.EndEdit();
                }
                catch (Exception e)
                {
                    hotspotItem.Editing.CancelEdit();
                    Log.Error(e.Message, e, this);
                    throw;
                }
            }
        }
예제 #3
0
 public static Hotspot ToEntity(this HotspotModel createmodel, Hotspot destination)
 {
     return(createmodel.MapTo(destination));
 }
예제 #4
0
 public static Hotspot ToEntity(this HotspotModel createmodel)
 {
     return(createmodel.MapTo <HotspotModel, Hotspot>());
 }
        public virtual JsonResult SaveHotspotCoordintes(HotspotCoordinateViewModel hotspotCoordinateViewModel)
        {
            if (hotspotCoordinateViewModel == null)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(new ArgumentNullException(nameof(hotspotCoordinateViewModel))));
            }

            if (string.IsNullOrEmpty(hotspotCoordinateViewModel.HotspotImageId))
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(new ArgumentNullException(nameof(hotspotCoordinateViewModel.HotspotImageId))));
            }

            if (string.IsNullOrEmpty(hotspotCoordinateViewModel.Title))
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(new ArgumentNullException(nameof(hotspotCoordinateViewModel.Title))));
            }

            if (string.IsNullOrEmpty(hotspotCoordinateViewModel.DatabaseName))
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(new ArgumentNullException(nameof(hotspotCoordinateViewModel.DatabaseName))));
            }

            ID hotspotImageId;

            if (!ID.TryParse(hotspotCoordinateViewModel.HotspotImageId, out hotspotImageId))
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(new InvalidCastException($"{nameof(hotspotCoordinateViewModel.HotspotImageId)} should be a valid Sitecore ID")));
            }

            var hotspotModel = new HotspotModel()
            {
                LocationX = hotspotCoordinateViewModel.XLocation,
                LocationY = hotspotCoordinateViewModel.YLocation,
                Title     = hotspotCoordinateViewModel.Title
            };

            try
            {
                HotspotImageRepository.CreateHotspot(hotspotImageId, hotspotModel, hotspotCoordinateViewModel.DatabaseName);

                Response.StatusCode = (int)HttpStatusCode.OK;
                return(Json("Hotspot created"));
            }
            catch (DatabaseNullException e)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(e));
            }
            catch (ItemNotFoundException e)
            {
                Response.StatusCode = (int)HttpStatusCode.NotFound;
                return(Json(e));
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e, this);
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return(Json(e));
            }
        }