示例#1
0
        /// <summary>
        /// Reads a file from disc and stores its content into a list of byte buffer.
        /// </summary>
        /// <param name="completePath">The complete path to the file</param>
        public void ReadFileFromDisc(string completePath)
        {
            try
            {
                byte[] buffer;
                int    concreteBufferSize;

                FileInfo info     = new FileInfo(completePath);
                int      fileSize = (int)info.Length;

                int streamPosition = 0;

                using (FileStream stream = info.OpenRead())
                {
                    while (true)
                    {
                        if (streamPosition + BufferSize < fileSize)
                        {
                            concreteBufferSize = BufferSize;
                        }
                        else
                        {
                            concreteBufferSize = fileSize - streamPosition;
                        }

                        buffer = new byte[concreteBufferSize];
                        stream.Read(buffer, 0, concreteBufferSize);
                        streamPosition += concreteBufferSize;

                        ByteArray newByteArray = new ByteArray(buffer);
                        byteBuffers.Add(newByteArray);

                        IUpdateAction addNewByteArrayAction  = new UpdateStoreAction(newByteArray);
                        IUpdateAction deactivateNewByteArray = new DeactivateAction(newByteArray, 1);
                        DatabaseManager.Instance.PerformDataUpdate(addNewByteArrayAction,
                                                                   deactivateNewByteArray);

                        if (streamPosition == fileSize)
                        {
                            break;
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                throw new DiscAccessException(String.Format("{0}{1}{2}",
                                                            "Could not read the file \"",
                                                            completePath,
                                                            "\" from disc."), ex);
            }

            finally
            {
                IUpdateAction addByteArrayListAction = new UpdateStoreAction(byteBuffers);
                DatabaseManager.Instance.PerformDataUpdate(addByteArrayListAction);
            }
        }
示例#2
0
        private DeactivateActionLink(IPortalContext portalContext, int languageCode, DeactivateAction action, bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(portalContext, languageCode, action, LinkActionType.Deactivate, enabled, url, portalName, DefaultButtonLabel, DefaultButtonTooltip)
        {
            Modal = new ViewDeactivateModal();

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("Deactivate", "EntityAction",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }
        }
示例#3
0
        public DeactivateActionLink(IPortalContext portalContext, GridMetadata gridMetadata, int languageCode,
                                    DeactivateAction action, bool enabled = true, UrlBuilder url = null, string portalName = null)
            : this(portalContext, languageCode, action, enabled, url, portalName)
        {
            if (gridMetadata.DeactivateDialog == null)
            {
                return;
            }

            Modal.CloseButtonCssClass   = gridMetadata.DeactivateDialog.CloseButtonCssClass;
            Modal.CloseButtonText       = gridMetadata.DeactivateDialog.CloseButtonText.GetLocalizedString(languageCode);
            Modal.CssClass              = gridMetadata.DeactivateDialog.CssClass;
            Modal.DismissButtonSrText   = gridMetadata.DeactivateDialog.DismissButtonSrText.GetLocalizedString(languageCode);
            Modal.PrimaryButtonCssClass = gridMetadata.DeactivateDialog.PrimaryButtonCssClass;
            Modal.PrimaryButtonText     = gridMetadata.DeactivateDialog.PrimaryButtonText.GetLocalizedString(languageCode);
            Modal.Size          = gridMetadata.DeactivateDialog.Size;
            Modal.Title         = gridMetadata.DeactivateDialog.Title.GetLocalizedString(languageCode);
            Modal.TitleCssClass = gridMetadata.DeactivateDialog.TitleCssClass;
        }
示例#4
0
        /// <summary>
        /// Removes the structure from the database.
        /// </summary>
        private void ObjectOnDelete(IObjectContainer container)
        {
            try
            {
                for (int i = 0; i < byteBuffers.Count; i++)
                {
                    IUpdateAction activateIndividualBufferAction = new ActivateAction(byteBuffers[i], 1);
                    IUpdateAction deleteIndividualBufferAction   = new DeleteAction(byteBuffers[i]);
                    IUpdateAction clearIndividualBufferAction    = new DeactivateAction(byteBuffers[i], 1);
                    DatabaseManager.Instance.PerformDataUpdate(activateIndividualBufferAction,
                                                               deleteIndividualBufferAction,
                                                               clearIndividualBufferAction);
                }

                IUpdateAction deleteListOfBuffers = new DeleteAction(byteBuffers);
                IUpdateAction clearListOfBuffers  = new DeactivateAction(byteBuffers, 1);
                DatabaseManager.Instance.PerformDataUpdate(deleteListOfBuffers, clearListOfBuffers);
            }

            catch (DatabaseException) { }
        }
示例#5
0
        /// <summary>
        /// Writes a file to disc, reading it from the list fo buffers.
        /// </summary>
        /// <param name="completePath">The complete path to the file</param>
        public void WriteFileToDisc(string completePath)
        {
            int    splitPosition = completePath.LastIndexOf(Path.DirectorySeparatorChar);
            string folderRoot    = completePath.Substring(0, splitPosition);

            try
            {
                if (Directory.Exists(folderRoot) == false)
                {
                    Directory.CreateDirectory(folderRoot);
                }

                FileInfo info = new FileInfo(completePath);

                using (FileStream stream = info.OpenWrite())
                {
                    IUpdateAction getByteBuffersAction = new ActivateAction(byteBuffers, 1);
                    DatabaseManager.Instance.PerformDataUpdate(getByteBuffersAction);

                    for (int i = 0; i < byteBuffers.Count; i++)
                    {
                        IUpdateAction getIndividualBufferAction = new ActivateAction(byteBuffers[i], 1);
                        DatabaseManager.Instance.PerformDataUpdate(getIndividualBufferAction);

                        stream.Write(byteBuffers[i].Buffer, 0, byteBuffers[i].Buffer.Length);

                        IUpdateAction clearIndividualBufferAction = new DeactivateAction(byteBuffers[i], 1);
                        DatabaseManager.Instance.PerformDataUpdate(clearIndividualBufferAction);
                    }
                }
            }

            catch (Exception ex)
            {
                throw new DiscAccessException(String.Format("{0}{1}{2}",
                                                            "Could not write the file \"",
                                                            completePath,
                                                            "\" to disc."), ex);
            }
        }