public async Task <IActionResult> Create([FromBody] OrganizedEventRequest request) { var organizedEvent = _mapper.Map <OrganizedEvent>(request); organizedEvent.UserId = HttpContext.GetUserId(); await _organizedEventService.CreateEventAsync(organizedEvent); var baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}"; var locationUri = baseUrl + "/" + ApiRoutes.OrganizedEvents.Get.Replace("{eventId}", organizedEvent.Id.ToString()); return(Created(locationUri, _mapper.Map <OrganizedEventResponse>(organizedEvent))); }
public async Task <IActionResult> Update([FromRoute] Guid eventId, [FromBody] OrganizedEventRequest request) { var userOwnsEvent = await _organizedEventService.UserOwnsEventAsync(eventId, HttpContext.GetUserId()); if (!userOwnsEvent) { return(BadRequest(new { error = "You do not own this post" })); } var organizedEvent = await _organizedEventService.GetEventByIdAsync(eventId); organizedEvent.Title = request.Title; organizedEvent.Slug = request.Slug; organizedEvent.Description = request.Description; organizedEvent.From = request.From; organizedEvent.To = request.To; organizedEvent.LastsOneDay = request.LastsOneDay; organizedEvent.Address = request.Address; organizedEvent.Place = request.Place; organizedEvent.Lat = request.Lat; organizedEvent.Lng = request.Lng; organizedEvent.Expenses = request.Expenses.Where(x => !string.IsNullOrWhiteSpace(x.Name)) .Select(x => new Expense { EventId = organizedEvent.Id, Name = x.Name, Cost = x.Cost }).ToList(); organizedEvent.Participants = request.Participants.Where(x => !string.IsNullOrWhiteSpace(x.Name)) .Select((x, y) => new Participant { EventId = organizedEvent.Id, Name = x.Name, Status = x.Status }) .ToList(); var updated = await _organizedEventService.UpdateEventAsync(organizedEvent); if (updated) { return(Ok(_mapper.Map <OrganizedEventResponse>(organizedEvent))); } return(NotFound()); }