コード例 #1
0
ファイル: WebSocket.cs プロジェクト: zaccharles/gdax-csharp
        public void WebSocket_Opened(object sender, EventArgs e)
        {
            if (productTypes.Count == 0)
            {
                throw new ArgumentException("You must specify at least one product type");
            }

            var channels = GetChannels();

            var timeStamp = clock.GetTime().ToTimeStamp();
            var json      = JsonConfig.SerializeObject(new TickerChannel
            {
                Type       = ActionType.Subscribe,
                ProductIds = productTypes,
                Channels   = channels,
                Timestamp  = timeStamp.ToString("F0", CultureInfo.InvariantCulture),
                Key        = authenticator.ApiKey,
                Passphrase = authenticator.Passphrase,
                Signature  = authenticator.ComputeSignature(HttpMethod.Get, authenticator.UnsignedSignature, timeStamp,
                                                            "/users/self/verify")
            });

            webSocketFeed.Send(json);

            webSocketFeed.Invoke(OnWebSocketOpenAndSubscribed, sender, new WebfeedEventArgs <EventArgs>(e));
        }
コード例 #2
0
        public HttpRequestMessage CreateHttpRequestMessage(
            HttpMethod httpMethod,
            string requestUri,
            string contentBody = "")
        {
            var apiUri = sandBox
                ? ApiUris.ApiUriSandbox
                : ApiUris.ApiUri;

            var requestMessage = new HttpRequestMessage(httpMethod, new Uri(new Uri(apiUri), requestUri))
            {
                Content = contentBody == string.Empty
                    ? null
                    : new StringContent(contentBody, Encoding.UTF8, "application/json")
            };

            var timeStamp = clock.GetTime().ToTimeStamp();

            if (authenticator == null)
            {
                AddHeaders(requestMessage, null, timeStamp, false);

                return(requestMessage);
            }

            var signedSignature = authenticator.ComputeSignature(httpMethod, authenticator.UnsignedSignature, timeStamp, requestUri, contentBody);

            AddHeaders(requestMessage, signedSignature, timeStamp, true);
            return(requestMessage);
        }
コード例 #3
0
        /// <summary>
        /// Starts execution of this job. It will execute on the next day for the first time.
        /// </summary>
        public void Start()
        {
            var interval = _clock.GetTime().CalculateIntervalForSameTimeNextDay(StartTime);

            _timer.Interval = interval.TotalMilliseconds;
            _timer.Start();
        }
コード例 #4
0
        public HttpRequestMessage CreateHttpRequestMessage(
            HttpMethod httpMethod,
            string requestUri,
            string contentBody = "")
        {
            if (authenticator == null)
            {
                throw new GDAXSharpHttpException($"Please provide an authenticator to the client to request \"{requestUri}\"");
            }

            var apiUri = sandBox
                ? ApiUris.ApiUriSandbox
                : ApiUris.ApiUri;

            var requestMessage = new HttpRequestMessage(httpMethod, new Uri(new Uri(apiUri), requestUri))
            {
                Content = contentBody == string.Empty
                    ? null
                    : new StringContent(contentBody, Encoding.UTF8, "application/json")
            };

            var timeStamp       = clock.GetTime().ToTimeStamp();
            var signedSignature = authenticator.ComputeSignature(httpMethod, authenticator.UnsignedSignature, timeStamp, requestUri, contentBody);

            AddHeaders(requestMessage, signedSignature, timeStamp);
            return(requestMessage);
        }
コード例 #5
0
        // POST api/comments/5
        public int Post(int postId, [FromBody] Comment comment)
        {
            comment.DateTime = clock.GetTime();
            comment.PostID   = postId;
            context.Add(comment);
            context.SaveChanges();

            return(comment.ID);
        }
コード例 #6
0
        // POST api/posts
        public async Task <int> PostAsync([FromBody] Post post)
        {
            post.DateTime = clock.GetTime();
            await context.AddAsync(post);

            await context.SaveChangesAsync();

            return(post.Id);
        }
コード例 #7
0
        private void ResetWorktimeIfNeed()
        {
            DateTime time = clock.GetTime();

            if (current.Day != time.Day)
            {
                if (status)
                {
                    elapsed     = TimeSpan.Zero;
                    absent      = TimeSpan.Zero;
                    previosTime = time;
                    current     = time;
                    begin       = time;
                    state.Ready = true;
                }
                else
                {
                    state.Ready = false;
                }
            }
        }
コード例 #8
0
        public void GetTime_Method_Should_Return_DateTimeNow_Greater_Than_DateTime_Provided()
        {
            //Arrange
            string   dateTimeInPastCharacter = "2005-05-05 22:12 PM";
            DateTime dateTime = DateTime.ParseExact(dateTimeInPastCharacter, "yyyy-MM-dd HH:mm tt", CultureInfo.InvariantCulture);

            //Act
            DateTime clockResult = _clock.GetTime();

            //Assert
            Assert.IsTrue(dateTime < clockResult);
        }
コード例 #9
0
        private void Subscribe()
        {
            var channels = GetChannels();

            var timeStamp = clock.GetTime().ToTimeStamp();

            var withAuthentication = authenticator != null;

            var json = SubscribeMessage(withAuthentication, channels, timeStamp);

            webSocketFeed.Send(json);
        }
コード例 #10
0
 public ProcesadorArchivoPedidos(string path,
                                 string fileName,
                                 IFileExistValidator fileExistValidator,
                                 IFileDataReader fileDataReader,
                                 IClock clock)
 {
     _path                = path;
     _fileName            = fileName;
     _fileExistValidator  = fileExistValidator;
     _fileDataReader      = fileDataReader;
     _clientesFabricas    = new Dictionary <string, IClientesFabricas>();
     _procesadoresPedidos = new Dictionary <string, IProcesadorPedidos>();
     _tiempoApp           = clock.GetTime();
 }
コード例 #11
0
        private List <string> CreateFileMessages(string path, string fileName)
        {
            List <string> messages = new List <string>();

            //Leemos linea por línea para procesar la información
            string[] lines       = _fileEventDataReader.GetFileDataRows(path, fileName);
            DateTime dateTimeNow = _clock.GetTime();

            foreach (string line in lines)
            {
                messages.Add(GenerateEventMessage(line, dateTimeNow));
            }

            return(messages);
        }
コード例 #12
0
        public void WebSocket_Opened(object sender, EventArgs e)
        {
            if (productTypes.Count == 0)
            {
                throw new ArgumentException($"You must specify at least one {nameof(productTypes)}");
            }

            var channels = GetChannels();

            var timeStamp          = clock.GetTime().ToTimeStamp();
            var withAuthentication = authenticator != null;

            var json = SubscribeMessage(withAuthentication, channels, timeStamp);

            webSocketFeed.Send(json);

            webSocketFeed.Invoke(OnWebSocketOpenAndSubscribed, sender, new WebfeedEventArgs <EventArgs>(e));
        }
コード例 #13
0
        public HttpRequestMessage CreateHttpRequestMessage(
            HttpMethod httpMethod,
            string requestUri,
            string contentBody = "")
        {
            var apiUri = sandBox
                ? ApiUris.ApiUriSandbox
                : ApiUris.ApiUri;

            var requestMessage = new HttpRequestMessage(httpMethod, new Uri(new Uri(apiUri), requestUri))
            {
                Content = contentBody == string.Empty
                    ? null
                    : new StringContent(contentBody, Encoding.UTF8, "application/json")
            };

            var timeStamp = clock.GetTime().ToTimeStamp();

            AddHeaders(requestMessage, timeStamp);
            return(requestMessage);
        }
コード例 #14
0
        public HttpRequestMessage CreateHttpRequestMessage(
            HttpMethod httpMethod,
            IAuthenticator authenticator,
            string requestUri,
            string contentBody = "")
        {
            var baseUri = sandBox == true
                ? sandBoxApiUri
                : apiUri;

            var requestMessage = new HttpRequestMessage(httpMethod, new Uri(new Uri(baseUri), requestUri))
            {
                Content = contentBody == string.Empty
                    ? null
                    : new StringContent(contentBody, Encoding.UTF8, "application/json")
            };

            var timeStamp       = clock.GetTime().ToTimeStamp();
            var signedSignature = ComputeSignature(httpMethod, authenticator.UnsignedSignature, timeStamp, requestUri, contentBody);

            AddHeaders(requestMessage, authenticator, signedSignature, timeStamp);
            return(requestMessage);
        }
コード例 #15
0
 public IActionResult Index()
 {
     ViewData["Message"] = $"It is {_clock.GetTime().ToString("T")}";
     return(View());
 }
コード例 #16
0
 public void OnGet()
 {
     Message = _clock.GetTime();
 }
コード例 #17
0
        public string ConvertTime(string aTime)
        {
            var berlinTime = berlinClock.GetTime(aTime);

            return(stringFormatter.Format(berlinTime));
        }
コード例 #18
0
 public virtual void NewFrame()
 {
     lastTime  = time;
     time      = source.GetTime();
     deltaTime = time - lastTime;
 }