public async Task <Result> Handle(Command message) { var exhibit = _repository.GetExhibit(message.Id); if (exhibit == null) { return(Result.Fail <Command> ("Exhibit does not exit")); } if (exhibit.PhotographerId != message.UserId) { return(Result.Fail <Command> ("Unauthorized")); } var uploadPath = Path.Combine(_environment.WebRootPath, "images/exhibits"); if (message.ImageUpload != null) { var ImageName = ContentDispositionHeaderValue.Parse(message.ImageUpload.ContentDisposition).FileName.Trim('"'); using (var fileStream = new FileStream(Path.Combine(uploadPath, message.ImageUpload.FileName), FileMode.Create)) { await message.ImageUpload.CopyToAsync(fileStream); message.ImageUrl = "http://exhibitbaseurl/images/exhibits/" + ImageName; } } message.DateTime = DateTime.Parse(string.Format("{0}", message.Date)); exhibit.UpdateDetails(message); _repository.SaveAll(); return(Result.Ok()); }
public Result Handle(Command message) { var exhibit = _repository.GetExhibitWithAttendees(message.Id); if (exhibit == null) { return(Result.Fail <Command> ("Exhibit does not exist")); } if (exhibit.IsCanceled) { return(Result.Fail <Command> ("Exhibit is cancelled.")); } exhibit.Cancel(); _repository.SaveAll(); return(Result.Ok()); }
public Result <int> Handle(Command message) { var exhibit = _exhibitRepository.GetExhibit(message.ExhibitId); if (exhibit == null) { return(Result.Fail <int> ("Exhibit does not exit")); } var attendance = exhibit.Attendances.FirstOrDefault(a => a.AttendeeId == message.UserId); if (attendance == null) { return(Result.Fail <int> ("Attendance does not exit")); } exhibit.RemoveAttendance(attendance); _exhibitRepository.SaveAll(); return(Result.Ok(message.ExhibitId)); }
public Result Handle(Command message) { var exhibit = _exhibitRepository.GetExhibit(message.ExhibitId); if (exhibit == null) { return(Result.Fail <int> ("Exhibit does not exit")); } var contains = exhibit.Attendances.Any(a => a.AttendeeId == message.UserId); if (contains == true) { return(Result.Fail <Command> ("Attendance already exists.")); } exhibit.AddAttendance(Attendance.Create(message)); _exhibitRepository.SaveAll(); return(Result.Ok()); }