public ActionResult DeleteImage(int evntID, int jeviID, string user) { int deletedJEVI = 0; Event evnt = serv.Get(evntID); JoinEventImage jevi = evnt.JoinEventImages.Single(e => e.ID == jeviID); deletedJEVI = jevi.ID; iServ.Delete(jevi.ImageID, user); evnt.JoinEventImages.Remove(jevi); return(Json(new { status = "OK", deletedID = deletedJEVI })); }
public async Task <ActionResult> AddImage(int id, string userName, IFormFile imagefile) { if (imagefile == null) { throw new MacheteNullObjectException("AddImage called with null imagefile"); } var joiner = new JoinEventImage(); var evnt = _eventServ.Get(id); var image = new Image(); image.ImageMimeType = imagefile.ContentType; image.parenttable = "Events"; image.filename = imagefile.FileName; image.recordkey = id.ToString(); using (var stream = new MemoryStream()) { await imagefile.CopyToAsync(stream); image.ImageData = stream.ToArray(); } // This should be unnecessary; image will have ID Image newImage = _imageServ.Create(image, userName); joiner.ImageID = newImage.ID; joiner.EventID = evnt.ID; joiner.datecreated = DateTime.Now; joiner.dateupdated = DateTime.Now; joiner.updatedby = userName; joiner.createdby = userName; _eventServ.JoinEventImages(evnt, joiner, userName); _eventServ.Save(evnt, userName); return(Json(new { status = "OK" })); }
public ActionResult AddImage(int id, string userName, IFormFile imagefile) { if (imagefile == null) { throw new MacheteNullObjectException("AddImage called with null imagefile"); } JoinEventImage joiner = new JoinEventImage(); Event evnt = serv.Get(id); // TODO:The following code should be in the Service layer Image image = new Image(); image.ImageMimeType = imagefile.ContentType; image.parenttable = "Events"; image.filename = imagefile.FileName; image.recordkey = id.ToString(); image.ImageData = new byte[imagefile.Length]; imagefile.OpenReadStream(); //(image.ImageData, //0, //imagefile.Length); // TODO read the stream, close the file Image newImage = iServ.Create(image, userName); joiner.ImageID = newImage.ID; joiner.EventID = evnt.ID; joiner.datecreated = DateTime.Now; joiner.dateupdated = DateTime.Now; joiner.updatedby = userName; joiner.createdby = userName; // TODO: This tightly couples the MVC straight down to EF. // breaks layering. Should be abstracted. evnt.JoinEventImages.Add(joiner); serv.Save(evnt, userName); //var foo = iServ.Get(newImage.ID).ImageData; return(Json(new { status = "OK" })); }
public ActionResult AddImage(int id, string user, HttpPostedFileBase imagefile) { if (imagefile == null) { throw new MacheteNullObjectException("AddImage called with null imagefile"); } JoinEventImage joiner = new JoinEventImage(); Event evnt = _serv.Get(id); // TODO:The following code should be in the Service layer Image image = new Image(); image.ImageMimeType = imagefile.ContentType; image.parenttable = "Events"; image.filename = imagefile.FileName; image.recordkey = id.ToString(); image.ImageData = new byte[imagefile.ContentLength]; imagefile.InputStream.Read(image.ImageData, 0, imagefile.ContentLength); Image newImage = iServ.Create(image, user); joiner.ImageID = newImage.ID; joiner.EventID = evnt.ID; joiner.datecreated = DateTime.Now; joiner.dateupdated = DateTime.Now; joiner.updatedby = user; joiner.createdby = user; // TODO: This tightly couples the MVC straight down to EF. // breaks layering. Should be abstracted. evnt.JoinEventImages.Add(joiner); _serv.Save(evnt, user); var foo = iServ.Get(newImage.ID).ImageData; return(Json(new { status = "OK" }, JsonRequestBehavior.AllowGet)); }
public void JoinEventImages(Event record, JoinEventImage joiner, string user) { record.JoinEventImages.Add(joiner); }