public async Task <IActionResult> Create(EventPostViewModel eventPostModel) { if (ModelState.IsValid) { var eventForSave = _mapper.Map <EventPostViewModel, Event>(eventPostModel); var eventFromDb = _eventData.AddEvent(eventForSave); var fileExt = eventPostModel.Wallpaper.FileName.Split('.').Last(); string path = $"{Path.DirectorySeparatorChar}images{Path.DirectorySeparatorChar}" + $"eventWallpapers{Path.DirectorySeparatorChar}" + eventFromDb.Id + $".{fileExt}"; using (var fileStream = new FileStream(_env.WebRootPath + path, FileMode.Create)) { await eventPostModel.Wallpaper.CopyToAsync(fileStream); } eventFromDb.ImageUrl = "/images/eventWallpapers/" + eventFromDb.Id + $".{fileExt}"; eventFromDb.Organizer = await _userManager.GetUserAsync(User); eventFromDb.ImageLocalUrl = _env.WebRootPath + path; _eventData.UpdateEvent(eventFromDb); return(RedirectToAction("Index", "Profile")); } return(View()); }
public async Task <IActionResult> PostEvent(string targetObjectID, string name, string description, string startdate, string enddate, string[] participants) { var @event = new EventPostViewModel() { HomeID = (long)CurrentHomeID, Name = name, Details = description, StartDate = DateTime.Parse(startdate), EndDate = DateTime.Parse(enddate), ParticipantUserIDs = participants, TargetObjectID = long.Parse(targetObjectID) }; using (var httpClient = new HttpClient()) { var requestUri = $"{Configuration.DefaultAPI}/events/post"; httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString()); httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString()); using (var response = await httpClient.PostAsJsonAsync(requestUri, @event)) { string content = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { @event = JsonConvert.DeserializeObject <EventPostViewModel>(content); } } } return(Json(EventsRenderer.BuildPostEvent(@event))); }
public static Event Get(EventPostViewModel model) { if (model == null) { return(default(Event)); } return(new Event() { Description = model.Description, BeginDate = model.BeginDate, BeginTime = (DateTime)model.BeginTime, EndDate = model.EndDate, Address = new Address() { CityId = model.CityId, LineOne = model.LineOne, LineTwo = model.LineTwo, Zip = model.Zip }, Details = model.Details, EndTime = (DateTime)model.EndTime, ExternalLink = model.ExternalLink, VideoLink = model.VideoLink, IsFeatured = model.IsFeatured, SportId = (int)model.SportId, CityId = model.CityId.Value, StartingPrice = model.StartingPrice, EventTypeId = (int)model.EventTypeId, Zip = model.Zip, }); }
public ActionResult Post([FromBody] EventPostViewModel @event) { try { var currentUserID = 0l; var currentHomeID = 0l; var re = Request; var headers = re.Headers; if (headers.ContainsKey("CurrentUserID")) { currentUserID = long.Parse(headers.GetCommaSeparatedValues("CurrentUserID").FirstOrDefault()); } if (headers.ContainsKey("CurrentHomeID")) { currentHomeID = long.Parse(headers.GetCommaSeparatedValues("CurrentHomeID").FirstOrDefault()); } var participants = @event.ParticipantUserIDs; @event = new BaseCRUDService(currentUserID).Save(@event); new BaseCRUDService(currentUserID).AddUserAsParticipantToObject(@event.TargetObjectID, currentUserID, @event.ObjectTypeID); foreach (var userID in participants) { var eventParticipant = new EventParticipantPostViewModel() { EventID = @event.ID, UserID = long.Parse(userID) }; new BaseCRUDService(currentUserID).Save(eventParticipant); } var participantUsernames = new List <string>(); var eventParticipants = new BaseCRUDService(currentUserID).GetCollection <EventParticipantPostViewModel>(x => x.EventID == @event.ID); foreach (var participant in eventParticipants) { var participantUsername = new BaseCRUDService(currentUserID).GetEntity <UserPostViewModel>(x => x.ID == participant.UserID).Name; participantUsernames.Add(participantUsername); } @event.EventParticipantNames = string.Join(", ", participantUsernames); return(Ok(@event)); } catch (System.Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, $"{ex.Message}")); } }
public async Task <IHttpActionResult> Post(EventPostViewModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var city = await DbContext.Cities.FindAsync(model.CityId); var sport = await DbContext.Sports.FindAsync(model.SportId); var eventType = await DbContext.EventTypes.FindAsync(model.EventTypeId); var _event = ModelFactory.Get(model); _event.CityId = city.Id; _event.SportName = sport.Name; _event.SportId = sport.Id; _event.EventTypeId = eventType.Id; _event.EventTypeName = eventType.Name; _event.OrganizerId = User.Identity.GetUserId(); _event.OrganizerName = User.Identity.Name; //saving to database DbContext.Events.Add(_event); var result = await DbContext.SaveChangesAsync(); if (result > 0) { return (Ok( new { _event.Description, _event.Details, _event.Id, _event.SportName, _event.EventTypeName, _event.OrganizerName })); } return(InternalServerError()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public static string BuildPostEvent(EventPostViewModel @event) { return($"<div class='row'><div class='col-md-2'>{@event.Name}</div><div class='col-md-3'>{@event.Details}</div><div class='col-md-2'>{@event.StartDate.ToString("dd'/'MM'/'yyyy")}</div><div class='col-md-2'>{@event.EndDate.ToString("dd'/'MM'/'yyyy")}</div><div class='col-md-2'>{@event.EventParticipantNames}</div></div>"); }