private void ConsultarAnosDisponiveis(HttpContext context) { AgendasAno agendasAno = new AgendasAno(); JavaScriptSerializer serializer = new JavaScriptSerializer(); ReturnJSON <List <Int32> > returnJSON = new ReturnJSON <List <Int32> >(); String retorno = null; try { List <Int32> anosDisponiveis = new AgendasAnoRepository().AnosDisponiveis(); returnJSON.Entity = anosDisponiveis; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.SUCCESS); context.Response.StatusCode = 200; } catch (Exception e) { Log.Create(e); Email.Send("Agendamento de congelação - falha na aplicação", e); returnJSON.Message = "Não foi possível recuperar os registros."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.ERROR); context.Response.StatusCode = 500; } retorno = serializer.Serialize(returnJSON); context.Response.ContentType = "text/json"; context.Response.ContentEncoding = Encoding.UTF8; context.Response.Write(retorno); }
public JsonResult DeleteMessage(int messageID) { CheckUserData(out int userID, out int userAccess); ReturnJSON returnJSON = new ReturnJSON() { isOK = false, msg = string.Empty }; if (userID == 0) { returnJSON.msg += "<br/> * 請先登入"; } else { try { var message = messageBoardEntities.Message.Find(messageID); message.MessageStatus = false; messageBoardEntities.SaveChanges(); returnJSON.msg = "文章刪除成功"; returnJSON.isOK = true; } catch (Exception err) { LogTool.DoErrorLog($"#{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff")}:{err.Message}\r\n"); returnJSON.msg += "<br/> * 刪除文章時發生錯誤"; } } return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
private void ConsultarAgendasAno(HttpContext context) { AgendasAno agendasAno = new AgendasAno(); JavaScriptSerializer serializer = new JavaScriptSerializer(); ReturnJSON <AgendasAno> returnJSON = new ReturnJSON <AgendasAno>(); String retorno = null; try { String json = new StreamReader(context.Request.InputStream).ReadToEnd(); agendasAno = (AgendasAno)serializer.Deserialize <AgendasAno>(json); agendasAno = new AgendasAnoRepository().ObterAgendasAno(new AgendasAno() { Ano = agendasAno.Ano }); returnJSON.Entity = agendasAno; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.SUCCESS); context.Response.StatusCode = 200; } catch (Exception e) { Log.Create(e); Email.Send("Agendamento de congelação - falha na aplicação", e); returnJSON.Message = "Não foi possível recuperar os registros."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.ERROR); context.Response.StatusCode = 500; } retorno = serializer.Serialize(returnJSON); context.Response.ContentType = "text/json"; context.Response.ContentEncoding = Encoding.UTF8; context.Response.Write(retorno); }
public JsonResult AddMessage(string content, int majorID) { CheckUserData(out int userID, out int userAccess); List <HttpPostedFileBase> postFile = new List <HttpPostedFileBase>(); ReturnJSON returnJSON = new ReturnJSON() { isOK = false, msg = string.Empty }; returnJSON.msg = CheckCreateMesaage(content, userID); if (Request.Files.Count > 0) { postFile.Add(Request.Files[0]); var fileCheck = PicTool.CheckUplaodFiles(postFile[0], @"\.(?i:jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga|svg|jpeg2000)$", 1); if (!fileCheck.Item1) { foreach (var item in fileCheck.Item2) { returnJSON.msg += $"<br/> * {item}"; } } } if (string.IsNullOrWhiteSpace(returnJSON.msg)) { try { Message message; if (majorID == 0) // 建立新主題 { MajorMessageList majorMessage = InsertMajorMessage(userID); InsertMessage(content, userID, majorMessage.MajorID, out message); } else { // 回覆留言 InsertMessage(content, userID, majorID, out message); } // 儲存圖片 if (postFile.Count > 0) { PicTool.SaveMessagePic(postFile[0], userID, message.MessageID); } returnJSON.isOK = true; returnJSON.msg = "文章新增成功"; } catch (Exception err) { LogTool.DoErrorLog($"#{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff")}:{err.Message}\r\n"); returnJSON.msg = "<br/> * 儲存時發生錯誤"; } } return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
public JsonResult isUserLogined() { var userLogin = userTool.GetLoginedUser(HttpContext.Request); ReturnJSON returnJSON = new ReturnJSON() { isOK = userLogin != null, msg = userLogin == null ? "使用者已經被登出" : "" }; return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
public JsonResult UserCheck(string pw) { pw = HttpUtility.UrlDecode(pw); var userCheckResult = userTool.UserPWCorrect(HttpContext.Request, pw); ReturnJSON returnJSON = new ReturnJSON() { isOK = userCheckResult.Item1, data = userCheckResult.Item2?.Select(r => new { r.UserIcon, r.UserID, r.UserName, r.UserEmail }), msg = userCheckResult.Item1 ? "密碼檢驗正確" : "密碼檢驗失敗" }; return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
public JsonResult CheckUserNameEmail(string userName, string userEmail) { ReturnJSON returnJSON = new ReturnJSON() { isOK = false, msg = string.Empty }; returnJSON.isOK = userTool.isUserEmailExist(HttpUtility.UrlDecode(userName), HttpUtility.UrlDecode(userEmail)); returnJSON.msg = returnJSON.isOK ? "匹配正確,請重新設定密碼" : "使用者名稱和信箱並不匹配"; return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
public ActionResult UserRegister(string userAccount, string userPW1, string userPW2, string userEmail) { ReturnJSON returnJSON = new ReturnJSON(); List <string> errorList = new List <string>(); bool isRegisterOK = false; string returnMsg = "註冊失敗"; if (Request.Files.Count == 0) { errorList.Add("請上傳頭像圖檔"); } else { HttpPostedFileBase postFile = Request.Files[0]; var fileCheck = PicTool.CheckUplaodFiles(postFile, @"\.(?i:jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga|svg|jpeg2000)$", 1); if (!fileCheck.Item1) { foreach (var item in fileCheck.Item2) { errorList.Add(item); } } } if (!errorList.Any()) { HttpPostedFileBase postFile = Request.Files[0]; userAccount = HttpUtility.UrlDecode(userAccount); userPW1 = HttpUtility.UrlDecode(userPW1); userPW2 = HttpUtility.UrlDecode(userPW2); userEmail = HttpUtility.UrlDecode(userEmail); var registerResult = userTool.RegisterUser(userAccount, userPW1, userPW2, userEmail); isRegisterOK = registerResult.Item1; errorList = registerResult.Item2; returnMsg = registerResult.Item3; if (registerResult.Item1) { PicTool.SaveUserPic(postFile, registerResult.Item4.UserID); } } returnJSON = new ReturnJSON() { isOK = isRegisterOK, errorList = errorList, msg = returnMsg }; return(Json(returnJSON)); }
public ActionResult CheckUserEmail(string userEmail) { if (userEmail == null || userEmail == "") { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReturnJSON returnJSON = new ReturnJSON() { isOK = userTool.isNotExistEmail(HttpUtility.UrlDecode(userEmail)) }; return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
private void Salvar(HttpContext context) { Model.Entities.MedicoExecucaoAgenda medicoExecucaoAgenda = new Model.Entities.MedicoExecucaoAgenda(); JavaScriptSerializer serializer = new JavaScriptSerializer(); ReturnJSON <Model.Entities.MedicoExecucaoAgenda> returnJSON = new ReturnJSON <Model.Entities.MedicoExecucaoAgenda>(); String retorno = null; try { String json = new StreamReader(context.Request.InputStream).ReadToEnd(); medicoExecucaoAgenda = (Model.Entities.MedicoExecucaoAgenda)serializer.Deserialize <Model.Entities.MedicoExecucaoAgenda>(json); // Registro em edição? if (medicoExecucaoAgenda.MedicoExecucaoAgendaID.HasValue && medicoExecucaoAgenda.MedicoExecucaoAgendaID > 0) { new MedicoExecucaoAgendaRepository().Update(medicoExecucaoAgenda); } else { new MedicoExecucaoAgendaRepository().Create(medicoExecucaoAgenda); } returnJSON.Message = "Registro salvo com sucesso."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.SUCCESS); context.Response.StatusCode = 201; } catch (Exception e) { Log.Create(e); Email.Send("Agendamento de congelação - falha na aplicação", e); returnJSON.Message = "Não foi possível salvar o registro."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.ERROR); context.Response.StatusCode = 500; } retorno = serializer.Serialize(returnJSON); context.Response.ContentType = "text/json"; context.Response.ContentEncoding = Encoding.UTF8; context.Response.Write(retorno); }
public JsonResult GetUniqueMessage(int messageID) { CheckUserData(out int userID, out int userAccess); ReturnJSON returnJSON = new ReturnJSON() { isOK = true, msg = string.Empty }; if (userID == 0) { returnJSON.isOK = false; returnJSON.msg += "<br/> * 請先登入"; } var message = (from m in messageBoardEntities.Message where m.MessageID == messageID && m.CreateUserID == userID select new { m.MajorID, m.MessageID, m.Message1, pics = from pic in messageBoardEntities.MessagePic where pic.MessageID == messageID && pic.picStatus select new { pic.PicID, pic.PicURL } }); returnJSON.data = message; if (!message.Any()) { returnJSON.isOK = false; returnJSON.msg += "<br/> * 找不到指定文章"; } return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
public JsonResult ResetPW(string userName, string userEmail, string pw1, string pw2) { userName = HttpUtility.UrlDecode(userName); userEmail = HttpUtility.UrlDecode(userEmail); pw1 = HttpUtility.UrlDecode(pw1); pw2 = HttpUtility.UrlDecode(pw2); ReturnJSON returnJSON = new ReturnJSON() { isOK = false, msg = "更新密碼發生非預期的錯誤" }; if (pw1 != pw2) { returnJSON.msg = "前後兩次密碼輸入不一致"; } else if (userTool.isSetNewPW(userName, userEmail, pw1)) { returnJSON.msg = "更新密碼成功,返回登入頁重新登入"; returnJSON.isOK = true; } return(Json(returnJSON, JsonRequestBehavior.AllowGet)); }
public JsonResult SavePorfile(string pw1, string pw2, int userID) { pw1 = HttpUtility.UrlDecode(pw1); pw2 = HttpUtility.UrlDecode(pw2); var userLogin = userTool.GetLoginedUser(HttpContext.Request).FirstOrDefault(); string dgMsg = "儲存成功"; bool isCatch = false; ReturnJSON returnJSON = new ReturnJSON() { isOK = false, msg = "發生未預期的錯誤" }; try { if (pw1 != pw2) { dgMsg += "<br/> * 前後兩次密碼輸入不一致"; } else if (userTool.isSetNewPW(userLogin.UserName, userLogin.UserEmail, pw1)) { dgMsg += "<br/> * 更新密碼成功"; returnJSON.isOK = true; } } catch (Exception) { isCatch = true; } try { if (Request.Files.Count > 0) { bool isFileCorrect = true; HttpPostedFileBase postFile = Request.Files[0]; var fileCheck = PicTool.CheckUplaodFiles(postFile, @"\.(?i:jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga|svg|jpeg2000)$", 1); if (!fileCheck.Item1) { isFileCorrect = false; foreach (var item in fileCheck.Item2) { dgMsg += $"<br/> * {item}"; } } if (isFileCorrect) { returnJSON.isOK = true; dgMsg += "<br/> * 頭像更新成功"; PicTool.SaveUserPic(postFile, userLogin.UserID); } } returnJSON.isOK = true; } catch (Exception) { isCatch = true; } returnJSON.msg = isCatch ? returnJSON.msg : dgMsg; return(Json(returnJSON)); }
private void Salvar(HttpContext context) { Model.Entities.Agenda agenda = new Model.Entities.Agenda(); JavaScriptSerializer serializer = new JavaScriptSerializer(); ReturnJSON <Model.Entities.Agenda> returnJSON = new ReturnJSON <Model.Entities.Agenda>(); String retorno = null; try { String json = new StreamReader(context.Request.InputStream).ReadToEnd(); agenda = (Model.Entities.Agenda)serializer.Deserialize <Model.Entities.Agenda>(json); // Recupera novamente o EstadoAgenda, pois no client/browser só foi possível enviar o seu ID. agenda.EstadoAgenda = new EstadoAgendaRepository() .Details(new EstadoAgenda() { EstadoAgendaID = agenda.EstadoAgenda.EstadoAgendaID }); // Recupera novamente o MedicoExecucaoAgenda, pois no client/browser só foi possível enviar o seu ID. agenda.MedicoExecucaoAgenda = new MedicoExecucaoAgendaRepository() .Details(new MedicoExecucaoAgenda() { MedicoExecucaoAgendaID = agenda.MedicoExecucaoAgenda.MedicoExecucaoAgendaID }); if (!agenda.DataHoraEhNoiteOuFimSemana(agenda.DataHoraEvento.Value)) { returnJSON.Message = "O agendamento da congelação <b>não</b> pode ser realizado após as 19:00 e aos finais de semana."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.WARNING); retorno = serializer.Serialize(returnJSON); context.Response.ContentType = "text/json"; context.Response.ContentEncoding = Encoding.UTF8; context.Response.Write(retorno); return; } // É novo registro? Verifica se não está sendo gravado uma nova agenda com data retroativa. if (agenda.AgendaID.HasValue && agenda.AgendaID.Value == 0) { if (agenda.DataHoraEhRetroativa(agenda.DataHoraEvento.Value)) { returnJSON.Message = "Não é permitido agendar uma congelação com data/hora retroativa."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.WARNING); retorno = serializer.Serialize(returnJSON); context.Response.ContentType = "text/json"; context.Response.ContentEncoding = Encoding.UTF8; context.Response.Write(retorno); return; } } String assuntoSMS = String.Empty; // Registro em edição? if (agenda.AgendaID.HasValue && agenda.AgendaID.Value > 0) { assuntoSMS = "Atualização de agendamento de congelação"; if (agenda.EstadoAgenda.Estado.Equals("Confirmado")) { // Consulta a existência de lembrestes configurados para a agenda. List <NotificacaoAgenda> notificacoesExistentes = new NotificacaoAgendaRepository() .Retreave(new NotificacaoAgenda() { Agenda = agenda }); // Se não houver nenhum lembrete, cria com base nas configurações existentes (recorrência de notificação). if (notificacoesExistentes.Count == 0) { List <ConfiguracaoNotificacaoAgenda> configuracaoNotificacaoAgendas = new ConfiguracaoNotificacaoAgendaRepository() .Retreave(new ConfiguracaoNotificacaoAgenda()); foreach (ConfiguracaoNotificacaoAgenda configuracao in configuracaoNotificacaoAgendas) { DateTime inicioNotificacao = agenda.DataHoraEvento.Value; // Verifica a unidade de tempo da configuração para determinar a data/hora inicial da notificação. switch (configuracao.UnidadeTempoAgenda.Unidade) { case "Minutos": inicioNotificacao = inicioNotificacao.AddMinutes(-Convert.ToDouble(configuracao.Tempo)); break; case "Horas": inicioNotificacao = inicioNotificacao.AddHours(-Convert.ToDouble(configuracao.Tempo)); break; case "Dias": inicioNotificacao = inicioNotificacao.AddDays(-Convert.ToDouble(configuracao.Tempo)); break; case "Semanas": inicioNotificacao = inicioNotificacao.AddDays(-Convert.ToDouble(configuracao.Tempo) * 7); break; default: break; } /* * Verifica se a data/hora do momento está dentro do intervalo: * data/hora de início da notificação e a data/hora evento (fim) da agenda. * Como é uma nova agenda ou alteração de agenda, se a data/hora evento estiver * dentro do tempo de intervalo de notificação, a notificãção não será criada. */ if (DateTime.Now >= inicioNotificacao && DateTime.Now <= agenda.DataHoraEvento.Value) { // Evita criar o registro no banco. continue; } NotificacaoAgenda notificacaoAgenda = new NotificacaoAgenda(); notificacaoAgenda.Agenda = agenda; notificacaoAgenda.ConfiguracaoNotificacaoAgenda = configuracao; new NotificacaoAgendaRepository().Create(notificacaoAgenda); } } // Se não, se já existir o lembrete (por que a mesma agenda foi cancelada e confirmada posteriormente) //, mantém ativado. else { NotificacaoAgenda notificacaoAgenda = new NotificacaoAgenda(); notificacaoAgenda.Agenda = agenda; notificacaoAgenda.Utilizado = false; notificacaoAgenda.Ativo = true; new NotificacaoAgendaRepository().ReativarNotificacao(notificacaoAgenda); } } else if (agenda.EstadoAgenda.Estado.Equals("Cancelado") || agenda.EstadoAgenda.Estado.Equals("Agendado") || agenda.EstadoAgenda.Estado.Equals("Finalizado") ) { NotificacaoAgenda notificacaoAgenda = new NotificacaoAgenda(); notificacaoAgenda.Agenda = agenda; new NotificacaoAgendaRepository().Delete(notificacaoAgenda); } new AgendaRepository().Update(agenda); } // Ou é novo registro? else { agenda.AgendaID = new AgendaRepository().CreateWithReturnID(agenda); assuntoSMS = "Novo agendamento de congelação"; // Se a nova agenda é para o mesmo dia, evidencia no assunto do SMS. if (agenda.DataHoraEvento.Value.Day == DateTime.Now.Day && agenda.DataHoraEvento.Value.Month == DateTime.Now.Month && agenda.DataHoraEvento.Value.Year == DateTime.Now.Year) { assuntoSMS = "*** Atenção *** Uma nova congelação foi marcada hoje."; } } String mensagemSMS = Model.SMS.FormataMensagemSMS(agenda, assuntoSMS); if (ConfigurationManager.AppSettings["ENVIAR_SMS"] != null) { String numeroTelefone = String.Format("{0}{1}", CodigoE164, agenda.MedicoExecucaoAgenda.Celular); if (Convert.ToBoolean(ConfigurationManager.AppSettings["ENVIAR_SMS"])) { String MessageId = TwilioServices.SendSMS(numeroTelefone, mensagemSMS); LogSmsAgenda logSmsAgenda = new LogSmsAgenda(); logSmsAgenda.Agenda = agenda; logSmsAgenda.SMSEnviado = true; logSmsAgenda.SMSDataProcessamento = DateTime.Now; logSmsAgenda.SMSMessageID = MessageId; logSmsAgenda.Observacao = String.Format ( "Origem SITE: mensagem destinado ao nº {0} enviada com sucesso ao servidor de serviço SMS." , numeroTelefone ); new LogSmsAgendaRepository().Create(logSmsAgenda); } else { LogSmsAgenda logSmsAgenda = new LogSmsAgenda(); logSmsAgenda.Agenda = agenda; logSmsAgenda.SMSEnviado = false; logSmsAgenda.SMSDataProcessamento = DateTime.Now; logSmsAgenda.SMSMessageID = null; logSmsAgenda.Observacao = String.Format ( "Origem SITE: mensagem destinado ao nº {0} não foi enviada, o serviço de envio de SMS está desabilitado. Utilize a chave ENVIAR_SMS do web.config da aplicação." , numeroTelefone ); new LogSmsAgendaRepository().Create(logSmsAgenda); } } returnJSON.Message = "Registro salvo com sucesso."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.SUCCESS); context.Response.StatusCode = 201; } catch (SqlException e) { Log.Create(e); Email.Send("Agendamento de congelação - falha na aplicação", e); returnJSON.Message = "Não foi possível salvar o registro."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.ERROR); context.Response.StatusCode = 500; } catch (Exception e) { LogSmsAgenda logSmsAgenda = new LogSmsAgenda(); logSmsAgenda.Agenda = agenda; logSmsAgenda.SMSEnviado = false; logSmsAgenda.SMSDataProcessamento = DateTime.Now; logSmsAgenda.Observacao = String.Format ( "Ocorreu uma falha ao enviar o SMS para o nº {0}. Detalhes: {1}" , String.Format("{0}{1}", CodigoE164, agenda.MedicoExecucaoAgenda.Celular) , e.Message ); new LogSmsAgendaRepository().Create(logSmsAgenda); Log.Create(e); Email.Send("Agendamento de congelação - falha na aplicação", e); returnJSON.Message = "Não foi possível enviar o SMS."; returnJSON.ReturnCode = Enum.GetName(typeof(ReturnType), ReturnType.ERROR); context.Response.StatusCode = 500; } retorno = serializer.Serialize(returnJSON); context.Response.ContentType = "text/json"; context.Response.ContentEncoding = Encoding.UTF8; context.Response.Write(retorno); }