public async Task<ActionResult> Create(EventInformation model) { var profile = _profileService.GetProfile(User.Identity.GetUserId().ToLong()); if (!ModelState.IsValid) { ModelState.AddModelError("", "All of the form fields are required"); var createModel = new CreateEventViewModel(profile); return View(createModel); } var start = new DateTime(model.StartDate.Year, model.StartDate.Month, model.StartDate.Day, model.StartTime.Hour, model.StartTime.Minute, model.StartTime.Second); var end = new DateTime(model.EndDate.Year, model.EndDate.Month, model.EndDate.Day, model.EndTime.Hour, model.EndTime.Minute, model.EndTime.Second); var ev = new Event { DateCreated = DateTime.UtcNow, StartTime = start, EndTime = end, Name = model.EventName, Description = model.Description, Privacy = model.PrivacyLevel, Owner = profile.User, Location = new Location { Name = model.LocationInput, Address = new Address { AddressLine1 = string.Format("{0} {1}", model.street_number, model.route), City = model.locality, CountryRegion = model.country, PostalCode = model.postal_code, StateProvince = model.state } } }; if (!model.lng.IsEmpty() && !model.lat.IsEmpty()) { ev.Location.Geography = DbGeography.FromText(string.Format("POINT ({0} {1})", model.lng, model.lat)); } if (model.Picture != null) { using (var content = new MultipartContent()) { content.Add(new StreamContent(model.Picture.InputStream)); var upload = new MediaUpload { Content = content, ContentSize = model.Picture.ContentLength, ContentType = model.Picture.ContentType }; var picture = await _mediaService.UploadMediaAsync(upload); ev.Picture = picture; Log.InfoFormat("Uploaded picture for event. MediaId={0}", picture.Id); } } // If they want to create on facebook, do it here try { if (model.CreateFacebookEvent) { var fbEvent = new FacebookEvent { Name = ev.Name, Description = ev.Description, State_Time = start, Owner = new FacebookIdentity { Id = profile.FacebookId } }; var eventId = await _facebookService.PublishEvent(profile.User, fbEvent); Log.InfoFormat("Created Facebook Event for new event. UserId={0} FacebookId={1}", profile.User.Id, eventId); ev.FacebookId = eventId; } } catch (Exception e) { Log.ErrorFormat("Failed to create Facebook Event for new event. UserId={0}", profile.User.Id); } // Add yourself to the invitees list ev.Invitations = new List<Invitation> { new Invitation { FacebookUserId = profile.FacebookId, FacebookName = profile.GetFullName(), Response = RSVP.YES } }; // Save event _eventService.CreateEvent(ev); Log.InfoFormat("Created new Event. UserId={0} EventId={1}", profile.User.Id, ev.Id); return RedirectToAction("Event", new {Id = ev.Id}); }
private double CalculateTotalStorage(Event e) { double totalStorage = 0; foreach (MediaFile item in e.Media) { totalStorage += item.ContentSize; } return totalStorage; }
public EventViewModel(UserProfile profile, Event ev) : base(profile) { Title = "Event"; Event = ev; }
private double CalculateNumViews(Event e, double numUsers) { double numViews = 0; if(e.StartTime.HasValue) { int difference = (DateTime.Now - e.StartTime.Value).Days; if(difference == 0) { numViews = 5 * numUsers; } else if(Math.Abs(difference) == 1) { numViews = 2 * numUsers; } else if(difference == 2) { numViews = numUsers; } else if((difference >= 3 && difference <= 6) || (difference <= -2 && difference >= -4)) { numViews = numUsers / 2; } } return numViews; }