public ISignInResponse SignIn(SignInDto signInDto) { var user = ValidateSignIn(signInDto); user.LastLoginOn = _systemClock.GetCurrentTime(); user.LastUpdatedOn = _systemClock.GetCurrentTime(); var token = JwtHelper.GenerateJSONWebToken(_config, user); user.Token = Hash.Create(token, user.Salt); _repository.User.Update(user); _repository.Save(); var response = new SignInResponse { Id = user.Id, Token = token, CreationOn = user.CreationOn, LastLoginOn = user.LastLoginOn, LastUpdatedOn = user.LastUpdatedOn }; return(response); }
public async Task Index(int id) { async Task <string[]> GetTimesAsync() { var times = new string[6]; for (int index = 0; index < 3; index++) { times[index] = $"Local: {_clock.GetCurrentTime(DateTimeKind.Local)}"; await Task.Delay(1000); } for (int index = 3; index < 6; index++) { times[index] = $"UTC: {_clock.GetCurrentTime(DateTimeKind.Utc)}"; await Task.Delay(1000); } return(times); } var currentTimes = await GetTimesAsync(); var list = string.Join("", currentTimes.Select(x => $"<li>{x}</li>")); Response.ContentType = "text/html"; await Response.WriteAsync( $@"<html><body> <ul> {list} </ul> </body> </html>" ); }
public void Process(InvalidReportFromUnknownDataCollectorReceived @event) { var invalidCaseReport = new InvalidCaseReportFromUnknownDataCollector(@event.CaseReportId); invalidCaseReport.PhoneNumber = @event.Origin; invalidCaseReport.Message = @event.Message; invalidCaseReport.ParsingErrorMessage = @event.ErrorMessages; invalidCaseReport.Timestamp = _systemClock.GetCurrentTime(); _invalidCaseReportsFromUnknownDataCollectors.Save(invalidCaseReport); }
/// <inheritdoc/> public IEventProcessingResult Process(IEventEnvelope envelope, IEvent @event) { var status = EventProcessingStatus.Success; var start = _systemClock.GetCurrentTime(); var messages = new EventProcessingMessage[0]; try { var processor = _container.Get(_methodInfo.DeclaringType); _methodInfo.Invoke(processor, new[] { @event }); } catch (Exception ex) { status = EventProcessingStatus.Failed; messages = new[] { new EventProcessingMessage(EventProcessingMessageSeverity.Error, ex.Message, ex.StackTrace.Split(Environment.NewLine.ToCharArray())) }; } var end = _systemClock.GetCurrentTime(); return(new EventProcessingResult(envelope.CorrelationId, this, status, start, end, messages)); }
public void Handle(RegisterNewAdminUser command) { var user = _repository.Get(command.Role.StaffUserId); user.RegisterNewAdminUser(command.Role.FullName, command.Role.DisplayName, command.Role.Email, _systemClock.GetCurrentTime()); }
void SetState(IEventProcessor eventProcessor, IEventEnvelope envelope, EventProcessingStatus processingStatus) { dynamic state = new ExpandoObject(); state.EventProcessor = eventProcessor.Identifier; state.LastProcessedSequenceNumber = envelope.SequenceNumber; state.LastProcessedSequenceNumberForEventType = envelope.SequenceNumberForEventType; state.LastProcessed = _systemClock.GetCurrentTime(); state.LastProcessingStatus = processingStatus; var json = _serializer.ToJson(state); _database.StringSet(GetKeyFor(eventProcessor), json); }
public void Process(CaseReportFromUnknownDataCollectorReceived @event) { var caseReport = new CaseReportFromUnknownDataCollector(@event.CaseReportId); caseReport.Origin = @event.Origin; caseReport.HealthRiskId = @event.HealthRiskId; caseReport.NumberOfFemalesUnder5 = @event.Age <= 5 && (Sex)@event.Sex == Sex.Female ? 1 : 0; caseReport.NumberOfFemalesOver5 = @event.Age > 5 && (Sex)@event.Sex == Sex.Female ? 1 : 0; caseReport.NumberOfMalesUnder5 = @event.Age <= 5 && (Sex)@event.Sex == Sex.Male ? 1 : 0; caseReport.NumberOfMalesOver5 = @event.Age > 5 && (Sex)@event.Sex == Sex.Male ? 1 : 0; caseReport.Timestamp = _systemClock.GetCurrentTime(); caseReport.Location = new Location(@event.Latitude, @event.Longitude); _caseReportsFromUnknownDataCollectors.Save(caseReport); }
void WriteState(IEventProcessor eventProcessor, IEventEnvelope envelope, EventProcessingStatus processingStatus) { dynamic state = new ExpandoObject(); state.EventProcessor = eventProcessor.Identifier; state.LastProcessedSequenceNumber = envelope.SequenceNumber; state.LastProcessedSequenceNumberForEventType = envelope.SequenceNumberForEventType; state.LastProcessed = _systemClock.GetCurrentTime(); state.LastProcessingStatus = processingStatus; var json = _serializer.ToJson(state); var fileName = GetFileNameFor(eventProcessor); _files.WriteString(_configuration.Path, fileName, json); }
void WriteState(IEventProcessor eventProcessor, IEventEnvelope envelope, EventProcessingStatus processingStatus) { dynamic state = new ExpandoObject(); state.EventProcessor = eventProcessor.Identifier; state.LastProcessedSequenceNumber = envelope.SequenceNumber; state.LastProcessedSequenceNumberForEventType = envelope.SequenceNumberForEventType; state.LastProcessed = _systemClock.GetCurrentTime(); state.LastProcessingStatus = processingStatus; var json = _serializer.ToJson(state); var path = GetPathFor(eventProcessor); File.WriteAllText(path, json); }
public async Task Index(string kind = "local") { DateTimeKind dateTimeKind = string.Compare(kind, "utc", true) == 0 ? DateTimeKind.Utc : DateTimeKind.Local; Response.ContentType = "text/html"; await Response.WriteAsync("<html><body><ul>"); for (int i = 0; i < 2; i++) { await Response.WriteAsync($"<li>{_clock.GetCurrentTime(dateTimeKind)}</li>"); await Task.Delay(1000); } await Response.WriteAsync("</ul><body></html>"); }
/// <inheritdoc/> public override Task Connect(HeadInfo request, IServerStreamWriter <Empty> responseStream, ServerCallContext context) { var headId = request.HeadId.To <HeadId>(); Timer timer = null; try { _logger.Information($"Head connected '{headId}'"); if (request.ServicesByName.Count == 0) { _logger.Information("Not providing any head services"); } else { request.ServicesByName.ForEach(_ => _logger.Information($"Providing service {_}")); } var connectionTime = _systemClock.GetCurrentTime(); var client = new Head( headId, request.Host, request.Port, request.Runtime, request.ServicesByName, connectionTime); _connectedHeads.Connect(client); timer = new Timer(1000) { Enabled = true }; timer.Elapsed += (s, e) => responseStream.WriteAsync(new Empty()); context.CancellationToken.ThrowIfCancellationRequested(); context.CancellationToken.WaitHandle.WaitOne(); } finally { _connectedHeads.Disconnect(headId); timer?.Dispose(); } return(Task.CompletedTask); }
/// <inheritdoc/> public IEventEnvelope CreateFrom(IEventSource eventSource, IEvent @event, EventSourceVersion version) { var envelope = new EventEnvelope( TransactionCorrelationId.NotSet, Guid.NewGuid(), EventSequenceNumber.Zero, EventSequenceNumber.Zero, _eventMigrationHierarchyManager.GetCurrentGenerationFor(@event.GetType()), _applicationResources.Identify(@event), eventSource.EventSourceId, _applicationResources.Identify(eventSource), version, _executionContext.Principal.Identity.Name, _systemClock.GetCurrentTime() ); return(envelope); }
public int ApplyInterest(int accountId, double rate, DateTime latestInterestDate) { Account account = accountQueriesHandler.GetAccount(accountId); rate /= 100; DateTime currentDate = systemClock.GetCurrentTime(); double days = (currentDate - latestInterestDate).TotalDays; decimal amount = (decimal)((double)account.Balance * rate / 365 * days); amount = Decimal.Round(amount, 2); account.Balance += amount; context.Update(account); context.SaveChanges(); transactionCommandsHandler.CreateTransaction(accountId, amount, account.Balance, "Interest", "Credit"); return(1); }
private void ValidateUser(IUser user, string token) { if (user == null) { throw new KeyNotFoundException("User doesn't exists"); } if (token == null) { throw new UnauthorizedAccessException("Unauthorized"); } if (!Hash.Validate(token, user.Salt, user.Token)) { throw new UnauthorizedAccessException("Unauthorized"); } if (user.LastLoginOn <= _systemClock.GetCurrentTime().AddMinutes(-30)) { throw new UnauthorizedAccessException("Invalid Session"); } }
UncommittedEventStream BuildUncommitted(UncommittedEvents uncommittedEvents, CorrelationId correlationId) { var versionedEventSource = ToVersionedEventSource(uncommittedEvents); return(BuildFrom(versionedEventSource, correlationId, _systemClock.GetCurrentTime(), uncommittedEvents.Events)); }