public Response <MessageDTO> Post([FromBody] MessageDTO msg) { try { using (VDEntities entities = new VDEntities()) { if (!string.IsNullOrEmpty(msg.SMS) && !string.IsNullOrEmpty(msg.MobileNumber)) { var dbReceiver = entities.Users.Where(x => x.MobileNumber == msg.MobileNumber).FirstOrDefault(); if (dbReceiver != null) { var response = UserSMS.SendSMS(dbReceiver.CountryCode, dbReceiver.MobileNumber, "", msg.SMS); UserSMS.addMessageToDB(dbReceiver.MobileNumber, response, msg.SMS, dbReceiver.ID); return(new Response <MessageDTO>(true, null, null)); } else { return(new Response <MessageDTO>(false, "The number " + msg.MobileNumber + " does not exist in our records", null)); } } else { return(new Response <MessageDTO>(false, "Please fill sms and mobile number text fields", null)); } } } catch (Exception ex) { return(new Response <MessageDTO>(false, GetMessageFromExceptionObject(ex), null)); } }
public Response <IEnumerable <ScheduleDTO> > SendSMSAlertToParent(int GapDays, int OnlineClinicId) { try { using (VDEntities entities = new VDEntities()) { List <Schedule> Schedules = GetAlertData(GapDays, OnlineClinicId, entities); var dbChildren = Schedules.Select(x => x.Child).Distinct().ToList(); foreach (var child in dbChildren) { var dbSchedules = Schedules.Where(x => x.ChildId == child.ID).ToList(); var doseName = ""; DateTime scheduleDate = new DateTime(); foreach (var schedule in dbSchedules) { doseName += schedule.Dose.Name + ", "; scheduleDate = schedule.Date; } UserSMS.ParentSMSAlert(doseName, scheduleDate, child); } List <ScheduleDTO> scheduleDtos = Mapper.Map <List <ScheduleDTO> >(Schedules); return(new Response <IEnumerable <ScheduleDTO> >(true, null, scheduleDtos)); } } catch (Exception ex) { return(new Response <IEnumerable <ScheduleDTO> >(false, GetMessageFromExceptionObject(ex), null)); } }
public Response <DoctorDTO> Post(DoctorDTO doctorDTO) { try { TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; doctorDTO.FirstName = textInfo.ToTitleCase(doctorDTO.FirstName); doctorDTO.LastName = textInfo.ToTitleCase(doctorDTO.LastName); doctorDTO.DisplayName = textInfo.ToTitleCase(doctorDTO.DisplayName); using (VDEntities entities = new VDEntities()) { // 1- send email to doctor UserEmail.DoctorEmail(doctorDTO); // 2- save User first User userDB = new User(); userDB.MobileNumber = doctorDTO.MobileNumber; userDB.Password = doctorDTO.Password; userDB.CountryCode = doctorDTO.CountryCode; userDB.UserType = "DOCTOR"; entities.Users.Add(userDB); entities.SaveChanges(); // 2- save Doctor Doctor doctorDB = Mapper.Map <Doctor>(doctorDTO); doctorDB.ValidUpto = null; doctorDB.UserID = userDB.ID; entities.Doctors.Add(doctorDB); entities.SaveChanges(); doctorDTO.ID = doctorDB.ID; //generate SMS and save it to the db UserSMS.DoctorSMS(doctorDTO); // 4- check if clinicDto exsist; then save clinic as well if (doctorDTO.ClinicDTO != null && !String.IsNullOrEmpty(doctorDTO.ClinicDTO.Name)) { doctorDTO.ClinicDTO.Name = textInfo.ToTitleCase(doctorDTO.ClinicDTO.Name); doctorDTO.ClinicDTO.DoctorID = doctorDB.ID; Clinic clinicDB = Mapper.Map <Clinic>(doctorDTO.ClinicDTO); entities.Clinics.Add(clinicDB); entities.SaveChanges(); doctorDTO.ClinicDTO.ID = clinicDB.ID; } } return(new Response <DoctorDTO>(true, null, doctorDTO)); } catch (Exception ex) { return(new Response <DoctorDTO>(false, GetMessageFromExceptionObject(ex), null)); } }
public Response <UserDTO> ForgotPassword(UserDTO userDTO) { try { using (VDEntities entities = new VDEntities()) { var dbUser = entities.Users.Where(x => x.MobileNumber == userDTO.MobileNumber) .Where(x => x.CountryCode == userDTO.CountryCode) .Where(ut => ut.UserType == userDTO.UserType).FirstOrDefault(); if (dbUser == null) { return(new Response <UserDTO>(false, "Invalid Mobile Number", null)); } if (dbUser.UserType.Equals("DOCTOR")) { var doctorDb = entities.Doctors.Where(x => x.UserID == dbUser.ID).FirstOrDefault(); if (doctorDb == null) { return(new Response <UserDTO>(false, "Invalid Mobile Number", null)); } else { UserEmail.DoctorForgotPassword(doctorDb); UserSMS.DoctorForgotPasswordSMS(doctorDb); return(new Response <UserDTO>(true, "your password has been sent to your mobile number and email address", null)); } } else if (dbUser.UserType.Equals("PARENT")) { var childDB = entities.Children.Where(x => x.UserID == dbUser.ID).FirstOrDefault(); if (childDB == null) { return(new Response <UserDTO>(false, "Invalid Mobile Number", null)); } else { UserEmail.ParentForgotPassword(childDB); UserSMS.ParentForgotPasswordSMS(childDB); return(new Response <UserDTO>(true, "your password has been sent to your mobile number and email address", null)); } } else { return(new Response <UserDTO>(false, "Please contact with admin", null)); } } } catch (Exception e) { return(new Response <UserDTO>(false, GetMessageFromExceptionObject(e), null)); } }
public Response <IEnumerable <ScheduleDTO> > SendSMSAlertToOneChild(int GapDays, int childId) { try { using (VDEntities entities = new VDEntities()) { IEnumerable <Schedule> Schedules = new List <Schedule>(); DateTime AddedDateTime = DateTime.UtcNow.AddHours(5).AddDays(GapDays); DateTime pakistanDate = DateTime.UtcNow.AddHours(5).Date; if (GapDays == 0) { Schedules = entities.Schedules.Include("Child").Include("Dose") .Where(sc => sc.ChildId == childId) .Where(sc => sc.Date == pakistanDate) .Where(sc => sc.IsDone == false) .OrderBy(x => x.Child.ID).ThenBy(y => y.Date).ToList <Schedule>(); } if (GapDays > 0) { Schedules = entities.Schedules.Include("Child").Include("Dose") .Where(sc => sc.ChildId == childId) .Where(sc => sc.IsDone == false) .Where(sc => sc.Date >= pakistanDate && sc.Date <= AddedDateTime) .OrderBy(x => x.Child.ID).ThenBy(y => y.Date).ToList <Schedule>(); } if (GapDays < 0) { Schedules = entities.Schedules.Include("Child").Include("Dose") .Where(sc => sc.ChildId == childId) .Where(sc => sc.IsDone == false) .Where(sc => sc.Date <= pakistanDate && sc.Date >= AddedDateTime) .OrderBy(x => x.Child.ID).ThenBy(y => y.Date).ToList <Schedule>(); } var doseName = ""; DateTime scheduleDate = new DateTime(); var dbChild = entities.Children.Where(x => x.ID == childId).FirstOrDefault(); foreach (var schedule in Schedules) { doseName += schedule.Dose.Name.Trim() + ", "; scheduleDate = schedule.Date; } UserSMS.ParentSMSAlert(doseName, scheduleDate, dbChild); List <ScheduleDTO> scheduleDtos = Mapper.Map <List <ScheduleDTO> >(Schedules); return(new Response <IEnumerable <ScheduleDTO> >(true, null, scheduleDtos)); } } catch (Exception ex) { return(new Response <IEnumerable <ScheduleDTO> >(false, GetMessageFromExceptionObject(ex), null)); } }
public Response <FollowUpDTO> SendSMSAlertToOneChild(int childId) { try { using (VDEntities entities = new VDEntities()) { var dbChildFollowup = entities.FollowUps.Where(x => x.ChildID == childId).OrderByDescending(x => x.ID).FirstOrDefault(); UserSMS.ParentFollowUpSMSAlert(dbChildFollowup); FollowUpDTO followupDTO = Mapper.Map <FollowUpDTO>(dbChildFollowup); return(new Response <FollowUpDTO>(true, null, followupDTO)); } } catch (Exception ex) { return(new Response <FollowUpDTO>(false, GetMessageFromExceptionObject(ex), null)); } }
public Response <List <FollowUpDTO> > SendSMSAlertToAllChildren(int GapDays, int doctorId) { try { using (VDEntities entities = new VDEntities()) { DateTime AddedDateTime = DateTime.UtcNow.AddHours(5).AddDays(GapDays); List <FollowUp> dbFollowUps = new List <FollowUp>(); if (GapDays == 0) { dbFollowUps = entities.FollowUps.Where(x => x.DoctorID == doctorId && x.NextVisitDate == DateTime.UtcNow.AddHours(5).Date) .OrderByDescending(x => x.ID).ToList(); } if (GapDays > 0) { dbFollowUps = entities.FollowUps.Where(x => x.DoctorID == doctorId && x.NextVisitDate >= DateTime.UtcNow.AddHours(5).Date&& x.NextVisitDate <= AddedDateTime) .OrderByDescending(x => x.ID).ToList(); } if (GapDays < 0) { dbFollowUps = entities.FollowUps.Where(x => x.DoctorID == doctorId && x.NextVisitDate <= DateTime.UtcNow.AddHours(5).Date&& x.NextVisitDate >= AddedDateTime) .OrderByDescending(x => x.ID).ToList(); } foreach (FollowUp followup in dbFollowUps) { UserSMS.ParentFollowUpSMSAlert(followup); } List <FollowUpDTO> dbFollowDTOs = Mapper.Map <List <FollowUpDTO> >(dbFollowUps); return(new Response <List <FollowUpDTO> >(true, null, dbFollowDTOs)); } } catch (Exception ex) { return(new Response <List <FollowUpDTO> >(false, GetMessageFromExceptionObject(ex), null)); } }
public string AlipayNotify() { HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"]; HttpRequestBase request = context.Request; SortedDictionary <string, string> sPara = GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.Verify(sPara, request["notify_id"], request["sign"]); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 string out_trade_no = request["out_trade_no"]; //支付宝交易号 string trade_no = request["trade_no"]; //交易状态 string trade_status = request["trade_status"]; if (request["trade_status"] == "TRADE_FINISHED") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 using (Entity entity = new Entity()) { Order order = entity.Order.Find(out_trade_no); if ((order.State & 2) == 0) { order.State |= 2; OrderDetailsModel orderDetailsModel = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderDetailsModel>(order.Detail); foreach (var v in orderDetailsModel.OrderDetailModelList) { entity.Good.Find(v.GoodID).SalesVolume++; entity.GoodChild.Find(v.GoodChildID).SalesVolume++; } OrderLog orderLog = new OrderLog(); orderLog.OrderID = order.OrderID; orderLog.State = 2; orderLog.CreateTime = DateTime.Now; orderLog.Mark = "支付宝返回成功"; entity.OrderLog.Add(orderLog); order.OrderExtend.ThirdPartyPaymentNumber = trade_no; entity.SaveChanges(); } } } else if (request["trade_status"] == "TRADE_SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //付款完成后,支付宝系统发送该交易状态通知 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 using (Entity entity = new Entity()) { Order order = entity.Order.Find(out_trade_no); if ((order.State & 2) == 0) { order.State |= 2; OrderDetailsModel orderDetailsModel = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderDetailsModel>(order.Detail); foreach (var v in orderDetailsModel.OrderDetailModelList) { entity.Good.Find(v.GoodID).SalesVolume++; entity.GoodChild.Find(v.GoodChildID).SalesVolume++; } OrderLog orderLog = new OrderLog(); orderLog.OrderID = order.OrderID; orderLog.State = 2; orderLog.CreateTime = DateTime.Now; orderLog.Mark = "支付宝返回成功"; entity.OrderLog.Add(orderLog); order.OrderExtend.ThirdPartyPaymentNumber = trade_no; entity.SaveChanges(); ThreadPool.QueueUserWorkItem(delegate(object a) { string tt = @"有用户已经支付订单 " + order.OrderID + "金额 " + order.OrderExtend.PaymentPrice + " 请尽快发货"; UserSMS userSMS = new UserSMS() { Tel = ConfigurationManager.AppSettings["SMSAdmin"] }; Random random = new Random(); userSMS.SerialNumber = DateTime.Now.ToString("yyyyMMddhhmmssfff" + random.Next(100, 999).ToString()); string bb = SMS.sendSMS(userSMS.Tel, tt, userSMS.SerialNumber); }); } } } else { OrderLog orderLog = new OrderLog(); orderLog.OrderID = out_trade_no; orderLog.CreateTime = DateTime.Now; orderLog.Mark = "支付宝返回" + request["trade_status"]; using (Entity entity = new Entity()) { entity.OrderLog.Add(orderLog); entity.SaveChanges(); } } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— return("success"); //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else//验证失败 { return("fail"); } } else { return("无通知参数"); } }
protected void DetailsView1_ItemUpdating(object sender, DetailsViewUpdateEventArgs e) { try { using (Entity entity = new Entity()) { var order = entity.Order.Find(DetailsView1.DataKey.Value.ToString()); var CheckBoxList_State = ((CheckBoxList)DetailsView1.FindControl("CheckBoxList_State")); order.State = 0; int fahuoTemp = order.State & 4; foreach (ListItem item in CheckBoxList_State.Items) { if (item.Selected) { order.State = order.State | Convert.ToInt32(item.Value); } } if (fahuoTemp == 0) { if ((order.State & 4) > 0) { OrderLog orderLog = new OrderLog(); orderLog.OrderID = order.OrderID; orderLog.State = 2; orderLog.CreateTime = DateTime.Now; orderLog.Mark = "卖家发货"; orderLog.UserId = Convert.ToInt32(Session["userID"]); entity.OrderLog.Add(orderLog); if (order.UserID != null) { string text = string.Format("您的订单{0}已经发货", order.OrderID); UserLetterBLL.Create(Convert.ToInt32(Session["userID"]), order.UserID.Value, text, 1 | 8); ThreadPool.QueueUserWorkItem(delegate(object a) { string tt = @"您的订单 " + order.OrderID + " 已经发货,不日则到。请注意查收您的订单 "; using (Entity entity1 = new Entity()) { UserSMS userSMS = new UserSMS() { Tel = entity1.User.Find(order.UserID).Tel }; string bb = SMS.sendSMS(userSMS.Tel, tt, userSMS.SerialNumber); } }); } } } var DropDownList1 = ((DropDownList)DetailsView1.FindControl("DropDownList1")); order.LogisticsCompany = DropDownList1.SelectedValue; if (e.NewValues["LogisticsNumber"] != null) { order.LogisticsNumber = e.NewValues["LogisticsNumber"].ToString(); } order.UpdateTime = DateTime.Now; entity.SaveChanges(); Response.Redirect("OrderDetail.aspx?OrderID=" + order.OrderID); } } catch (Exception exception) { string error = exception.GetErrorMessage().Replace("'", "\\'").Replace("\"", "\\\"").Replace("\r\n", "\\r\\n"); ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", string.Format("<script>alert('{0}')</script>", error)); } }