Example #1
0
        public ActionResult Create(Photo photo)
        {
            if (ModelState.IsValid)
            {
                db.Photos.Add(photo);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.EmployeeId = new SelectList(db.Employees, "Id", "Name", photo.EmployeeId);
            return View(photo);
        }
Example #2
0
        public ActionResult UploadPhotoPost(string codeword, string uploadedby)
        {
            if (String.IsNullOrEmpty(codeword))
                return RedirectToAction("UploadPhoto", new { warning = "Fyll inn kodeord!" });

            if (String.IsNullOrEmpty(uploadedby))
                return RedirectToAction("UploadPhoto", new { warning = "Fyll inn navn og telefonnr!" });

            var recognize = codeword != "ignore";
            var image = Request.Files.Count > 0 ? Request.Files[0] : null;

            if(image == null || image.ContentLength == 0)
                return RedirectToAction("UploadPhoto", new { warning = "Du må velge et foto!" });

            if (!ImageUtil.AllowedImageTypes.Contains(image.ContentType) && image.ContentType != "application/octet-stream")
                return RedirectToAction("UploadPhoto", new { warning = "Not allowed imagetype! (" + image.ContentType + ")" });

            var im = Image.FromStream(image.InputStream);
            var imageFormat = ImageUtil.GetImageFormat(image.ContentType);
            var newImage = im.ResizeImage(new Size(480, 480), imageFormat);
            var title = "MisterX-" + DateTime.Now.ToString("MM.dd HH:mm");

            var photo = new Photo
                            {
                                Filename = image.FileName,
                                Format = imageFormat.ToString(),
                                Name = title,
                                ImageStream = ReadFully(newImage),
                                UploadedBy = uploadedby
                            };
                _db.Photos.Add(photo);
                _db.SaveChanges();

                if (recognize)
                {
                    var e = Recognize(photo.Id);

                    if (e == null)
                    {
                        _db.Photos.Remove(photo);
                        _db.SaveChanges();
                        return RedirectToAction("UploadPhoto", new { warning = "Ansatt ikke gjenkjent!" });
                    }

                    if (e.Codeword.ToUpper() != codeword.ToUpper())
                    {
                        _db.Photos.Remove(photo);
                        _db.SaveChanges();
                        return RedirectToAction("UploadPhoto", new { warning = "Feil kodeord for " + e.Name + "!" });
                    }

                    var p = _db.Photos.Find(photo.Id);
                    p.Employee = e;
                    p.Name = p.Name.Replace("MisterX", e.Name + "(recognized)");
                    _db.SaveChanges();
                    return RedirectToAction("UploadPhoto", new { success = "Riktig kodeord for " + e.Name + "! Bilde opplastet!" });

                }

                return RedirectToAction("UploadPhoto", new { success = "Bilde opplastet, ikke tilordnet noen ansatte" });
        }
Example #3
0
        public ActionResult Edit(Photo photo)
        {
            if (ModelState.IsValid)
            {
                var p = db.Photos.Find(photo.Id);
                p.Employee = photo.Employee;
                p.EmployeeId = photo.EmployeeId;
                p.Name = photo.Name;
                p.Filename = photo.Filename;
                p.Format = photo.Format;
                p.UploadedBy = photo.UploadedBy;

                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.EmployeeId = new SelectList(db.Employees, "Id", "Name", photo.EmployeeId);
            return View(photo);
        }
Example #4
0
        public ActionResult UploadAndRecognize(string image, string codeword, string uploadedby)
        {
            if (String.IsNullOrEmpty(uploadedby))
                return new JsonResult { Data = new { warning = true, message = "Fyll inn navn og telefonnr!" } };
            var filnanvn = "test-" + DateTime.Now.ToFileTime();
            var title = "MisterX-" + DateTime.Now.ToString("MM.dd HH:mm");
            var splitted = image.Split(',')[1];
            var imageEncoded = Base64ToImage(splitted);
            var recognize = codeword != "ignore";

            var photo = new Photo
            {
                Filename = filnanvn + ".jpg",
                Format = "Image/jpg",
                Name = title,
                ImageStream = ReadFully(imageEncoded.ResizeImage(new Size(480, 480), ImageFormat.Jpeg)),
                Employee = null,
                UploadedBy = uploadedby
            };

            _db.Photos.Add(photo);
            _db.SaveChanges(); //Må lagre det her for å hente det ut att på nytt.
            imageEncoded.Dispose();

            if (recognize)
            {
                var e = Recognize(photo.Id);

                if (e == null)
                {
                    _db.Photos.Remove(photo);
                    _db.SaveChanges();
                    return new JsonResult { Data = new { warning = true, message = "Ansatt ikke gjenkjent!" } };
                }

                if (e.Codeword.ToUpper() != codeword.ToUpper())
                {
                    _db.Photos.Remove(photo);
                    _db.SaveChanges();
                    return new JsonResult { Data = new { warning = true, message = "Feil kodeord for " + e.Name + "!" } };
                }

                var p = _db.Photos.Find(photo.Id);
                p.Employee = e;
                p.Name = p.Name.Replace("MisterX", e.Name + "(recognized)");
                _db.SaveChanges();
                return new JsonResult { Data = new { success = true, message = "Riktig kodeord for " + e.Name + "! Bilde opplastet!" } };

            }
            Thread.Sleep(2000);
            return new JsonResult { Data = new { success = true, message = "Bilde opplastet, ikke tilordnet noen ansatte" } };
        }