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 })); } }
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 })); } }