/// <summary> /// Gets the anon meeting. /// </summary> /// <param name="subject">The subject.</param> /// <param name="description">The description.</param> /// <param name="doctors">The doctors.</param> /// <param name="accessLevel">The access level is set to default "Invited" by default and you can pass any value, /// send string.empty if you want to sent access level to everyone /// UCAP does not allow access level Same Enterprise /// Also setting access level to Locked will lock meeting for everyone except organizer /// Hence only two values should be used, either Everyone or Invited</param> /// <returns> /// JSON string /// </returns> public static async Task <string> GetAnonMeeting(string subject, string description, List <Core.Models.Peers> doctors, string accessLevel = "Invited") { string jsonResponseString; var doctorSipAddress = new List <string>(); doctorSipAddress.AddRange(doctors.Select(doctor => $"sip:{doctor.Email}")); var meeting = new MeetingInput { AccessLevel = accessLevel, Description = string.IsNullOrEmpty(description) ? "Virtual Health Meeting generated using UCAP" : description, Subject = string.IsNullOrEmpty(subject) ? "Virtual Health Meeting generated using UCAP" : subject, Leaders = doctorSipAddress.ToArray() }; var jsonData = JsonConvert.SerializeObject(meeting); using (var wc = new WebClient()) { string trustedApiUri = $"{ConfigurationManager.AppSettings["TrustedApi"]}/GetAdhocMeetingJob"; wc.Headers.Add(HttpRequestHeader.Accept, "application/json"); wc.Headers.Add(HttpRequestHeader.ContentType, "application/json"); wc.Headers.Add("user-agent", "Other"); jsonResponseString = await wc.UploadStringTaskAsync(new Uri(trustedApiUri), "POST", jsonData); } return(JsonConvert.DeserializeObject(jsonResponseString).ToString()); }
public void Should_get_formatted_date() { var meeting = new MeetingInput(); meeting.StartDate = DateTime.Parse("1/1/2000 8:30 am"); meeting.EndDate = DateTime.Parse("1/1/2000 5:00 pm"); meeting.TimeZone = "cst"; meeting.GetDate().ShouldEqual("01/01/2000 8:30 - 5:00 p.m. cst"); }
public ActionResult Edit(MeetingInput input) { if (!_securityContext.HasPermissionsForUserGroup(input.UserGroupId)) { return(View(ViewPages.NotAuthorized)); } return(Command <MeetingInput, Meeting>(input, r => RedirectToAction <HomeController>(c => c.Index(r.UserGroup)), r => View(input))); }
public MeetingOutput ScheduleAdhocMeeting(MeetingInput input) { AdhocMeetingInput adhocMeetingInput = input.ToAdhocMeetingInput(); if (!_isInitialized) { InitializeEndpoint(); } var adhocMeeting = _applicationEndpoint.Application.GetAdhocMeetingResourceAsync(_loggingContext, adhocMeetingInput).Result; return(adhocMeeting.ToMeetingOutput()); }
public ActionResult Create(int minutesOffset, long?ticks, bool?allDay) { var start = (ticks.HasValue ? new DateTime(ticks.Value) : DateTime.UtcNow).AddMinutes(-minutesOffset); start = start.AddMinutes(5 - start.Minute % 5); var end = start.AddMinutes(15); var input = new MeetingInput { Start = start, StartTime = start, AllDay = allDay.HasValue && allDay.Value, End = end, EndTime = end, Color = "#5484ED" }; return(PartialView(input)); }
public ActionResult Create(MeetingInput input, int minutesOffset) { if (!ModelState.IsValid) { return(PartialView(input)); } //get date var start = input.Start.Value.Date; var end = input.End.Value.Date; //add time if (!input.AllDay) { start += input.StartTime.TimeOfDay; end += input.EndTime.TimeOfDay; } start = start.AddMinutes(minutesOffset); end = end.AddMinutes(minutesOffset); if (!input.AllDay && end <= start || end < start) { ModelState.AddModelError("Start", "end date and time should be greater than start date and time"); return(PartialView(input)); } var meeting = new Meeting { Title = input.Title, Start = start, End = end, Location = input.Location, Notes = input.Notes, AllDay = input.AllDay, Color = input.Color }; Db.Insert(meeting); return(Json(new { })); }
public async Task <ActionResult> Join(Guid identifier) { var session = db.RemoteAdvisorSessions.Where(c => c.SessionId == identifier).First(); SkypeApiClient client = new SkypeApiClient(); MeetingInput mi = new MeetingInput(); mi.AccessLevel = "Everyone"; mi.Description = session.Subject; mi.MeetingIdentifier = session.JoinUrl; var token = await client.GetAnonymousTokenAsync(mi); JoinViewModel jvm = new JoinViewModel(); jvm.AnonymousToken = token.AnonToken; jvm.DiscoverUri = token.DiscoverUrl; jvm.JoinUrl = session.JoinUrl; jvm.Customer = session.Customer; jvm.Subject = session.Subject; jvm.OnlineMeetingUri = session.OnlineMeetingUri; return(View(jvm)); }
public ActionResult Edit(int id, int minutesOffset) { var meeting = Db.Get <Meeting>(id); var start = meeting.Start.AddMinutes(-minutesOffset); var end = meeting.End.AddMinutes(-minutesOffset); var input = new MeetingInput { Id = id, Title = meeting.Title, Location = meeting.Location, Start = start, StartTime = start, End = end, EndTime = end, Notes = meeting.Notes, AllDay = meeting.AllDay, Color = meeting.Color }; return(PartialView("Create", input)); }
public async Task <ActionResult> Create(CreateViewModel model) { if (ModelState.IsValid) { SkypeApiClient client = new SkypeApiClient(); MeetingInput mi = new MeetingInput(); mi.Subject = model.Subject; var meeting = await client.CreateSkypeAdhocMeetingAsync(mi); RemoteAdvisorSession newSession = new RemoteAdvisorSession(); newSession.SessionId = Guid.NewGuid(); newSession.Subject = model.Subject; newSession.Customer = model.CustomerName; newSession.OnlineMeetingUri = meeting.OnlineMeetingUri; newSession.JoinUrl = meeting.JoinUrl; newSession.CreateDate = DateTime.Now; db.RemoteAdvisorSessions.Add(newSession); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(model)); }