Example #1
0
            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());
            }
Example #2
0
            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());
            }
Example #3
0
            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));
            }
Example #4
0
            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());
            }