Beispiel #1
0
        public ActionResult Edit(int id)
        {
            var model = new ArtefactsCreateViewModel()
            {
                Artefact = _context.Artefacts.FirstOrDefault(x => x.Id == id),
            };

            return(View(model));
        }
Beispiel #2
0
        public ActionResult Create()
        {
            var model = new ArtefactsCreateViewModel()
            {
                Artefact = new Artefact(),
                Donors   = _context.Donors
                           .Include(x => x.User)
                           .Select(x => new SelectListItem()
                {
                    Text  = x.User.Email,
                    Value = x.Id.ToString()
                }).ToList()
            };

            return(View(model));
        }
Beispiel #3
0
        public async Task <ActionResult> Edit(ArtefactsCreateViewModel model)
        {
            S3Helper s3 = new S3Helper();

            s3.DeleteFile(model.Artefact.Filename);

            try
            {
                if (model.Artefact.AccessionNumber != null)
                {
                    // set date
                    model.Artefact.DateAccessioned = DateTime.Now;

                    // if completed correctly
                    if (model.Artefact.AdlibReference != null)
                    {
                        model.Artefact.IsCompleted = true;
                    }
                }

                if (model.Image != null)
                {
                    // change image in storage
                    string fileName = "artefact-" + DateTime.Now.ToString("yyyyMMddTHH:mm:ssZ");
                    model.Artefact.Filename = fileName;
                    var imageUrl = s3.GetFilePath(fileName);
                    model.Artefact.ImageUrl = imageUrl;
                    s3.UploadFile(model.Image, fileName);
                }

                // update last edited by
                var user = await _userManager.GetUserAsync(this.User);

                model.Artefact.UserLastEditedById = user.Id;

                _context.Artefacts.Update(model.Artefact);
                _context.SaveChanges();

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View(model));
            }
        }
Beispiel #4
0
        public async Task <ActionResult> Create(ArtefactsCreateViewModel model)
        {
            S3Helper S3   = new S3Helper();
            var      file = model.Image;

            var    rawFileName = model.Image.FileName;
            int    position    = rawFileName.LastIndexOf(".");
            String fileExt     = rawFileName.Substring(position, rawFileName.Length - position);


            string fileName = "artefact-" + DateTime.Now.ToString("yyyyMMddTHH:mm:ssZ") + fileExt;

            string imageUrl = S3.GetFilePath(fileName);

            try
            {
                var user = await _userManager.GetUserAsync(this.User);



                if (model.Artefact.AccessionNumber == null || model.Artefact.AdlibReference == null)
                {
                    // mark that accession must be completed
                    model.Artefact.IsCompleted = false;
                }
                else
                {
                    // complete accession
                    model.Artefact.DateAccessioned = DateTime.Now;
                    model.Artefact.IsCompleted     = true;
                }
                model.Artefact.ImageUrl   = imageUrl;
                model.Artefact.IsArchived = false;
                model.Artefact.Filename   = fileName;

                _context.Artefacts.Add(model.Artefact);
                _context.SaveChanges();

                var donorArtefact = new DonorArtefact()
                {
                    ArtefactId = model.Artefact.Id
                };

                if (User.IsInRole("Donor")) // what if user is both a Donor and a Volunteer/Staff/Admin?
                {
                    // set currently logged in Donor
                    donorArtefact.DonorId = _context.Donors.FirstOrDefault(x => x.UserId == user.Id).Id;
                }
                else
                {
                    // set posted Donor
                    donorArtefact.DonorId = model.DonorId;
                }

                _context.DonorArtefacts.Add(donorArtefact);
                _context.SaveChanges();
                S3.UploadFile(model.Image, fileName);
                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View(model));
            }
        }