示例#1
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="invitationId">Идентификатор приглашения</param>
        /// <returns>Информация о приглашении</returns>
        public async Task <InvitationResult> ExecuteAsync(Guid invitationId)
        {
            Contract.Argument.IsNotEmptyGuid(invitationId, nameof(invitationId));

            var invitation = await _invitationRepository.GetAsync(invitationId);

            var alienResult = await _alienReadCommand.ExecuteAsync(invitation.AlienId);

            var employeeResult = await _employeeReadCommand.ExecuteAsync(invitation.EmployeeId);

            var visitDetailResult = invitation.VisitDetailId.HasValue
                ? await _visitDetailReadCommand.ExecuteAsync(invitation.VisitDetailId.Value)
                : default;

            var foreignParticipantCollectionResult = invitation.ForeignParticipants != null
                ? await _foreignParticipantReadCommand.ExecuteAsync(invitation.ForeignParticipants.Select(fp => fp.Id))
                : default;

            return(DomainEntityConverter.ConvertToResult(
                       invitation: invitation,
                       alienResult: alienResult,
                       employeeResult: employeeResult,
                       visitDetailResult: visitDetailResult,
                       foreignParticipantResultCollection: foreignParticipantCollectionResult));
        }
示例#2
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="passportId">Идентификатор паспортных данных</param>
        /// <returns>Информация о паспорте</returns>
        public async Task <PassportResult> ExecuteAsync(Guid passportId)
        {
            Contract.Argument.IsNotEmptyGuid(passportId, nameof(passportId));

            var passport = await _passportRepository.GetAsync(passportId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(passport: passport));
        }
示例#3
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="contactId">Идентификатор контакта</param>
        /// <returns>Информация о контакте</returns>
        public async Task <ContactResult> ExecuteAsync(Guid contactId)
        {
            Contract.Argument.IsNotEmptyGuid(contactId, nameof(contactId));

            var contact = await _contactRepository.GetAsync(contactId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(contact: contact));
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="visitDetailId">Идентификатор деталей визита</param>
        /// <returns>Информация о деталях визита</returns>
        public async Task <VisitDetailResult> ExecuteAsync(Guid visitDetailId)
        {
            Contract.Argument.IsNotEmptyGuid(visitDetailId, nameof(visitDetailId));

            var visitDetail = await _visitDetailRepository.GetAsync(visitDetailId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(visitDetail: visitDetail));
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="foreignParticipantId">Идентификатор иностранного участника</param>
        /// <returns>Информация об иностранном участнике</returns>
        public async Task <ForeignParticipantResult> ExecuteAsync(Guid foreignParticipantId)
        {
            Contract.Argument.IsNotEmptyGuid(foreignParticipantId, nameof(foreignParticipantId));

            var foreignParticipant = await _foreignParticipantRepository.GetAsync(foreignParticipantId);

            return(DomainEntityConverter.ConvertToResult(foreignParticipant: foreignParticipant));
        }
示例#6
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="stateRegistrationId">Идентификатор государственной регистрации</param>
        /// <returns>Информация об госудраственной регистрации</returns>
        public async Task <StateRegistrationResult> ExecuteAsync(Guid stateRegistrationId)
        {
            Contract.Argument.IsNotEmptyGuid(stateRegistrationId, nameof(stateRegistrationId));

            var stateRegistration = await _stateRegistrationRepository.GetAsync(stateRegistrationId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(stateRegistration: stateRegistration));
        }
示例#7
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="profileId">Идентификатор профиля</param>
        /// <returns>Информация о профиле</returns>
        public async Task <ProfileResult> ExecuteAsync(Guid profileId)
        {
            Contract.Argument.IsNotEmptyGuid(profileId, nameof(profileId));

            var profile = await _profileRepository.GetAsync(profileId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(profile: profile));
        }
示例#8
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="documentId">Идентификатор документа</param>
        /// <returns>Информация о документах</returns>
        public async Task <DocumentResult> ExecuteAsync(Guid documentId)
        {
            Contract.Argument.IsNotEmptyGuid(documentId, nameof(documentId));

            var document = await _documentRepository.GetAsync(documentId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(document: document));
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="organizationId">Идентификатор организации</param>
        /// <returns>Информация об организации</returns>
        public async Task <OrganizationResult> ExecuteAsync(Guid organizationId)
        {
            Contract.Argument.IsNotEmptyGuid(organizationId, nameof(organizationId));

            var organization = await _organizationRepository.GetAsync(organizationId).ConfigureAwait(false);

            var stateRegistrationResult = await _stateRegistrationReadCommand.ExecuteAsync(organization.StateRegistrationId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(
                       organization: organization,
                       stateRegistrationResult: stateRegistrationResult));
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="organizationId">Идентификатор организации</param>
        /// <returns>Информация об организации</returns>
        public async Task <OrganizationResult> ExecuteAsync(Guid organizationId)
        {
            var organization = await _organizationRepository.GetAsync(organizationId);

            var stateRegistrationResult = organization.StateRegistrationId.HasValue
                ? await _stateRegistrationReadCommand.ExecuteAsync(organization.StateRegistrationId.Value)
                : default;

            return(DomainEntityConverter.ConvertToResult(
                       organization: organization,
                       stateRegistrationResult: stateRegistrationResult));
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="foreignParticipantId">Идентификатор иностранного участника</param>
        /// <returns>Информация об иностранном участнике</returns>
        public async Task <ForeignParticipantResult> ExecuteAsync(Guid foreignParticipantId)
        {
            Contract.Argument.IsNotEmptyGuid(foreignParticipantId, nameof(foreignParticipantId));

            var foreignParticipant = await _foreignParticipantRepository.GetAsync(foreignParticipantId).ConfigureAwait(false);

            var passportResult = await _passportReadCommand.ExecuteAsync(foreignParticipant.PassportId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(
                       foreignParticipant: foreignParticipant,
                       passportResult: passportResult));
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="alienId">Идентификатор иностранца</param>
        /// <returns>Информация об иностранце</returns>
        public async Task <AlienResult> ExecuteAsync(Guid alienId)
        {
            var alien = await _alienRepository.GetAsync(alienId);

            var contactResult = alien.ContactId.HasValue ? await _contactReadCommand.ExecuteAsync(alien.ContactId.Value) : default;

            var passportResult = alien.PassportId.HasValue ? await _passportReadCommand.ExecuteAsync(alien.PassportId.Value) : default;

            var organizationResult = alien.OrganizationId.HasValue ? await _organizationReadCommand.ExecuteAsync(alien.OrganizationId.Value) : default;

            var stateRegistrationResult = alien.StateRegistrationId.HasValue ? await _stateRegistrationReadCommand.ExecuteAsync(alien.StateRegistrationId.Value) : default;

            return(DomainEntityConverter.ConvertToResult(
                       alien: alien,
                       contactResult: contactResult,
                       passportResult: passportResult,
                       organizationResult: organizationResult,
                       stateRegistrationResult: stateRegistrationResult));
        }
示例#13
0
        public async Task <ChatMessageResult> CreateMessage(MessageDto model, User userTo, User user)
        {
            var message = new ChatMessage
            {
                ChatRoomId = model.chatRoomId,
                UserId     = user.Id,
                Message    = model.message,
                DateTime   = DateTime.Now
            };
            await _chatMessageRepository.CreateAsync(message);

            await _domainContext.SaveChangesAsync();

            return(DomainEntityConverter.ConvertToResult(
                       user: user,
                       userTo: userTo,
                       chatMessage: message
                       ));
        }
示例#14
0
        /// <summary>
        /// Выполнить команду на чтение информации по сотруднику
        /// </summary>
        /// <param name="employeeId">Идентификатор иностранца</param>
        /// <returns>Информация по сотруднику</returns>
        public async Task <EmployeeResult> ExecuteAsync(Guid employeeId)
        {
            var employee = await _employeeRepository.GetAsync(employeeId);

            var contactResult = employee.ContactId.HasValue ? await _contactReadCommand.ExecuteAsync(employee.ContactId.Value) : default;

            var passportResult = employee.PassportId.HasValue ? await _passportReadCommand.ExecuteAsync(employee.PassportId.Value) : default;

            var organizationResult = employee.OrganizationId.HasValue ? await _organizationReadCommand.ExecuteAsync(employee.OrganizationId.Value) : default;

            var stateRegistrationResult = employee.StateRegistrationId.HasValue ? await _stateRegistrationReadCommand.ExecuteAsync(employee.StateRegistrationId.Value) : default;

            return(DomainEntityConverter.ConvertToResult(
                       employee: employee,
                       contactResult: contactResult,
                       passportResult: passportResult,
                       organizationResult: organizationResult,
                       stateRegistrationResult: stateRegistrationResult));
        }
示例#15
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="alienId">Идентификатор иностранца</param>
        /// <returns>Информация об иностранце</returns>
        public async Task <AlienResult> ExecuteAsync(Guid alienId)
        {
            Contract.Argument.IsNotEmptyGuid(alienId, nameof(alienId));

            var alien = await _alienRepository.GetAsync(alienId).ConfigureAwait(false);

            var contactResult = await _contactReadCommand.ExecuteAsync(alien.ContactId).ConfigureAwait(false);

            var passportResult = await _passportReadCommand.ExecuteAsync(alien.PassportId).ConfigureAwait(false);

            var organizationResult = await _organizationReadCommand.ExecuteAsync(alien.OrganizationId).ConfigureAwait(false);

            var stateRegistrationResult = await _stateRegistrationReadCommand.ExecuteAsync(alien.StateRegistrationId).ConfigureAwait(false);

            return(DomainEntityConverter.ConvertToResult(
                       alien: alien,
                       contactResult: contactResult,
                       passportResult: passportResult,
                       organizationResult: organizationResult,
                       stateRegistrationResult: stateRegistrationResult));
        }
示例#16
0
        /// <summary>
        /// Выполнить команду на чтение информации по сотруднику
        /// </summary>
        /// <param name="employeeId">Идентификатор сотрудника</param>
        /// <returns>Информация по сотруднику</returns>
        public async Task <EmployeeResult> ExecuteAsync(Guid employeeId)
        {
            Contract.Argument.IsNotEmptyGuid(employeeId, nameof(employeeId));

            var employee = await _employeeRepository.GetAsync(employeeId).ConfigureAwait(false);

            var contactResult = employee.ContactId.HasValue ? await _contactReadCommand.ExecuteAsync(employee.ContactId.Value).ConfigureAwait(false) : null;

            var passportResult = employee.PassportId.HasValue ? await _passportReadCommand.ExecuteAsync(employee.PassportId.Value).ConfigureAwait(false) : null;

            var organizationResult = employee.OrganizationId.HasValue ? await _organizationReadCommand.ExecuteAsync(employee.OrganizationId.Value).ConfigureAwait(false) : null;

            var stateRegistrationResult = employee.StateRegistrationId.HasValue ? await _stateRegistrationReadCommand.ExecuteAsync(employee.StateRegistrationId.Value).ConfigureAwait(false) : null;

            return(DomainEntityConverter.ConvertToResult(
                       employee: employee,
                       contactResult: contactResult,
                       passportResult: passportResult,
                       organizationResult: organizationResult,
                       stateRegistrationResult: stateRegistrationResult));
        }
        public static async Task Main(string[] args)
        {
            const string host         = "http://localhost:9999";
            const string token        = "my-token";
            const string bucket       = "my-bucket";
            const string organization = "my-org";
            var          options      = new InfluxDBClientOptions.Builder()
                                        .Url(host)
                                        .AuthenticateToken(token.ToCharArray())
                                        .Org(organization)
                                        .Bucket(bucket)
                                        .Build();

            var converter = new DomainEntityConverter();
            var client    = InfluxDBClientFactory.Create(options);

            //
            // Prepare data to write
            //
            var time = new DateTimeOffset(2020, 11, 15, 8, 20, 15,
                                          new TimeSpan(3, 0, 0));

            var entity1 = new DomainEntity
            {
                Timestamp  = time,
                SeriesId   = Guid.Parse("0f8fad5b-d9cb-469f-a165-70867728950e"),
                Value      = 15,
                Properties = new List <DomainEntityAttribute>
                {
                    new DomainEntityAttribute
                    {
                        Name = "height", Value = 4
                    },
                    new DomainEntityAttribute
                    {
                        Name = "width", Value = 110
                    }
                }
            };
            var entity2 = new DomainEntity
            {
                Timestamp  = time.AddHours(1),
                SeriesId   = Guid.Parse("0f8fad5b-d9cb-469f-a165-70867728950e"),
                Value      = 15,
                Properties = new List <DomainEntityAttribute>
                {
                    new DomainEntityAttribute
                    {
                        Name = "height", Value = 5
                    },
                    new DomainEntityAttribute
                    {
                        Name = "width", Value = 160
                    }
                }
            };
            var entity3 = new DomainEntity
            {
                Timestamp  = time.AddHours(2),
                SeriesId   = Guid.Parse("7c9e6679-7425-40de-944b-e07fc1f90ae7"),
                Value      = 15,
                Properties = new List <DomainEntityAttribute>
                {
                    new DomainEntityAttribute
                    {
                        Name = "height", Value = 5
                    },
                    new DomainEntityAttribute
                    {
                        Name = "width", Value = 110
                    }
                }
            };
            var entity4 = new DomainEntity
            {
                Timestamp  = time.AddHours(3),
                SeriesId   = Guid.Parse("7c9e6679-7425-40de-944b-e07fc1f90ae7"),
                Value      = 15,
                Properties = new List <DomainEntityAttribute>
                {
                    new DomainEntityAttribute
                    {
                        Name = "height", Value = 6
                    },
                    new DomainEntityAttribute
                    {
                        Name = "width", Value = 160
                    }
                }
            };

            //
            // Write data
            //
            await client.GetWriteApiAsync(converter)
            .WriteMeasurementsAsync(WritePrecision.S, entity1, entity2, entity3, entity4);

            //
            // Query Data to Domain object
            //
            var queryApi = client.GetQueryApiSync(converter);

            //
            // Select ALL
            //
            var query = from s in InfluxDBQueryable <DomainEntity> .Queryable("my-bucket", "my-org", queryApi, converter)
                        select s;

            Console.WriteLine("==== Select ALL ====");
            query.ToList().ForEach(it => Console.WriteLine(it.ToString()));

            //
            // Filter By Tag
            //
            query = from s in InfluxDBQueryable <DomainEntity> .Queryable("my-bucket", "my-org", queryApi, converter)
                        where s.SeriesId == Guid.Parse("7c9e6679-7425-40de-944b-e07fc1f90ae7")
                    select s;

            Console.WriteLine("==== Filter by Tag ====");
            query.ToList().ForEach(it => Console.WriteLine(it.ToString()));

            //
            // Use Take + Skip
            //
            query = (from s in InfluxDBQueryable <DomainEntity> .Queryable("my-bucket", "my-org", queryApi, converter)
                     select s)
                    .Take(1)
                    .Skip(1);
            Console.WriteLine("==== Use Take + Skip ====");
            query.ToList().ForEach(it => Console.WriteLine(it.ToString()));

            //
            // Use Time Range
            //
            query = from s in InfluxDBQueryable <DomainEntity> .Queryable("my-bucket", "my-org", queryApi, converter)
                        where s.Timestamp > time.AddMinutes(30) && s.Timestamp < time.AddHours(3)
                    select s;

            Console.WriteLine("==== Use Time Range ====");
            query.ToList().ForEach(it => Console.WriteLine(it.ToString()));

            //
            // Use Any
            //
            query = from s in InfluxDBQueryable <DomainEntity> .Queryable("my-bucket", "my-org", queryApi, converter)
                        where s.Properties.Any(a => a.Name == "width" && a.Value == 160)
                    select s;

            Console.WriteLine("==== Use Any ====");
            query.ToList().ForEach(it => Console.WriteLine(it.ToString()));

            //
            // Debug Query
            //
            Console.WriteLine("==== Debug LINQ Queryable Flux output ====");
            var influxQuery = ((InfluxDBQueryable <DomainEntity>)query).ToDebugQuery();

            foreach (var statement in influxQuery.Extern.Body)
            {
                var os    = statement as OptionStatement;
                var va    = os?.Assignment as VariableAssignment;
                var name  = va?.Id.Name;
                var value = va?.Init.GetType().GetProperty("Value")?.GetValue(va.Init, null);

                Console.WriteLine($"{name}={value}");
            }
            Console.WriteLine();
            Console.WriteLine(influxQuery._Query);

            client.Dispose();
        }
示例#18
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="contactId">Идентификатор контакта</param>
        /// <returns>Информация о контакте</returns>
        public async Task <ContactResult> ExecuteAsync(Guid contactId)
        {
            var contact = await _contactRepository.GetAsync(contactId);

            return(DomainEntityConverter.ConvertToResult(contact: contact));
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="stateRegistrationId">Идентификатор государственной регистрации</param>
        /// <returns>Информация об госудраственной регистрации</returns>
        public async Task <StateRegistrationResult> ExecuteAsync(Guid stateRegistrationId)
        {
            var stateRegistration = await _stateRegistrationRepository.GetAsync(stateRegistrationId);

            return(DomainEntityConverter.ConvertToResult(stateRegistration: stateRegistration));
        }
示例#20
0
        public static async Task Main(string[] args)
        {
            const string host         = "http://localhost:9999";
            const string token        = "my-token";
            const string bucket       = "my-bucket";
            const string organization = "my-org";
            var          options      = new InfluxDBClientOptions.Builder()
                                        .Url(host)
                                        .AuthenticateToken(token.ToCharArray())
                                        .Org(organization)
                                        .Bucket(bucket)
                                        .Build();

            var converter = new DomainEntityConverter();
            var client    = InfluxDBClientFactory.Create(options);

            //
            // Prepare data to write
            //
            var time = new DateTimeOffset(2020, 11, 15, 8, 20, 15,
                                          new TimeSpan(3, 0, 0));

            var entity1 = new Sensor
            {
                Timestamp = time,
                Type      = "temperature",
                Version   = "v0.0.2",
                Value     = 15
            };
            var entity2 = new Sensor
            {
                Timestamp = time.AddHours(1),
                Type      = "temperature",
                Version   = "v0.0.2",
                Value     = 15
            };
            var entity3 = new Sensor
            {
                Timestamp = time.AddHours(2),
                Type      = "humidity",
                Version   = "v0.13",
                Value     = 74
            };
            var entity4 = new Sensor
            {
                Timestamp = time.AddHours(3),
                Type      = "humidity",
                Version   = "v0.13",
                Value     = 82
            };

            //
            // Write data
            //
            await client.GetWriteApiAsync(converter)
            .WriteMeasurementsAsync(WritePrecision.S, entity1, entity2, entity3, entity4);

            //
            // Query Data to Domain object
            //
            var queryApi = client.GetQueryApiSync(converter);

            //
            // Select ALL
            //
            var query = $"from(bucket:\"{bucket}\") " +
                        "|> range(start: 0) " +
                        "|> filter(fn: (r) => r[\"_measurement\"] == \"sensor\")" +
                        "|> pivot(rowKey:[\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")";

            var sensors = queryApi.QuerySync <Sensor>(query);

            //
            // Print result
            //
            sensors.ForEach(it => Console.WriteLine(it.ToString()));

            client.Dispose();
        }
示例#21
0
        public async Task <List <ChatRoomResult> > GetAllRooms(Guid profileId, string name)
        {
            var listRooms = await _chatRoomListRepository.GetAllAsync();

            var usersFull = await _userRepository.GetUsersFull();

            var me    = usersFull.FirstOrDefault(e => e.ProfileId == profileId);
            var users = usersFull
                        .Where(e => e.Account.ToUpper().Contains(name.ToUpper()) && e.ProfileId != profileId)
                        .ToList();
            var messages = await _chatMessageRepository.GetAllAsync();

            List <ChatRoomResult> chats = new List <ChatRoomResult>();

            foreach (var temp in users)
            {
                var tempRoom = listRooms.Where(e => e.UserId == temp.Id).ToList();
                if (tempRoom.Count > 0)
                {
                    var roomExist = listRooms
                                    .FirstOrDefault(e => e.UserId == me.Id && tempRoom
                                                    .FirstOrDefault(a => a.ChatRoomId == e.ChatRoomId) != null);
                    if (roomExist != null)
                    {
                        var tempRoomForUser = tempRoom
                                              .FirstOrDefault(a => a.ChatRoomId == roomExist.ChatRoomId);
                        if (tempRoomForUser != null)
                        {
                            var lastMessage = messages
                                              .OrderByDescending(e => e.DateTime)
                                              .FirstOrDefault(e => e.ChatRoomId == tempRoomForUser.ChatRoomId);
                            var tempUser = usersFull
                                           .FirstOrDefault(e => e.Id.CompareTo(tempRoomForUser.UserId) == 0);

                            var tempRoomDto = DomainEntityConverter.ConvertToResult(
                                user: tempUser,
                                chatRoomList: tempRoomForUser,
                                chatMessage: lastMessage
                                );

                            chats.Add(tempRoomDto);
                        }
                    }
                    else
                    {
                        var tempRoomDto = DomainEntityConverter.ConvertToResult(
                            user: temp,
                            chatRoomList: null,
                            chatMessage: null
                            );
                        chats.Add(tempRoomDto);
                    }
                }
                else
                {
                    var tempRoomDto = DomainEntityConverter.ConvertToResult(
                        user: temp,
                        chatRoomList: null,
                        chatMessage: null
                        );
                    chats.Add(tempRoomDto);
                }
            }
            return(chats);
        }
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="passportId">Идентификатор паспортных данных</param>
        /// <returns>Информация о паспорте</returns>
        public async Task <PassportResult> ExecuteAsync(Guid passportId)
        {
            var passport = await _passportRepository.GetAsync(passportId);

            return(DomainEntityConverter.ConvertToResult(passport: passport));
        }
示例#23
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="documentId">Идентификатор документа</param>
        /// <returns>Информация о документах</returns>
        public async Task <DocumentResult> ExecuteAsync(Guid documentId)
        {
            var document = await _documentRepository.GetAsync(documentId);

            return(DomainEntityConverter.ConvertToResult(document: document));
        }
示例#24
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="visitDetailId">Идентификатор деталей визита</param>
        /// <returns>Информация о деталях визита</returns>
        public async Task <VisitDetailResult> ExecuteAsync(Guid visitDetailId)
        {
            var visitDetail = await _visitDetailRepository.GetAsync(visitDetailId);

            return(DomainEntityConverter.ConvertToResult(visitDetail: visitDetail));
        }
        public static void Main(string[] args)
        {
            const string host         = "https://us-west-2-1.aws.cloud2.influxdata.com";
            const string token        = "...";
            const string bucket       = "linq_bucket";
            const string organization = "jakub_bednar";
            var          options      = new InfluxDBClientOptions.Builder()
                                        .Url(host)
                                        .AuthenticateToken(token.ToCharArray())
                                        .Org(organization)
                                        .Bucket(bucket)
                                        .Build();

            var converter = new DomainEntityConverter();
            var client    = InfluxDBClientFactory.Create(options)
                            .EnableGzip();

            //
            // Query Data to Domain object
            //
            var queryApi = client.GetQueryApiSync(converter);

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            //
            // Select Cloud
            //
            var query = from s in InfluxDBQueryable <DomainEntity> .Queryable(bucket, organization, queryApi, converter)
                        select s;

            var entities = query.ToList();

            Console.WriteLine("==== Cloud Query Results ====");
            Console.WriteLine($"> count: {entities.Count}");
            Console.WriteLine($"> first: {entities.First()}");
            Console.WriteLine($"> elapsed seconds: {stopWatch.Elapsed.TotalSeconds}");
            Console.WriteLine();

            //
            // Debug Query
            //
            Console.WriteLine("==== Debug LINQ Queryable Flux output ====");
            var influxQuery = ((InfluxDBQueryable <DomainEntity>)query).ToDebugQuery();

            Console.WriteLine("> variables:");
            foreach (var statement in influxQuery.Extern.Body)
            {
                var os    = statement as OptionStatement;
                var va    = os?.Assignment as VariableAssignment;
                var name  = va?.Id.Name;
                var value = va?.Init.GetType().GetProperty("Value")?.GetValue(va.Init, null);

                Console.WriteLine($"{name}={value}");
            }
            Console.WriteLine();
            Console.WriteLine("> query:");
            Console.WriteLine(influxQuery._Query);

            client.Dispose();
        }
示例#26
0
        /// <summary>
        /// Выполнить команду
        /// </summary>
        /// <param name="profileId">Идентификатор профиля</param>
        /// <returns>Информация о профиле</returns>
        public async Task <ProfileResult> ExecuteAsync(Guid profileId)
        {
            var profile = await _profileRepository.GetAsync(profileId);

            return(DomainEntityConverter.ConvertToResult(profile: profile));
        }