public async Task Test_AddOrUpdateAsync_GetByIdAsync() { var id = Guid.NewGuid().ToString("N"); var userId = Guid.NewGuid(); var dto = new AttachmentItem { ContextId = Guid.Empty, Id = id, Location = $"attachments/2018/12/28/{id}.ext", Size = 100, Status = UploadStatus.Uploading, Uploaded = DateTimeOffset.UtcNow, UploadBy = userId }; var target = new AttachmentAppService(statefulServiceContext, stateManager); await target.AddOrUpdateAsync(dto); var result = await target.GetByIdAsync(id); result.Location.Should().Be(dto.Location); result.Status.Should().Be(dto.Status); dto.Status = UploadStatus.Uploaded; await target.AddOrUpdateAsync(dto); result = await target.GetByIdAsync(id); result.Status.Should().Be(UploadStatus.Uploaded); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <returns></returns> public AttachmentItem SaveOrUpdate(AttachmentItem item) { if (item == null) { return(null); } AttachmentItem attachmentItem = null; if (item.Id > 0) { bool isUpdate = FILE_REPOSITORY.UpdateExecute(item); if (isUpdate) { attachmentItem = item; } } else { int id = FILE_REPOSITORY.AddExecute(item); attachmentItem = FILE_REPOSITORY.GetItemById(id); } return(attachmentItem); }
public async Task TestDownloadFileAsync() { var md5 = Guid.NewGuid().ToString("N"); var formFile = Substitute.For <IFormFile>(); var appService = Substitute.For <IAttachmentAppService>(); IAttachmentAppService factory(string id) => appService; var storeService = Substitute.For <IAttachmentStoreService>(); var target = new AttachmentController(factory, storeService, Substitute.For <IMemoryCache>()); target.ControllerContext = CreateMockContext(); var result = await target.DownloadFileAsync(md5, null); result.Should().BeOfType <NotFoundResult>(); appService.GetByIdAsync(md5) .Returns(new AttachmentItem { Id = md5, Status = UploadStatus.Uploading, Location = null }); result = await target.DownloadFileAsync(md5, null); result.Should().BeOfType <NotFoundResult>(); appService.GetByIdAsync(md5) .Returns(new AttachmentItem { Id = md5, Status = UploadStatus.Uploaded, Location = null }); result = await target.DownloadFileAsync(md5, null); result.Should().BeOfType <NotFoundResult>(); var dto = new AttachmentItem { Id = md5, Status = UploadStatus.Uploaded, Location = "abc.ext" }; appService.GetByIdAsync(md5) .Returns(dto); storeService.FillMemoryStreamAsync(dto, Arg.Any <MemoryStream>()) .Returns(Task.CompletedTask); result = await target.DownloadFileAsync(md5, null); result.Should().BeOfType <FileStreamResult>(); await storeService.Received().FillMemoryStreamAsync(dto, Arg.Any <MemoryStream>()); }
public IHttpActionResult GetAttachments(PagedResults pagedResults) { var userId = BoardContext.Current.PageUserID; var pageSize = pagedResults.PageSize; var pageNumber = pagedResults.PageNumber; var attachments = this.GetRepository <Attachment>().GetPaged( a => a.UserID == userId, pageNumber, pageSize); var attachmentItems = new List <AttachmentItem>(); attachments.ForEach( attach => { var url = $"{BoardInfo.ForumClientFileRoot}resource.ashx?i={attach.ID}&b={BoardContext.Current.PageBoardID}&editor=true"; var description = $"{attach.FileName} ({attach.Bytes / 1024} kb)"; var iconImage = attach.FileName.IsImageName() ? $@"<img src=""{url}"" alt=""{description}"" title=""{description}"" />" : "<i class=\"far fa-file-alt attachment-icon\"></i>"; var attachment = new AttachmentItem { FileName = attach.FileName, OnClick = $"CKEDITOR.tools.insertAttachment('{attach.ID}')", IconImage = $@"{iconImage}<span>{description}</span>" }; if (attach.FileName.IsImageName()) { attachment.DataURL = url; } attachmentItems.Add(attachment); }); return(this.Ok( new GridDataSet { PageNumber = pageNumber, TotalRecords = attachments.Any() ? this.GetRepository <Attachment>().Count(a => a.UserID == userId) .ToType <int>() : 0, PageSize = pageSize, AttachmentList = attachmentItems })); }
public void GetInfo_ReturnValidValue_ReturnOk() { //arrange var resultModel = new AttachmentItem(); attachmentBusiness.Setup((x) => x.GetAttachmentItem(It.IsAny <AttachmentItemKeyModel>())).Returns(resultModel); attachmentController.Setup((x) => x.Ok(resultModel)); //act var result = attachmentController.Object.GetInfo(null); //assert attachmentController.Verify(x => x.Ok(resultModel)); }
private void addPhotoToAttachments([NotNull] Photo photo) { if (photo == null) { throw new ArgumentNullException(nameof(photo)); } logger.Debug($"Запрос на добавление фотографии к аттачментам {photo.Id}. Источник - {photo.GetLargest()}"); var attachment = new AttachmentItem(); attachment.SetAsPhotoAttachment(photo); Attachments.Add(attachment); attachment.RemoveRequested += onAttachmentRemoveRequest; }
/// <summary> /// /// </summary> /// <param name="itemId"></param> /// <param name="isIncludeChildren"></param> /// <returns></returns> public AttachmentItem GetAttachmentItem(int itemId, bool isIncludeChildren = false) { if (itemId <= 0) { return(null); } AttachmentItem item = FILE_REPOSITORY.GetItemById(itemId); if (isIncludeChildren) { item.Content = FILE_REPOSITORY.GetContentByItemId(itemId); } return(item); }
private AttachmentItem PackageImage(MemoryStream memoryStream, RegistrationModel model) { AttachmentItem item = new AttachmentItem(); MemoryStream m = new MemoryStream(); m.Seek(0, SeekOrigin.Begin); memoryStream.Seek(0, SeekOrigin.Begin); memoryStream.CopyTo(m); m.Seek(0, SeekOrigin.Begin); memoryStream.Seek(0, SeekOrigin.Begin); item.Content = m; item.MimeType = DriveApiService.GetMimeType(Path.GetExtension(model.FileName)); item.Name = model.FileName; return(item); }
private AttachmentItem PackageImage(MemoryStream memoryStream, string orgfilename) { AttachmentItem item = new AttachmentItem(); MemoryStream m = new MemoryStream(); m.Seek(0, SeekOrigin.Begin); memoryStream.Seek(0, SeekOrigin.Begin); memoryStream.CopyTo(m); m.Seek(0, SeekOrigin.Begin); memoryStream.Seek(0, SeekOrigin.Begin); item.Content = m; item.MimeType = DriveApiService.GetMimeType(Path.GetExtension(orgfilename)); item.Name = orgfilename; return(item); }
public async Task AddOrUpdateAsync(AttachmentItem item) { if (item == null) { throw new ArgumentNullException(nameof(item)); } if (string.IsNullOrEmpty(item.Id)) { throw new ArgumentNullException(nameof(item.Id)); } if (item.Size < 0) { throw new ArgumentNullException(nameof(item.Size)); } if (string.IsNullOrEmpty(item.Location)) { throw new ArgumentNullException(nameof(item.Location)); } var(dictList, dictIndexContextId) = await GetDicts(); using (var tx = StateManager.CreateTransaction()) { await dictList.SetAsync(tx, item.Id, item); HashSet <string> contextMapping; var contextMappingWrap = await dictIndexContextId.TryGetValueAsync(tx, item.ContextId); if (contextMappingWrap.HasValue) { contextMapping = contextMappingWrap.Value; } else { contextMapping = new HashSet <string>(); } if (contextMapping.Add(item.Id)) { await dictIndexContextId.SetAsync(tx, item.ContextId, contextMapping); } await tx.CommitAsync(); } }
// Create upload session private static UploadSession CreateUploadSession(Microsoft.Graph.Message message, string attachmentName, long attachmentSize) { var mailboxHelper = new MailboxHelper(_graphServiceClient); var attachmentItem = new AttachmentItem() { AttachmentType = AttachmentType.File, Name = attachmentName, Size = attachmentSize }; var uploadSession = mailboxHelper.CreateUploadSession(message, userId, attachmentItem).Result; Console.WriteLine("Upload URL: " + uploadSession.UploadUrl); return(uploadSession); }
public IHttpActionResult GetAlbumImages(PagedResults pagedResults) { var userId = BoardContext.Current.PageUserID; var pageSize = pagedResults.PageSize; var pageNumber = pagedResults.PageNumber; var albumImages = this.GetRepository <UserAlbumImage>().GetUserAlbumImagesPaged( userId, pageNumber, pageSize); var images = new List <AttachmentItem>(); albumImages.ForEach( image => { var url = $"{BoardInfo.ForumClientFileRoot}resource.ashx?imgprv={image.ID}"; var attachment = new AttachmentItem { FileName = image.FileName, OnClick = $"CKEDITOR.tools.insertAlbumImage('{image.ID}')", IconImage = $@"<img class=""popupitemIcon"" src=""{url}"" alt=""{(image.Caption.IsSet() ? image.Caption : image.FileName)}"" title=""{(image.Caption.IsSet() ? image.Caption : image.FileName)}"" class=""img-fluid img-thumbnail me-1"" />", DataURL = url }; images.Add(attachment); }); return(this.Ok( new GridDataSet { PageNumber = pageNumber, TotalRecords = albumImages.Any() ? this.GetRepository <UserAlbumImage>().GetUserAlbumImageCount(userId) : 0, PageSize = pageSize, AttachmentList = images })); }
public IHttpActionResult GetAlbumImages(PagedResults pagedResults) { var userId = pagedResults.UserId; var pageSize = pagedResults.PageSize; var pageNumber = pagedResults.PageNumber; var albumImages = this.GetRepository <UserAlbumImage>().GetUserAlbumImagesPaged( userId, pageNumber, pageSize); var images = new List <AttachmentItem>(); albumImages.ForEach( image => { var url = $"{YafForumInfo.ForumClientFileRoot}resource.ashx?imgprv={image.ID}"; var attachment = new AttachmentItem { FileName = image.FileName, OnClick = $"setStyle('AlbumImgId', '{image.ID}')", IconImage = $@"<img class=""popupitemIcon"" src=""{url}"" alt=""{(image.Caption.IsSet() ? image.Caption : image.FileName)}"" title=""{(image.Caption.IsSet() ? image.Caption : image.FileName)}"" width=""40"" height=""40"" />", DataURL = url }; images.Add(attachment); }); return(this.Ok( new GridDataSet { PageNumber = pageNumber, TotalRecords = albumImages.Any() ? this.GetRepository <UserAlbumImage>().GetUserAlbumImageCount(userId) : 0, PageSize = pageSize, AttachmentList = images })); }
private List <AttachmentItem> PackageImages(List <StateTaxRegistrationInternal> internalregs) { List <AttachmentItem> items = new List <AttachmentItem>(); foreach (StateTaxRegistrationInternal inreg in internalregs) { AttachmentItem aitem = new AttachmentItem(); MemoryStream m = new MemoryStream(); m.Seek(0, SeekOrigin.Begin); inreg.InternalMemStream.CopyTo(m); m.Seek(0, SeekOrigin.Begin); aitem.Content = m; aitem.MimeType = DriveApiService.GetMimeType(Path.GetExtension(inreg.FileName)); aitem.Name = inreg.FileName; items.Add(aitem); } return(items); }
/// <summary> /// 添加课件 /// </summary> public void AddCourseware() { Courseware courseware = new Courseware(); if (GetString("Name") != "") { courseware.Name = GetString("Name"); courseware.Teacher = GetString("Teacher"); courseware.Description = GetString("Description"); courseware.PubDate = DateTime.Now; //保存附件用代码 HttpFileCollection uploadFiles = this.HttpContext.Request.Files; // 设置上传目标文件夹 string savaPath = this.HttpContext.Request.MapPath(@"../Content/uploadfiles/CoursewareFiles/"); // 上传文件,并返回上传的文件名(由于附件表需要文件名称,所以SaveFiles函数返回了文件名 List<string> fileNames = FileUpload.SaveFiles(uploadFiles, savaPath); Attachment attachment = new Attachment(); //暂时将Type设置为0 attachment.TypeID = 0; CQGJ.AddToAttachment(attachment); CQGJ.SaveChanges(); foreach (var f in fileNames) { AttachmentItem item = new AttachmentItem(); item.AddTime = DateTime.Now; item.Attachment = attachment; item.FileName = f.Split(',').First(); //表示激活 item.Status = 1; CQGJ.AddToAttachmentItem(item); courseware.DownloadCount = attachment.AttachmentID; CQGJ.AddToCourseware(courseware); } CQGJ.SaveChanges(); RedirectToAction("coursewarelist", "stuff"); } RenderView("AddCourseware"); }
/// <summary> /// 构建AttachmentItem /// </summary> /// <param name="file">上传的文件</param> /// <param name="isDb">是否二进制存储</param> /// <param name="isFtp">是否采用FTP上传</param> /// <returns></returns> /// <remarks> /// 2014-01-14 由唐鑫增加FTP上传扩展 /// </remarks> private AttachmentItem BuildAttachmentItem(HttpPostedFileBase file, bool isDb, string dir = "", bool isFtp = true) { string fileName = Path.GetFileName(file.FileName); string fullName = GetFullFileName(fileName, dir); var extension = Path.GetExtension(fileName); string fileExt = string.Empty; if (extension != null) { fileExt = extension.Trim('.'); } string contentType = file.ContentType; int fileSize = file.ContentLength; #region 原有上传代码 保留不删除 下面进行重写 //EnsureDirectory(fullFilePath); ////保存附件 //file.SaveAs(fullFilePath); #endregion AttachmentItem item = new AttachmentItem { FileName = fileName, FileExt = fileExt, FilePath = fullName, FileSize = fileSize, ContentType = contentType, IsDB = isDb, }; byte[] content = ReadStream(file.InputStream); item.Content.Content = content; return(item); }
private async Task <bool> MessageCreateUploadSession(string messageId, string fileName, byte[] bytes) { try { using (Stream stream = new MemoryStream(bytes)) { var attachmentItem = new AttachmentItem { AttachmentType = AttachmentType.File, Name = fileName, Size = stream.Length }; var uploadSession = await graphClient.Me.Messages[messageId].Attachments .CreateUploadSession(attachmentItem) .Request() .PostAsync(); var maxChunkSize = 320 * 1024; var largeFileUploadTask = new LargeFileUploadTask <FileAttachment>(uploadSession, stream, maxChunkSize); var uploadResult = await largeFileUploadTask.UploadAsync(); if (uploadResult.UploadSucceeded) { return(true); } return(false); } } catch (Exception ex) { //Logger.ErrorFormat("CreateUploadSession - Upload failed ex: {0}", ex); return(false); } }
public JsonResult CreateEntry([FromBody] WarrantyClaimModel data) { string retval = "ok"; if (!ProductIdValidationController.ValidateProductId(data.SerialNumber)) { retval = "Invalid ProductId"; return(new JsonResult(new { result = retval })); } string details = System.IO.File.ReadAllText(@"D:\home\site\wwwroot\" + "private.p12"); using (MemoryStream receiptimage = ConvertFromBase64(data.ReceiptImageString)) using (MemoryStream serialnumberimage = ConvertFromBase64(data.SerialNumberImageString)) { //saving data in google drive. try { DriveApiService service = new DriveApiService(); string receiptfilename = "Receipt" + "-" + data.SerialNumber + "-" + data.LastName + "-" + data.EmailAddress + "-" + data.ReceiptFileName; string serialnumberfilename = "SerialNumber" + "-" + data.SerialNumber + "-" + data.LastName + "-" + data.EmailAddress + "-" + data.ReceiptFileName; string receipturllink = service.UploadWarrantyClaimDocument(receiptimage, receiptfilename); string serialnumlink = service.UploadWarrantyClaimDocument(serialnumberimage, serialnumberfilename); service.UpdateWarrantyClaimSheet(data.SerialNumber, data.PurchaseDate, data.FirstName, data.LastName, data.DateofBirth, data.EmailAddress, data.AddressLine1, data.AddressLine2, data.City, data.State, data.ZipCode, data.Country, data.ClaimReason, receipturllink, serialnumlink, DateTime.Now.ToShortDateString()); //"*****@*****.**" string ownerwarrantyemailbodystring = GetOwnerWarrantyEmailBodyString(data, receipturllink, serialnumlink); string customerwarrantyemailbodystring = GetCustomerWarrantyEmailBodyString(data, receipturllink, serialnumlink); AttachmentItem itemreceipt = PackageImage(receiptimage, receiptfilename); AttachmentItem itemserialnumber = PackageImage(serialnumberimage, serialnumberfilename); List <AttachmentItem> items = new List <AttachmentItem>(); items.Add(itemreceipt); items.Add(itemserialnumber); List <string> owneremails = new List <string>(); owneremails.Add("*****@*****.**"); List <string> receipientemails = new List <string>(); receipientemails.Add(data.EmailAddress); service.SendEmail(ownerwarrantyemailbodystring, "Warranty Claim Received", owneremails, items); service.SendEmail(customerwarrantyemailbodystring, "Warranty Claim Received", receipientemails, new List <AttachmentItem>()); } catch (Exception ex) { retval = "Error"; } } return(new JsonResult(new { result = retval })); }
/// <summary> /// /// </summary> /// <param name="info"></param> /// <param name="isIncludeChildren"></param> /// <param name="isMutiple"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public AttachmentInfo SaveOrUpdate(AttachmentInfo info, bool isIncludeChildren = false, bool isMutiple = false) { if (info == null) { return(null); } AttachmentInfo attachmentInfo; if (info.Id > 0) { bool isUpdated = FILE_REPOSITORY.UpdateExecute(info); IEnumerable <AttachmentItem> deleteItems = FILE_REPOSITORY.GetItemsByFileId(info.Id).AsEnumerable(); if (isUpdated) { if (!isMutiple && info.Items != null && info.Items.Any()) //单附件上传需要清空掉数据 { deleteItems.ForEach(item => FILE_REPOSITORY.DeleteExecute(item)); } else if (isMutiple) { if (info.Items != null && info.Items.Any()) { //如果是多附件上传 则删除新的集合中不存在的 保留原有的 添加最新上传的 deleteItems.ForEach(o => { if (info.Items.Count(n => n.Id == o.Id) == 0) { FILE_REPOSITORY.DeleteExecute(o); } }); } else { deleteItems.ForEach(o => FILE_REPOSITORY.DeleteExecute(o)); } } } attachmentInfo = info; } else { int id = FILE_REPOSITORY.AddExecute(info); attachmentInfo = FILE_REPOSITORY.GetById(id); attachmentInfo.Items = info.Items; } List <AttachmentItem> newItems = new List <AttachmentItem>(); if (!isIncludeChildren) { return(attachmentInfo); } if (attachmentInfo.Items == null || !attachmentInfo.Items.Any()) { return(attachmentInfo); } attachmentInfo.Items.ForEach(o => o.AttachmentInfoId = attachmentInfo.Id); foreach (var item in attachmentInfo.Items) { //如果是多附件上传 且当前的附件是旧附件 则不再保存 取出来实体即可 if (item.Id > 0) { AttachmentItem curItem = FILE_REPOSITORY.GetItemById(item.Id); if (curItem != null) { curItem.IsOld = true; newItems.Add(curItem); } continue; } AttachmentItem newItem = this.SaveOrUpdate(item); if (newItem == null) { throw new ArgumentNullException("newItem", "newItem must be not null,please fix error"); } newItem.Content = item.Content; newItem.Content.AttachmentItemId = newItem.Id; byte[] buffer = item.Content.Content; if (!item.IsDB) { newItem.Content.Content = null; } newItem.Content = this.SaveOrUpdate(newItem.Content); newItem.Content.Content = buffer; newItems.Add(newItem); } attachmentInfo.Items = newItems; return(attachmentInfo); }
/// <summary> /// 创建缩略图 /// </summary> private void CreateSmallImg(FileInfo fileInfo, int index) { var border = new AttachmentItem(); border._FileInfo = fileInfo; border._index = index; border.Height = 60; border.Width = 60; border.Margin = new Thickness(0, 0, 5, 5); border.BorderBrush = CommonUtils.CommonUtil.ToBrush("#4a4a4a"); border.BorderThickness = new Thickness(0.5); border.Background = CommonUtils.CommonUtil.ToBrush("#FFFFFF"); border.ContextMenu = new System.Windows.Controls.ContextMenu(); // 创建右键菜单 var deleteMenu = new AttachmentMenuItem(); deleteMenu.Header = "删除"; deleteMenu._FileInfo = fileInfo; deleteMenu._index = index; deleteMenu.Click += btnDel_Click; border.ContextMenu.Items.Add(deleteMenu); var saveMenu = new AttachmentMenuItem(); saveMenu.Header = "另存为"; saveMenu._FileInfo = fileInfo; saveMenu._index = index; saveMenu.Click += btSave_Click; border.ContextMenu.Items.Add(saveMenu); border.MouseMove += btnAdd_MouseMove; border.MouseLeave += btnAdd_MouseLeave; // 创建缩略图 var img = new Image(); if (".jpg".Equals(fileInfo.Extension.ToLower()) || ".gif".Equals(fileInfo.Extension.ToLower()) || ".png".Equals(fileInfo.Extension.ToLower()) || ".jpeg".Equals(fileInfo.Extension.ToLower())) { if (File.Exists(fileInfo.FullName)) { var uri = new Uri(fileInfo.FullName); img.Source = new BitmapImage(uri); border.MouseLeftButtonUp += btnShowImage_Click; } else { img.Height = 36; img.Width = 36; img.Source = ImageUtil.GetImageFromResource(typeof(ResourceImage).FullName, "image"); } } else { img.Height = 36; img.Width = 36; img.Source = ImageUtil.GetImageFromResource(typeof(ResourceImage).FullName, "file"); border.MouseLeftButtonUp += btnDownloadFile_Click; } border.Child = img; body.Children.Insert(body.Children.Count - 1, border); }
private async Task SendMessageAsync(Guid groupId, Guid senderId, string fileName, AttachmentItem attachment) { var fileMsg = new FileMessageVm { FileGuid = attachment.Id, FileName = fileName, FileSize = attachment.Size, }; var msg = ConversationMsg.Create(groupId, senderId, fileMsg.GetJsonContent(), ConversationMsgType.File); var conversationMsgAppService = _conversationMsgAppServiceFactory(msg.ConversationId); await conversationMsgAppService?.SendMessageAsync(msg); }
/// <summary> /// There are no comments for AttachmentItem in the schema. /// </summary> public void AddToAttachmentItem(AttachmentItem attachmentItem) { base.AddObject("AttachmentItem", attachmentItem); }
private static FeedDetailsExportModel Create(Person person, string schoolName, string sy, DateTime nowSchoolTime, DateTime?startRange, DateTime?endRange , AnnouncementDetails ann, ClassDetails classDetails, IList <DayType> dayTypes , IList <Staff> staffs, Standard standard, AnnouncementAssignedAttribute attribute, AttachmentItem attachmentItem, Person student, int studentOrder) { var res = new FeedDetailsExportModel(person, schoolName, sy, nowSchoolTime, startRange, endRange, ann, classDetails, dayTypes, staffs, standard, attribute, student, studentOrder); if (attachmentItem != null) { res.AnnouncementAttachmentId = attachmentItem.Id; res.AnnouncementAttachmentName = attachmentItem.Name; res.Document = attachmentItem.Document; res.AnnouncementAttachmentImage = attachmentItem.Image; res.AnnouncementAttachmentOrder = attachmentItem.Order; } return(res); }
public void DocSave() { int ot = Convert.ToInt32(HttpContext.Session["OrgType"]); Doc doc = new Doc(); if (GetString("DocTitle") != "" ) { doc.DocTitle = GetString("DocTitle"); doc.DocType = GetInt("DocType"); doc.TrainType = GetInt("TrainType"); doc.WordNo = GetString("WordNo"); doc.YearNo = GetString("YearNo"); doc.TeamNo = GetString("TeamNo"); //采用select doc.UserID =(int?) GetUserID(); doc.KeyWord = GetString("KeyWord"); doc.DocClass = GetInt("DocClass"); doc.UrgentLevel = GetInt("UrgentLevel"); doc.SecretLevel = GetInt("SecretLevel"); //来文单位 string su = ((b01)HttpContext.Session["Org"]).b0101.ToString(); doc.SourceUnit = su; //GetString("SourceUnit") //doc.SignMan = GetString("SignMan"); doc.SignMan = GetOrgID().ToString(); doc.ComeCause = GetString("ComeCause"); doc.Summary = GetString("Summary"); //不需那个控件了 doc.DocCaption = GetString("DocCaption"); doc.DocSource = GetString("DocSource"); doc.PubDate = DateTime.Now; //发布状态 //为1为草稿 if (GetInt("token") == 1) { doc.Status = (int?)DocStatus.Draft; } else { doc.Status = (int?)DocStatus.Normal; } doc.ViewCount = 0; //取出发送的公文对象 //b01 currentOrg = (b01)(HttpContext.Session["Org"]); //保存附件用代码 if (HttpContext.Request.Files != null) { HttpFileCollection uploadFiles = this.HttpContext.Request.Files; // 设置上传目标文件夹 string savaPath = this.HttpContext.Request.MapPath(@"../Content/uploadfiles/"); // 上传文件,并返回上传的文件名(由于附件表需要文件名称,所以SaveFiles函数返回了文件名 List<string> fileNames = FileUpload.SaveFiles(uploadFiles, savaPath); Attachment attachment = new Attachment(); //暂时将Type设置为0 attachment.TypeID = 0; CQGJ.AddToAttachment(attachment); doc.Attachment = attachment; foreach (var f in fileNames) { AttachmentItem item = new AttachmentItem(); item.AddTime = DateTime.Now; item.Attachment = attachment; item.FileName = f.Split(',').First(); //表示激活 item.Status = 1; CQGJ.AddToAttachmentItem(item); } } //如果单位类型为重庆市委组织部 if (ot == 1) { //存储发送对象 string ddd = GetString("DocDownUser"); string[] strList = GetString("DocDownUser").Split(','); foreach (var c in strList) { int iOrgID = ToOrgID(c); DocTreat doctreat = new DocTreat(); doctreat.Doc = doc; doctreat.Org = (from o in CQGJ.Org where o.OrgID == iOrgID select o).First(); if (GetInt("token") == 1) { doctreat.TreatType = (int?)DocProcessStatus.Draft; } else { doctreat.TreatType = (int?)DocProcessStatus.Published; } doctreat.DownCount = 0; doctreat.LastDownTime = DateTime.Now; doctreat.TreatContent = "暂时没有反馈"; CQGJ.AddToDocTreat(doctreat); } } else if (ot == 2 || ot == 3 || ot == 4) { b01[] orgList = cqgjPassport.GetOrglistByType(1); foreach (var c in orgList) { int iOrgID = ToOrgID(c.b0111); DocTreat docTreat = new DocTreat(); docTreat.Doc = doc; docTreat.Org = (from o in CQGJ.Org where o.OrgID == iOrgID select o).First(); if (GetInt("token") == 1) { docTreat.TreatType = (int?)DocProcessStatus.Draft; } else { docTreat.TreatType = (int?)DocProcessStatus.Published; } docTreat.DownCount = 0; docTreat.LastDownTime = DateTime.Now; docTreat.TreatContent = "暂时没有反馈"; CQGJ.AddToDocTreat(docTreat); } } CQGJ.AddToDoc(doc); CQGJ.SaveChanges(); //在跳转时提供viewData DocActionResultViewData viewData = new DocActionResultViewData(); viewData.ActionSuccess = true; viewData.Message = "提交公文成功"; viewData.javascriptMessage = "/doc/docadd/1"; RenderView("MessagePage", viewData); } //注意:组织部和下级单位跳转的页面不一样 if (ot == 1) { RedirectToAction("DocSendedIndex"); } else { RedirectToAction("DocSendedSubList/1/1/1"); } }
//上传 protected void btnAddAttachment_Click(object sender, EventArgs e) { if (ddlCategory.SelectedIndex == 0) { JsHelper.Alert(Page, string.Format("请先选择“分类”再上传!")); ddlCategory.Focus(); return; } if (FileUpload1.HasFile) { if (FileUpload1.FileName.Contains("#")) { JsHelper.Alert(Page, string.Format("文件名不能包含 # 特殊符号,请修改!")); return; } int fileUploadSize = 20; //fileUploadSize = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["FileUploadSize"]); if (FileUpload1.FileContent.Length / 1024.0 / 1024.0 > fileUploadSize) { JsHelper.Alert(Page, string.Format("附件大小不能超过{0}M", fileUploadSize)); return; } string dir = ddlCategory.SelectedItem.Text; if (!Directory.Exists(Server.MapPath("~/WorkFlowRule/Upload/" + dir + "/"))) { Directory.CreateDirectory(Server.MapPath("~/WorkFlowRule/Upload/" + dir + "/")); } string fileName = FileUpload1.FileName; string path = "/WorkFlowRule/Upload/" + dir + "/" + fileName; List <AttachmentItem> items = (List <AttachmentItem>)ViewState["Attachments"]; if (File.Exists(Server.MapPath("~" + path))) { AttachmentItem item = items.Where(p => p.FilePath + p.FileName == path).FirstOrDefault(); int index = items.IndexOf(item); if (index > -1) { items.RemoveAt(index); } } string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); FileUpload1.PostedFile.SaveAs(Server.MapPath(path)); AttachmentItem model = new AttachmentItem(); model.FileSize = FileUpload1.PostedFile.ContentLength; model.FileName = fileName; model.FilePath = "/WorkFlowRule/Upload/" + dir + "/"; model.Attachment_ID = Guid.NewGuid(); model.Created_On = DateTime.Now; items.Add(model); ViewState["Attachments"] = items; BindAttachment(); } else { JsHelper.Alert(Page, "请选择文件!"); } }
public IHttpActionResult GetNotifications(PagedResults pagedResults) { var userId = pagedResults.UserId; var pageSize = pagedResults.PageSize; var pageNumber = pagedResults.PageNumber; var activities = this.GetRepository <Activity>().GetPaged( a => a.UserID == userId && a.FromUserID.HasValue && a.Notification, pageNumber, pageSize); var attachmentItems = new List <AttachmentItem>(); activities.ForEach( activity => { var messageHolder = new PlaceHolder(); var iconLabel = new Label { CssClass = "fa-stack" }; var message = string.Empty; var icon = string.Empty; var topicLink = new HyperLink { NavigateUrl = BuildLink.GetLink( ForumPages.Posts, "m={0}#post{0}", activity.MessageID.Value), Text = $"<i class=\"fas fa-comment fa-fw mr-1\"></i>{this.GetRepository<Topic>().GetById(activity.TopicID.Value).TopicName}" }; var name = this.Get <IUserDisplayName>().GetName(activity.FromUserID.Value); if (activity.ActivityFlags.ReceivedThanks) { icon = "heart"; message = this.Get <ILocalization>().GetTextFormatted( "RECEIVED_THANKS_MSG", name, topicLink.RenderToString()); } if (activity.ActivityFlags.WasMentioned) { icon = "at"; message = this.Get <ILocalization>().GetTextFormatted( "WAS_MENTIONED_MSG", name, topicLink.RenderToString()); } if (activity.ActivityFlags.WasQuoted) { icon = "quote-left"; message = this.Get <ILocalization>().GetTextFormatted( "WAS_QUOTED_MSG", name, topicLink.RenderToString()); } var notify = activity.Notification ? "text-success" : "text-secondary"; iconLabel.Text = $@"<i class=""fas fa-circle fa-stack-2x {notify}""></i> <i class=""fas fa-{icon} fa-stack-1x fa-inverse""></i>"; messageHolder.Controls.Add(iconLabel); messageHolder.Controls.Add(new Literal { Text = message }); var attachment = new AttachmentItem { FileName = messageHolder.RenderToString() }; attachmentItems.Add(attachment); }); return(this.Ok( new GridDataSet { PageNumber = pageNumber, TotalRecords = activities.Any() ? this.GetRepository <Activity>().Count(a => a.UserID == userId && a.FromUserID.HasValue && a.Notification) .ToType <int>() : 0, PageSize = pageSize, AttachmentList = attachmentItems })); }
public JsonResult CreateEntry([FromBody] RegistrationModel data) { string retval = "ok"; if (!ProductIdValidationController.ValidateProductId(data.SerialNumber)) { retval = "Invalid ProductId"; return(new JsonResult(new { result = retval })); } string details = System.IO.File.ReadAllText(@"D:\home\site\wwwroot\" + "private.p12"); MemoryStream image = ConvertFromBase64(data.ImageString); //saving data in google drive. //try //{ DriveApiService service = new DriveApiService(); string filename1 = data.SerialNumber + "-" + data.LastName + "-" + data.EmailAddress + "-" + data.FileName; string urllink = service.UploadRegistrationDocument(image, filename1); service.UpdateRegistrationSheet(data.SerialNumber, data.PurchaseDate, data.FirstName, data.LastName, data.DateofBirth, data.EmailAddress, data.AddressLine1, data.AddressLine2, data.City, data.State, data.ZipCode, data.Country, urllink, DateTime.Now.ToShortDateString()); //"*****@*****.**" string ownerregistrationemailbodystring = GetOwnerRegistrationEmailBodyString(data, urllink); string customerregistrationemailbodystring = GetCustomerRegistrationEmailBodyString(data, urllink); AttachmentItem item = PackageImage(image, data); List <AttachmentItem> items = new List <AttachmentItem>(); items.Add(item); List <string> owneremails = new List <string>(); owneremails.Add("*****@*****.**"); List <string> receipientemails = new List <string>(); receipientemails.Add(data.EmailAddress); service.SendEmail(ownerregistrationemailbodystring, "Registration Received", owneremails, items); service.SendEmail(customerregistrationemailbodystring, "Registration Received", receipientemails, new List <AttachmentItem>()); //} // catch(Exception ex) // { // retval = "Error"; // } return(new JsonResult(new { result = retval }));; }
public JsonResult CreateEntry([FromBody] ACHPaymentUploadModel data) { string retval = "ok"; string details = System.IO.File.ReadAllText("private.p12"); string voidcheckfilename = "voidcheck" + "-" + System.DateTime.Now.Ticks + "-" + data.FEIN + "-" + data.CompanyName + "-" + data.VoidCheckFileName; try { using (MemoryStream voidcheck = ImageHelpers.ConvertFromBase64(data.VoidCheckImageString)) { DriveApiService service = new DriveApiService(); string voidcheckfileurl = service.UploadVoidCheckDocument(voidcheck, voidcheckfilename); service.UploadACHPaymentRequest(data.CompanyName, data.ContactName, data.BankName, data.AccountType, data.BankRoutingNumber, data.BankRoutingVerified, data.BankAccountNumber, data.EmailAddress, data.AddressLine1, data.AddressLine2, data.City, data.State, data.PrintedName, data.TitleName, data.FEIN, data.datesigned, data.ZipCode, voidcheckfileurl, data.CommentsOrMessage, data.Source); string ownerachemailbodystring = GetOwnerACHEmailBodyString(data, voidcheckfileurl); string customerachemailbodystring = GetCustomerACHEmailBodyString(data); AttachmentItem itemvoidcheck = PackageImage(ImageHelpers.ConvertFromBase64(data.VoidCheckImageString), data.VoidCheckFileName); List <AttachmentItem> items = new List <AttachmentItem>(); items.Add(itemvoidcheck); List <string> owneremails = new List <string>(); owneremails.Add("*****@*****.**"); List <string> receipientemails = new List <string>(); receipientemails.Add(data.EmailAddress); service.SendEmail(ownerachemailbodystring, "ACH Request Received", owneremails, items); service.SendEmail(customerachemailbodystring, "ACH Request Received", receipientemails, new List <AttachmentItem>()); } } catch (Exception ex) { retval = "Error"; } return(new JsonResult(new { result = retval })); }
/// <summary> /// 发起一个新的BBS话题 /// </summary> public void CreateTopicItem() { BBSItem BBSItem = new BBSItem(); CQGJ.passport.User passportUser = (CQGJ.passport.User)HttpContext.Session["userobject"]; string subject = GetString("subject"); string content = GetString("BBSItemContent"); // 发起帖parentId为-1 int parentId = -1; //status为备用字段,暂时设置为0 int status = 0; //TypeID暂时设置为0 int typeId = 0; // 取得登陆用户ID,userId int userId = ToUserID(passportUser.UserID);; // 取得用户姓名 string userName = passportUser.Username; int bbsId = GetInt("bbsid"); // 取得上传附件组的ID, 1表示没有附件 int attachmentId = 1; // 保存文件的路径 string strAbsolutePath = this.HttpContext.Request.MapPath(@"../Content/UploadFiles/BBSFiles/"); // 上传附件, 并获取附件组的ID try { // 获取上传附件组 HttpFileCollection uploadFiles = this.HttpContext.Request.Files; // 创建一个附件组 Attachment at = new Attachment(); if (uploadFiles.Count > 1) { // ?好像数据库中存在数据的情况下才可以使用orderby语句, 否则会报错 // 所以需要对Attachment数据库初使化 attachmentId = (from attachment in CQGJ.Attachment orderby attachment.AttachmentID descending select attachment.AttachmentID).First() + 1; at.AttachmentID = attachmentId; // 在数据库中加一个附件组信息 CQGJ.AddToAttachment(at); } at.TypeID = 0; // 暂时设为0 // 获取新建的附件组的ID //attachmentId = at.AttachmentID; for (int j = 1; j < uploadFiles.Count; j++) { // 创建一个附件 AttachmentItem ai = new AttachmentItem(); ai.AddTime = DateTime.Now; ai.Status = 0; // 暂时设置为0 ai.UserID = userId; ai.TotalSize = uploadFiles[j].ContentLength; ai.Attachment = at; // 上传的文件是用原名呢,还是生成一个名字呢? //ai.FileName = uploadFiles[j].FileName; ai.FileName = FileUpload.SaveFile(uploadFiles[j], strAbsolutePath); // 在数据库中加一个附件信息 CQGJ.AddToAttachmentItem(ai); CQGJ.SaveChanges(); } } catch (HttpException) { // 网络异常 } catch (InvalidOperationException) { Response.Write("错误操作!"); } CreateItem(subject, content, parentId, status, typeId, userId, userName, bbsId, attachmentId); // count 为数据库中发帖总数 int count = (from bi in CQGJ.BBSItem where bi.ParentID == -1 && bi.BBS.BBSID == bbsId select bi).Count(); // page 为当前发帖的页码 int page = count / 10; if (count % 10 != 0) { page = count / 10 + 1; } // 返回BBS列表页面 RedirectToAction("ListBBSItemsByPage/" + bbsId + "/" + page); }
// Create upload session public async Task <UploadSession> CreateUploadSession(Message message, string userId, AttachmentItem attachmentItem) { return(await _graphClient .Users[userId] .Messages[message.Id] .Attachments .CreateUploadSession(attachmentItem) .Request() .PostAsync()); }
public void DocEditSave() { int DocID = GetInt("DocID"); if (DocID != 0) { Doc doc = (from c in CQGJ.Doc where c.DocID == DocID select c).First(); doc.DocTitle = GetString("DocTitle"); doc.DocType = GetInt("DocType"); doc.TrainType = GetInt("TrainType"); doc.WordNo = GetString("WordNo"); doc.YearNo = GetString("YearNo"); doc.TeamNo = GetString("TeamNo"); //采用select doc.UserID = (int?)GetUserID(); doc.KeyWord = GetString("KeyWord"); doc.DocClass = GetInt("DocClass"); doc.UrgentLevel = GetInt("UrgentLevel"); doc.SecretLevel = GetInt("SecretLevel"); //来文单位 string su = ((b01)HttpContext.Session["Org"]).b0101.ToString(); doc.SourceUnit = su; //GetString("SourceUnit") //doc.SignMan = GetString("SignMan"); doc.SignMan = GetOrgID().ToString(); doc.ComeCause = GetString("ComeCause"); doc.Summary = GetString("Summary"); //不需那个控件了 doc.DocCaption = GetString("DocCaption"); doc.DocSource = GetString("DocSource"); doc.PubDate = DateTime.Now; //发布状态 doc.Status = (int?)DocProcessStatus.Published; int attachementID = Convert.ToInt32(doc.AttachmentReference.EntityKey.EntityKeyValues[0].Value); if (HttpContext.Request.Files != null) { HttpFileCollection uploadFiles = this.HttpContext.Request.Files; // 设置上传目标文件夹 string savaPath = this.HttpContext.Request.MapPath(@"../Content/uploadfiles/"); // 上传文件,并st返回上传的文件名(由于附件表需要文件名称,所以SaveFiles函数返回了文件名 List<string> fileNames = FileUpload.SaveFiles(uploadFiles, savaPath); Attachment attachment = (from a in CQGJ.Attachment where a.AttachmentID == attachementID select a).First(); foreach (var f in fileNames) { AttachmentItem item = new AttachmentItem(); item.AddTime = DateTime.Now; item.Attachment = attachment; item.FileName = f.Split(',').First(); //表示激活 item.Status = 1; CQGJ.AddToAttachmentItem(item); } } IEnumerable<DocTreat> lsDoctreat = (from c in CQGJ.Doc from dt in c.DocTreat where c.DocID == DocID select dt); foreach (var c in lsDoctreat) { c.TreatType = (int?)DocProcessStatus.Published; } CQGJ.SaveChanges(); RedirectToAction("DocEdit/" + DocID); } }
public async Task FillMemoryStreamAsync(AttachmentItem dto, MemoryStream ms) { await _client.GetObjectAsync(_minioOption.BucketName, dto.Location, stream => stream.CopyTo(ms)); }
//TODO FIX TestDownloadThumbnailsAsync //[TestMethod] public async Task TestDownloadThumbnailsAsync() { var md5 = Guid.NewGuid().ToString("N"); var formFile = Substitute.For <IFormFile>(); var appService = Substitute.For <IAttachmentAppService>(); IAttachmentAppService factory(string id) => appService; var cacheDict = new Dictionary <string, byte[]>(); var storeService = Substitute.For <IAttachmentStoreService>(); var cache = Substitute.For <IMemoryCache>(); cache.Set(Arg.Any <string>(), Arg.Any <byte[]>(), Arg.Any <TimeSpan>()) .Returns(x => { return(x[1] as byte[]); }); cache.TryGetValue(Arg.Any <string>(), out Arg.Any <byte[]>()) .Returns(x => { if (cacheDict.ContainsKey(x[0].ToString())) { x[1] = cacheDict[x[0].ToString()]; return(true); } return(false); }); var target = new AttachmentController(factory, storeService, cache); target.ControllerContext = CreateMockContext(); var result = await target.DownloadThumbnailsAsync(md5, null); result.Should().BeOfType <NotFoundResult>(); appService.GetByIdAsync(md5) .Returns(new AttachmentItem { Id = md5, Status = UploadStatus.Uploading, Location = null }); result = await target.DownloadFileAsync(md5, null); result.Should().BeOfType <NotFoundResult>(); appService.GetByIdAsync(md5) .Returns(new AttachmentItem { Id = md5, Status = UploadStatus.Uploaded, Location = null }); result = await target.DownloadFileAsync(md5, null); result.Should().BeOfType <NotFoundResult>(); var dto = new AttachmentItem { Id = md5, Status = UploadStatus.Uploaded, Location = "abc.jpg" }; appService.GetByIdAsync(md5) .Returns(dto); storeService.FillMemoryStreamAsync(dto, Arg.Any <MemoryStream>()) .Returns(Task.CompletedTask); result = await target.DownloadFileAsync(md5, null); result.Should().BeOfType <FileStreamResult>(); await storeService.Received().FillMemoryStreamAsync(dto, Arg.Any <MemoryStream>()); }
/// <summary> /// Create a new AttachmentItem object. /// </summary> /// <param name="itemID">Initial value of ItemID.</param> public static AttachmentItem CreateAttachmentItem(int itemID) { AttachmentItem attachmentItem = new AttachmentItem(); attachmentItem.ItemID = itemID; return attachmentItem; }