Beispiel #1
0
        /// <summary>
        /// GET: ExhibitionRoom/Delete/5
        /// </summary>
        /// <param name="id"></param>
        /// <param name="concurrencyError"></param>
        /// <returns></returns>
        public async Task <ActionResult> Delete(long?id, bool?concurrencyError)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(NotFound());
            }
            ExhibitionRoomModel exhibition = await _context.ExhibitionRooms.FindAsync(id);

            if (exhibition == null)
            {
                if (concurrencyError.GetValueOrDefault())
                {
                    return(RedirectToAction("Index"));
                }
                //return HttpNotFound();
            }

            if (concurrencyError.GetValueOrDefault())
            {
                ViewBag.ConcurrencyErrorMessage = "The record you attempted to delete "
                                                  + "was modified by another user after you got the original values. "
                                                  + "The delete operation was canceled and the current values in the "
                                                  + "database have been displayed. If you still want to delete this "
                                                  + "record, click the Delete button again. Otherwise "
                                                  + "click the Back to List hyperlink.";
            }

            return(View(exhibition));
        }
Beispiel #2
0
        /// <summary>
        /// GET: ExhibitionRoom/Details/5
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <ActionResult> Details(long?id)
        {
            if (id == null)
            {
                return(NotFound());
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            // Commenting out original code to show how to use a raw SQL query.
            ExhibitionRoomModel exhibitionRooms = await _context.ExhibitionRooms.FindAsync(id);

            if (exhibitionRooms == null)
            {
                return(NotFound());
            }

            //if (id != null)
            //{
            //    var exhibitionRooms = from d in _context.ExhibitionRooms
            //                          orderby d.Title
            //                          where d.ExhibitionId == exhibitionRooms.ExhibitionId
            //                          select d;

            //    ViewData["ExhibitionRooms"] = exhibitionRooms.ToList();
            //}

            //exhibitionRooms.Owner = _context.AccUsers.FirstOrDefault(user => user.UserId == exhibitionRooms.OwnerId);

            return(View(exhibitionRooms));
        }
Beispiel #3
0
        public async Task <IActionResult> Create([Bind("Title,Description,ExhibitionId,Order,Active,ScanRadius,ShowOnMap,VaGuid,Va,IconUrl,MapIconUrl,MapUrl,ThumbUrl,IconUrlFile,MapIconUrlFile,MapUrlFile,ThumbUrlFile")] ExhibitionRoomModel exhibitionRoomModel)
        {
            if (ModelState.IsValid)
            {
                exhibitionRoomModel.Active = true;

                #region Upload File to azure storage

                List <IFormFile> allFiles = new List <IFormFile> {
                    exhibitionRoomModel.MapIconUrlFile, exhibitionRoomModel.MapUrlFile, exhibitionRoomModel.ThumbUrlFile, exhibitionRoomModel.IconUrlFile
                };

                foreach (IFormFile file in allFiles)
                {
                    if (file == null)
                    {
                        continue;
                    }

                    //create file class to use uploading files
                    AzureBlobFile azureBlobFile = new AzureBlobFile(Enums.InterfaceFileTypes.Exhibition,
                                                                    file,
                                                                    await file.GetBytes(),
                                                                    exhibitionRoomModel.Title,
                                                                    string.Empty,
                                                                    Configuration.GetConnectionString("AccessKey"),
                                                                    Configuration.GetConnectionString("ContainerName"));

                    //create azure storace service
                    BlobStorageService objBlobService = new BlobStorageService(azureBlobFile.AccessKey, azureBlobFile.ContainerName);

                    //upload file to azure storage
                    string uploadedFileName = objBlobService.UploadFileToBlob(azureBlobFile);

                    //Set azure storage file nime into the model property
                    Helper.Helper.UpdateProperty(exhibitionRoomModel, azureBlobFile.PropertyName, uploadedFileName);
                }

                #endregion

                _context.Add(exhibitionRoomModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            PopulateExhibitionsDropDownList(0);

            return(View(exhibitionRoomModel));
        }
Beispiel #4
0
        public async Task <ActionResult> Edit(long?id, [Bind("RoomId,Title,Description,ExhibitionId,Order,Active,ScanRadius,ShowOnMap,VaGuid,Va,IconUrl,MapIconUrl,MapUrl,ThumbUrl,IconUrlFile,MapIconUrlFile,MapUrlFile,ThumbUrlFile")] ExhibitionRoomModel exhibitionRoomModel)
        {
            if (id == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var exhibitionRoomToUpdate = await _context.ExhibitionRooms.Include(d => d.Exhibition)
                                             .FirstOrDefaultAsync(m => m.RoomId == id);

                List <IFormFile> allFiles = new List <IFormFile> {
                    exhibitionRoomModel.MapIconUrlFile, exhibitionRoomModel.MapUrlFile, exhibitionRoomModel.ThumbUrlFile, exhibitionRoomModel.IconUrlFile
                };

                if (await TryUpdateModelAsync <ExhibitionRoomModel>(
                        exhibitionRoomToUpdate,
                        "",
                        i => i.Title,
                        i => i.Description,
                        i => i.ExhibitionId,
                        i => i.Order, i =>
                        i.ScanRadius, i =>
                        i.ShowOnMap, i =>
                        i.VaGuid, i => i.Va,
                        i => i.MapIconUrl,
                        i => i.MapUrl,
                        i => i.ThumbUrl,
                        i => i.IconUrl))
                {
                    try
                    {
                        #region Upload File to azure storage

                        foreach (IFormFile file in allFiles)
                        {
                            if (file == null)
                            {
                                continue;
                            }

                            //create file class to use uploading files
                            AzureBlobFile azureBlobFile = new AzureBlobFile(InterfaceFileTypes.Exhibition,
                                                                            file,
                                                                            await file.GetBytes(),
                                                                            exhibitionRoomToUpdate.Title,
                                                                            string.Empty,
                                                                            Configuration.GetConnectionString("AccessKey"),
                                                                            Configuration.GetConnectionString("ContainerName"));

                            //create azure storace service
                            BlobStorageService objBlobService = new BlobStorageService(azureBlobFile.AccessKey, azureBlobFile.ContainerName);

                            //upload file to azure storage
                            string uploadedFileName = objBlobService.UploadFileToBlob(azureBlobFile);
                            //If necessary, open the remove option
                            //if the previous file exists delete
                            //string previousPropertyBlobUrlToUpdate = Helper.Helper.GetPropertyValue(exhibitionRoomToUpdate, azureBlobFile.PropertyName);

                            //if (!string.IsNullOrEmpty(previousPropertyBlobUrlToUpdate))
                            //{
                            //    objBlobService.DeleteBlobData(previousPropertyBlobUrlToUpdate, azureBlobFile.FilePath);
                            //}

                            //Set azure storage file nime into the model property
                            Helper.Helper.UpdateProperty(exhibitionRoomToUpdate, azureBlobFile.PropertyName, uploadedFileName);
                        }

                        #endregion

                        await _context.SaveChangesAsync();
                    }
                    catch (DbUpdateException ex)
                    {
                        _logger.LogError($"ExhibitionRoom -> Edit -> exception: {ex.ToString()}");

                        //Log the error (uncomment ex variable name and write a log.)
                        ModelState.AddModelError("", "Unable to save changes. " +
                                                 "Try again, and if the problem persists, " +
                                                 "see your system administrator.");
                    }
                    return(RedirectToAction(nameof(Index)));
                }
            }

            PopulateExhibitionsDropDownList(exhibitionRoomModel.ExhibitionId);

            return(View(exhibitionRoomModel));
        }