Ejemplo n.º 1
0
 public CreateEvent(
     NewEventDto newEventRequest,
     CloudTable eventsTable,
     string loginUserEmail,
     string loginUserId,
     ILogger logger)
 {
     _newEventRequest = newEventRequest;
     _loginUserEmail  = loginUserEmail;
     _loginUserId     = loginUserId;
     _eventsTable     = eventsTable;
     _logger          = logger;
 }
Ejemplo n.º 2
0
        public async Task <NewEventDto> Create(NewEventDto newEventDto)
        {
            if (newEventDto == null)
            {
                throw new ArgumentNullException(nameof(newEventDto));
            }

            var newEvent = _mapper.Map <Event>(newEventDto);

            await _repository.Create(newEvent);

            var eventDto = _mapper.Map <NewEventDto>(newEvent);

            return(eventDto);
        }
Ejemplo n.º 3
0
        public async Task Update(int id, NewEventDto evDto)
        {
            if (evDto == null)
            {
                throw new ArgumentNullException();
            }

            var itemToUpdate = await _repository.GetById(id);

            if (itemToUpdate == null)
            {
                throw new InvalidOperationException($"Event with {id} id was not found");
            }
            var ev = _mapper.Map <Event>(evDto);
            await _repository.Update(id, ev);
        }
Ejemplo n.º 4
0
        public async Task <EventDto> Create(NewEventDto newItem)
        {
            if (newItem == null)
            {
                throw new ArgumentNullException();
            }

            var ev = _mapper.Map <Event>(newItem);

            ev.DateCreated = DateTime.Now;
            await _repository.Add(ev);

            var evDto = _mapper.Map <EventDto>(ev);

            return(evDto);
        }
Ejemplo n.º 5
0
        public IHttpActionResult CreateNewEvents(NewEventDto newEvent)
        {
            var memberCreated = _context.Members.Single(m => m.Id == newEvent.MemberCreatedId);
            var guests        = new List <Member>();
            var guestCount    = 0;

            if (newEvent.GuestIds != null)
            {
                guests     = _context.Members.Where(s => newEvent.GuestIds.Contains(s.Id)).ToList();
                guestCount = newEvent.GuestIds.Count();
            }
            var addedEvent = new Event
            {
                Name            = newEvent.Name,
                MemberCreatedId = memberCreated.Id,
                GuestId         = newEvent.GuestIds,
                DateCreated     = newEvent.DateCreated ?? DateTime.Today,
                Description     = newEvent.Description,
                TotalAmount     = newEvent.TotalAmount,
                GuestCount      = guestCount,
                TotalRemain     = Math.Round((newEvent.TotalAmount / (guestCount + 1)), 2) * guestCount
            };

            _context.Events.Add(addedEvent);
            _context.SaveChanges();

            if (newEvent.TotalAmount > 0 && guestCount > 0)
            {
                foreach (var guest in guests)
                {
                    var bill = new Bill
                    {
                        EventId     = addedEvent.Id,
                        Name        = newEvent.Name,
                        PaidFor     = memberCreated.Name,
                        PaidBy      = guest.Name,
                        DateCreated = newEvent.DateCreated ?? DateTime.Now,
                        Amount      = Math.Round((newEvent.TotalAmount / (guestCount + 1)), 2),
                        MemberId    = guest.Id
                    };
                    _context.Bills.Add(bill);
                }
            }

            _context.SaveChanges();
            return(Ok());
        }
Ejemplo n.º 6
0
        public static bool ValidateRequest(NewEventDto newEventRequest)
        {
            var hasErrors = false;
            var errors    = new StringBuilder();

            if (string.IsNullOrEmpty(newEventRequest?.Title))
            {
                hasErrors = true;
                errors.AppendLine($"{nameof(newEventRequest.Title)} is required.");
            }

            if (newEventRequest?.StartTime >= newEventRequest?.EndTime)
            {
                hasErrors = true;
                errors.AppendLine("Invalid event start and end times.");
            }

            if (hasErrors)
            {
                throw new ValidationException(errors.ToString());
            }

            return(true);
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Update(int id, [FromBody] NewEventDto newEvent)
        {
            await _eventService.Update(id, newEvent);

            return(NoContent());
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> AddEvent([FromBody] NewEventDto newEventDto)
        {
            var createEvent = await _eventService.Create(newEventDto);

            return(Ok(createEvent));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> Post(NewEventDto newEventDto)
        {
            var createdEvent = await _eventService.Create(newEventDto);

            return(Ok(createdEvent));
        }