Пример #1
0
        public HttpResponseMessage Cancel(CancelPreOrderModel model)
        {
            using (var db = new TCTEContext( ))
            {
                var query = db.PreOrders.FirstOrDefault(a => a.PreOrderNumber == model.PreOrderNumber);
                if (query != null)
                {
                    if (query.Status != Models.SystemType.PreOrderStatus.WaitingApprove)
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                        {
                            StatusCode = APIResultObject.CancelPreOrderFailure,
                            Description = "只有待审核的预约才能取消",
                            Result = ""
                        }));
                    }

                    query.Status = Models.SystemType.PreOrderStatus.Canceled;
                    db.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                    {
                        StatusCode = APIResultObject.OK,
                        Description = "预约取消成功",
                        Result = ""
                    }));
                }
                return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                {
                    StatusCode = APIResultObject.NotFound,
                    Description = "没有找到预约单号",
                    Result = ""
                }));
            }
        }
Пример #2
0
 protected void Session_Start()
 {
     using (TCTEContext db = new TCTEContext())
     {
         Session["user"] = db.Users.Include(a => a.Role).Where(a => a.Id == 3).FirstOrDefault();
     }
 }
Пример #3
0
 public HttpResponseMessage Complete([FromUri] string orderCode)
 {
     string token = GetToken();
     using (var db = new TCTEContext())
     {
         var order = db.Orders.Where(o => o.Code == orderCode && o.Terminal.AccessToken == token).SingleOrDefault();
         if (order != null)
         {
             order.Status = Models.SystemType.OrderStatus.Ended;
             order.EndTime = DateTime.Now;
             var preOrder = db.PreOrders.SingleOrDefault(po => po.OrderId == order.Id);
             //修改订单预约状态为结束
             if (preOrder != null)
             {
                 preOrder.Status = Models.SystemType.PreOrderStatus.Completed;
             }
             db.SaveChanges();
             return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ""
             });
         }
     }
     return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
     {
         StatusCode = APIResultObject.NotFound,
         Description = "没有找到请求的订单编号",
         Result = ""
     });
 }
Пример #4
0
 protected void Session_Start()
 {
     using (TCTEContext db = new TCTEContext())
     {
         Session["user"] = db.Users.Include(a => a.Role).Where(a => a.Id == 3).FirstOrDefault();
     }
 }
Пример #5
0
        public HttpResponseMessage Get()
        {
            //get token
            string token = (System.Threading.Thread.CurrentPrincipal.Identity as BasicAuthenticationIdentity).AccessToken;

            //get orders
            using (var context = new TCTEContext())
            {
                var orders = context.Orders
                             .Include(o => o.Client)
                             .Include(o => o.Terminal)
                             .Where(o => o.Terminal.AccessToken == token && o.Status != Models.SystemType.OrderStatus.Ended).Select(o => new
                {
                    OrderId       = o.Id,
                    CreateTime    = o.CreatedDate,
                    ClientName    = o.Client.Name,
                    ClientPhone   = o.Client.Phone,
                    ClientAddress = o.Client.Address,
                    PlateNumber   = o.Client.PlateNumber
                }).ToList();
                return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                {
                    StatusCode = APIResultObject.OK,
                    Description = "success",
                    Result = orders
                }));
            }
        }
Пример #6
0
 public ActionResult ModifyPwd(ModifyPwdModel model)
 {
     //加密
     model.NewPwd = model.NewPwdConfirm = Utility.EncryptHelper.MD5Encrypt(model.NewPwd);
     //model.OldPwd = Utility.EncryptHelper.MD5Encrypt(model.OldPwd);
     //取得当前用户
     var sessionUser = Session["user"] as User;
     using (TCTEContext db = new TCTEContext())
     {
         int userId = int.Parse(Request.QueryString["userId"]);
         var user = db.Users.Where(u => u.Id == userId).SingleOrDefault();
         //校验原密码
         if (!RoleHelper.IsInRole(SystemRole.SUPER_ADMIN))
         {
             if (user.Password != model.OldPwd)
             {
                 ModelState.AddModelError("", "原密码不正确");
                 return View();
             }
         }
         //修改密码
         user.Password = model.NewPwdConfirm;
         db.SaveChanges();
         return Redirect("/User/index");
     }
 }
Пример #7
0
 public ActionResult ModifyPwd( ModifyPwdModel model )
 {
     if ( ModelState.IsValid )
     {
         //加密
         model.NewPwd = model.NewPwdConfirm = Utility.EncryptHelper.MD5Encrypt( model.NewPwd );
         model.OldPwd = Utility.EncryptHelper.MD5Encrypt( model.OldPwd );
         //取得当前用户
         var sessionUser = Session[ "user" ] as User;
         using ( TCTEContext db = new TCTEContext( ) )
         {
             var user = db.Users.Find( sessionUser.Id );
             //校验原密码
             if ( user.Password != model.OldPwd )
             {
                 ModelState.AddModelError( "", "原密码不正确" );
                 return View( );
             }
             //修改密码
             user.Password = model.NewPwdConfirm;
             db.SaveChanges( );
             return RedirectToAction( "LogOut" );
         }
     }
     return View( );
 }
Пример #8
0
        public HttpResponseMessage Cancel( CancelPreOrderModel model )
        {
            using ( var db = new TCTEContext( ) )
            {
                var query = db.PreOrders.FirstOrDefault( a => a.PreOrderNumber == model.PreOrderNumber );
                if (query != null)
                {
                    if (query.Status != Models.SystemType.PreOrderStatus.WaitingApprove)
                    {
                        return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                        {
                            StatusCode = APIResultObject.CancelPreOrderFailure,
                            Description = "只有待审核的预约才能取消",
                            Result = ""
                        });
                    }

                    query.Status = Models.SystemType.PreOrderStatus.Canceled;
                    db.SaveChanges();
                    return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                    {
                        StatusCode = APIResultObject.OK,
                        Description = "预约取消成功",
                        Result = ""
                    });
                }
                return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                {
                    StatusCode = APIResultObject.NotFound,
                    Description = "没有找到预约单号",
                    Result = ""
                });
            }
        }
Пример #9
0
 public HttpResponseMessage Get()
 {
     //get token
     string token = (System.Threading.Thread.CurrentPrincipal.Identity as BasicAuthenticationIdentity).AccessToken;
     //get orders
     using (var context = new TCTEContext())
     {
         var orders = context.Orders
             .Where(o => o.Terminal.AccessToken == token && o.Status != Models.SystemType.OrderStatus.Ended).Select(o => new
             {
                 OrderId = o.Id,
                 OrderCode = o.Code,
                 CreateTime = o.CreatedDate,
                 ClientName = o.Name,
                 ClientPhone = o.Phone,
                 ClientAddress = o.Address,
                 PlateNumber = o.PlateNumber,
                 State = o.Status,
                 Comment = o.Comment
             }).ToList();
         return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
         {
             StatusCode = APIResultObject.OK,
             Description = "success",
             Result = orders
         });
     }
 }
        /// <summary>
        /// Parses the Authorization header and creates user credentials
        /// </summary>
        /// <param name="actionContext"></param>
        protected virtual BasicAuthenticationIdentity ParseAuthorizationHeader(HttpActionContext actionContext)
        {
            string authHeader = null;
            var    auth       = actionContext.Request.Headers.Authorization;

            //get api key from authorization header
            if (auth != null && auth.Scheme == "Basic")
            {
                authHeader = auth.Parameter;
            }
            //get api key from query string
            if (string.IsNullOrEmpty(authHeader) && actionContext.Request.GetQueryNameValuePairs().Where(k => k.Key.ToUpper() == "TOKEN").Count() > 0)
            {
                authHeader = "token=" + actionContext.Request.GetQueryNameValuePairs().Where(k => k.Key.ToUpper() == "TOKEN").Select(k => k.Value).SingleOrDefault();
            }
            string token = "";

            //check header format
            if (!string.IsNullOrEmpty(authHeader) && authHeader.ToUpper().Contains("TOKEN="))
            {
                token = authHeader.Split('=')[1];
                using (var context = new TCTEContext())
                {
                    var ternimal = context.Terminals.Where(t => t.AccessToken == token).SingleOrDefault();
                    if (ternimal != null)
                    {
                        if (ternimal.Status == Models.SystemType.TerminalStatus.Normal)
                        {
                            return(new BasicAuthenticationIdentity(token));
                        }
                        else
                        {
                            //invalid status
                            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK,
                                                                                          new APIResultObject
                            {
                                StatusCode  = APIResultObject.InValidStatus,
                                Description = "设备状态异常,请求无效!",
                                Result      = ternimal.Status
                            }
                                                                                          );
                        }
                    }
                }
            }
            else
            {
                //no token
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK,
                                                                              new APIResultObject
                {
                    StatusCode  = APIResultObject.UnAuthorized,
                    Description = "请提供授权代码!",
                    Result      = null
                }
                                                                              );
            }
            return(null);
        }
Пример #11
0
 //
 // GET: /User/
 public ActionResult Index()
 {
     using (TCTEContext db = new TCTEContext())
     {
         var users = db.Users.Include(u => u.Role).Include(u => u.Company).OrderByDescending(u => u.Id).ToList();
         return View(users);
     }
 }
Пример #12
0
 //
 // GET: /User/
 public ActionResult Index()
 {
     using (TCTEContext db = new TCTEContext())
     {
         var users = db.Users.Include(u => u.Role).Include(u => u.Company).OrderByDescending(u => u.Id).ToList();
         return(View(users));
     }
 }
Пример #13
0
 public HttpResponseMessage GetStatus()
 {
     string accessToken = GetToken();
     using (var context = new TCTEContext())
     {
         var ternimal = context.Terminals.Where(t => t.AccessToken == accessToken).SingleOrDefault();
         return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
         {
             StatusCode = APIResultObject.OK,
             Description = "success",
             Result = ternimal.Status.ToString()
         });
     }
 }
Пример #14
0
        public HttpResponseMessage Verify([FromBody] string fingerPrint)
        {
            string token = GetToken();

            using (var context = new TCTEContext())
            {
                var ternimal = context.Terminals.Where(t => t.AccessToken == token && (t.FingerPrint == fingerPrint)).SingleOrDefault();
                return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                {
                    StatusCode = APIResultObject.OK,
                    Description = "success",
                    Result = ternimal == null? false: true
                }));
            }
        }
Пример #15
0
        public HttpResponseMessage GetStatus()
        {
            string accessToken = GetToken();

            using (var context = new TCTEContext())
            {
                var ternimal = context.Terminals.Where(t => t.AccessToken == accessToken).SingleOrDefault();
                return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                {
                    StatusCode = APIResultObject.OK,
                    Description = "success",
                    Result = ternimal.Status.ToString()
                }));
            }
        }
Пример #16
0
        public HttpResponseMessage Verify_V2([FromBody] string personNo)
        {
            string token = GetToken();

            using (var context = new TCTEContext())
            {
                var ternimal = context.Terminals.Where(t => t.AccessToken == token && t.SalesMan.IdentityCard == personNo).SingleOrDefault();
                return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                {
                    StatusCode = APIResultObject.OK,
                    Description = ternimal == null ? "failed" : "success",
                    Result = ternimal == null ? false : true
                }));
            }
        }
Пример #17
0
        public HttpResponseMessage Punish([FromBody] Punishment punish)
        {
            string token = GetToken();

            using (var db = new TCTEContext())
            {
                var order = db.Orders.Where(o => o.Code.ToLower() == punish.OrderCode.ToLower() && o.Terminal.AccessToken == token).SingleOrDefault();
                if (order != null)
                {
                    order.OrderDetails.Add(new OrderDetail()
                    {
                        DecisionNumber   = punish.DecisionNumber,
                        Deduction        = punish.Dedution,
                        PeccancyAddress  = punish.PeccancyAddress,
                        PeccancyBehavior = punish.PeccancyBehavior,
                        PeccancyTime     = punish.PeccancyTime,
                        Money            = punish.Money,
                        PeccancyPersonNo = punish.PeccancyPersonNo,
                        HandlePersonNo   = punish.HandlePersonNo
                    });
                    if (punish.Images != null && punish.Images.Length > 0)
                    {
                        foreach (var image in punish.Images)
                        {
                            db.OrderImages.Add(new OrderImage()
                            {
                                DecisionNumber = punish.DecisionNumber,
                                ImageContent   = image
                            });
                        }
                    }
                    db.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                    {
                        StatusCode = APIResultObject.OK,
                        Description = "success",
                        Result = ""
                    }));
                }
            }
            return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
            {
                StatusCode = APIResultObject.NotFound,
                Description = "没有找到请求的订单编号",
                Result = ""
            }));
        }
Пример #18
0
        public HttpResponseMessage Init([FromBodyAttribute] TerminalInitViewModel model)
        {
            if (ModelState.IsValid)
            {
                string accessToken = model.AccessToken;
                using (var context = new TCTEContext())
                {
                    var ternimal = context.Terminals.Where(t => t.Status == Models.SystemType.TerminalStatus.NotInitialized && t.AccessToken == accessToken).SingleOrDefault();

                    if (ternimal != null)
                    {
                        var salesMan = context.SalesMen.Where(s => s.Code == model.SalesManCode && s.CompanyId == ternimal.CompanyId && !s.TerminalId.HasValue && s.IsLicenced).SingleOrDefault();
                        if (salesMan != null)
                        {
                            salesMan.TerminalId      = ternimal.Id;
                            ternimal.SalesManId      = salesMan.Id;
                            ternimal.FingerPrint     = model.FingerPrint;
                            ternimal.LastInitialDate = DateTime.Now;
                            ternimal.Status          = Models.SystemType.TerminalStatus.Normal;
                            context.SaveChanges();
                            return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                            {
                                StatusCode = APIResultObject.OK,
                                Description = "success",
                                Result = ""
                            }));
                        }
                    }
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
                    {
                        StatusCode = APIResultObject.BadRequest,
                        Description = "设备或者业务人员不存在或处于绑定状态",
                        Result = ""
                    }));
                }
            }
            return(Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
            {
                StatusCode = APIResultObject.InValidRequest,
                Description = "请提供正确参数格式,以及完整参数",
                Result = ""
            }));
        }
Пример #19
0
 public ActionResult Login( LoginModel model, string ReturnUrl )
 {
     model.Password = Utility.EncryptHelper.MD5Encrypt( model.Password );
     using ( TCTEContext db = new TCTEContext( ) )
     {
         var user = db.Users.Include( u => u.Role ).Include( u => u.Role.Functions )
             .Where( u => u.UserName.ToLower( ) == model.UserName.ToLower( ) && u.Password == model.Password )
             .FirstOrDefault( );
         if ( user == null )
         {
             ModelState.AddModelError( "", "用户名或密码错误" );
             return View( );
         }
         FormsAuthentication.SetAuthCookie( user.UserName, false );
         Session[ "user" ] = user;
         if ( string.IsNullOrEmpty( ReturnUrl ) )
             return RedirectToAction( "Index" );
         return Redirect( ReturnUrl );
     }
 }
Пример #20
0
        public HttpResponseMessage Change( ChangePreOrderModel model )
        {
            using ( var db = new TCTEContext( ) )
            {
                var query = db.PreOrders.FirstOrDefault( a => a.PreOrderNumber == model.PreOrderNumber );
                if (query != null)
                {
                    if (query.Status != Models.SystemType.PreOrderStatus.WaitingApprove)
                    {
                        return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                        {
                            StatusCode = APIResultObject.ChangePreOrderFailure,
                            Description = "预约已取消或已完成,变更失败",
                            Result = ""
                        });
                    }

                    if (model.ServiceTime.HasValue)
                    {
                        query.ServiceTime = model.ServiceTime.Value;
                    }
                    if (model.ServiceAddress != null && model.ServiceAddress.Trim().Length > 0)
                    {
                        query.ServiceAddress = model.ServiceAddress.Trim();
                    }
                    db.SaveChanges();
                    return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                    {
                        StatusCode = APIResultObject.OK,
                        Description = "预约变更成功",
                        Result = ""
                    });
                }
                return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                {
                    StatusCode = APIResultObject.NotFound,
                    Description = "没有找到预约单号",
                    Result = ""
                });
            }
        }
Пример #21
0
        public HttpResponseMessage Change(ChangePreOrderModel model)
        {
            using (var db = new TCTEContext( ))
            {
                var query = db.PreOrders.FirstOrDefault(a => a.PreOrderNumber == model.PreOrderNumber);
                if (query != null)
                {
                    if (query.Status != Models.SystemType.PreOrderStatus.WaitingApprove)
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                        {
                            StatusCode = APIResultObject.ChangePreOrderFailure,
                            Description = "预约已取消或已完成,变更失败",
                            Result = ""
                        }));
                    }

                    if (model.ServiceTime.HasValue)
                    {
                        query.ServiceTime = model.ServiceTime.Value;
                    }
                    if (model.ServiceAddress != null && model.ServiceAddress.Trim().Length > 0)
                    {
                        query.ServiceAddress = model.ServiceAddress.Trim();
                    }
                    db.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                    {
                        StatusCode = APIResultObject.OK,
                        Description = "预约变更成功",
                        Result = ""
                    }));
                }
                return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject
                {
                    StatusCode = APIResultObject.NotFound,
                    Description = "没有找到预约单号",
                    Result = ""
                }));
            }
        }
Пример #22
0
 public HttpResponseMessage GetStatus(string accessToken)
 {
     if (!string.IsNullOrEmpty(accessToken))
     {
         using (var context = new TCTEContext())
         {
             var ternimal = context.Terminals.Where(t => t.AccessToken == accessToken).SingleOrDefault();
             return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ternimal.Status.ToString()
             });
         }
     }
     return Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
     {
         StatusCode = APIResultObject.InValidRequest,
         Description = "请提供正确参数格式,以及完整参数",
         Result = ""
     });
 }
Пример #23
0
 public HttpResponseMessage GetStatus(string accessToken)
 {
     if (!string.IsNullOrEmpty(accessToken))
     {
         using (var context = new TCTEContext())
         {
             var ternimal = context.Terminals.Where(t => t.AccessToken == accessToken).SingleOrDefault();
             return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ternimal.Status.ToString()
             }));
         }
     }
     return(Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
     {
         StatusCode = APIResultObject.InValidRequest,
         Description = "请提供正确参数格式,以及完整参数",
         Result = ""
     }));
 }
Пример #24
0
 public ActionResult Login(LoginModel model, string ReturnUrl)
 {
     model.Password = Utility.EncryptHelper.MD5Encrypt(model.Password);
     using (TCTEContext db = new TCTEContext( ))
     {
         var user = db.Users.Include(u => u.Role).Include(u => u.Role.Functions)
                    .Where(u => u.UserName.ToLower( ) == model.UserName.ToLower( ) && u.Password == model.Password)
                    .FirstOrDefault( );
         if (user == null)
         {
             ModelState.AddModelError("", "用户名或密码错误");
             return(View( ));
         }
         FormsAuthentication.SetAuthCookie(user.UserName, false);
         Session["user"] = user;
         if (string.IsNullOrEmpty(ReturnUrl))
         {
             return(RedirectToAction("Index"));
         }
         return(Redirect(ReturnUrl));
     }
 }
Пример #25
0
 public HttpResponseMessage Activate(string refreshToken)
 {
     if (!string.IsNullOrEmpty(refreshToken))
     {
         using (var context = new TCTEContext())
         {
             var request = context.RegistrationRequests.Where(r => r.RefreshToken == refreshToken).SingleOrDefault();
             if (request != null)
             {
                 if (request.Status == Models.SystemType.RegistrationRequestStatus.Approved)
                 {
                     return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                     {
                         StatusCode = APIResultObject.OK,
                         Description = "success",
                         Result = request.AccessToken
                     });
                 }
                 else
                 {
                     return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                     {
                         StatusCode = APIResultObject.WaittingApproved,
                         Description = "success",
                         Result = ""
                     });
                 }
             }
         }
     }
     return Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
     {
         StatusCode = APIResultObject.UnAuthorized,
         Description = "请提供正确的授权代码",
         Result = ""
     });
 }
Пример #26
0
 public HttpResponseMessage Activate(string refreshToken)
 {
     if (!string.IsNullOrEmpty(refreshToken))
     {
         using (var context = new TCTEContext())
         {
             var request = context.RegistrationRequests.Where(r => r.RefreshToken == refreshToken).SingleOrDefault();
             if (request != null)
             {
                 if (request.Status == Models.SystemType.RegistrationRequestStatus.Approved)
                 {
                     return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                     {
                         StatusCode = APIResultObject.OK,
                         Description = "success",
                         Result = request.AccessToken
                     }));
                 }
                 else
                 {
                     return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                     {
                         StatusCode = APIResultObject.WaittingApproved,
                         Description = "success",
                         Result = ""
                     }));
                 }
             }
         }
     }
     return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
     {
         StatusCode = APIResultObject.UnAuthorized,
         Description = "请提供正确的授权代码",
         Result = ""
     }));
 }
Пример #27
0
 public HttpResponseMessage Pay(string decisionNumber, int isPay)
 {
     using (var db = new TCTEContext())
     {
         var detail = db.OrderDetails.Where(o => o.DecisionNumber == decisionNumber).SingleOrDefault();
         if (detail != null)
         {
             detail.IsPay = isPay == 0?false:true;
             db.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ""
             }));
         }
     }
     return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
     {
         StatusCode = APIResultObject.NotFound,
         Description = "没有找到请求的决定书编号",
         Result = ""
     }));
 }
Пример #28
0
 public HttpResponseMessage Verify([FromBody] string fingerPrint)
 {
     string token = GetToken();
     using (var context = new TCTEContext())
     {
         var ternimal = context.Terminals.Where(t => t.AccessToken == token && (t.FingerPrint == fingerPrint)).SingleOrDefault();
         return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
         {
             StatusCode = APIResultObject.OK,
             Description = "success",
             Result = ternimal==null? false: true
         });
     }
 }
Пример #29
0
 public HttpResponseMessage Register(string token)
 {
     if (!string.IsNullOrEmpty(token))
     {
         using (var context = new TCTEContext())
         {
             var tokenEnity = context.RegistrationTokens.Where(r => r.Token == token).SingleOrDefault();
             if (tokenEnity != null)
             {
                 string refreshToken = Guid.NewGuid().ToString();
                 context.RegistrationRequests.Add(new RegistrationRequest()
                 {
                     RequestDate = DateTime.Now,
                     Status = Models.SystemType.RegistrationRequestStatus.WaitingApprove,
                     RegistrationTokenId = tokenEnity.Id,
                     RefreshToken = refreshToken
                 });
                 context.SaveChanges();
                 return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.OK,
                     Description = "success",
                     Result = refreshToken
                 });
             }
         }
     }
     return Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
     {
         StatusCode = APIResultObject.UnAuthorized,
         Description = "请提供正确的授权代码",
         Result = ""
     });
 }
Пример #30
0
        public HttpResponseMessage Init([FromBodyAttribute] TerminalInitViewModel model)
        {
            if (ModelState.IsValid)
            {
                string accessToken = model.AccessToken;
                using (var context = new TCTEContext())
                {
                    var ternimal = context.Terminals.Where(t => t.Status == Models.SystemType.TerminalStatus.NotInitialized && t.AccessToken == accessToken).SingleOrDefault();

                    if (ternimal != null)
                    {
                        var salesMan = context.SalesMen.Where(s => s.Code == model.SalesManCode && s.CompanyId == ternimal.CompanyId && !s.TerminalId.HasValue && s.IsLicenced).SingleOrDefault();
                        if (salesMan != null)
                        {
                            salesMan.TerminalId = ternimal.Id;
                            ternimal.SalesManId = salesMan.Id;
                            ternimal.FingerPrint = model.FingerPrint;
                            ternimal.LastInitialDate = DateTime.Now;
                            ternimal.Status = Models.SystemType.TerminalStatus.Normal;
                            context.SaveChanges();
                            return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                            {
                                StatusCode = APIResultObject.OK,
                                Description = "success",
                                Result = ""
                            });
                        }
                    }
                    return Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
                       {
                           StatusCode = APIResultObject.BadRequest,
                           Description = "设备或者业务人员不存在或处于绑定状态",
                           Result = ""
                       });
                }
            }
            return Request.CreateResponse(HttpStatusCode.Unauthorized, new APIResultObject()
            {
                StatusCode = APIResultObject.InValidRequest,
                Description = "请提供正确参数格式,以及完整参数",
                Result = ""
            });
        }
Пример #31
0
 public HttpResponseMessage Create( PreOrder model )
 {
     using ( var db = new TCTEContext( ) )
     {
         var query = from a in db.PreOrders
                     where a.Status != Models.SystemType.PreOrderStatus.Completed
                     && a.Status != Models.SystemType.PreOrderStatus.Refused
                     && a.Status != Models.SystemType.PreOrderStatus.Canceled
                     && a.PlateNumber.ToUpper( ) == model.PlateNumber.ToUpper( )
                     select a;
         if ( query.Count( ) > 0 )
         {
             return Request.CreateResponse( HttpStatusCode.OK, new APIResultObject
             {
                 StatusCode = APIResultObject.DuplicatePreOrder,
                 Description = "重复预约",
                 Result = ""
             } );
         }
         // 状态值
         model.Status = Models.SystemType.PreOrderStatus.WaitingApprove;
         // 授权处理预约的商家
         model.CompanyId = int.Parse( ConfigurationManager.AppSettings[ "COMPANY_PREORDER_AUTHENTICATED" ] );
         db.PreOrders.Add( model );
         db.SaveChanges( );
         return Request.CreateResponse( HttpStatusCode.OK, new APIResultObject
         {
             StatusCode = APIResultObject.OK,
             Description = "预约成功,待审核",
             Result = ""
         } );
     }
 }
Пример #32
0
 public HttpResponseMessage Verify_V2([FromBody] string personNo)
 {
     string token = GetToken();
     using (var context = new TCTEContext())
     {
         var ternimal = context.Terminals.Where(t => t.AccessToken == token && t.SalesMan.IdentityCard == personNo).SingleOrDefault();
         return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
         {
             StatusCode = APIResultObject.OK,
             Description = ternimal == null ? "failed" : "success",
             Result = ternimal == null ? false : true
         });
     }
 }
Пример #33
0
 public HttpResponseMessage Init_V2([FromBodyAttribute] TerminalInitViewModel_V2 model)
 {
     if (ModelState.IsValid)
     {
         string accessToken = model.AccessToken;
         using (var context = new TCTEContext())
         {
             var terminal = context.Terminals.Where(t => t.AccessToken == accessToken).SingleOrDefault();
             if (terminal == null)
             {
                 return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InvalidToken,
                     Description = "授权码错误",
                     Result = ""
                 }));
             }
             if (terminal.Status != Models.SystemType.TerminalStatus.NotInitialized)
             {
                 return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InValidStatus,
                     Description = "设备状态异常,不能进行员工绑定",
                     Result = ""
                 }));
             }
             var salesMan = context.SalesMen.Where(s => s.Code.ToLower() == model.SalesManCode.ToLower() && s.CompanyId == terminal.CompanyId).SingleOrDefault();
             if (salesMan == null)
             {
                 return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InvalidCode,
                     Description = "员工编码错误",
                     Result = ""
                 }));
             }
             if (salesMan.IdentityCard != model.PersonCardNo)
             {
                 return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InvalidPersonCode,
                     Description = "身份证号码不匹配",
                     Result = ""
                 }));
             }
             if (salesMan.TerminalId > 0)
             {
                 return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InvalidBinding,
                     Description = "员工已经绑定终端",
                     Result = ""
                 }));
             }
             salesMan.TerminalId = terminal.Id;
             terminal.SalesManId = salesMan.Id;
             //terminal.FingerPrint = model.FingerPrint;
             terminal.LastInitialDate = DateTime.Now;
             terminal.Status          = Models.SystemType.TerminalStatus.Normal;
             context.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ""
             }));
         }
     }
     return(Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
     {
         StatusCode = APIResultObject.InValidRequest,
         Description = "请提供完整参数",
         Result = ""
     }));
 }
        /// <summary>  
        /// Parses the Authorization header and creates user credentials  
        /// </summary>  
        /// <param name="actionContext"></param>  
        protected virtual BasicAuthenticationIdentity ParseAuthorizationHeader(HttpActionContext actionContext)
        {
            string authHeader = null;
            var auth = actionContext.Request.Headers.Authorization;
            //get api key from authorization header
            if (auth != null && auth.Scheme == "Basic")
            {
                authHeader = auth.Parameter;
            }
            //get api key from query string
            if (string.IsNullOrEmpty(authHeader) && actionContext.Request.GetQueryNameValuePairs().Where(k => k.Key.ToUpper() == "TOKEN").Count() > 0)
            {
                authHeader = "token=" + actionContext.Request.GetQueryNameValuePairs().Where(k => k.Key.ToUpper() == "TOKEN").Select(k => k.Value).SingleOrDefault();
            }
            string token = "";
            //check header format
            if (!string.IsNullOrEmpty(authHeader) && authHeader.ToUpper().Contains("TOKEN="))
            {
                token = authHeader.Split('=')[1];
                using (var context = new TCTEContext())
                {
                    var ternimal = context.Terminals.Where(t => t.AccessToken == token).SingleOrDefault();
                    if (ternimal != null)
                    {
                        if (ternimal.Status == Models.SystemType.TerminalStatus.Normal)
                        {
                            return new BasicAuthenticationIdentity(token);
                        }
                        else
                        {
                            //invalid status
                            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK,
                                 new APIResultObject
                                 {
                                     StatusCode = APIResultObject.InValidStatus,
                                     Description = "设备状态异常,请求无效!",
                                     Result = ternimal.Status
                                 }
                             );
                        }
                    }

                }
            }
            else
            {
                //no token
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK,
                    new APIResultObject
                    {
                        StatusCode = APIResultObject.UnAuthorized,
                        Description = "请提供授权代码!",
                        Result = null
                    }
                );
            }
            return null;
        }
Пример #35
0
 public HttpResponseMessage Pay(string decisionNumber,int isPay)
 {
     using (var db = new TCTEContext())
     {
         var detail = db.OrderDetails.Where(o => o.DecisionNumber == decisionNumber).SingleOrDefault();
         if (detail != null)
         {
             detail.IsPay = isPay==0?false:true;
             db.SaveChanges();
             return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ""
             });
         }
     }
     return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
     {
         StatusCode = APIResultObject.NotFound,
         Description = "没有找到请求的决定书编号",
         Result = ""
     });
 }
Пример #36
0
 public HttpResponseMessage Init([FromBodyAttribute] TerminalInitViewModel model)
 {
     if (ModelState.IsValid)
     {
         string accessToken = model.AccessToken;
         using (var context = new TCTEContext())
         {
             var terminal = context.Terminals.Where(t =>t.AccessToken == accessToken).SingleOrDefault();
             if (terminal == null)
             {
                 return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InvalidToken,
                     Description = "授权码错误",
                     Result = ""
                 });
             }
             if (terminal.Status != Models.SystemType.TerminalStatus.NotInitialized)
             {
                 return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InValidStatus,
                     Description = "设备状态异常,不能进行员工绑定",
                     Result = ""
                 });
             }
             var salesMan = context.SalesMen.Where(s => s.Code.ToLower() == model.SalesManCode.ToLower() && s.CompanyId == terminal.CompanyId).SingleOrDefault();
             if (salesMan == null)
             {
                 return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InvalidCode,
                     Description = "员工编码错误",
                     Result = ""
                 });
             }
             if (salesMan.TerminalId > 0)
             {
                 return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                 {
                     StatusCode = APIResultObject.InvalidBinding,
                     Description = "员工已经绑定终端",
                     Result = ""
                 });
             }
             salesMan.TerminalId = terminal.Id;
             terminal.SalesManId = salesMan.Id;
             terminal.FingerPrint = model.FingerPrint;
             terminal.LastInitialDate = DateTime.Now;
             terminal.Status = Models.SystemType.TerminalStatus.Normal;
             context.SaveChanges();
             return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ""
             });
         }
     }
     return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
     {
         StatusCode = APIResultObject.InValidRequest,
         Description = "请提供完整参数",
         Result = ""
     });
 }
Пример #37
0
        public HttpResponseMessage Punish([FromBody] Punishment punish)
        {
            string token = GetToken();
            using (var db = new TCTEContext())
            {
                var order = db.Orders.Where(o => o.Code.ToLower() == punish.OrderCode.ToLower() && o.Terminal.AccessToken == token).SingleOrDefault();
                if (order != null)
                {

                    order.OrderDetails.Add(new OrderDetail()
                    {
                        DecisionNumber = punish.DecisionNumber,
                        Deduction = punish.Dedution,
                        PeccancyAddress = punish.PeccancyAddress,
                        PeccancyBehavior  = punish.PeccancyBehavior,
                        PeccancyTime = punish.PeccancyTime,
                        Money = punish.Money,
                        PeccancyPersonNo = punish.PeccancyPersonNo,
                        HandlePersonNo = punish.HandlePersonNo
                    });
                    if (punish.Images != null && punish.Images.Length > 0)
                    {
                        foreach (var image in punish.Images)
                        {
                            db.OrderImages.Add(new OrderImage()
                            {
                                DecisionNumber = punish.DecisionNumber,
                                ImageContent = image
                            });
                        }
                    }
                    db.SaveChanges();
                    return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
                    {
                        StatusCode = APIResultObject.OK,
                        Description = "success",
                        Result = ""
                    });
                }
            }
            return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
            {
                StatusCode = APIResultObject.NotFound,
                Description = "没有找到请求的订单编号",
                Result = ""
            });
        }
Пример #38
0
 public HttpResponseMessage Pay(string decisionNumber, string bankTransactionNumber)
 {
     string token = GetToken();
     using (var db = new TCTEContext())
     {
         var detail = db.OrderDetails.Where(o => o.DecisionNumber == decisionNumber).SingleOrDefault();
         if (detail != null)
         {
             detail.IsPay = true;
             detail.BankSequenceNumber = bankTransactionNumber;
             db.SaveChanges();
             return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
             {
                 StatusCode = APIResultObject.OK,
                 Description = "success",
                 Result = ""
             });
         }
     }
     return Request.CreateResponse(HttpStatusCode.OK, new APIResultObject()
     {
         StatusCode = APIResultObject.NotFound,
         Description = "没有找到请求的决定书编号",
         Result = ""
     });
 }
Пример #39
0
 public HttpResponseMessage Query( string PreOrderNumber )
 {
     using ( var db = new TCTEContext( ) )
     {
         var query = db.PreOrders
             .Include( a => a.Order )
             .Include( a => a.Order.SalesMan )
             .FirstOrDefault( a => a.PreOrderNumber == PreOrderNumber );
         if ( query == null )
         {
             return Request.CreateResponse( HttpStatusCode.OK, new APIResultObject
             {
                 StatusCode = APIResultObject.NotFound,
                 Description = "未找到预约单号",
                 Result = ""
             } );
         }
         var o = new APIResultObject( )
         {
             StatusCode = APIResultObject.OK,
             Description = "",
             Result = query.Status
         };
         if ( query.Status == Models.SystemType.PreOrderStatus.Refused )
         {
             o.Description = query.WhyFailure;
         }
         else if ( query.Status == Models.SystemType.PreOrderStatus.Appointed )
         {
             o.Description = string.Format( "业务员:{0},电话:{1}", query.Order.SalesMan.Name, query.Order.SalesMan.Phone );
         }
         return Request.CreateResponse( HttpStatusCode.OK, o );
     }
 }