/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
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 )); }
/// <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)); }
/// <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)); }
/// <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(); }
/// <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)); }
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(); }
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)); }
/// <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)); }
/// <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(); }
/// <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)); }