Пример #1
0
        private Document CreateDocument <T>(T fileId, string documentName, string folderId, out File <T> file)
        {
            var fileDao = DaoFactory.GetFileDao <T>();

            file = fileDao.GetFile(fileId);
            if (file == null)
            {
                throw new Exception(FilesCommonResource.ErrorMassage_FileNotFound);
            }
            if (!FileSecurity.CanRead(file))
            {
                throw new SecurityException(FilesCommonResource.ErrorMassage_SecurityException_ReadFile);
            }
            if (!SupportedFormats.Contains(FileUtility.GetFileExtension(file.Title)))
            {
                throw new ArgumentException(FilesCommonResource.ErrorMassage_NotSupportedFormat);
            }
            if (file.ContentLength > MaxFileSize)
            {
                throw new Exception(FileSizeComment.GetFileSizeExceptionString(MaxFileSize));
            }

            byte[] fileBytes;
            using (var stream = fileDao.GetFileStream(file))
            {
                var buffer = new byte[16 * 1024];
                using var ms = new MemoryStream();
                int read;
                while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    ms.Write(buffer, 0, read);
                }
                fileBytes = ms.ToArray();
            }

            if (string.IsNullOrEmpty(documentName))
            {
                documentName = file.Title;
            }

            var document = new Document
            {
                DocumentBase64 = Convert.ToBase64String(fileBytes),
                DocumentFields = new List <NameValue>
                {
                    new NameValue {
                        Name = FilesLinkUtility.FolderId, Value = folderId
                    },
                    new NameValue {
                        Name = FilesLinkUtility.FileTitle, Value = file.Title
                    },
                },
                DocumentId    = "1", //file.ID.ToString(),
                FileExtension = FileUtility.GetFileExtension(file.Title),
                Name          = documentName,
            };

            return(document);
        }
Пример #2
0
        private void PrintResultBySave(SaveResult result, string pageName)
        {
            var infoType = InfoType.Info;
            if (!result.Equals(SaveResult.Ok) && !result.Equals(SaveResult.NoChanges))
            {
                infoType = InfoType.Alert;
            }

            switch (result)
            {
                case SaveResult.SectionUpdate:
                    Response.RedirectLC(ActionHelper.GetViewPagePath(this.ResolveUrlLC("Default.aspx"), pageName), this);
                    break;
                case SaveResult.OkPageRename:
                case SaveResult.Ok:
                    PrintInfoMessage(WikiResource.msgSaveSucess, infoType);
                    if (Action.Equals(ActionOnPage.AddNew) || Action.Equals(ActionOnPage.Edit))
                    {
                        Response.RedirectLC(ActionHelper.GetViewPagePath(this.ResolveUrlLC("Default.aspx"), pageName), this);
                    }
                    else if (Action.Equals(ActionOnPage.AddNewFile))
                    {
                        Response.RedirectLC(ActionHelper.GetEditFilePath(this.ResolveUrlLC("Default.aspx"), pageName), this);
                    }
                    break;
                case SaveResult.FileEmpty:
                    PrintInfoMessage(WikiResource.msgFileEmpty, infoType);
                    break;
                case SaveResult.FileSizeExceeded:
                    PrintInfoMessage(FileSizeComment.GetFileSizeExceptionString(FileUploader.MaxUploadSize), infoType);
                    break;
                case SaveResult.NoChanges:
                    PrintInfoMessage(WikiResource.msgNoChanges, infoType);
                    break;
                case SaveResult.PageNameIsEmpty:
                    PrintInfoMessage(WikiResource.msgPageNameEmpty, infoType);
                    break;
                case SaveResult.PageNameIsIncorrect:
                    PrintInfoMessage(WikiResource.msgPageNameIncorrect, infoType);
                    break;
                case SaveResult.SamePageExists:
                    PrintInfoMessage(WikiResource.msgSamePageExists, infoType);
                    break;
                case SaveResult.UserIdIsEmpty:
                    PrintInfoMessage(WikiResource.msgInternalError, infoType);
                    break;
                case SaveResult.OldVersion:
                    PrintInfoMessage(WikiResource.msgOldVersion, infoType);
                    break;
                case SaveResult.Error:
                    PrintInfoMessage(WikiResource.msgMarkupError, InfoType.Alert);
                    break;
                case SaveResult.PageTextIsEmpty:
                    PrintInfoMessage(WikiResource.msgPageTextEmpty, infoType);
                    break;
            }
        }
Пример #3
0
        protected void cmdFileUpload_Click(object sender, EventArgs e)
        {
            if (fuFile.HasFile)
            {
                var result = EditFile.DirectFileSave(SecurityContext.CurrentAccount.ID, fuFile, MapPath("~"), WikiSection.Section, ConfigLocation, TenantId, HttpContext.Current);

                switch (result)
                {
                case SaveResult.Ok:
                    Response.Redirect(Request.GetUrlRewriter().ToString(), true);
                    return;

                case SaveResult.FileEmpty:
                    WikiMaster.PrintInfoMessage(WikiResource.msgFileEmpty, InfoType.Alert);
                    break;

                case SaveResult.FileSizeExceeded:
                    WikiMaster.PrintInfoMessage(FileSizeComment.GetFileSizeExceptionString(FileUploader.MaxUploadSize), InfoType.Alert);
                    break;
                }
            }

            BindRepeater();
        }