Esempio n. 1
0
        //[Authorize(Roles ="SAdmin")]
        public HttpResponseMessage SetCall(Voice voice)
        {
            VoiResponse Response = new VoiResponse();

            try
            {
                var message = ObjVoice.SetVoiceCall(voice);
                Response.Status = con.StatusSuccess;
            }
            catch (Exception ex)
            {
                Response.Status  = con.StatusFailed;
                Response.Message = con.MessageFailed + ", Exception : " + ex.Message;
            }
            return(ConvertToJSON(Response));
        }
Esempio n. 2
0
        public async Task <HttpResponseMessage> BookingSchedule(string Slug)
        {
            Db = con.SurgeryCenterDb(Slug);
            BookingResponse Response = new BookingResponse();

            try
            {
                MT_Patient_Booking   Booking = new MT_Patient_Booking();
                MT_PatientInfomation Patient = new MT_PatientInfomation();
                Query         ObjQuery       = Db.Collection("MT_Patient_Booking").WhereEqualTo("PB_Is_Deleted", false).WhereEqualTo("PB_Is_Active", true);
                QuerySnapshot ObjQuerySnap   = await ObjQuery.GetSnapshotAsync();

                if (ObjQuerySnap != null && ObjQuerySnap.Documents.Count > 0)
                {
                    foreach (DocumentSnapshot docsnap in ObjQuerySnap.Documents)
                    {
                        Booking = docsnap.ConvertTo <MT_Patient_Booking>();
                        if (Booking.PB_Notifications != null)
                        {
                            if (Booking.PB_Patient_ID != null && Booking.PB_Patient_ID != "")
                            {
                                Query         PatientQuery        = Db.Collection("MT_PatientInfomation").WhereEqualTo("Patient_Is_Active", true).WhereEqualTo("Patient_Is_Deleted", false).WhereEqualTo("Patient_Unique_ID", Booking.PB_Patient_ID);
                                QuerySnapshot ObjPatientQuerySnap = await PatientQuery.GetSnapshotAsync();

                                if (ObjPatientQuerySnap != null)
                                {
                                    List <string> Namelist  = new List <string>();
                                    List <string> Emaillist = new List <string>();
                                    Patient = ObjPatientQuerySnap.Documents[0].ConvertTo <MT_PatientInfomation>();
                                    Email   = Patient.Patient_Email;
                                    Phone   = Patient.Patient_Primary_No;
                                    Name    = Patient.Patient_First_Name + " " + Patient.Patient_Middle_Name + " " + Patient.Patient_Last_Name;
                                    Namelist.Add(Name);
                                    Emaillist.Add(Email);
                                    BookingDate = Booking.PB_Booking_Date;
                                    foreach (MT_Notifications noti in Booking.PB_Notifications)
                                    {
                                        if (noti.NFT_Actions != null)
                                        {
                                            foreach (Notification_Action action in noti.NFT_Actions)
                                            {
                                                if (action.NFA_Status == "Pending")
                                                {
                                                    if (action.NFA_DayOrWeek == 0)
                                                    {
                                                        if (action.NFA_Be_Af == 0)
                                                        {
                                                            Days = (-1) * action.NFA_Days;
                                                        }
                                                        else if (action.NFA_Be_Af == 1)
                                                        {
                                                            Days = action.NFA_Days;
                                                        }
                                                    }
                                                    else if (action.NFA_DayOrWeek == 1)
                                                    {
                                                        if (action.NFA_Be_Af == 0)
                                                        {
                                                            Days = (-7) * action.NFA_Days;
                                                        }
                                                        else if (action.NFA_Be_Af == 1)
                                                        {
                                                            Days = 7 * action.NFA_Days;
                                                        }
                                                    }
                                                    NoticationSendingDay = BookingDate.AddDays(Days);
                                                    if (DateTime.Now.Date.ToString("MM/dd/yyyy") == NoticationSendingDay.Date.ToString("MM/dd/yyyy"))
                                                    {
                                                        TimeSpan NotificationTiming = TimeSpan.Parse(action.NFA_Timing);
                                                        TimeSpan timeOfDay          = DateTime.Now.TimeOfDay;
                                                        if (TimeSpan.Compare(timeOfDay, NotificationTiming) >= 0)
                                                        {
                                                            switch (action.NFA_Action_Type)
                                                            {
                                                            case "SMS":
                                                                Sms sms = new Sms();
                                                                sms.Receiver_Contact_No = Phone;
                                                                sms.Message_Body        = action.NFA_Message;
                                                                sms.Message_Date        = con.ConvertTimeZone(action.NFA_TimeZone, Convert.ToDateTime(DateTime.Now));
                                                                sms.Message_Title       = action.NFA_Action_Title;
                                                                SMSObj.SendSMS(sms);
                                                                Response = await UpdateAction(Booking.PB_Unique_ID, action.NFA_Unique_ID, Slug);

                                                                break;

                                                            case "Email":
                                                                Email email = new Email();
                                                                email.To_Name          = Namelist;
                                                                email.To_Email         = Emaillist;
                                                                email.PlainTextContent = "";
                                                                email.HtmlContent      = action.NFA_Message;
                                                                await EmailObj.Send(email);

                                                                Response = await UpdateAction(Booking.PB_Unique_ID, action.NFA_Unique_ID, Slug);

                                                                break;

                                                            case "Whatsapp":
                                                                Whatsapp whatsapp = new Whatsapp();
                                                                whatsapp.Receiver_Contact_No = Phone;
                                                                whatsapp.Message_Title       = action.NFA_Action_Title;
                                                                whatsapp.Message_Date        = con.ConvertTimeZone(action.NFA_TimeZone, Convert.ToDateTime(DateTime.Now));
                                                                whatsapp.Message_Body        = action.NFA_Message;
                                                                WhatsappObj.SendMessageWithWhatsapp(whatsapp);
                                                                Response = await UpdateAction(Booking.PB_Unique_ID, action.NFA_Unique_ID, Slug);

                                                                break;

                                                            case "Voice":
                                                                Voice voice = new Voice();
                                                                voice.Voice_Call_Date           = con.ConvertTimeZone(action.NFA_TimeZone, Convert.ToDateTime(DateTime.Now));
                                                                voice.Voice_Receiver_Name       = Patient.Patient_First_Name;
                                                                voice.Voice_Call_Body           = action.NFA_Message;
                                                                voice.Voice_Receiver_Contact_No = Phone;
                                                                VoiceObj.SetVoiceCall(voice);
                                                                Response = await UpdateAction(Booking.PB_Unique_ID, action.NFA_Unique_ID, Slug);

                                                                break;

                                                            default:
                                                                break;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    Response.Status  = con.StatusSuccess;
                    Response.Message = con.MessageSuccess;
                }
                else
                {
                    Response.Status  = con.StatusDNE;
                    Response.Message = con.MessageDNE;
                }
            }
            catch (Exception ex)
            {
                Response.Status  = con.StatusFailed;
                Response.Message = con.MessageFailed + ", Exception : " + ex.Message;
            }
            return(ConvertToJSON(Response));
        }