Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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 }));
        }
Exemplo n.º 3
0
 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;
     }
 }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 8
0
        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();
        }