public static void BookMeeting(string participantEmail, string slots, string patientName, string questionCategory, string doctorName) { var dateStartDate = GetDateTime(slots); var itemId = SharePointRepository.CreateMeetingDetails(dateStartDate, dateStartDate.AddHours(1), string.Empty, doctorName, patientName, participantEmail, string.Empty, questionCategory); var portalUrl = ""; var queryStringParameter = ""; if (ConfigurationManager.AppSettings["IsAngularApp"] == "true") { portalUrl = new Uri(ConfigurationManager.AppSettings["ida:HealthCarePortal"]).AbsoluteUri + "healthcare/guest?uri="; queryStringParameter = $"meetingId={itemId}&userType=Patient&displayName={patientName}"; } else { portalUrl = new Uri(ConfigurationManager.AppSettings["ida:HealthCarePortal"]).AbsoluteUri + "api/meeting?"; queryStringParameter = "meetingId=" + itemId + "&userType=Patient&displayName=" + patientName; } string error; var encrptedParameters = EncryptionHelper.Encrypt(queryStringParameter); var meetingUrl = portalUrl + encrptedParameters; var invitation = MeetingInvitation.SendEmail(meetingUrl, participantEmail, out error); }
public ActionResult InvitePerson(int meetid, string uid) { MeetingInvitation inv = new MeetingInvitation(); inv.Status = "Invited"; if (!db.MeetingInvitations.Any()) { inv.InvId = 1; } if (db.MeetingInvitations.Any()) { inv.InvId = db.MeetingInvitations.Max(ii => ii.InvId) + 1; } var meet = db.Meetings.Where(m => m.MId == meetid).Single(); inv.Meeting = meet; var us = db.Users.Where(u => u.Id == uid).Single(); inv.Invitee = us; db.MeetingInvitations.Add(inv); us.InvitationsToMeetings.Add(inv); meet.Participants.Add(inv); db.Meetings.Attach(meet); db.Users.Attach(us); db.SaveChanges(); return(RedirectToAction("InviteToMeeting", "Meeting", new { @meetid = meetid })); }
public IActionResult SendMeetingInvite([FromForm] MeetingInvitation _invitation) { try { Logger.Info("SendMeetingInvite method is called..."); _saveData.SendMeetingInvite(_invitation); return(Ok("Invitation")); } catch (Exception ex) { Logger.Error("Error has occured in SendMeetingInvite method " + ex.Message); throw ex; } }
private void ReceiveInvitationCallback(IntPtr pData) { MeetingInvitation meetingInvitation = (MeetingInvitation)Marshal.PtrToStructure(pData, typeof(MeetingInvitation)); Invitation invitation = new Invitation() { Invitor = new Attendee() { Name = meetingInvitation.m_invitor.m_szDisplayName, Id = meetingInvitation.m_invitor.m_szPhoneId }, MeetingId = meetingInvitation.m_meetingId }; InvitationReceivedEvent?.Invoke(invitation); }
public IHttpActionResult SaveMeeting(Appointment appt) { int bookingTime = 0; if (!string.IsNullOrEmpty(appt.TimeSlot)) { var time = appt.TimeSlot.Split(' '); if (time.Length == 2) { bookingTime = (time[1].ToUpper().Equals("PM")) ? 12 + int.Parse(time[0]) : int.Parse(time[0]); } } var startDate = new DateTime(appt.Date.Year, appt.Date.Month, appt.Date.Day, bookingTime, 0, 0); if (startDate.ToUniversalTime() < DateTime.Now.ToUniversalTime()) { return(BadRequest("Please provide a future date !!")); } if (string.IsNullOrEmpty(appt.DoctorName)) { appt.DoctorName = ClaimsPrincipal.Current.Claims.Where(c => c.Type == "name").Select(c => c.Value).SingleOrDefault(); } var itemId = InsertBlankMeetingDetails(startDate, startDate.AddHours(1), User.Identity.Name, appt.DoctorName, appt.FullName, appt.Email, string.Empty, appt.Questionnaire); var portalUrl = new Uri(ConfigurationManager.AppSettings["ida:HealthCarePortal"]).AbsoluteUri + "healthcare/guest?uri="; var queryStringParameter = $"meetingId={itemId}&userType=Patient&displayName={appt.FullName}"; var encrptedParameters = EncryptionHelper.Encrypt(queryStringParameter); var meetingUrl = portalUrl + encrptedParameters; string error; var hasEmailInviteSent = MeetingInvitation.SendEmail(meetingUrl, appt.Email, out error); if (!hasEmailInviteSent) { Ok(false); } return(Ok(true)); }
public ActionResult CrMeeting(CreateMeetingViewModel model) { Meeting newM = new Meeting(); newM.Name = model.Name; var Date = Request.Form["Datepck"].ToString(); var Time = Request.Form["Timepck"].ToString(); newM.Date = Date; newM.Time = Time; var Gro = Request.Form["selGroup"].ToString(); int groid = int.Parse(Gro); var gr = db.Groups.Where(g => g.GId == groid).Single(); newM.Group = gr; MeetingInvitation mi = new MeetingInvitation(); mi.Meeting = newM; var usi = User.Identity.GetUserId(); var us = db.Users.Where(u => u.Id == usi).Single(); mi.Invitee = us; mi.Status = "Accepted"; List <MeetingInvitation> ffs = new List <MeetingInvitation>(); ffs.Add(mi); newM.Participants = ffs; if (us.InvitationsToMeetings == null) { us.InvitationsToMeetings = ffs; } else { us.InvitationsToMeetings.Add(mi); } db.Meetings.Add(newM); db.MeetingInvitations.Add(mi); db.Users.Attach(us); db.SaveChanges(); return(RedirectToAction("MeetingList", "Meeting")); }
public IHttpActionResult SendEmailInvite(Appointment appt) { var portalUrl = new Uri(ConfigurationManager.AppSettings["ida:HealthCarePortal"]).AbsoluteUri + "healthcare/guest?uri="; var userType = appt.IsDoctor ? "Doctor" : "Patient"; var queryStringParameter = $"meetingId={appt.ItemId}&userType={userType}&displayName={appt.FullName}"; var encrptedParameters = EncryptionHelper.Encrypt(queryStringParameter); var meetingUrl = portalUrl + encrptedParameters; string error; var hasEmailInviteSent = MeetingInvitation.SendEmail(meetingUrl, appt.Email, out error); if (!hasEmailInviteSent) { Ok(false); } return(Ok(true)); }
public void RichInvitationBox_ParsingEmails() { var invitationBox = new RichInvitationBox(); invitationBox.Initialize(roomController); // simple email 1 var simpleEmail1 = new RichItemText { Text = "*****@*****.**" }; // group 1 var group1Part1 = new RichItemText { Text = "User1 Name1" }; var group1Part2 = new RichItemText { Text = "<*****@*****.**>" }; var group1Part3 = new RichItemText { Text = ",[email protected];" }; // simple email 2 var simpleEmail2 = new RichItemText { Text = "*****@*****.**" }; // wrong email 1 var wrongEmail1 = new RichItemText { Text = "_asdf...b.com," }; // group 2 var group2Part1 = new RichItemText { Text = "User2" }; var group2Part2 = new RichItemText { Text = "Name2" }; var group2Part3 = new RichItemText { Text = "<testgroup2@" }; var group2Part4 = new RichItemText { Text = "hotmail.zzz>" }; var itemContact1 = new RichItemContact(); var mc1 = new MergedContact(); mc1.FullName = "Full Name111"; mc1.ContactPoints = new ObservableCollection <ContactPoint>(); mc1.ContactPoints.Add(new ContactPoint { ContactPointId = "*****@*****.**", ContactPointTypeId = (byte)ContactDeliveries.Gmail }); var invitation1 = new MeetingInvitation(mc1, mc1.ContactPoints.First()); itemContact1.Invitation = invitation1; var richRows = new List <RichInvitationBox.RichRow>(); richRows.Add(new RichInvitationBox.RichRow()); richRows.Add(new RichInvitationBox.RichRow()); richRows[0].Items.Add(simpleEmail1); richRows[0].Items.Add(itemContact1); richRows[0].Items.Add(group1Part1); richRows[0].Items.Add(new RichItemSpace()); richRows[1].Items.Add(group1Part2); richRows[1].Items.Add(group1Part3); richRows[1].Items.Add(simpleEmail2); richRows[1].Items.Add(wrongEmail1); richRows[1].Items.Add(group2Part1); richRows[1].Items.Add(new RichItemSpace()); richRows[1].Items.Add(new RichItemSpace()); richRows[1].Items.Add(new RichItemSpace()); richRows[1].Items.Add(group2Part2); richRows[1].Items.Add(new RichItemSpace()); richRows[1].Items.Add(group2Part3); richRows[1].Items.Add(group2Part4); bool isItemsValid = false; var invitations = new List <MeetingInvitation>(); //Grouped list of texts which separeted by Controls or "," or "." or ";" List <List <IRichItem> > listTextItems; List <MeetingInvitation> contactInvitations; invitationBox.GetContactInvitationsFromRows(richRows, out listTextItems, out contactInvitations); invitations.AddRange(contactInvitations); Assert.IsTrue(contactInvitations.Count == 1, "should be one Contact"); // Parsing (concatenate) texts for getting email addresses List <List <RichItemText> > itemsNotRecognized; List <MeetingInvitation> textEmailsInvitations; invitationBox.GetEmailInvitationsFromText(listTextItems, out textEmailsInvitations, out itemsNotRecognized); invitations.AddRange(textEmailsInvitations); Assert.IsTrue(textEmailsInvitations.Count == 5, "should be 5 'direct' email contacts"); Assert.IsTrue(invitations.Count == 6, "count of invitations is wrong"); Assert.IsTrue(invitations.Contains(itemContact1.Invitation), "GmailContact is not added to invitations"); Assert.IsTrue(itemsNotRecognized.Sum(group => group.Count) == 1, "should be one wrong text element"); Assert.IsFalse(isItemsValid, "expected that not all texts is valid"); if (itemsNotRecognized.Sum(group => group.Count) > 0) { Assert.IsTrue(wrongEmail1.Text == itemsNotRecognized[0][0].Text, "wrong expected error"); Assert.IsTrue(!itemsNotRecognized[0][0].IsEmail); } EnqueueTestComplete(); }