Esempio n. 1
0
 public static List <DoctorInfo> GetListOfDoctors(UserToken userToken)
 {
     if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.Username.Equals(userToken.userInfo.Username))))
     {
         try
         {
             using (var db = new DatabaseMedAssistEntities())
             {
                 List <DoctorInfo> doctorInfos = new List <DoctorInfo>();
                 var query = from dbDoctor in db.DatabaseDoctors
                             select dbDoctor;
                 foreach (var item in query)
                 {
                     DoctorInfo doctorInfo = new DoctorInfo(item.DoctorName, item.DoctorID.GetValueOrDefault(), Convert.ToInt32(item.DoctorAge), item.DoctorPicture, item.DoctorHospital,
                                                            item.DoctorType == "Psikolog" ? DoctorType.Psikolog : DoctorType.DokterUmum);
                     doctorInfos.Add(doctorInfo);
                 }
                 doctorInfos.OrderBy(item => item.DoctorHospital);
                 return(doctorInfos);
             }
         }
         catch (Exception ex)
         {
             //ui error happened
             return(null);
         }
     }
     else
     {
         //textbox login expired to UI
         return(null);
     }
 }
Esempio n. 2
0
 public static List <DatabaseUser> GetListOfPharmacy(UserToken userToken)
 {
     if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.Username.Equals(userToken.userInfo.Username))))
     {
         try
         {
             using (var db = new DatabaseMedAssistEntities())
             {
                 var query = from pharmacy in db.DatabaseUsers
                             where pharmacy.TipeUser == "Apotek"
                             select pharmacy;
                 List <DatabaseUser> pharmacies = query.ToList();
                 return(pharmacies);
             }
         }
         catch (Exception ex)
         {
             //ui error happened
             return(null);
         }
     }
     else
     {
         //textbox login expired to UI
         return(null);
     }
 }
Esempio n. 3
0
 public void Cancel(UserToken userToken, string selection, string detail)
 {
     if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.UserID.Equals(userToken.userInfo.UserID))))
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = db.DatabaseRequests.SingleOrDefault(k => k.SenderID == userToken.userInfo.UserID && k.Request == selection && k.RequestDetail == detail && k.IsLocked == false);
             if (query != null)
             {
                 if (query.Request != "Ambulans" && query.Request != "Dokter")
                 {
                     string[] medicineDetail    = query.RequestDetail.Split(',');
                     var      cancelledMedicine = db.DatabasePharmacyStocks.SingleOrDefault(k => k.ApotekID == query.ReceiverID && k.Obat == query.Request);
                     cancelledMedicine.StokObat += Convert.ToInt32(medicineDetail[0]);
                 }
                 UpdateDatabase.UpdateRequest(query);
             }
             else
             {
                 //textbox request cannot be canceled to UI
             }
         }
     }
     else
     {
         //textbox login expired to UI
     }
 }
Esempio n. 4
0
 public static void RedeemCode(string voucherCode, UserToken userToken)
 {
     if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.Username.Equals(userToken.userInfo.Username))))
     {
         try
         {
             using (var db = new DatabaseMedAssistEntities())
             {
                 var query = db.DatabaseVouchers.SingleOrDefault(item => item.VoucherID.ToString() == voucherCode);
                 if (query != null)
                 {
                     var user = db.DatabaseUsers.SingleOrDefault(item => item.UserID == userToken.userInfo.UserID);
                     user.SaldoUser += query.Nominal;
                     db.DatabaseVouchers.Remove(query);
                     db.SaveChanges();
                 }
                 else
                 {
                     //ui code not found
                 }
             }
         }
         catch (Exception ex)
         {
             //ui error happened
         }
     }
     else
     {
         //textbox login expired to UI
     }
 }
        public static UserToken Authenticate(string username, string password)
        {
            using (var db = new DatabaseMedAssistEntities())
            {
                var query = from user in db.DatabaseUsers
                            where string.Compare(username, user.Username, true) == 0 && user.Password == password
                            select user;
                if (!query.Any())
                {
                    throw new Exception("Incorrect username or password");
                }
            }
            UserToken userToken = new UserToken
            {
                ID = Guid.NewGuid()
            };

            userToken.userInfo.Username = username;
            userToken.userInfo.Password = password;
            var findDupe = from users in SavedUsers
                           where string.Compare(users.userInfo.Username, username, true) == 0
                           select users;

            foreach (var item in findDupe)
            {
                SavedUsers.Remove(item);
            }
            SavedUsers.Add(userToken);
            return(userToken);
        }
Esempio n. 6
0
 public static List <MedicineRequest> StartListeningForMedicineRequests(UserToken userToken)
 {
     try
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = from request in db.DatabaseRequests
                         where request.ReceiverID == userToken.userInfo.UserID
                         select request;
             var medicine = from requests in query
                            group requests by requests.SenderID;
             List <Medicine>        medicines        = new List <Medicine>();
             List <MedicineRequest> medicineRequests = new List <MedicineRequest>();
             int id = 1;
             foreach (var item in medicine)
             {
                 var             sender          = db.DatabaseUsers.SingleOrDefault(k => k.UserID == item.Key);
                 MedicineRequest medicineRequest = new MedicineRequest
                 {
                     ID         = id,
                     IsLocked   = true,
                     SenderName = sender.Nama,
                 };
                 int currentItem = 0;
                 foreach (var request in item)
                 {
                     if (currentItem == 0)
                     {
                         GeoCoordinate requestLocation = new GeoCoordinate(Convert.ToDouble(request.LocationLatitude), Convert.ToDouble(request.LocationLongitude));
                         medicineRequest.Location       = requestLocation;
                         medicineRequest.LocationDetail = request.LocationDetail;
                     }
                     string[] details = request.RequestDetail.Split(',');
                     Medicine order   = new Medicine
                     {
                         MedicineName = request.Request,
                         Quantity     = Convert.ToInt32(details[0]),
                         Price        = Convert.ToDouble(details[1])
                     };
                     medicines.Add(order);
                     currentItem++;
                     var result = db.DatabaseRequests.SingleOrDefault(k => k.SenderID == item.Key && k.Request == request.Request);
                     result.IsLocked = true;
                 }
                 medicineRequest.Medicines = medicines;
                 medicineRequests.Add(medicineRequest);
             }
             db.SaveChanges();
             return(medicineRequests);
         }
     }
     catch (Exception ex)
     {
         //ui error happened
         return(null);
     }
 }
Esempio n. 7
0
 public static void RequestMedicine(UserToken userToken, GeoCoordinate location, string locationDetail, IEnumerable <Medicine> medicines, Guid pharmacyID, bool onlinePayment)
 {
     if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.Username.Equals(userToken.userInfo.Username))))
     {
         try
         {
             using (var db = new DatabaseMedAssistEntities())
             {
                 double total            = 0;
                 var    selectedPharmacy = db.DatabaseUsers.SingleOrDefault(k => k.UserID == pharmacyID);
                 foreach (var item in medicines)
                 {
                     DatabaseRequest databaseRequest = new DatabaseRequest
                     {
                         IsLocked          = false,
                         SenderID          = userToken.userInfo.UserID,
                         ReceiverID        = selectedPharmacy.UserID,
                         LocationLatitude  = Convert.ToSingle(location.Latitude),
                         LocationLongitude = Convert.ToSingle(location.Longitude),
                         LocationDetail    = locationDetail,
                         Request           = item.MedicineName,
                         RequestDetail     = item.Quantity.ToString() + "," + (item.Price * item.Quantity).ToString() + "," + (onlinePayment == true ? "OnlinePayment" : "CashPayment")
                     };
                     total += item.Price * item.Quantity;
                     var reduceStock = db.DatabasePharmacyStocks.SingleOrDefault(k => k.Obat == item.MedicineName);
                     reduceStock.StokObat -= item.Quantity;
                     db.DatabaseRequests.Add(databaseRequest);
                 }
                 if (onlinePayment == true)
                 {
                     var user = db.DatabaseUsers.SingleOrDefault(k => k.UserID == userToken.userInfo.UserID);
                     if (user.SaldoUser < Convert.ToDecimal(total))
                     {
                         //ui not enough balance
                         return;
                     }
                     else
                     {
                         user.SaldoUser -= Convert.ToDecimal(total);
                     }
                 }
                 db.SaveChanges();
             }
         }
         catch (Exception ex)
         {
             //ui error happened
         }
     }
     else
     {
         //textbox login expired to UI
     }
 }
Esempio n. 8
0
 public static void RegisterUser(UserInfo userInfo, string alamat, string tempatLahir, DateTime tanggalLahir, string nomorTelepon, GeoCoordinate geoCoordinate)
 {
     using (var db = new DatabaseMedAssistEntities())
     {
         DatabaseUser databaseUser = new DatabaseUser
         {
             UserID       = userInfo.UserID,
             Nama         = userInfo.Name,
             Username     = userInfo.Username,
             Password     = userInfo.Password,
             Email        = userInfo.EmailAddress,
             FotoProfil   = userInfo.ProfileImage,
             TipeUser     = userInfo.tipeUser.ToString(),
             Alamat       = alamat,
             TempatLahir  = tempatLahir,
             TanggalLahir = tanggalLahir,
             NomorTelepon = Convert.ToInt32(nomorTelepon),
         };
         if (geoCoordinate != null)
         {
             databaseUser.LatitudeUser  = Convert.ToSingle(geoCoordinate.Latitude);
             databaseUser.LongitudeUser = Convert.ToSingle(geoCoordinate.Longitude);
         }
         db.DatabaseUsers.Add(databaseUser);
         if (databaseUser.TipeUser == "RumahSakit")
         {
             DatabaseAmbulance databaseAmbulance = new DatabaseAmbulance
             {
                 HealthcareID        = userInfo.UserID,
                 JumlahAmbulans      = 0,
                 HealthcareLatitude  = Convert.ToSingle(geoCoordinate.Latitude),
                 HealthcareLongitude = Convert.ToSingle(geoCoordinate.Longitude)
             };
             db.DatabaseAmbulances.Add(databaseAmbulance);
         }
         else if (databaseUser.TipeUser == "Apotek")
         {
             var query = from medicines in db.DatabaseMedicines
                         select medicines;
             foreach (var item in query)
             {
                 DatabasePharmacyStock databasePharmacyStock = new DatabasePharmacyStock
                 {
                     ApotekID = userInfo.UserID,
                     Obat     = item.NamaObat,
                     StokObat = 0
                 };
                 db.DatabasePharmacyStocks.Add(databasePharmacyStock);
             }
         }
         db.SaveChanges();
     }
 }
Esempio n. 9
0
        public static void UpdateRequest(DatabaseRequest databaseRequest)
        {
            using (var db = new DatabaseMedAssistEntities())
            {
                var      item          = db.DatabaseRequests.SingleOrDefault(k => k == databaseRequest);
                string[] requestDetail = item.RequestDetail.Split(',');
                if (item.Request == "Dokter")
                {
                    var    doctor     = db.DatabaseDoctors.SingleOrDefault(k => k.DoctorName == requestDetail[0]);
                    string requestDay = DateTime.Parse(requestDetail[1]).DayOfWeek.ToString();
                    switch (requestDay)
                    {
                    case "Monday":
                        doctor.AppointmentMonday = false;
                        break;

                    case "Tuesday":
                        doctor.AppointmentTuesday = false;
                        break;

                    case "Wednesday":
                        doctor.AppointmentWednesday = false;
                        break;

                    case "Thursday":
                        doctor.AppointmentThursday = false;
                        break;

                    case "Friday":
                        doctor.AppointmentFriday = false;
                        break;

                    case "Saturday":
                        doctor.AppointmentSaturday = false;
                        break;

                    case "Sunday":
                        doctor.AppointmentSunday = false;
                        break;
                    }
                }
                else if (item.Request == "Ambulans")
                {
                    var ambulance = db.DatabaseAmbulances.SingleOrDefault(k => k.HealthcareID == item.ReceiverID);
                    ambulance.JumlahAmbulans++;
                }
                db.DatabaseRequests.Remove(item);
                db.SaveChanges();
            }
        }
Esempio n. 10
0
 public static void StartListeningForDoctorRequests(UserToken userToken)
 {
     using (var db = new DatabaseMedAssistEntities())
     {
         var query = from request in db.DatabaseRequests
                     where request.Request == "Dokter" && request.ReceiverID == userToken.userInfo.UserID
                     select request;
         foreach (var item in query)
         {
             item.IsLocked = true;
         }
         db.SaveChanges();
         //fill list on ui based on query
     }
 }
Esempio n. 11
0
 public void ChangeProfileImage(byte[] newProfileImage)
 {
     using (var db = new DatabaseMedAssistEntities())
     {
         var query = from users in db.DatabaseUsers
                     where string.Compare(Username, users.Username, true) == 0
                     select users;
         foreach (var item in query)
         {
             item.FotoProfil = newProfileImage;
         }
         db.SaveChanges();
     }
     ProfileImage = newProfileImage;
 }
Esempio n. 12
0
 public void ChangePassword(string newPassword)
 {
     using (var db = new DatabaseMedAssistEntities())
     {
         var query = from users in db.DatabaseUsers
                     where string.Compare(Username, users.Username, true) == 0
                     select users;
         foreach (var item in query)
         {
             item.Password = newPassword;
         }
         db.SaveChanges();
     }
     Password = newPassword;
 }
Esempio n. 13
0
 public static void AddAmbulance(DatabaseAmbulance ambulance)
 {
     try
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = db.DatabaseAmbulances.SingleOrDefault(k => k.HealthcareID == ambulance.HealthcareID);
             query.JumlahAmbulans += ambulance.JumlahAmbulans;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
     }
 }
Esempio n. 14
0
 public static void AddStock(DatabasePharmacyStock stock)
 {
     try
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = db.DatabasePharmacyStocks.SingleOrDefault(k => k.ApotekID == stock.ApotekID && k.Obat == stock.Obat);
             query.StokObat += stock.StokObat;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
     }
 }
Esempio n. 15
0
 public static void ChangeUserInfo(UserToken userToken, DatabaseUser user)
 {
     try
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = db.DatabaseUsers.SingleOrDefault(k => k.UserID == userToken.userInfo.UserID);
             query = user;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         //ui error happened
     }
 }
Esempio n. 16
0
 public static void ChangeDoctorInfo(DatabaseDoctor doctor, string name, string hospital)
 {
     try
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = db.DatabaseDoctors.SingleOrDefault(k => k.DoctorName.Contains(name) && k.DoctorHospital == hospital);
             query = doctor;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         //ui error happened
     }
 }
Esempio n. 17
0
 public static DatabaseUser FindUser(UserToken userToken)
 {
     try
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = db.DatabaseUsers.SingleOrDefault(k => k.UserID == userToken.userInfo.UserID);
             return(query);
         }
     }
     catch (Exception ex)
     {
         //ui error happened
         return(null);
     }
 }
Esempio n. 18
0
 public static DatabaseDoctor FindDoctor(string name, string hospital)
 {
     try
     {
         using (var db = new DatabaseMedAssistEntities())
         {
             var query = db.DatabaseDoctors.SingleOrDefault(k => k.DoctorName.Contains(name) && k.DoctorHospital == hospital);
             return(query);
         }
     }
     catch (Exception ex)
     {
         //ui error happened
         return(null);
     }
 }
Esempio n. 19
0
 public static List <Medicine> GetListOfMedicine(UserToken userToken, Guid pharmacyID)
 {
     if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.Username.Equals(userToken.userInfo.Username))))
     {
         try
         {
             using (var db = new DatabaseMedAssistEntities())
             {
                 List <Medicine> medicinesInPharmacy = new List <Medicine>();
                 var             query = from stocks in db.DatabasePharmacyStocks
                                         where stocks.ApotekID == pharmacyID
                                         select stocks;
                 foreach (var item in query)
                 {
                     var      medicineInfo = db.DatabaseMedicines.SingleOrDefault(k => k.NamaObat == item.Obat);
                     Medicine medicine     = new Medicine
                     {
                         MedicineName  = item.Obat,
                         Quantity      = item.StokObat.GetValueOrDefault(),
                         MedicineImage = medicineInfo.GambarObat,
                         MedicineType  = medicineInfo.JenisObat,
                         Benefit       = medicineInfo.Manfaat,
                         Description   = medicineInfo.Keterangan,
                         Price         = Convert.ToDouble(medicineInfo.HargaObat)
                     };
                     medicinesInPharmacy.Add(medicine);
                 }
                 return(medicinesInPharmacy);
             }
         }
         catch (Exception ex)
         {
             //ui error happened
             return(null);
         }
     }
     else
     {
         //textbox login expired to UI
         return(null);
     }
 }
Esempio n. 20
0
 public static void RecoverPassword(string emailAddress)
 {
     using (var db = new DatabaseMedAssistEntities())
     {
         var query = from user in db.DatabaseUsers
                     where string.Compare(emailAddress, user.Email, true) == 0
                     select user;
         if (!query.Any())
         {
             //ui email is not registered
             return;
         }
     }
     try
     {
         MailMessage mail       = new MailMessage();
         SmtpClient  smtpClient = new SmtpClient("smtp.gmail.com");
         mail.From = new MailAddress("*****@*****.**");
         mail.To.Add(emailAddress);
         mail.Subject = "Recover Password Asistensi Medis";
         var    recoveryRandomizer = new int[6];
         Random random             = new Random();
         for (int i = 0; i < 6; i++)
         {
             recoveryRandomizer[i] = random.Next(10);
         }
         string recoveryCode = Convert.ToString(recoveryRandomizer);
         mail.Body              = string.Format("Your recovery code for your account in Asistensi Medis is {0}", recoveryCode);
         smtpClient.Port        = 587;
         smtpClient.Credentials = new System.Net.NetworkCredential("*****@*****.**", "myNAME...isCHANG!!1");
         smtpClient.EnableSsl   = true;
         smtpClient.Send(mail);
         //pop up with textbox for recovery and recoveryCode to check
         //if success(code match), open textbox to type new password, then update database
         //else reset textbox and allow next attempt(no max, wont send another code)
     }
     catch (Exception ex)
     {
         //ui error happened
     }
 }
Esempio n. 21
0
 public static void StartListeningForAmbulanceRequests(UserToken userToken)
 {
     using (var db = new DatabaseMedAssistEntities())
     {
         var authority = from check in db.DatabaseUsers
                         where check.UserID == userToken.userInfo.UserID && check.TipeUser == "RumahSakit"
                         select check;
         if (authority.Any())
         {
             var query = from request in db.DatabaseRequests
                         where request.Request == "Ambulance" && request.ReceiverID == userToken.userInfo.UserID
                         select request;
             var ambulanceCount = db.DatabaseAmbulances.SingleOrDefault(k => k.HealthcareID == userToken.userInfo.UserID);
             int ambulanceLeft  = ambulanceCount.JumlahAmbulans.GetValueOrDefault();
             int count          = query.Count();
             foreach (var item in query)
             {
                 if (ambulanceLeft > 0)
                 {
                     item.IsLocked = true;
                     ambulanceLeft--;
                     count--;
                 }
                 if (ambulanceLeft == 0 || count == 0)
                 {
                     //fill list on ui based on items in query
                     db.SaveChanges();
                     break;
                 }
             }
         }
         else
         {
             throw new UnauthorizedException("Staf Pusat Kesehatan");
         }
     }
 }
Esempio n. 22
0
 public static void RequestAmbulance(UserToken userToken, GeoCoordinate location, string locationDetail)
 {
     if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.Username.Equals(userToken.userInfo.Username))))
     {
         try
         {
             using (var db = new DatabaseMedAssistEntities())
             {
                 var query = from ambulance in db.DatabaseAmbulances
                             where ambulance.JumlahAmbulans > 0
                             select ambulance;
                 var             selectedAmbulance = query.OrderBy(item => GetDistance(Convert.ToDouble(item.HealthcareLatitude), Convert.ToDouble(item.HealthcareLongitude), location)).First();
                 DatabaseRequest databaseRequest   = new DatabaseRequest
                 {
                     IsLocked          = false,
                     SenderID          = userToken.userInfo.UserID,
                     ReceiverID        = selectedAmbulance.HealthcareID,
                     LocationLatitude  = Convert.ToSingle(location.Latitude),
                     LocationLongitude = Convert.ToSingle(location.Longitude),
                     LocationDetail    = locationDetail,
                     Request           = "Ambulans"
                 };
                 selectedAmbulance.JumlahAmbulans--;
                 db.DatabaseRequests.Add(databaseRequest);
                 db.SaveChanges();
             }
         }
         catch (Exception ex)
         {
             //ui error happened
         }
     }
     else
     {
         //textbox login expired to UI
     }
 }
Esempio n. 23
0
 public static void RegisterDoctor(DoctorInfo doctorInfo, bool[] workday)
 {
     using (var db = new DatabaseMedAssistEntities())
     {
         DatabaseDoctor databaseDoctor = new DatabaseDoctor
         {
             DoctorID             = doctorInfo.DoctorID,
             DoctorName           = doctorInfo.DoctorName,
             DoctorAge            = doctorInfo.DoctorAge,
             DoctorHospital       = doctorInfo.DoctorHospital,
             DoctorPicture        = doctorInfo.DoctorPicture,
             DoctorType           = doctorInfo.doctorType.ToString(),
             AppointmentMonday    = workday[0],
             AppointmentTuesday   = workday[1],
             AppointmentWednesday = workday[2],
             AppointmentThursday  = workday[3],
             AppointmentFriday    = workday[4],
             AppointmentSaturday  = workday[5],
             AppointmentSunday    = workday[6]
         };
         db.DatabaseDoctors.Add(databaseDoctor);
         db.SaveChanges();
     }
 }
Esempio n. 24
0
        public static void RequestDoctor(UserToken userToken, GeoCoordinate location, string locationDetail, DoctorType doctorType, DateTime appointmentDate, DateTime requestDate)
        {
            if (userToken.ID.Equals(AuthenticationManager.SavedUsers.Find(item => item.userInfo.Username.Equals(userToken.userInfo.Username))))
            {
                try
                {
                    using (var db = new DatabaseMedAssistEntities())
                    {
                        string day   = appointmentDate.DayOfWeek.ToString();
                        var    query = from dbDoctor in db.DatabaseDoctors
                                       where dbDoctor.DoctorType == doctorType.ToString() &&
                                       (day == "Monday" ? dbDoctor.AppointmentMonday :
                                        day == "Tuesday" ? dbDoctor.AppointmentTuesday :
                                        day == "Wednesday" ? dbDoctor.AppointmentWednesday :
                                        day == "Thursday" ? dbDoctor.AppointmentThursday :
                                        day == "Friday" ? dbDoctor.AppointmentFriday :
                                        day == "Saturday" ? dbDoctor.AppointmentSaturday : dbDoctor.AppointmentSunday) == false
                                       select dbDoctor;
                        int count = query.Count();
                        if (count == 0)
                        {
                            //ui doctor not available
                        }
                        else
                        {
                            var        selectedDoctor = query.OrderBy(item => GetDistance(Convert.ToDouble(item.HospitalLatitude), Convert.ToDouble(item.HospitalLongitude), location)).ThenByDescending(freeday => Convert.ToInt16(freeday.AppointmentMonday) + Convert.ToInt16(freeday.AppointmentTuesday) + Convert.ToInt16(freeday.AppointmentWednesday) + Convert.ToInt16(freeday.AppointmentThursday) + Convert.ToInt16(freeday.AppointmentFriday) + Convert.ToInt16(freeday.AppointmentSaturday) + Convert.ToInt16(freeday.AppointmentSunday)).First();
                            DoctorInfo doctorInfo     = new DoctorInfo(selectedDoctor.DoctorName, selectedDoctor.DoctorID.GetValueOrDefault(), Convert.ToInt32(selectedDoctor.DoctorAge), selectedDoctor.DoctorPicture, selectedDoctor.DoctorHospital,
                                                                       selectedDoctor.DoctorType == "Psikolog" ? DoctorType.Psikolog : DoctorType.DokterUmum);
                            var             healthcare      = db.DatabaseUsers.SingleOrDefault(k => k.Nama == selectedDoctor.DoctorHospital);
                            DatabaseRequest databaseRequest = new DatabaseRequest
                            {
                                IsLocked          = false,
                                SenderID          = userToken.userInfo.UserID,
                                ReceiverID        = healthcare.UserID,
                                LocationLatitude  = Convert.ToSingle(location.Latitude),
                                LocationLongitude = Convert.ToSingle(location.Longitude),
                                LocationDetail    = locationDetail,
                                Request           = "Dokter",
                                RequestDetail     = selectedDoctor.DoctorID.ToString() + "," + appointmentDate.ToShortDateString() + "," + requestDate.ToShortDateString()
                            };
                            switch (day)
                            {
                            case "Monday":
                                selectedDoctor.AppointmentMonday = true;
                                break;

                            case "Tuesday":
                                selectedDoctor.AppointmentTuesday = true;
                                break;

                            case "Wednesday":
                                selectedDoctor.AppointmentWednesday = true;
                                break;

                            case "Thursday":
                                selectedDoctor.AppointmentThursday = true;
                                break;

                            case "Friday":
                                selectedDoctor.AppointmentFriday = true;
                                break;

                            case "Saturday":
                                selectedDoctor.AppointmentSaturday = true;
                                break;

                            case "Sunday":
                                selectedDoctor.AppointmentSunday = true;
                                break;
                            }
                            db.DatabaseRequests.Add(databaseRequest);
                            db.SaveChanges();
                        }
                    }
                }
                catch (Exception ex)
                {
                    //ui error happened
                }
            }
            else
            {
                //textbox login expired to UI
            }
        }