public ActionResult Create(Patient user)
 {
     try
     {
         Role role = db.Roles.FirstOrDefault(r => r.RoleName == "User");
         user.Roles = new List<Role>() { role };
         user.CreatedDate = DateTime.UtcNow;
         user.ProfilePicture = "photo.jpg";
         user.IsActive = true;
         int getLastId = db.Users.Max(item => item.UserId);
         user.UserId = getLastId;
         user.Password = accBusiness.GeneratePassword();
         db.Patients.Add(user);
         db.SaveChanges();
     }
     catch (DbEntityValidationException e)
     {
         foreach (var eve in e.EntityValidationErrors)
         {
             Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                 eve.Entry.Entity.GetType().Name, eve.Entry.State);
             foreach (var ve in eve.ValidationErrors)
             {
                 Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                     ve.PropertyName, ve.ErrorMessage);
             }
         }
     }
     Thread emailBackground = new Thread(delegate()
     {
         var subject = "Tạo tài khoản bệnh nhân";
         var body = "<html>" +
                           "<body>" +
                               "<h2>Hệ thống đã tạo cho bạn một tài khoản với các thông tin: </h2>" +
                               "<p>Mật khẩu: " + user.Password + "</p>" +
                           "</body>" +
                       "</html>";
         accBusiness.SendMail(user.Email, subject, body);
     });
     emailBackground.IsBackground = true;
     emailBackground.Start();
     return RedirectToAction("Index");
 }
        public ActionResult CreatePatient(Patient patient)
        {
            try
            {
                Role role = _db.Roles.FirstOrDefault(r => r.RoleName == "User");
                patient.Roles = new List<Role>();
                patient.Roles.Add(role);
                patient.CreatedDate = DateTime.UtcNow;
                patient.ProfilePicture = "photo.jpg";
                var email = Request.Params["Email"];
                string emailPatient = Convert.ToString(email);
                patient.Email = emailPatient;
                var first = Request.Params["FirstName"];
                string firstname = Convert.ToString(first);
                patient.FirstName = firstname;
                var last = Request.Params["LastName"];
                string lastname = Convert.ToString(last);
                patient.LastName = lastname;
                var ethnicity = Request.Params["Ethnicity"];
                string ethnicityP = Convert.ToString(ethnicity);
                patient.Ethnicity = ethnicityP;
                var nationality = Request.Params["Nationality"];
                string nationalityP = Convert.ToString(nationality);
                patient.Nationality = nationalityP;
                patient.IsActive = true;
                patient.Password = accBusiness.GeneratePassword();
                _db.Users.Add(patient);
                _db.SaveChanges();
                int getLastId = _db.Users.Max(item => item.UserId);
                PersonalHealthRecord personal = new PersonalHealthRecord();
                personal.PatientId = getLastId;
                var height = Request.Params["height"];
                if (height == "")
                {
                    personal.Height = 0;
                }
                else
                {
                    double heightPatient = double.Parse(height);
                    personal.Height = heightPatient;
                }

                var weight = Request.Params["weight"];
                if (weight == "")
                {
                    personal.Weight = 0;
                }
                else
                {
                    double weightPatient = double.Parse(weight);
                    personal.Height = weightPatient;
                }

                var eye = Request.Params["eye"];
                string eyeColor = eye.ToString();

                var hair = Request.Params["hair"];
                string hairColor = hair.ToString();

                var blood = Request.Params["blood"];
                string bloodType = blood.ToString();

                var alcoholWeek = Request.Params["alcoholweek"];
                if (alcoholWeek == "")
                {
                    personal.AlcoholPerWeek = 0;
                }
                else
                {
                    double alcoholPerWeek = double.Parse(alcoholWeek);
                    personal.AlcoholPerWeek = alcoholPerWeek;
                }

                var alcoholYear = Request.Params["alcoholyear"];
                if (alcoholYear == "")
                {
                    personal.AlcoholNumOfYear = 0;
                }
                else
                {
                    int alcoholNumberOfYear = Convert.ToInt32(alcoholYear);
                    personal.AlcoholNumOfYear = alcoholNumberOfYear;
                }

                var smokeYear = Request.Params["smokeyear"];
                if (smokeYear == "")
                {
                    personal.SmokePackPerWeek = 0;
                }
                else
                {
                    int smokeNumberOfYear = Convert.ToInt32(smokeYear);
                    personal.SmokeNumOfYear = smokeNumberOfYear;
                }

                var smokeWeek = Request.Params["smokeweek"];
                if (smokeWeek == "")
                {
                    personal.SmokePackPerWeek = 0;
                }
                else
                {
                    double smokePerWeek = double.Parse(smokeWeek);
                    personal.SmokePackPerWeek = smokePerWeek;
                }

                var sport = Request.Params["sport"];
                string sportName = sport.ToString();

                var sportWeek = Request.Params["sportweek"];
                if (sportWeek == "")
                {
                    personal.SportPerWeek = 0;
                }
                else
                {
                    int sportPerWeek = Convert.ToInt32(sportWeek);
                    personal.SportPerWeek = sportPerWeek;
                }

                var exercise = Request.Params["exercise"];
                string exerciseType = exercise.ToString();

                var exerciseWeek = Request.Params["exerciseweek"];
                if (exerciseWeek == "")
                {
                    personal.ExercisePerWeek = 0;
                }
                else
                {
                    int exercisePerWeek = Convert.ToInt32(exerciseWeek);
                    personal.ExercisePerWeek = exercisePerWeek;
                }
                _db.PersonalHealthRecords.Add(personal);
                _db.SaveChanges();
                Patient newPatient = new Patient();
                newPatient.UserId = getLastId;
                _db.Patients.Add(newPatient);
                _db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
            }
            // Create thread to send mail (background)
            Thread emailBackground = new Thread(delegate()
            {
                var subject = "Tạo tài khoản bệnh nhân";
                var body = "<html>" +
                                  "<body>" +
                                      "<h2>Hệ thống đã tạo cho bạn một tài khoản với các thông tin: </h2>" +
                                      "<p>Mật khẩu: " + patient.Password + "</p>" +
                                  "</body>" +
                              "</html>";
                accBusiness.SendMail(patient.Email, subject, body);
            });
            emailBackground.IsBackground = true;
            emailBackground.Start();
            return RedirectToAction("Index");
        }
        public ActionResult EditPatient(Patient patient, HttpPostedFileBase file)
        {
            if (file == null)
            {
                var filename = Request.Params["profile"];
                string profile = Convert.ToString(filename);
                patient.ProfilePicture = profile;
            }
            else if (file != null)
            {
                var fileName = Path.GetFileName(file.FileName);
                var path = HttpContext.Server.MapPath("~/Content/Image/ProfilePicture/" + fileName);
                var dbPath = string.Format("/Content/Image/ProfilePicture/" + fileName);
                file.SaveAs(path);
                patient.ProfilePicture = fileName;
            }

            var first = Request.Params["FirstName"];
            string firstname = Convert.ToString(first);
            patient.FirstName = firstname;
            var last = Request.Params["LastName"];
            string lastname = Convert.ToString(last);
            patient.LastName = lastname;
            var ethnicity = Request.Params["Ethnicity"];
            string ethnicityP = Convert.ToString(ethnicity);
            patient.Ethnicity = ethnicityP;
            var nationality = Request.Params["Nationality"];
            string nationalityP = Convert.ToString(nationality);
            patient.Nationality = nationalityP;
            patient.IsActive = true;
            _db.Entry(patient).State = EntityState.Modified;
            _db.SaveChanges();

            var id = Request.Params["patientid"];
            int patientid = Convert.ToInt32(id);

            var height = Request.Params["height"];
            double heightPatient = double.Parse(height);

            var weight = Request.Params["weight"];
            double weightPatient = double.Parse(weight);

            var eye = Request.Params["eye"];
            string eyeColor = eye.ToString();

            var hair = Request.Params["hair"];
            string hairColor = hair.ToString();

            var blood = Request.Params["blood"];
            string bloodType = blood.ToString();

            var alcoholWeek = Request.Params["alcoholweek"];
            double alcoholPerWeek = double.Parse(alcoholWeek);

            var alcoholYear = Request.Params["alcoholyear"];
            int alcoholNumberOfYear = Convert.ToInt32(alcoholYear);

            var smokeYear = Request.Params["smokeyear"];
            int smokeNumberOfYear = Convert.ToInt32(smokeYear);

            var smokeWeek = Request.Params["smokeweek"];
            double smokePerWeek = double.Parse(smokeWeek);

            var sport = Request.Params["sport"];
            string sportName = sport.ToString();

            var sportWeek = Request.Params["sportweek"];
            int sportPerWeek = Convert.ToInt32(sportWeek);

            var exercise = Request.Params["exercise"];
            string exerciseType = exercise.ToString();

            var exerciseWeek = Request.Params["exerciseweek"];
            int exercisePerWeek = Convert.ToInt32(exerciseWeek);
            PersonalHealthRecord personal = new PersonalHealthRecord()
            {
                PatientId = patientid,
                Height = heightPatient,
                Weight = weightPatient,
                EyeColor = eyeColor,
                HairColor = hairColor,
                BloodType = bloodType,
                AlcoholPerWeek = alcoholPerWeek,
                AlcoholNumOfYear = alcoholNumberOfYear,
                IsBeer = true,
                SmokeNumOfYear = smokeNumberOfYear,
                SmokePackPerWeek = smokePerWeek,
                SportName = sportName,
                SportPerWeek = sportPerWeek,
                ExerciseType = exerciseType,
                ExercisePerWeek = exercisePerWeek
            };
            _db.Entry(personal).State = EntityState.Modified;
            _db.SaveChanges();
            return RedirectToAction("Index");
        }
 public ActionResult Edit(Patient user, HttpPostedFileBase file)
 {
     if (ModelState.IsValid)
     {
         if (file == null)
         {
             var filename = Request.Params["profile"];
             string profile = Convert.ToString(filename);
             user.ProfilePicture = profile;
         }
         else if (file != null)
         {
             var fileName = Path.GetFileName(file.FileName);
             var path = HttpContext.Server.MapPath("~/Content/Image/ProfilePicture/" + fileName);
             var dbPath = string.Format("/Content/Image/ProfilePicture/" + fileName);
             file.SaveAs(path);
             user.ProfilePicture = fileName;
         }
         //user.Roles.Add(role);
         user.IsActive = true;
         db.Entry(user).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     return PartialView("_Edit", user);
 }
        public void SendMessageTo(string toUsername, string message)
        {
            business = new ConversationBusiness(_db);
            Debug.WriteLine(toUsername + " " + message);
            var id = Context.ConnectionId;
            var fromUserDetail = ConnectedUsers.Where(x => x.ConnectionId == id).FirstOrDefault();
            var fromUser = _db.Users.Where(x => x.Username.Equals(fromUserDetail.Username)).FirstOrDefault();
            var toUser = _db.Users.Where(x => x.Username.Equals(toUsername)).FirstOrDefault();
            var toUserDetail = ConnectedUsers.Where(x => x.Username.Equals(toUsername)).FirstOrDefault();

            var doctor = _db.Doctors.Where(u => u.Username.Equals(fromUser.Username)).FirstOrDefault();
            var patient = new Patient();
            if (doctor == null)
            {
                doctor = _db.Doctors.Where(u => u.Username.Equals(toUser.Username)).FirstOrDefault();
                patient = _db.Patients.Where(u => u.Username.Equals(fromUser.Username)).FirstOrDefault();
            }
            else
            {
                patient = _db.Patients.Where(u => u.Username.Equals(toUser.Username)).FirstOrDefault();
            }
            if (doctor != null && patient != null)
            {
                //Store in database
                Conversation conversation = _db.Conversations.Where(
                    x => (x.PatientId == patient.UserId && x.DoctorId == doctor.UserId))
                .OrderByDescending(x => x.DateConsulted).FirstOrDefault();

                Debug.WriteLine("DoctorId = " + toUser.UserId, "  PatientId = " + fromUser.UserId);
                if (conversation == null)
                {
                    conversation = new Conversation
                    {
                        DoctorId = toUser.UserId,
                        PatientId = fromUser.UserId,
                        DateConsulted = DateTime.Now,
                        LatestTimeFromDoctor = DateTime.Now,
                        LatestTimeFromPatient = DateTime.Now
                    };
                    _db.Conversations.Add(conversation);
                }

                conversation.LatestTimeFromPatient = DateTime.Now;
                conversation.LatestContentFromPatient = message;
                conversation.IsRead = false;

                ConversationDetail conversationDetail = new ConversationDetail
                {
                    UserId = fromUser.UserId,
                    Content = message,
                    Conversation = conversation,
                    CreatedDate = DateTime.Now,
                    IsRead = false
                };

                MessageDetail messageDetail = new MessageDetail
                {
                    Content = message,
                    Username = fromUser.Username,
                    CreatedDate = String.Format("{0:H:mm:ss}", DateTime.Now),
                    IsRead = false
                };

                _db.ConversationDetails.Add(conversationDetail);
                _db.SaveChanges();

                //Notify Receiver
                var receivers = ConnectedUsers.Where(x => x.Username == toUsername).ToList();
                if (receivers != null)
                {
                    foreach (var receiver in receivers)
                    {
                        receiver.CountMessageUnRead = business.CountMessageUnRead(toUser);
                        if (receiver != null && receiver.ConnectionId != null)
                            Clients.Client(receiver.ConnectionId).messageReceived(fromUserDetail, toUserDetail, messageDetail);
                    }
                }

                //Notify Caller
                Clients.Caller.messageReceived(fromUserDetail, toUserDetail, messageDetail);
            }
        }
        public void GetMessageList(string username)
        {
            business = new ConversationBusiness(_db);
            var id = Context.ConnectionId;
            var fromUserDetail = ConnectedUsers.Where(x => x.ConnectionId == id).FirstOrDefault();
            var fromUser = _db.Users.Where(x => x.Username.Equals(fromUserDetail.Username)).FirstOrDefault();
            var toUser = _db.Users.Where(x => x.Username.Equals(username)).FirstOrDefault();
            var toUserDetail = ConnectedUsers.Where(x => x.Username.Equals(username)).FirstOrDefault();

            //Check if toUserDetail is not online yet
            if (toUserDetail == null)
            {
                toUserDetail = new UserDetail
                {
                    FullName = toUser.FullName,
                    Username = toUser.Username,
                    IsOnline = false,
                    ProfilePicture = toUser.ProfilePicture
                };
            }

            var doctor = _db.Doctors.Where(u => u.Username.Equals(fromUser.Username)).FirstOrDefault();
            var patient = new Patient();
            if (doctor == null)
            {
                doctor = _db.Doctors.Where(u => u.Username.Equals(toUser.Username)).FirstOrDefault();
                patient = _db.Patients.Where(u => u.Username.Equals(fromUser.Username)).FirstOrDefault();
            }
            else
            {
                patient = _db.Patients.Where(u => u.Username.Equals(toUser.Username)).FirstOrDefault();
            }
            if (doctor != null && patient != null)
            {
                Debug.WriteLine("Patient: " + patient.Username + "  " + "Doctor: " + doctor.Username);
                DoctorDetail doctorDetail = Doctors.Where(u => u.Username.Equals(doctor.Username)).FirstOrDefault();
                var newestConversation = _db.Conversations.Where(
                    con => (con.PatientId == patient.UserId) && (con.DoctorId == doctor.UserId))
                    .OrderByDescending(con => con.DateConsulted).FirstOrDefault();

                if (newestConversation != null)
                {
                    var conversationDetails = _db.ConversationDetails.Where(cd => cd.Conversation.ConversationId == newestConversation.ConversationId).
                    OrderBy(cd => cd.CreatedDate).ToList();

                    //Convert conversationDetails to MessageDetails
                    var messageDetails = new List<MessageDetail>();
                    foreach (var conversationDetail in conversationDetails)
                    {
                        String date = (DateTime.Now.Subtract(conversationDetail.CreatedDate).Days) > 1 ?
                            String.Format("{0:HH:mm:ss}", conversationDetail.CreatedDate) :
                            String.Format("{0:dd/mm/yyyy HH:mm:ss}", conversationDetail.CreatedDate);
                        MessageDetail messageDetail = new MessageDetail
                        {
                            Content = conversationDetail.Content,
                            CreatedDate = date,
                            Username = conversationDetail.User.Username,
                            IsRead = conversationDetail.IsRead
                        };
                        messageDetails.Add(messageDetail);
                    }
                    Debug.WriteLine(messageDetails.Count);
                    if (fromUserDetail.Username.Equals(doctor.Username))
                    {
                        business.MarkConversationAsRead(newestConversation);
                        this.ConnectDoctor(doctor.Username);
                    }
                    Clients.Caller.onGetMessageList(fromUserDetail, toUserDetail, messageDetails);
                }
                else
                {
                    Clients.Caller.onGetMessageList(fromUserDetail, toUserDetail, "");
                }
            }
        }
        public void SendMessageTo(string toEmail, string message)
        {
            business = new ConversationBusiness(_db);
            var id = Context.ConnectionId;
            var fromUserDetail = ConnectedUsers.Where(x => x.ConnectionId == id).FirstOrDefault();
            var fromUser = _db.Users.Where(x => x.Email.Equals(fromUserDetail.Email)).FirstOrDefault();
            var toUser = _db.Users.Where(x => x.Email.Equals(toEmail)).FirstOrDefault();
            var toUserDetail = ConnectedUsers.Where(x => x.Email.Equals(toEmail)).FirstOrDefault();

            var doctor = _db.Doctors.Where(u => u.Email.Equals(fromUser.Email)).FirstOrDefault();
            var patient = new Patient();
            if (doctor == null)
            {
                doctor = _db.Doctors.Where(u => u.Email.Equals(toUser.Email)).FirstOrDefault();
                patient = _db.Patients.Where(u => u.Email.Equals(fromUser.Email)).FirstOrDefault();
            }
            else
            {
                patient = _db.Patients.Where(u => u.Email.Equals(toUser.Email)).FirstOrDefault();
            }
            if (doctor != null && patient != null)
            {
                //Check if toUserDetail is not online yet
                if (toUserDetail == null)
                {
                    toUserDetail = helper.ConvertUserToUserDetail(toUser);
                }

                helper.SyncUserDetailWhenSendMessage(fromUserDetail, toEmail, message, ConnectedUsers);

                MessageDetail messageDetail = helper.SaveMessageToDatabase(fromUser, patient, doctor, message);

                //Notify Receiver
                var receivers = ConnectedUsers.Where(x => x.Email == toEmail).ToList();
                foreach (var receiver in receivers)
                {
                    if (receiver != null && receiver.ConnectionId != null)
                    {
                        receiver.CountMessageUnRead = business.CountMessageUnRead(toUser);
                        Clients.Client(receiver.ConnectionId).messageReceived(fromUserDetail, toUserDetail, messageDetail);

                        //If receiver is docter
                        if (toEmail.Equals(doctor.Email)) {
                            var userDetailList = helper.GetLastestConversationList(receiver.Email, ConnectedUsers);
                            receiver.ConversationList = userDetailList;
                            Clients.Client(receiver.ConnectionId).onGetConversationList(receiver.ConversationList);
                        }
                    }
                }

                //Notify Caller
                Clients.Caller.messageReceived(fromUserDetail, toUserDetail, messageDetail);
            }
        }
        public void GetLastestChatMessage(string toEmail)
        {
            var id = Context.ConnectionId;
            var fromUserDetail = ConnectedUsers.Where(x => x.ConnectionId == id).FirstOrDefault();
            var fromUser = _db.Users.Where(x => x.Email.Equals(fromUserDetail.Email)).FirstOrDefault();
            var toUser = _db.Users.Where(x => x.Email.Equals(toEmail)).FirstOrDefault();
            var toUserDetail = ConnectedUsers.Where(x => x.Email.Equals(toEmail)).FirstOrDefault();

            var doctor = _db.Doctors.Where(u => u.Email.Equals(fromUser.Email)).FirstOrDefault();
            var patient = new Patient();
            if (doctor == null)
            {
                doctor = _db.Doctors.Where(u => u.Email.Equals(toUser.Email)).FirstOrDefault();
                patient = _db.Patients.Where(u => u.Email.Equals(fromUser.Email)).FirstOrDefault();
            }
            else
            {
                patient = _db.Patients.Where(u => u.Email.Equals(toUser.Email)).FirstOrDefault();
            }

            if (doctor != null && patient != null)
            {
                var conversation = _db.Conversations.Where(x => x.DoctorId == doctor.UserId && x.PatientId == patient.UserId).FirstOrDefault();
                var lastestConversationDetail = _db.ConversationDetails.Where(x => x.ConversationId == conversation.ConversationId).OrderByDescending(x => x.CreatedDate).FirstOrDefault();

                MessageDetail messageDetail = new MessageDetail
                {
                    Content = lastestConversationDetail.Content,
                    Attachment = lastestConversationDetail.Attachment,
                    CreatedDate = String.Format("{0:dd/MM/yyyy HH:mm:ss}", lastestConversationDetail.CreatedDate),
                    Email = lastestConversationDetail.User.Email,
                    IsRead = lastestConversationDetail.IsRead
                };

                //Check if toUserDetail is not online yet
                if (toUserDetail == null)
                {
                    toUserDetail = helper.ConvertUserToUserDetail(toUser);
                }

                //Notify Receiver
                var receiver = ConnectedUsers.Where(x => x.Email == toEmail).FirstOrDefault();

                if (receiver != null && receiver.ConnectionId != null)
                {
                    receiver.CountMessageUnRead = business.CountMessageUnRead(toUser);
                    Clients.Client(receiver.ConnectionId).messageReceived(fromUserDetail, toUserDetail, messageDetail);
                }

                //Notify Caller
                Clients.Caller.messageReceived(fromUserDetail, toUserDetail, messageDetail);
            }
        }
        public JsonResult Upload(string fromEmail, string toEmail)
        {
            for (int i = 0; i < Request.Files.Count; i++)
            {
                HttpPostedFileBase file = Request.Files[i]; //Uploaded file
                //Use the following properties to get file's name, size and MIMEType
                if (file != null)
                {
                    int fileSize = file.ContentLength;
                    string fileName = file.FileName;
                    string mimeType = file.ContentType;
                    System.IO.Stream fileContent = file.InputStream;
                    //To save file, use SaveAs method
                    file.SaveAs(Server.MapPath("~/Content/Upload/") + fileName); //File will be saved in application root
                    var fromUser = _db.Users.Where(x => x.Email.Equals(fromEmail)).FirstOrDefault();
                    var toUser = _db.Users.Where(x => x.Email.Equals(toEmail)).FirstOrDefault();
                    var doctor = _db.Doctors.Where(u => u.Email.Equals(fromUser.Email)).FirstOrDefault();
                    var patient = new Patient();
                    if (doctor == null)
                    {
                        doctor = _db.Doctors.Where(u => u.Email.Equals(toUser.Email)).FirstOrDefault();
                        patient = _db.Patients.Where(u => u.Email.Equals(fromUser.Email)).FirstOrDefault();
                    }
                    else
                    {
                        patient = _db.Patients.Where(u => u.Email.Equals(toUser.Email)).FirstOrDefault();
                    }

                    Conversation conversation = _db.Conversations.Where(x => (x.PatientId == patient.UserId && x.DoctorId == doctor.UserId)).FirstOrDefault();

                    if (conversation == null)
                    {
                        conversation = new Conversation
                        {
                            DoctorId = doctor.UserId,
                            PatientId = patient.UserId,
                            LatestTimeFromDoctor = DateTime.Now,
                            LatestTimeFromPatient = DateTime.Now
                        };
                        _db.Conversations.Add(conversation);
                    }

                    if (fromUser.Email == patient.Email)
                    {
                        conversation.LatestTimeFromPatient = DateTime.Now;
                        conversation.LatestContentFromPatient = fileName;
                        conversation.IsDoctorRead = false;
                    }
                    else
                    {
                        conversation.LatestTimeFromDoctor = DateTime.Now;
                        conversation.LatestContentFromDoctor = fileName;
                        conversation.IsPatientRead = false;
                    }
                    String date = String.Format("{0:dd/MM/yyyy HH:mm:ss}", DateTime.Now);
                    IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);
                    ConversationDetail conversationDetail = new ConversationDetail
                    {
                        UserId = fromUser.UserId,
                        Attachment = fileName,
                        Conversation = conversation,
                        CreatedDate = DateTime.Parse(date, culture, System.Globalization.DateTimeStyles.AssumeLocal),
                        IsRead = false
                    };
                    _db.ConversationDetails.Add(conversationDetail);
                    _db.SaveChanges();
                }

            }
            return Json("Đã upload " + Request.Files.Count + " dữ liệu");
        }