Ejemplo n.º 1
0
        public async Task <IHttpActionResult> NewRating()
        {
            string root     = HttpContext.Current.Server.MapPath("~/Temp");
            var    provider = new MultipartFormDataStreamProvider(root);

            long     user_id = 0;
            string   rate = "", patient_id = "", appointment_id = "";
            DateTime dtNow = DateTime.Now;

            try
            {
                await Request.Content.ReadAsMultipartAsync(provider);

                foreach (var key in provider.FormData.AllKeys)
                {
                    foreach (var val in provider.FormData.GetValues(key))
                    {
                        // user_id, patient_id, rate
                        bool bTemp1 = false, bTemp3 = false;
                        switch (key)
                        {
                        case "user_id":
                            IsRequired(key, val, 1);
                            bTemp1 = long.TryParse(val, out user_id);
                            break;

                        case "patient_id":
                            IsRequired(key, val, 1);
                            //bTemp = long.TryParse(val, out patient_id);
                            patient_id = val;
                            break;

                        case "rate":
                            IsRequired(key, val, 1);
                            //bTemp3 = int.TryParse(val, out rate);
                            rate = val;
                            break;

                        case "appointment_id":
                            IsRequired(key, val, 1);
                            appointment_id = val;

                            break;

                        default:
                            return(Json(new { message = "Invalid parameter name: " + key, success = false }));
                        }
                    }
                }

                IsRequired("user_id", user_id.ToString(), 2);
                //IsRequired("patient_id", patient_id.ToString(), 3);
                IsRequired("appointment_id", appointment_id, 3);
                IsRequired("rate", rate.ToString(), 3);
                if (haserror)
                {
                    return(Json(new { data = new string[] { }, message = errmsg, success = false }));
                }

                long appt;
                bool bTemp = long.TryParse(appointment_id, out appt);

                var ext_rating = db.APPOINTMENT_ext.Where(a => a.rel_APPOINTMENT_id == appt && a.attr_name == "patient_rating").FirstOrDefault();
                if (ext_rating != null)
                {
                    db.APPOINTMENT_ext.Remove(ext_rating);
                    db.SaveChanges();
                }

                APPOINTMENT_ext pat_ext = new APPOINTMENT_ext()
                {
                    rel_APPOINTMENT_id = appt,
                    attr_name          = "patient_rating",
                    dname = "Patient Rating",
                    value = rate.ToString(),
                    rel_ref_datatype_id = 3,
                    create_by__USER_id  = user_id,
                    dt_create           = dtNow
                };
                db.APPOINTMENT_ext.Add(pat_ext);
                db.SaveChanges();


                //[{"id":26,"patient_id":38,"appointment_id":16,"rating":"7"}]
                //var json = Newtonsoft.Json.Linq.JArray.Parse("[{\"appointment_id\" :" + appointment_id + "}]");
                return(Json(new { data = new string[] { }, message = "New Patient rating saved successfully.", success = true }));
            }
            catch (Exception ex)
            {
                return(Json(new { data = new string[] { }, message = ex.Message, success = false }));
            }
        }
Ejemplo n.º 2
0
        public IHttpActionResult updateAppointmentSched(long user_id     = 0,
                                                        string doctor_id = "", string appointment_id = "", string review = "", int rate = 0)
        {
            string root     = HttpContext.Current.Server.MapPath("~/Temp");
            var    provider = new MultipartFormDataStreamProvider(root);

            //long user_id = 0, doctor_id = 0;
            //string review = "", appointment_id = "";
            //int rate = 0;
            DateTime dtNow = DateTime.Now;

            try
            {
                //await Request.Content.ReadAsMultipartAsync(provider);
                //foreach (var key in provider.FormData.AllKeys)
                //{
                //    foreach (var val in provider.FormData.GetValues(key))
                //    {
                //        // user_id, patient_id, rate
                //        bool bTemp = false;
                //        switch (key)
                //        {
                //            case "user_id":
                //                IsRequired(key, val, 1);
                //                bTemp = long.TryParse(val, out user_id);
                //                break;
                //            case "doctor_id":
                //                //IsRequired(key, val, 1);
                //                bTemp = long.TryParse(val, out doctor_id);
                //                break;

                //            case "appointment_id":
                //                IsRequired(key, val, 1);
                //                appointment_id = val;
                //                break;

                //            case "review":
                //                IsRequired(key, val, 1);
                //                //bTemp = int.TryParse(val, out rate);
                //                review = val;
                //                break;

                //            case "rate":
                //                IsRequired(key, val, 1);
                //                bTemp = int.TryParse(val, out rate);
                //                break;

                //            default:
                //                return Json(new { message = "Invalid parameter name: " + key, success = false });
                //        }
                //    }
                //}

                // IsRequired("doctor_id", doctor_id.ToString(), 3);
                IsRequired("appointment_id", appointment_id, 3);
                IsRequired("rate", rate.ToString(), 3);
                IsRequired("review", review.ToString(), 2);
                if (haserror)
                {
                    return(Json(new { data = new string[] { }, message = errmsg, success = false }));
                }


                //var doc_ext = db.APPOINTMENT_ext.Where(a => a.rel_DOCTOR_id == doctor_id && a.attr_name == "rating");
                long appt_id_new = 0;
                bool bAppt       = long.TryParse(appointment_id, out appt_id_new);
                var  appt_ext    = db.APPOINTMENT_ext.Where(a => a.rel_APPOINTMENT_id == appt_id_new);

                if (appt_ext.Count() > 0)
                {
                    bool hasRate = false, hasReview = false;
                    foreach (var i in appt_ext)
                    {
                        if (i.attr_name == "doctor_rating")
                        {
                            i.value = rate.ToString();
                            i.update_by__USER_id = user_id;
                            i.dt_update          = dtNow;
                            db.Entry(i).State    = System.Data.Entity.EntityState.Modified;
                            hasRate = true;
                        }
                        if (i.attr_name == "doctor_review")
                        {
                            i.value = review.ToString();
                            i.update_by__USER_id = user_id;
                            i.dt_update          = dtNow;
                            db.Entry(i).State    = System.Data.Entity.EntityState.Modified;
                            hasReview            = true;
                        }
                    }

                    //long appt_id = appt_ext.FirstOrDefault().id;

                    if (!string.IsNullOrEmpty(rate.ToString()) && !hasRate)
                    {
                        APPOINTMENT_ext doc_ext = new APPOINTMENT_ext()
                        {
                            rel_APPOINTMENT_id = appt_id_new,
                            attr_name          = "doctor_rating",
                            dname = "Doctor Rating",
                            value = rate.ToString(),
                            rel_ref_datatype_id = 3,
                            create_by__USER_id  = user_id,
                            dt_create           = dtNow
                        };
                        db.APPOINTMENT_ext.Add(doc_ext);
                    }

                    if (!string.IsNullOrEmpty(review) && !hasReview)
                    {
                        APPOINTMENT_ext doc_rev = new APPOINTMENT_ext()
                        {
                            rel_APPOINTMENT_id = appt_id_new,
                            attr_name          = "doctor_review",
                            dname = "Doctor Review",
                            value = review.ToString(),
                            rel_ref_datatype_id = 3,
                            create_by__USER_id  = user_id,
                            dt_create           = dtNow
                        };
                        db.APPOINTMENT_ext.Add(doc_rev);
                    }


                    db.SaveChanges();
                }
                else
                {
                    return(Json(new { data = "", message = "No matching record found.", success = false }));
                }


                //DOCTOR_ext doc_ext = new DOCTOR_ext()
                //{
                //    rel_DOCTOR_id = doctor_id,
                //    attr_name = "rating",
                //    dname = "Rating",
                //    value = rate.ToString(),
                //    rel_ref_datatype_id = 3
                //};
                //db.DOCTOR_ext.Add(doc_ext);


                return(Json(new { data = new string[] { }, message = "Doctor rating saved successfully.", success = true }));
            }
            catch (Exception ex)
            {
                return(Json(new { data = new string[] { }, message = ex.Message, success = false }));
            }
        }