public async Task TravelAttachmentRepository_DeleteTravelAttachment_Deleted_NotFail_Test() { var context = new MyCompanyContext(); ITravelAttachmentRepository target = new TravelAttachmentRepository(new MyCompanyContext()); var travelRequestId = context.TravelRequests.FirstOrDefault().TravelRequestId; System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding(); var newTravelAttachment = new TravelAttachment() { Name = "Boarding Pass", FileName = "BoardingPass.pdf", Content = encoder.GetBytes("sample"), TravelRequestId = travelRequestId, }; int travelAttachmentId = await target.AddAsync(newTravelAttachment); int expected = context.TravelAttachments.Count() - 1; await target.DeleteAsync(travelAttachmentId); int actual = context.TravelAttachments.Count(); Assert.AreEqual(expected, actual); }
/// <summary> /// <see cref="MyCompany.Travel.Data.Repositories.ITravelAttachmentRepository"/> /// </summary> /// <param name="travelAttachment"><see cref="MyCompany.Travel.Data.Repositories.ITravelAttachmentRepository"/></param> public async Task UpdateAsync(TravelAttachment travelAttachment) { _context.Entry <TravelAttachment>(travelAttachment) .State = EntityState.Modified; await _context.SaveChangesAsync(); }
/// <summary> /// <see cref="MyCompany.Travel.Data.Repositories.ITravelAttachmentRepository"/> /// </summary> /// <param name="travelAttachment"><see cref="MyCompany.Travel.Data.Repositories.ITravelAttachmentRepository"/></param> /// <returns><see cref="MyCompany.Travel.Data.Repositories.ITravelAttachmentRepository"/></returns> public async Task <int> AddAsync(TravelAttachment travelAttachment) { _context.TravelAttachments.Add(travelAttachment); await _context.SaveChangesAsync(); return(travelAttachment.TravelAttachmentId); }
public async Task Update(TravelAttachment travelAttachment) { if (travelAttachment == null) { throw new ArgumentNullException("travelAttachment"); } await _travelAttachmentRepository.UpdateAsync(travelAttachment); }
public async Task <int> Add(TravelAttachment travelAttachment) { if (travelAttachment == null) { throw new ArgumentNullException("travelAttachment"); } return(await _travelAttachmentRepository.AddAsync(travelAttachment)); }
private void RemoveAttachmentCommandExecute(TravelAttachment attachment) { if (attachment.TravelAttachmentId > 0) { removedAttachments.Add(attachment.TravelAttachmentId); } AttachmentsList.Remove(attachment); RaisePropertyChanged(() => AttachmentsList); }
public async Task TravelAttachmentService_Get_Test() { var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken); var context = new Data.MyCompanyContext(); var travelAttachmentId = context.TravelAttachments.FirstOrDefault().TravelAttachmentId; TravelAttachment travelAttachment = await client.TravelAttachmentService.Get(travelAttachmentId); Assert.IsNotNull(travelAttachment); Assert.AreEqual(travelAttachmentId, travelAttachment.TravelAttachmentId); }
public async Task <HttpResponseMessage> DownloadFile(int travelAttachmentId) { TravelAttachment attachment = await _travelAttachmentRepository.GetAsync(travelAttachmentId); if (attachment == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new ByteArrayContent(attachment.Content); result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); result.Content.Headers.ContentDisposition.FileName = attachment.FileName; return(result); }
private async void DownloadAttachmentCommandExecute(TravelAttachment attachment) { Messenger.Default.Send(new LoadingMessage(true)); try { TravelAttachment travelAttachment = await myCompanyClient.TravelAttachmentService.Get(attachment.TravelAttachmentId); string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string filePath = Path.Combine(folderPath, travelAttachment.FileName); FileStream fileStream = File.Create(filePath); fileStream.Write(travelAttachment.Content, 0, travelAttachment.Content.Length); fileStream.Flush(); fileStream.Close(); Messenger.Default.Send(new LoadingMessage(false)); System.Diagnostics.Process.Start(filePath); } catch (Exception) { Messenger.Default.Send(new LoadingMessage(false)); CustomDialogMessage message = new CustomDialogMessage(() => { }, StringResources.UnexpectedError, Visibility.Collapsed); Messenger.Default.Send <CustomDialogMessage>(message); } }
public async Task TravelAttachmentsController_Update_Test() { bool called = false; var travelAttachmentsRepository = new Data.Repositories.Fakes.StubITravelAttachmentRepository(); var updateTravelAttachments = new TravelAttachment() { TravelRequestId = 1, }; travelAttachmentsRepository.UpdateAsyncTravelAttachment = (travelAttachment) => { Assert.IsTrue(updateTravelAttachments.TravelRequestId == travelAttachment.TravelRequestId); called = true; return(Task.FromResult(string.Empty)); }; var target = new TravelAttachmentsController(travelAttachmentsRepository); await target.Update(updateTravelAttachments); Assert.IsTrue(called); }
public async Task TravelAttachmentsController_Add_Test() { bool called = false; var travelAttachmentsRepository = new Data.Repositories.Fakes.StubITravelAttachmentRepository(); var newTravelAttachments = new TravelAttachment() { TravelRequestId = 1, }; travelAttachmentsRepository.AddAsyncTravelAttachment = (travelAttachment) => { Assert.IsTrue(newTravelAttachments.TravelRequestId == travelAttachment.TravelRequestId); called = true; return(Task.FromResult(10)); }; var target = new TravelAttachmentsController(travelAttachmentsRepository); var idAdded = await target.Add(newTravelAttachments); Assert.IsTrue(called); }
public async Task TravelAttachmentService_AddTravelAttachment_Added_NotFail_Test() { var client = new MyCompanyClient(SecurityHelper.UrlBase, SecurityHelper.AccessToken); var context = new Data.MyCompanyContext(); int expected = context.TravelAttachments.Count() + 1; var travelRequestId = context.TravelRequests.FirstOrDefault().TravelRequestId; System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding(); var travelAttachment = new TravelAttachment() { Name = "Boarding Pass", FileName = "BoardingPass.pdf", Content = encoder.GetBytes("sample"), AttachmentType = AttachmentType.BoardingPass, TravelRequestId = travelRequestId, }; int travelAttachmentId = await client.TravelAttachmentService.Add(travelAttachment); int actual = context.TravelAttachments.Count(); Assert.AreEqual(expected, actual); travelAttachment.TravelAttachmentId = travelAttachmentId; travelAttachment.AttachmentType = AttachmentType.Other; await client.TravelAttachmentService.Update(travelAttachment); var actualUpdated = context.TravelAttachments.Where(t => t.TravelAttachmentId == travelAttachmentId).FirstOrDefault(); await client.TravelAttachmentService.Delete(travelAttachmentId); actual = context.TravelAttachments.Count(); Assert.AreEqual(expected - 1, actual); }
public async Task <int> UploadFile() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } int travelRequestId = 0; string fileFriendlyName = string.Empty; int travelAttachmentId = 0; string root = HttpContext.Current.Server.MapPath("~/App_Data"); var directory = new DirectoryInfo(root); if (!directory.Exists) { directory.Create(); } var provider = new MultipartFormDataStreamProvider(root); await Request.Content.ReadAsMultipartAsync(provider); var serializer = new Newtonsoft.Json.JsonSerializer(); foreach (var key in provider.FormData.AllKeys) { var val = provider.FormData.GetValues(key)[0]; if (key == "travelRequestId") { travelRequestId = (int)serializer.Deserialize(new StringReader(val), typeof(int)); } if (key == "fileFriendlyName") { fileFriendlyName = val; } } if (travelRequestId <= 0) { throw new ArgumentNullException("travelRequestId"); } if (provider.FileData != null && provider.FileData.Count > 0) { byte[] file = File.ReadAllBytes(provider.FileData[0].LocalFileName); TravelAttachment attachment = new TravelAttachment() { Name = fileFriendlyName, FileName = Path.GetFileName(UnquoteFileName(provider.FileData[0].Headers.ContentDisposition.FileName)), TravelRequestId = travelRequestId, Content = file }; travelAttachmentId = await Add(attachment); File.Delete(provider.FileData[0].LocalFileName); } return(travelAttachmentId); }