public IActionResult EditTraining(TrainingViewModel model) { if (!ModelState.IsValid) { return(View(model)); } //get training Training training = _trainingService.GetTrainingWithId(model.Id).FirstOrDefault(); if (training == null) { ModelState.AddModelError("Error", "No such data!"); return(View(model)); } training.Title = model.Title.ToCapital(); training.TrainingPlaceId = model.PlaceId; training.DateTime = model.Date.Add(model.Time.TimeOfDay); training.Description = model.Description; training.Distance = model.Distance; training.ModifiedDate = DateTime.UtcNow; _trainingService.UpdateTraining(training); //delete old add new photo if any provided; else do not bother. if (model.Photo != null) { string fileName = model.Photo.FileName; string contentType = model.Photo.ContentType; Stream stream = model.Photo.OpenReadStream(); BinaryReader reader = new BinaryReader(stream); byte[] content = reader.ReadBytes((int)model.Photo.Length); //delete existing training photo TrainingPhoto photo = _trainingPhotoService.GetPhotoWithForeignKey(model.Id); if (photo != null) { _trainingPhotoService.DeletePhoto(photo); } //add new photo = new TrainingPhoto { Name = model.Photo.FileName, ContentType = model.Photo.ContentType, Content = content, AddedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow, TrainingId = model.Id }; _trainingPhotoService.InsertPhoto(photo); } _trainingService.SaveTrainingChanges(); _trainingPhotoService.SavePhotoChanges(); return(RedirectToAction("Trainings")); }
public IActionResult DownloadTrainingPhoto(long trainingId) { TrainingPhoto photo = _trainingPhotoService.GetPhotoWithForeignKey(trainingId); if (photo == null) { return(View("Error", new ErrorViewModel { ErrorMessage = "Not Found!" })); } return(File(photo.Content, photo.ContentType, photo.Name)); }
public IActionResult AddTraining(TrainingViewModel model) { if (!ModelState.IsValid) { return(View(model)); } //add training Training training = new Training { Title = model.Title.ToCapital(), TrainingPlaceId = model.PlaceId, DateTime = model.Date.Add(model.Time.TimeOfDay), Description = model.Description, Distance = model.Distance, AddedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow }; long trainingId = _trainingService.InsertTraining(training); //add related image if any; else do not bother now. //TODO: Later give an error if (model.Photo != null) { string fileName = model.Photo.FileName; string contentType = model.Photo.ContentType; Stream stream = model.Photo.OpenReadStream(); BinaryReader reader = new BinaryReader(stream); byte[] content = reader.ReadBytes((int)model.Photo.Length); TrainingPhoto photo = new TrainingPhoto { Name = model.Photo.FileName, ContentType = model.Photo.ContentType, Content = content, AddedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow, TrainingId = trainingId }; _trainingPhotoService.InsertPhoto(photo); } _trainingService.SaveTrainingChanges(); _trainingPhotoService.SavePhotoChanges(); return(RedirectToAction("Trainings")); }