Ejemplo n.º 1
0
        public HttpResponseMessage GetCaptcha([FromUri] Employee emp)
        {
            if (emp == null || string.IsNullOrEmpty(emp.Code) || string.IsNullOrEmpty(emp.Alias))
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, Error.LackInfo));
            }

            EmployeeMap employeeMap = new EmployeeMap();

            employeeMap.Alias = emp.Alias;
            employeeMap.Code  = emp.Code;
            employeeMap.CaptchaExpiresTime = DateTime.UtcNow.AddMinutes(30);
            string sql = @"select * from EmployeeMap where Code = @Code";

            try
            {
                using (IDbConnection connection = new SqlConnection(DBHelper.GetConnectionString()))
                {
                    var employeeMaps = connection.Query <EmployeeMap>(sql, employeeMap);

                    if (employeeMaps == null || employeeMaps.Count() == 0)
                    {
                        return(Request.CreateResponse(HttpStatusCode.InternalServerError, Error.Server));
                    }
                    else
                    {
                        Random        random        = new Random();
                        StringBuilder stringBuilder = new StringBuilder();
                        for (int i = 0; i < 6; i++)
                        {
                            stringBuilder.Append(random.Next() % 10);
                        }

                        employeeMap.Captcha = stringBuilder.ToString();

                        //database
                        sql = @"update EmployeeMap set Alias = @Alias, Captcha = @Captcha, CaptchaExpiresTime = @CaptchaExpiresTime where Code = @Code";
                        connection.Execute(sql, employeeMap);

                        //email
                        CaptchaMessage message = new CaptchaMessage()
                        {
                            Alias = employeeMap.Alias, Captcha = employeeMap.Captcha
                        };

                        MessageHelper.SendMessage(message);

                        //SendEmail(employeeMap.Alias, employeeMap.Captcha);
                        return(Request.CreateResponse(HttpStatusCode.OK));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, Error.Server));
            }
        }
Ejemplo n.º 2
0
        public static void SendMessage(CaptchaMessage message)
        {
            if (Client == null)
            {
                Client = QueueClient.CreateFromConnectionString(ConfigurationManager.AppSettings["QueueConnectionString"].ToString(), ConfigurationManager.AppSettings["QueueName"].ToString());
            }
            var brokeredMessage = new BrokeredMessage(JsonConvert.SerializeObject(message));

            Client.Send(brokeredMessage);
        }