public async Task <IActionResult> Upload(int issueTrackerId, IFormFile file) //IFormFile file, IFormCollection files
        {
            var issueTracker = await context.IssueTrackers
                               .Include(i => i.IssueType)
                               .Include(d => d.Department)
                               .Include(r => r.Responses)
                               .Include(f => f.IssueImages)
                               .SingleOrDefaultAsync(it => it.Id == issueTrackerId);

            if (issueTracker == null)
            {
                return(NotFound());
            }

            var uploadFolderPath = Path.Combine(host.WebRootPath, "uploads");

            if (Directory.Exists(uploadFolderPath))
            {
                Directory.CreateDirectory(uploadFolderPath);
            }

            var fileName = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName);
            var filePath = Path.Combine(uploadFolderPath, fileName);

            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                await file.CopyToAsync(stream);
            }

            //Todo: Creating a thumnail for the file
            var photo = new IssueImage {
                FileName = fileName
            };

            issueTracker.IssueImages.Add(photo);
            await context.SaveChangesAsync();

            return(Ok(mapper.Map <IssueImage, IssueImageResource>(photo)));
        }
예제 #2
0
        private void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            User  = JsonConvert.DeserializeObject <Model.User>(Intent.GetStringExtra("UserObject"));
            Issue = JsonConvert.DeserializeObject <Model.Issue>(Intent.GetStringExtra("IssueObject"));

            //converting base64 userImage and issueImage to bitmap
            Byte[] userImgArray = Convert.FromBase64String(User.profile_pic);
            userImgBitmap = BitmapFactory.DecodeByteArray(userImgArray, 0, userImgArray.Length);

            Byte[] issueImgArray = Convert.FromBase64String(Issue.IssueImage);
            issueImgBitmap = BitmapFactory.DecodeByteArray(issueImgArray, 0, issueImgArray.Length);

            //check if this can be put into background worker block without cross thread exception!!
            IssueImage.SetImageBitmap(issueImgBitmap);
            UserImage.SetImageBitmap(userImgBitmap);
            char[] arr0 = User.name.ToCharArray();
            UserName.SetText(arr0, 0, arr0.Length);
            char[] arr1 = Issue.issueStatement.ToCharArray();
            IssueStatement.SetText(arr1, 0, arr1.Length);


            //check code ends here
        }
예제 #3
0
        public void Create(IssueImageModel model)
        {
            var issue = _context.Issues.FirstOrDefault(x => x.Id == model.IssueId);

            if (issue == null)
            {
                throw new IssueNotFoundException();
            }

            // TODO: Validate user rights


            var issueImage = new IssueImage
            {
                IssueId  = model.IssueId,
                FileName = model.Image.FileName,
                Created  = DateTime.UtcNow
            };

            issue.Images.Add(issueImage);
            _context.SaveChanges();

            model.Id = issueImage.Id;
        }