public async Task <IFileResponse> GetMeetupImageAsync(int MeetupId) { try { var meetupData = await _appDbContext.Meetups.FirstOrDefaultAsync(e => e.Id == MeetupId); var file = await _appDbContext.Files.FirstOrDefaultAsync(k => k.Id == meetupData.MeetupPictureID); if (file == null) { return(new FileResponse(ClientMessageConstant.FileNotFound, HttpStatusCode.NotFound)); } var fileDb = await _fileDbContext.FileDB.FirstOrDefaultAsync(k => k.Id == file.IdGuid); var model = new FileView() { Id = file.Id, IdGuid = file.IdGuid, FileBytes = fileDb?.Bytes, Name = file.Name, CorrelationId = file.CorrelationId, MimeType = file.MimeType, SizeMb = file.SizeMb, ExtraParams = file.ExtraParams }; return(new FileResponse(model)); } catch (Exception e) { return(new FileResponse(e)); } }
public async Task <IFileResponse> DownloadVideoAsync(int profileId) { try { var profile = await _appDbContext.Profiles.FirstOrDefaultAsync(k => k.Id == profileId); int.TryParse(profile.ExpressYourselfUrl, out var fileId); var file = await _appDbContext.Files.FirstOrDefaultAsync(k => k.Id == fileId).ConfigureAwait(false); if (file == null) { return(new FileResponse(ClientMessageConstant.FileNotFound, HttpStatusCode.NotFound)); } var fileDb = await _fileDbContext.FileDB.FirstOrDefaultAsync(k => k.Id == file.IdGuid).ConfigureAwait(false); var model = new FileView() { Id = file.Id, IdGuid = file.IdGuid, FileBytes = fileDb.Bytes, Name = file.Name, CorrelationId = file.CorrelationId, MimeType = file.MimeType, SizeMb = file.SizeMb, ExtraParams = file.ExtraParams }; return(new FileResponse(model)); } catch (Exception e) { return(new FileResponse(e)); } }
public async Task <IFileResponse> GetFileAsync(string fileId) { try { logger.Info($"{ GetType().Name} { ExtensionUtility.GetCurrentMethod() } FileID: {fileId} UserIPAddress: { _userIPAddress.GetUserIP().Result }"); var fileDb = await _fileDbContext.FileDB.FirstOrDefaultAsync(k => k.Id == new Guid(fileId)); if (fileDb == null) { return(new FileResponse(ClientMessageConstant.FileNotFound, HttpStatusCode.NotFound)); } var file = await _appDbContext.Files.FirstOrDefaultAsync(k => k.IdGuid == fileDb.Id); var model = new FileView() { Id = file.Id, IdGuid = file.IdGuid, FileBytes = fileDb.Bytes, Name = file.Name, CorrelationId = file.CorrelationId, MimeType = file.MimeType, SizeMb = file.SizeMb, ExtraParams = file.ExtraParams }; return(new FileResponse(model)); } catch (Exception e) { logger.Error(e); return(new FileResponse(e)); } }
public async Task <IFileResponse> GetAssessmentImageAsync(int assessmentId) { try { var assessment = await _appDbContext.AssessmentTools.FirstOrDefaultAsync(x => x.Id == assessmentId); var file = await _appDbContext.Files.FirstOrDefaultAsync(k => k.IdGuid == assessment.ImageId); if (file == null) { return(new FileResponse(ClientMessageConstant.FileNotFound, HttpStatusCode.NotFound)); } var fileDb = await _fileDbContext.FileDB.FirstOrDefaultAsync(k => k.Id == file.IdGuid); var model = new FileView() { Id = file.Id, IdGuid = file.IdGuid, FileBytes = fileDb.Bytes, Name = file.Name, CorrelationId = file.CorrelationId, MimeType = file.MimeType, SizeMb = file.SizeMb, ExtraParams = file.ExtraParams }; return(new FileResponse(model)); } catch (Exception e) { return(new FileResponse(e)); } }
public async Task <IFileResponse> GetPostFileAsync(string fileId) { try { var bucket = new GridFSBucket(_mongoDbContext.Database); var file = new FileView(); using (var stream = await bucket.OpenDownloadStreamAsync(new ObjectId(fileId))) { if (stream == null) { return(new FileResponse(ClientMessageConstant.FileNotFound, HttpStatusCode.NotFound)); } file.FileBytes = await bucket.DownloadAsBytesAsync(new ObjectId(fileId)); file.Name = stream.FileInfo.Filename; file.MimeType = stream.FileInfo.ContentType; } return(new FileResponse(file)); } catch (Exception e) { return(new FileResponse(e)); } }
private static void GetResponse(int id, DeleteDocumentView model, ref FileView response) { response.DocumentType = model.DocumentType; response.Id = id; response.IsSuccess = true; response.ResponseMessage = "Success"; }
private static FileView GetResponse(int id, DocumentType type, IFormFile file) { var response = new FileView { DocumentType = type, Name = file.FileName, Id = id, IsSuccess = true, ResponseMessage = "Success" }; return(response); }
public async Task <IFileResponse> GetMessagingImageFileAsync(string roomId) { try { var file = new FileView(); var room = await _mongoDbContext.Rooms.Find(k => k.ID == new ObjectId(roomId)).FirstOrDefaultAsync(); if (room == null) { return(new FileResponse(ClientMessageConstant.PostNotFound, HttpStatusCode.NotFound)); } //if (room.Messages. == (int)PostType.Image) //{ var fileId = room.Messages.FirstOrDefault().ImagesIDs.ToString(); if (fileId == null) { return(new FileResponse(file)); } var bucket = new GridFSBucket(_mongoDbContext.Database); using (var stream = await bucket.OpenDownloadStreamAsync(new ObjectId(fileId))) { if (stream == null) { return(new FileResponse(ClientMessageConstant.FileNotFound, HttpStatusCode.NotFound)); } file.FileBytes = await bucket.DownloadAsBytesAsync(new ObjectId(fileId)); file.Name = stream.FileInfo.Filename; file.MimeType = stream.FileInfo.ContentType; } //} //else //{ // return new FileResponse(ClientMessageConstant.ImagePostNotExist, HttpStatusCode.NotFound); //} return(new FileResponse(file)); } catch (Exception e) { return(new FileResponse(e)); } }
public async Task <IFileResponse> GetPostImageAsync(string postId) { try { var file = new FileView(); var post = await _mongoDbContext.Posts.Find(k => k.ID == new ObjectId(postId)).FirstOrDefaultAsync(); if (post == null) { return(new FileResponse(ClientMessageConstant.PostNotFound, HttpStatusCode.NotFound)); } if (post.TypeID == (int)PostType.Image) { var fileId = post.ImageIDs.FirstOrDefault(); if (fileId == null) { return(new FileResponse(file)); } var bucket = new GridFSBucket(_mongoDbContext.Database); using (var stream = await bucket.OpenDownloadStreamAsync(new ObjectId(fileId))) { if (stream == null) { return(new FileResponse(ClientMessageConstant.FileNotFound, HttpStatusCode.NotFound)); } file.FileBytes = await bucket.DownloadAsBytesAsync(new ObjectId(fileId)); file.Name = stream.FileInfo.Filename; file.MimeType = stream.FileInfo.ContentType; } } else { return(new FileResponse(ClientMessageConstant.ImagePostNotExist, HttpStatusCode.NotFound)); } return(new FileResponse(file)); } catch (Exception e) { return(new FileResponse(e)); } }
public async Task <IFileResponse> DeleteDocumentsAsync(List <DeleteDocumentView> models) { var allResponse = new List <FileView>(); try { var profileId = models.FirstOrDefault()?.UserId ?? 0; var profile = await _appDbContext.Profiles.FirstOrDefaultAsync(k => k.Id == profileId); if (profile == null) { return(new FileResponse(ClientMessageConstant.ProfileNotExist, HttpStatusCode.NotFound)); } foreach (var model in models) { var response = new FileView(); try { var file = await _appDbContext.Files.FirstOrDefaultAsync(k => k.Id == model.Id); if (file == null) { GetResponse(model.Id, model, ref response); continue; } var fileDb = await _fileDbContext.FileDB.FirstOrDefaultAsync(k => k.Id == file.IdGuid); if (fileDb != null) { _fileDbContext.FileDB.Remove(fileDb); await _fileDbContext.SaveChangesAsync(); } _appDbContext.Files.Remove(file); await _appDbContext.SaveChangesAsync(); switch (model.DocumentType) { case DocumentType.Passport: profile.PassportFileId = null; GetResponse(model.Id, model, ref response); break; case DocumentType.Education: profile.LastEducationCertificateFileId = null; GetResponse(model.Id, model, ref response); break; case DocumentType.CV: profile.CvfileId = null; GetResponse(model.Id, model, ref response); break; case DocumentType.Emirates: profile.UaeidfileId = null; GetResponse(model.Id, model, ref response); break; case DocumentType.FamilyBook: profile.FamilyBookFileId = null; GetResponse(model.Id, model, ref response); break; } } catch (Exception e) { response.DocumentType = model.DocumentType; response.IsSuccess = false; response.ResponseMessage = ClientMessageConstant.WeAreUnableToProcessYourRequest; } allResponse.Add(response); } await _appDbContext.SaveChangesAsync(); return(new FileResponse(allResponse)); } catch (Exception e) { return(new FileResponse(e)); } }