private async Task <AuthResponse> Authenticate(Courier courier)
        {
            CourierToken token = await _context.CourierTokens.FirstOrDefaultAsync(tok => tok.CourierID == courier.ID);

            if (token == null)
            {
                token = new CourierToken {
                    Value = Guid.NewGuid().ToString(), DateOfExpire = DateTime.Now.AddDays(3), Courier = courier, CourierID = courier.ID
                };
                await _context.CourierTokens.AddAsync(token);

                await _context.SaveChangesAsync();
            }
            else if (token.DateOfExpire < DateTime.Now)
            {
                token.Value        = Guid.NewGuid().ToString();
                token.DateOfExpire = DateTime.Now.AddDays(3);

                _context.CourierTokens.Update(token);

                await _context.SaveChangesAsync();
            }

            return(new AuthResponse {
                Token = token.Value, Courier = courier
            });
        }
        private bool CheckToken(BaseRequest request, out CourierToken courierToken)
        {
            courierToken = _context.CourierTokens.FirstOrDefault(token => token.Value == request.Token);

            if (courierToken != null && courierToken.DateOfExpire > DateTime.Now)
            {
                return(true);
            }
            else
            {
                ModelState.AddModelError("error", "Токен недействителен");
                return(false);
            }
        }