public void TestAtQueryKasterQueryBusExceptionHvisQueryHandlerIkkeErRegistreret() { var queryBus = new QueryBus(CreateContainer()); var query = new TestQueryWithoutQueryHandler(); Assert.Throws <QueryBusException>(() => queryBus.Query <TestQueryWithoutQueryHandler, Guid>(query)); }
public async Task <CalculatedPriceResponse> Get(Guid productId) { return(await QueryBus.Execute <GetCalculatedPriceQuery, CalculatedPriceResponse>(new GetCalculatedPriceQuery { ProductId = productId })); }
public async Task <CategoriesResponse> GetAll() { var categoriesQuery = new CategoriesQuery(); var categoriesResponse = await QueryBus.Execute <CategoriesQuery, CategoriesResponse>(categoriesQuery); return(categoriesResponse); }
protected override Task <Uri> GenerateAuthorizeUriAsync(HttpContext httpContext, Guid stateIdentifier) { NullGuard.NotNull(httpContext, nameof(httpContext)); IGetAuthorizeUriForMicrosoftGraphQuery query = new GetAuthorizeUriForMicrosoftGraphQuery(GetRedirectUriForMicrosoftGraph(httpContext.Request), stateIdentifier); return(QueryBus.QueryAsync <IGetAuthorizeUriForMicrosoftGraphQuery, Uri>(query)); }
public async Task <LocalizationObjectResponse> GetLocalizationObject(CultureInfo culture, string category = null) { return(await QueryBus.Execute <LocalizationObjectQuery, LocalizationObjectResponse>(new LocalizationObjectQuery { Culture = culture, Category = category })); }
private void Initialize() { ApplicationInformation = QueryBus.Process <GetApplicationInformation, ApplicationInformationDto>(new GetApplicationInformation()); Logger.Info($"Start applicaiton. Version: {ApplicationInformation.Version}."); Logger.Info($"Show view: {GetType().Name}."); StartRunTimer(); }
public async Task <ProductsWithPricesResponse> GetProducts(int page = 0, int itemsPerPage = 10) { var productsWithPricesQuery = new ProductsWithPricesQuery { ItemsOnPage = itemsPerPage, Page = page }; return(await QueryBus.Execute <ProductsWithPricesQuery, ProductsWithPricesResponse>(productsWithPricesQuery)); }
public void TestAtQueryKalderQueryHandler() { var queryBus = new QueryBus(CreateContainer()); var query = new TestQuery(); var id = queryBus.Query <TestQuery, Guid>(query); Assert.That(id, Is.Not.Null); Assert.That(id.GetType(), Is.EqualTo(typeof(Guid))); Assert.That(id, Is.Not.EqualTo(Guid.Empty)); }
static void Main(string[] args) { ICommandBus commandBus = new CommandBus(); IQueryBus queryBus = new QueryBus(); var cmd = new ActorInsertCommand { FirstName = "Mst", LastName = "Scl" }; var result = commandBus.Send <ActorInsertCommand, LongCommandResult>(cmd); var response = queryBus.Send <ActorReadAllQuery, ActorList>(new ActorReadAllQuery()); //var serviceDetailTypeHandler = new ServiceDetailTypeInsertCommandHandler(); //var result = serviceDetailTypeHandler.Handle(cmd); var id = result.Data.ReturnValue ?? -1L; Console.WriteLine("ReturnValue: " + result.Data?.ReturnValue); Console.WriteLine("ResponseCode: " + result.ResponseCode); Console.WriteLine("ResponseMessage: " + result.ResponseMessage); Thread.Sleep(2000); //var updateHandler = new ServiceDetailTypeUpdateCommandHandler(); //result = updateHandler.Handle( // new ServiceDetailTypeUpdateCommand // { // Id = id, // DetailTypeName = "My First Service Updated", // UpdatedBy = 1 // }); result = commandBus.Send <ActorUpdateCommand, LongCommandResult>(new ActorUpdateCommand { FirstName = "Mst Updated", LastName = "Scl Updated", ActorId = (int)id }); Console.WriteLine("ReturnValue: " + result.Data?.ReturnValue); Console.WriteLine("ResponseCode: " + result.ResponseCode); Console.WriteLine("ResponseMessage: " + result.ResponseMessage); Thread.Sleep(2000); //var deleteHandler = new ServiceDetailTypeDeleteCommandHandler(); //result = deleteHandler.Handle( // new ServiceDetailTypeDeleteCommand // { // Id = id // }); result = commandBus.Send <ActorDeleteCommand, LongCommandResult>(new ActorDeleteCommand { Id = (int)id }); Console.WriteLine("ReturnValue: " + result.Data?.ReturnValue); Console.WriteLine("ResponseCode: " + result.ResponseCode); Console.WriteLine("ResponseMessage: " + result.ResponseMessage); Console.ReadKey(); }
public void Should_handle_query_with_correct_query_handler() { var container = new Container(); container.Register <IQueryHandler <TestQuery, TestQueryResult>, TestQueryHandler>(); var queryBus = new QueryBus(container); var result = queryBus.Query <TestQuery, TestQueryResult>(new TestQuery()); Assert.IsTrue(result.QueryHandled); }
public void HappyPath() { var query = Substitute.For <IQuery <string> >(); var queryPerformer = Substitute.For <IQueryPerformer <IQuery <string>, string> >(); queryPerformer.Perform(query).Returns("Succes"); var queryBus = new QueryBus(t => queryPerformer); var queryResult = queryBus.Perform(query); Assert.Equal("Succes", queryResult); }
private static void SampleQueryHandlerWithInstance() { var injector = new SimpleInjector(); var queryBus = new QueryBus(injector); queryBus.RegisterInstance(new TestQueryHandler()); var query = new TestQuery("srn"); var response = queryBus.Handle(query); Console.WriteLine(response.Message); }
private static async Task Go() { Console.WriteLine("Starting"); Console.WriteLine("Dependency Injection - Register All"); // Dependency Injection var di = new TinyDependencyInjection(); di.AddDependency(Dependency.Create().For <ICommandHandler <ICommand> >().Use <Declaration_CommandHandler>()); di.AddDependency(Dependency.Create().For <IRepository <Declaration> >().Use <DeclarationEventsRepository <Declaration> >().SetBehaviour(DIBehaviour.Singleton)); di.AddDependency(Dependency.Create().For <IRepository <Event> >().Use <DeclarationRepository <Event> >().SetBehaviour(DIBehaviour.Singleton)); di.AddDependency(Dependency.Create().For <IRepository <Event> >().Use <DeclarationRepository <Event> >().SetBehaviour(DIBehaviour.Singleton)); di.AddDependency(Dependency.Create().For <IQueryHandler <Declaration_GetQuery, Declaration> >().Use <Declaration_QueryHandler>().SetBehaviour(DIBehaviour.Singleton)); di.Init(); // Init All Objects // CommandBus - need for send Command. var CommandBus = new CommandBus(di); // QueryBus - need for send Queries and Receive Data var QueryBus = new QueryBus(di); Console.WriteLine("Create two Entities"); // Create two commands which Create Declaration objects in Repos and Write to EventRepo var CreateCommand1 = new Declaration_CreateCommand() { Id = "1", Title = "CreateCommand1", Description = "This is First Command1" }; await CommandBus.SendAsync(CreateCommand1); var CreateCommand2 = new Declaration_CreateCommand() { Id = "2", Title = "CreateCommand2", Description = "This is First Command2" }; await CommandBus.SendAsync(CreateCommand2); Console.WriteLine("Get Data From First Entity"); // Create query and get data about first Declaration object from repo var Get1Query = new Declaration_GetQuery() { Id = "1" }; var res1 = await QueryBus.GetAsync <Declaration_GetQuery, Declaration>(Get1Query); var Get2Query = new Declaration_GetQuery() { Id = "2" }; var res2 = await QueryBus.GetAsync <Declaration_GetQuery, Declaration>(Get2Query); Console.WriteLine(string.Format("Id = {0}; Title = {1}; Description = {2}", res1.Id, res1.Title, res1.Description)); Console.WriteLine(string.Format("Id = {0}; Title = {1}; Description = {2}", res2.Id, res2.Title, res2.Description)); }
public async Task <AccessTokenModel> LogIn(string email, string password) { var query = new UserIdByCredentialsQuery { Email = email, Password = _sha512Service.Calculate(password) }; var userIdResponse = await QueryBus.Execute <UserIdByCredentialsQuery, UserIdByCredentialsResponse>(query); var accessToken = await GenerateRefreshAndAccessToken(userIdResponse.UserId); return(accessToken); }
Given_TestQuery_AndTestQueryHandlerNotRegistered_When_SendAsync_Then_HandlerNotFoundExceptionIsThrown() { //Arrange var query = new TestQuery { ReturnValue = "ReturnValue" }; Func <Type, object> resolver = type => null; var queryBus = new QueryBus(resolver); //Act Func <Task> handleAction = () => queryBus.SendAsync(query); //Assert Assert.ThrowsAsync <HandlerNotFoundException>(() => handleAction.Invoke()); }
private static void SampleQueryHandler() { var injector = new SimpleInjector(); injector.Register <IQueryHandler <TestQuery, TestResponse> >(() => new TestQueryHandler()); var queryBus = new QueryBus(injector); queryBus.Register <TestQuery, IQueryHandler <TestQuery, TestResponse> >(); var query = new TestQuery("srn"); var response = queryBus.Handle(query); Console.WriteLine(response.Message); }
public void TypeCheck() { var query = new TestQuery(); var queryPerformer = new TestQueryPerformer("Whatever"); Type requestedType = typeof(void); var queryBus = new QueryBus(t => { requestedType = t; return(queryPerformer); }); queryBus.Perform(query); Assert.Equal(typeof(IQueryPerformer <TestQuery, string>), requestedType); }
Given_TestQuery_AndTestQueryHandlerNotRegistered_When_SendAsync_Then_HandlerNotFoundExceptionIsThrown() { //Arrange var services = new ServiceCollection(); var query = new TestQuery { ReturnValue = "ReturnValue" }; var serviceProvider = services.BuildServiceProvider(); var queryBus = new QueryBus(serviceProvider.GetService); //Act Func <Task> handleAction = () => queryBus.SendAsync(query); //Assert Assert.ThrowsAsync <HandlerNotFoundException>(() => handleAction.Invoke()); }
public UnitTest2() { CommandResultReposiotry commandResultReposiotry = new CommandResultReposiotry(); CustomerRepository customerRepository = new CustomerRepository(); CustomerCommandHandler customerCommandHandler = new CustomerCommandHandler(customerRepository, commandResultReposiotry); CommandResultQueryaHandler commandResultQueryaHandler = new CommandResultQueryaHandler(commandResultReposiotry); CommandBus commandBus = new CommandBus(); commandBus.Registerd<CustomerCreateCommand>(customerCommandHandler); QueryBus queryBus = new QueryBus(); queryBus.Registerd<CommandResultQuery>(commandResultQueryaHandler); _commandBus = commandBus; _queryBus = queryBus; }
public async Task Given_TestQuery_When_SendAsync_Then_ResultIsReturned() { //Arrange var query = new TestQuery { ReturnValue = "ReturnValue" }; var queryHandler = new TestQueryHandler(); Func <Type, object> resolver = type => { return(queryHandler); }; var queryBus = new QueryBus(resolver); //Act var result = await queryBus.SendAsync(query, CancellationToken.None); //Assert Assert.That(result, Is.EqualTo(query.ReturnValue)); }
public ActionResult <string> GetAllAlterations() { var filter = new GetAlterationsFilter(); try { var alterations = QueryBus .Dispatch <GetAlterationsFilter, CollectionQueryResult <GetAlterationsDto> > (filter); return(Ok(alterations.Items)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public async Task <AccessTokenModel> RefreshToken(string refreshToken, string accessToken) { var userId = _accessTokenService.GetPayload <AuthPayload>(accessToken).UserId; var refreshTokenResponse = await QueryBus.Execute <UserRefreshTokenQuery, UserRefreshTokenResponse>( new UserRefreshTokenQuery { UserId = userId }); if (refreshToken != refreshTokenResponse.RefreshToken) { //TODO throw new NotImplementedException(); } return(await GenerateRefreshAndAccessToken(userId)); }
public async Task Given_TestQuery_When_SendAsync_Then_ResultIsReturned() { //Arrange var services = new ServiceCollection(); var query = new TestQuery { ReturnValue = "ReturnValue" }; var queryHandler = new TestQueryHandler(); services.AddScoped <IQueryHandler <TestQuery, string> >(provider => queryHandler); var serviceProvider = services.BuildServiceProvider(); var queryBus = new QueryBus(serviceProvider.GetService); //Act var result = await queryBus.SendAsync(query, CancellationToken.None); //Assert Assert.That(result, Is.EqualTo(query.ReturnValue)); }
public void SetUp() { _query = new FakeQuery(); _handler = new FakeQueryHandler(); _kernel = new StandardKernel(); _kernel.Bind <IQueryHandler <FakeQuery, bool> >() .ToConstant(_handler); _mockLogger = new Mock <IQueryLogger>(); _mockDialogService = new Mock <IExceptionDialogService>(); _bus = new QueryBus( _mockLogger.Object, _mockDialogService.Object); QueryBus.Kernel = _kernel; }
public async Task <LoginResponseModel> Login(LoginRequestModel model) { var customerIdByCredentialsQuery = new CustomerIdByCredentialsQuery { Email = model.Email, Password = _sha512Service.Calculate(model.Password) }; var customerIdResponse = await QueryBus.Execute <CustomerIdByCredentialsQuery, CustomerIdResponse>(customerIdByCredentialsQuery); var token = _tokenService.Create(new TokenPayload { CustomerId = customerIdResponse.Id }); return(new LoginResponseModel { Token = token }); }
public override async Task <HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) { if (!controllerContext.Request.Headers.TryGetValues("AccessToken", out var allTokens)) { throw new AuthorizationRequiredException(); } var token = allTokens.First(); var payload = _accessTokenService.GetPayload <AuthPayload>(token); var refreshTokenResponse = await QueryBus.Execute <UserRefreshTokenQuery, UserRefreshTokenResponse>( new UserRefreshTokenQuery { UserId = payload.UserId }); _accessTokenService.Verify(token, refreshTokenResponse.RefreshToken); return(await base.ExecuteAsync(controllerContext, cancellationToken)); }
static void Main() { var queryHandlerRegistrar = new HandlerRegistrar <IQueryHandler>(); queryHandlerRegistrar.Register <GetPersonList>(new PersonHandler()); queryHandlerRegistrar.Register <GetPersonDetails>(new PersonHandler()); var queryBus = new QueryBus(queryHandlerRegistrar); var people = queryBus.Query <GetPersonList, IEnumerable <PersonListItemRecord> >(new GetPersonList()); Console.WriteLine("People"); foreach (var person in people.Result) { Console.WriteLine($"{person.Id} {person.LastName} {person.AddressesCount}"); } Console.WriteLine("Person with id = 1"); var personDetails = queryBus.Query <GetPersonDetails, PersonDetailsRecord>(new GetPersonDetails(1)); Console.WriteLine($"{personDetails.Result.FirstName} {personDetails.Result.LastName}"); }
public ActionResult <string> GetAlteration(Guid?suitId) { if (suitId == null) { return(StatusCode(500, "Invalid SuitId")); } var filter = new GetAlterationsFilter() { SuitId = suitId, }; try { var alterations = QueryBus .Dispatch <GetAlterationsFilter, CollectionQueryResult <GetAlterationsDto> > (filter); return(Ok(alterations.Items.FirstOrDefault())); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public async Task <AllProductsResponse> Get() { var products = await QueryBus.Execute <GetAllProductsQuery, AllProductsResponse>(new GetAllProductsQuery()); return(products); }
/// <summary> /// 非批量保存车辆信息 /// </summary> /// <param name="busArr">车辆信息</param> /// <returns></returns> private static bool SaveBusNotBatch(QueryBus.Detail[] busArr, ref int updateCount) { string nowTicks = Common.LocalDateTimeToUtcLong(GlobalStaticObj_Server.Instance.CurrentDateTime).ToString(); int busIndex = 0;//列表索引 int busCount = 10000;//每批执行条数 //busCount = busArr.Count(); int busSum = busArr.Count() / busCount + 1;//执行批数 int busSumCount = busArr.Count(); //int contactSum = 3; bool flag = true;//执行结果 DateTime startDate = DateTime.Now; YuTongDic dic = new YuTongDic(); //车辆 DataTable dtVehicle = DBHelper.GetTable("获取车辆信息车辆ID", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle", "v_id,turner", null, null, null); //车辆司机 DataTable dtDriver = DBHelper.GetTable("获取车辆司机关系表中的司机ID", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tr_driver_vehicle", "driver_id,v_id", null, null, null); DataTable dtContacts = DBHelper.GetTable("获取联系人", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tb_contacts", "cont_id,cont_crm_guid,cont_name", "cont_crm_guid is not null", null, null); //品牌 DataTable dtBrand = DBHelper.GetTable("获取品牌", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "sys_dictionaries a inner join sys_dictionaries b on a.dic_id=b.parent_id", "b.dic_id,b.dic_name", "a.dic_code='sys_vehicle_brand'", "", ""); //车型 DataTable dtVehicleModels = DBHelper.GetTable("获取车型信息", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle_models", "models_crm_id,vm_id", "isnull(models_crm_id,'')<>''", "", ""); #region 初始化表列 ///车辆表 DataTable dt = new DataTable(); List<DataRow> listTbVehicle = new List<DataRow>(); dt.Columns.Add(new DataColumn("v_id", typeof(string))); dt.Columns.Add(new DataColumn("data_source", typeof(string))); dt.Columns.Add(new DataColumn("license_plate", typeof(string))); dt.Columns.Add(new DataColumn("v_brand", typeof(string))); dt.Columns.Add(new DataColumn("vin", typeof(string))); dt.Columns.Add(new DataColumn("v_model", typeof(string))); dt.Columns.Add(new DataColumn("carbuy_date", typeof(long))); dt.Columns.Add(new DataColumn("engine_num", typeof(string))); dt.Columns.Add(new DataColumn("turner", typeof(string))); dt.Columns.Add(new DataColumn("customer_unit", typeof(string))); dt.Columns.Add(new DataColumn("use_unit", typeof(string))); dt.Columns.Add(new DataColumn("vehicle_use", typeof(string))); dt.Columns.Add(new DataColumn("operating_line", typeof(string))); dt.Columns.Add(new DataColumn("point_departure", typeof(string))); dt.Columns.Add(new DataColumn("cont_name", typeof(string))); dt.Columns.Add(new DataColumn("cont_phone", typeof(string))); dt.Columns.Add(new DataColumn("place_arrival", typeof(string))); dt.Columns.Add(new DataColumn("warranty_period", typeof(int))); dt.Columns.Add("status", typeof(string)); dt.Columns.Add(new DataColumn("warranty_mileage", typeof(decimal))); dt.Columns.Add(new DataColumn("enable_flag", typeof(string))); dt.Columns.Add(new DataColumn("create_by", typeof(string))); dt.Columns.Add(new DataColumn("create_time", typeof(long))); ///车辆司机表 DataTable dtTbDriver = new DataTable(); List<DataRow> listTbDriver = new List<DataRow>(); dtTbDriver.Columns.Add(new DataColumn("driver_id", typeof(string))); dtTbDriver.Columns.Add(new DataColumn("driver_name", typeof(string))); dtTbDriver.Columns.Add(new DataColumn("driver_phone", typeof(string))); dtTbDriver.Columns.Add(new DataColumn("enable_flag", typeof(string))); dtTbDriver.Columns.Add(new DataColumn("create_by", typeof(string))); dtTbDriver.Columns.Add(new DataColumn("create_time", typeof(long))); ///车辆司机关联表 DataTable dtTrDriver = new DataTable(); List<DataRow> listTrDriver = new List<DataRow>(); dtTrDriver.Columns.Add(new DataColumn("dir_v_id", typeof(string))); dtTrDriver.Columns.Add(new DataColumn("v_id", typeof(string))); dtTrDriver.Columns.Add(new DataColumn("driver_id", typeof(string))); #endregion for (int i = 0; i < busSum; i++) { List<SysSQLString> list = new List<SysSQLString>(); dt.Rows.Clear(); dtTbDriver.Rows.Clear(); dtTrDriver.Rows.Clear(); listTbDriver.Clear(); listTbVehicle.Clear(); listTrDriver.Clear(); for (int y = busIndex; y < busCount; y++) { int index = i * busCount + y; if (index >= busSumCount) { break; } QueryBus.Detail item = busArr[index]; string v_id = null; string dtCarBuyDate = ""; //购买日期为空处理 if (!String.IsNullOrEmpty(item.carbuy_date)) { dtCarBuyDate = Common.LocalDateTimeToUtcLong(Convert.ToDateTime(item.carbuy_date)).ToString(); } string vehicle_use = dic.GetLocalDicID("vehicle_use", item.vehicle_use); string cont_id = string.Empty;//联系人ID转换成本地ID if (!string.IsNullOrEmpty(item.cont_name)) { DataRow[] drsContacts = dtContacts.Select(string.Format("cont_crm_guid='{0}'", item.cont_name)); if (drsContacts.Count() > 0) { cont_id = drsContacts[0]["cont_id"].ToString(); } } DataRow[] drs = dtVehicle.Select("turner='" + item.turner + "'"); if (drs.Count() > 0) { v_id = drs[0]["v_id"].ToString(); } string brand_id = string.Empty;//品牌ID DataRow[] drsBrand = dtBrand.Select(string.Format("dic_name='{0}'", item.v_brand)); if (drsBrand.Count() > 0) { brand_id = drsBrand[0]["dic_id"].ToString(); } string models_id = string.Empty;//车型ID DataRow[] drsModels = dtVehicleModels.Select(string.Format("models_crm_id='{0}'", item.v_model)); if (drsModels.Count() > 0) { models_id = drsModels[0]["vm_id"].ToString(); } #region 验证字段长度 //string file = string.Empty; //if (item.license_plate.Length > 30) //{ // file = "license_plate"; //} //if (item.v_brand.Length > 40) //{ // file = "v_brand"; //} //if (item.v_model.Length > 40) //{ // file = "v_model"; //} //if (item.vin.Length > 20) //{ // file = "vin"; //} //if (item.engine_num.Length > 30) //{ // file = "engine_num"; //} //if (item.turner.Length > 50) //{ // file = "turner"; //} //if (item.customer_unit.Length > 50) //{ // file = "customer_unit"; //} //if (item.use_unit.Length > 50) //{ // file = "use_unit"; //} //if (vehicle_use.Length > 50) //{ // file = "vehicle_use"; //} //if (item.operating_line.Length > 50) //{ // file = "operating_line"; //} //if (item.point_departure.Length > 100) //{ // file = "point_departure"; //} //if (item.cont_phone.Length > 50) //{ // file = "cont_phone"; //} //if (item.place_arrival.Length > 100) //{ // file = "place_arrival"; //} //if (!string.IsNullOrEmpty(file)) //{ // return false; //} #endregion if (!string.IsNullOrEmpty(v_id)) { #region 更新语句 StringBuilder strSql = new StringBuilder(); SysSQLString sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; sysSQLString.Param = new Dictionary<string, string>(); strSql.Append("update tb_vehicle set "); strSql.AppendFormat(" data_source= '{0}' , ", (int)DataSources.EnumDataSources.YUTONG); strSql.AppendFormat(" license_plate= '{0}' , ", item.license_plate); strSql.AppendFormat(" v_brand= '{0}' , ", brand_id); strSql.AppendFormat(" vin= '{0}' , ", item.vin); strSql.AppendFormat(" v_model= '{0}' , ", models_id); if (!string.IsNullOrEmpty(dtCarBuyDate)) { strSql.AppendFormat(" carbuy_date= {0} , ", dtCarBuyDate); } strSql.AppendFormat(" engine_num= '{0}' , ", item.engine_num); strSql.AppendFormat(" turner= '{0}' , ", item.turner); strSql.AppendFormat(" customer_unit= '{0}' , ", item.customer_unit); strSql.AppendFormat(" use_unit= '{0}' , ", item.use_unit); strSql.AppendFormat(" vehicle_use= '{0}' , ", vehicle_use); strSql.AppendFormat(" operating_line= '{0}' , ", item.operating_line); strSql.AppendFormat(" point_departure= '{0}' , ", item.point_departure); strSql.AppendFormat(" cont_name= '{0}' , ", cont_id); strSql.AppendFormat(" cont_phone= '{0}' , ", item.cont_phone); strSql.AppendFormat(" place_arrival= '{0}' , ", item.place_arrival); if (!string.IsNullOrEmpty(item.warranty_period)) { strSql.AppendFormat(" warranty_period= '{0}' , ", item.warranty_period); } if (!string.IsNullOrEmpty(item.warranty_mileage)) { strSql.AppendFormat(" warranty_mileage= {0} , ", item.warranty_mileage); } strSql.AppendFormat(" status='{0}',", item.status == "0" ? "1" : "0"); strSql.AppendFormat(" enable_flag= '{0}' , ", (int)DataSources.EnumEnableFlag.USING); strSql.AppendFormat(" update_time= {0} , ", nowTicks); strSql.AppendFormat(" update_by= '{0}' ", GlobalStaticObj_Server.Instance.UserID); strSql.AppendFormat(" where turner='{0}' ", item.turner); sysSQLString.sqlString = strSql.ToString(); list.Add(sysSQLString); #endregion } else { #region 插入语句 v_id = Guid.NewGuid().ToString(); //strSql.Append("insert into tb_vehicle("); //strSql.Append("v_id,data_source,license_plate,v_brand,vin,v_model,carbuy_date,engine_num,turner,customer_unit,use_unit,vehicle_use,operating_line,point_departure,cont_name,cont_phone,place_arrival,warranty_period,warranty_mileage,enable_flag,create_by,create_time"); //strSql.Append(") values ("); //strSql.AppendFormat("'{0}',", v_id); //strSql.AppendFormat("'{0}',", (int)DataSources.EnumDataSources.YUTONG); //strSql.AppendFormat("'{0}',", item.license_plate); //strSql.AppendFormat("'{0}',", item.v_brand); //strSql.AppendFormat("'{0}',", item.vin); //strSql.AppendFormat("'{0}',", item.v_model); //strSql.AppendFormat("'{0}',", item.carbuy_date); //strSql.AppendFormat("'{0}',", item.engine_num); //strSql.AppendFormat("'{0}',", item.turner); //strSql.AppendFormat("'{0}',", item.customer_unit); //strSql.AppendFormat("'{0}',", item.use_unit); //strSql.AppendFormat("'{0}',", vehicle_use); //strSql.AppendFormat("'{0}',", item.operating_line); //strSql.AppendFormat("'{0}',", item.point_departure); //strSql.AppendFormat("'{0}',", item.cont_name); //strSql.AppendFormat("'{0}',", item.cont_phone); //strSql.AppendFormat("'{0}',", item.place_arrival); //strSql.AppendFormat("'{0}',", item.warranty_period); //strSql.AppendFormat("'{0}',", item.warranty_mileage); //strSql.AppendFormat("'{0}',", (int)DataSources.EnumEnableFlag.USING); //strSql.AppendFormat("'{0}',", GlobalStaticObj_Server.Instance.ClientID); //strSql.AppendFormat("{0})", nowTicks); DataRow dr = dt.NewRow(); dr["v_id"] = v_id; dr["data_source"] = ((int)DataSources.EnumDataSources.YUTONG).ToString(); dr["license_plate"] = item.license_plate; dr["v_brand"] = brand_id; dr["vin"] = item.vin; dr["v_model"] = models_id; if (!string.IsNullOrEmpty(dtCarBuyDate)) { dr["carbuy_date"] = dtCarBuyDate; } dr["engine_num"] = item.engine_num; dr["turner"] = item.turner; dr["customer_unit"] = item.customer_unit; dr["use_unit"] = item.use_unit; dr["vehicle_use"] = vehicle_use; dr["operating_line"] = item.operating_line; dr["point_departure"] = item.point_departure; dr["cont_name"] = cont_id; dr["cont_phone"] = item.cont_phone; dr["place_arrival"] = item.place_arrival; if (!string.IsNullOrEmpty(item.warranty_period)) { dr["warranty_period"] = item.warranty_period; } if (!string.IsNullOrEmpty(item.warranty_mileage)) { dr["warranty_mileage"] = item.warranty_mileage; } dr["status"] = item.status == "0" ? "1" : "0"; dr["enable_flag"] = ((int)DataSources.EnumEnableFlag.USING).ToString(); dr["create_by"] = GlobalStaticObj_Server.Instance.UserID; dr["create_time"] = nowTicks; //dt.Rows.Add(dr); listTbVehicle.Add(dr); #endregion } #region 车辆司机信息处理 tr_driver_vehicle,tb_driver string driver_id = null; string driver_name = string.Empty; DataRow[] drsDriver = dtDriver.Select("v_id='" + v_id + "'"); if (drsDriver.Count() > 0) { driver_id = drsDriver[0]["driver_id"].ToString(); } DataRow[] drsDriverName = dtContacts.Select(string.Format("cont_crm_guid='{0}'", item.driver_name)); if (drsDriverName.Count() > 0) { driver_name = drsDriverName[0]["cont_name"].ToString(); } if (!string.IsNullOrEmpty(driver_id)) { #region 更新车辆司机信息 SysSQLString sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; //if (item.driver_name.Length > 15) //{ // file = "driver_name"; //} //if (item.driver_phone.Length > 15) //{ // file = "driver_phone"; //} sysSQLString.sqlString = string.Format(" update tb_driver set driver_name='{0}',driver_phone='{1}',update_by='{2}',update_time={3} where driver_id='{4}'", driver_name, item.driver_phone, GlobalStaticObj_Server.Instance.UserID, nowTicks, driver_id); sysSQLString.Param = new Dictionary<string, string>(); list.Add(sysSQLString); #endregion } else { #region 插入车辆司机信息 driver_id = Guid.NewGuid().ToString(); // sysSQLString = new SysSQLString(); // sysSQLString.cmdType = CommandType.Text; // sysSQLString.sqlString = string.Format(@"insert into tb_driver(driver_id,driver_name,driver_phone,enable_flag,create_by,create_time) // values('{0}','{1}','{2}','{3}','{4}',{5})", // driver_id, item.driver_name, item.driver_phone, (int)DataSources.EnumEnableFlag.USING, GlobalStaticObj_Server.Instance.ClientID, nowTicks); // sysSQLString.Param = new Dictionary<string, string>(); //list.Add(sysSQLString); DataRow drDriver = dtTbDriver.NewRow(); drDriver["driver_id"] = driver_id; drDriver["driver_name"] = driver_name; drDriver["driver_phone"] = item.driver_phone; drDriver["enable_flag"] = ((int)DataSources.EnumEnableFlag.USING).ToString(); drDriver["create_by"] = GlobalStaticObj_Server.Instance.UserID; drDriver["create_time"] = nowTicks; //dtTbDriver.Rows.Add(drDriver); listTbDriver.Add(drDriver); #endregion #region 插入车辆司机关系表 string dir_v_id = Guid.NewGuid().ToString(); //sysSQLString = new SysSQLString(); //sysSQLString.cmdType = CommandType.Text; //sysSQLString.sqlString = string.Format("insert into tr_driver_vehicle(dir_v_id,v_id,driver_id) values('{0}','{1}','{2}')", // dir_v_id, v_id, driver_id); //sysSQLString.Param = new Dictionary<string, string>(); //list.Add(sysSQLString); DataRow drTr = dtTrDriver.NewRow(); drTr["dir_v_id"] = dir_v_id; drTr["v_id"] = v_id; drTr["driver_id"] = driver_id; //dtTrDriver.Rows.Add(drTr); listTrDriver.Add(drTr); #endregion } #endregion busArr[index] = null;//释放项 } //flag = DBHelper.BatchExeSQLStringMultiByTrans("宇通:同步车辆信息", list); //flag = DBHelper.BatchExeSQLStringMultiByTrans("tb_vehicle", listTbVehicle); flag = DBHelper.SqlBulkByTransNoLogNoBackUp("同步车辆信息", GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle", listTbVehicle); if (!flag) { break; } //flag = DBHelper.BatchExeSQLStringMultiByTrans("tb_driver", listTbDriver); flag = DBHelper.SqlBulkByTransNoLogNoBackUp("同步司机", GlobalStaticObj_Server.Instance.MainAccCode, "tb_driver", listTbDriver); if (!flag) { break; } //flag = DBHelper.BatchExeSQLStringMultiByTrans("tr_driver_vehicle", listTrDriver); flag = DBHelper.SqlBulkByTransNoLogNoBackUp("", GlobalStaticObj_Server.Instance.MainAccCode, "tr_driver_vehicle", listTrDriver); if (!flag) { break; } if (list.Count > 0) { flag = DBHelper.BatchExeSQLStrMultiByTransNoLogNoBackup("", GlobalStaticObj_Server.Instance.MainAccCode, list); if (!flag) { break; } } } SysConfig sysConfig = new SysConfig(); sysConfig.UpdateLastTime("BusLastTime"); updateCount += busArr.Count(); #region 释放资源 dic = null; //车辆 dtVehicle = null; //车辆司机 dtDriver = null; dtContacts = null; //品牌 dtBrand = null; //车型 dtVehicleModels = null; #endregion DateTime endDate = DateTime.Now; TimeSpan span = endDate - startDate; return flag; }
/// <summary> 保存车辆信息 /// </summary> /// <param name="busArr">车辆信息</param> /// <returns>True OR False</returns> private static bool SaveBus(QueryBus.Detail[] busArr) { string nowTicks = Common.LocalDateTimeToUtcLong(GlobalStaticObj_Server.Instance.CurrentDateTime).ToString(); List<SysSQLString> list = new List<SysSQLString>(); foreach (QueryBus.Detail item in busArr) { string v_id = DBHelper.GetSingleValue("获取车辆信息车辆ID", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle", "v_id", "turner='" + item.turner + "'", ""); SysSQLString sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; sysSQLString.Param = new Dictionary<string, string>(); StringBuilder strSql = new StringBuilder(); if (!string.IsNullOrEmpty(v_id)) { #region 更新语句 strSql.Append("update tb_vehicle set "); strSql.Append(" data_source= @data_source , "); strSql.Append(" license_plate= @license_plate , "); strSql.Append(" v_brand= @v_brand , "); strSql.Append(" vin= @vin , "); strSql.Append(" v_model= @v_model , "); strSql.Append(" carbuy_date= @carbuy_date , "); strSql.Append(" engine_num= @engine_num , "); strSql.Append(" turner= @turner , "); strSql.Append(" customer_unit= @customer_unit , "); strSql.Append(" use_unit= @use_unit , "); strSql.Append(" vehicle_use= @vehicle_use , "); strSql.Append(" operating_line= @operating_line , "); strSql.Append(" point_departure= @point_departure , "); strSql.Append(" cont_name= @cont_name , "); strSql.Append(" cont_phone= @cont_phone , "); strSql.Append(" place_arrival= @place_arrival , "); strSql.Append(" warranty_period= @warranty_period , "); strSql.Append(" warranty_mileage= @warranty_mileage , "); strSql.Append(" enable_flag= @enable_flag , "); strSql.Append(" update_time= @update_time , "); strSql.Append(" update_by= @update_by "); strSql.Append(" where turner=@turner "); #endregion } else { #region 插入语句 strSql.Append("insert into tb_vehicle("); strSql.Append("v_id,data_source,license_plate,v_brand,vin,v_model,carbuy_date,engine_num,turner,customer_unit,use_unit,vehicle_use,operating_line,point_departure,cont_name,cont_phone,place_arrival,warranty_period,warranty_mileage,enable_flag,update_time,create_by,create_time,update_by"); strSql.Append(") values ("); strSql.Append("@v_id,@data_source,@license_plate,@v_brand,@vin,@v_model,@carbuy_date,@engine_num,@turner,@customer_unit,@use_unit,@vehicle_use,@operating_line,@point_departure,@cont_name,@cont_phone,@place_arrival,@warranty_period,@warranty_mileage,@enable_flag,@update_time,@create_by,@create_time,@update_by) "); #endregion v_id = Guid.NewGuid().ToString(); sysSQLString.Param.Add("v_id", v_id); sysSQLString.Param.Add("create_by", GlobalStaticObj_Server.Instance.UserID); sysSQLString.Param.Add("create_time", nowTicks); } #region 参数项 20 sysSQLString.Param.Add("data_source", ((int)DataSources.EnumDataSources.YUTONG).ToString()); sysSQLString.Param.Add("license_plate", item.license_plate); sysSQLString.Param.Add("v_brand", item.v_brand); sysSQLString.Param.Add("vin", item.vin); sysSQLString.Param.Add("v_model", item.v_model); string dtCarBuyDate = ""; //购买日期为空处理 if (!String.IsNullOrEmpty(item.carbuy_date)) { dtCarBuyDate = Common.LocalDateTimeToUtcLong(Convert.ToDateTime(item.carbuy_date)).ToString(); } sysSQLString.Param.Add("carbuy_date", dtCarBuyDate); sysSQLString.Param.Add("engine_num", item.engine_num); sysSQLString.Param.Add("turner", item.turner); sysSQLString.Param.Add("customer_unit", item.customer_unit); sysSQLString.Param.Add("use_unit", item.use_unit); sysSQLString.Param.Add("vehicle_use", WebServUtil.GetLocalDicID("vehicle_use", item.vehicle_use)); sysSQLString.Param.Add("operating_line", item.operating_line); sysSQLString.Param.Add("point_departure", item.point_departure); sysSQLString.Param.Add("cont_name", item.cont_name); sysSQLString.Param.Add("cont_phone", item.cont_phone); sysSQLString.Param.Add("place_arrival", item.place_arrival); sysSQLString.Param.Add("warranty_period", item.warranty_period); sysSQLString.Param.Add("warranty_mileage", item.warranty_mileage); sysSQLString.Param.Add("enable_flag", ((int)DataSources.EnumEnableFlag.USING).ToString()); sysSQLString.Param.Add("update_by", GlobalStaticObj_Server.Instance.UserID); sysSQLString.Param.Add("update_time", nowTicks); #endregion sysSQLString.sqlString = strSql.ToString(); list.Add(sysSQLString); #region 车辆司机信息处理 tr_driver_vehicle,tb_driver string driver_id = DBHelper.GetSingleValue("获取车辆司机关系表中的司机ID", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tr_driver_vehicle", "driver_id", " v_id='" + v_id + "'", ""); if (!string.IsNullOrEmpty(driver_id)) { #region 更新车辆司机信息 sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; sysSQLString.sqlString = " update tb_driver set driver_name=@driver_name,driver_phone=@driver_phone,update_by=@update_by,update_time=@update_time where driver_id=@driver_id"; sysSQLString.Param = new Dictionary<string, string>(); sysSQLString.Param.Add("driver_id", driver_id); sysSQLString.Param.Add("driver_name", item.driver_name); sysSQLString.Param.Add("driver_phone", item.driver_phone); sysSQLString.Param.Add("update_by", GlobalStaticObj_Server.Instance.UserID); sysSQLString.Param.Add("update_time", nowTicks); list.Add(sysSQLString); #endregion } else { #region 插入车辆司机信息 driver_id = Guid.NewGuid().ToString(); sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; sysSQLString.sqlString = "insert into tb_driver(driver_id,driver_name,driver_phone,enable_flag,create_by,create_time,update_by,update_time) values(@driver_id,@driver_name,@driver_phone,@enable_flag,@create_by,@create_time,@update_by,@update_time)"; sysSQLString.Param = new Dictionary<string, string>(); sysSQLString.Param.Add("driver_id", driver_id); sysSQLString.Param.Add("driver_name", item.driver_name); sysSQLString.Param.Add("driver_phone", item.driver_phone); sysSQLString.Param.Add("enable_flag", ((int)DataSources.EnumEnableFlag.USING).ToString()); sysSQLString.Param.Add("create_by", GlobalStaticObj_Server.Instance.UserID); sysSQLString.Param.Add("create_time", nowTicks); sysSQLString.Param.Add("update_by", GlobalStaticObj_Server.Instance.UserID); sysSQLString.Param.Add("update_time", nowTicks); list.Add(sysSQLString); #endregion #region 插入车辆司机关系表 string dir_v_id = Guid.NewGuid().ToString(); sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; sysSQLString.sqlString = "insert into tr_driver_vehicle(dir_v_id,v_id,driver_id) values(@dir_v_id,@v_id,@driver_id)"; sysSQLString.Param = new Dictionary<string, string>(); sysSQLString.Param.Add("dir_v_id", dir_v_id); sysSQLString.Param.Add("v_id", v_id); sysSQLString.Param.Add("driver_id", driver_id); list.Add(sysSQLString); #endregion } #endregion } bool flag = DBHelper.BatchExeSQLStringMultiByTrans("宇通:同步车辆信息", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, list); return flag; }
public AuctionItemsController(CommandBus commandBus, QueryBus queryBus) { _commandBus = commandBus; _queryBus = queryBus; }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddTransient <ITextSerializer, JsonTextSerializer>(); services.AddTransient <Func <ITextSerializer> >(container => container.GetService <ITextSerializer>); services.AddTransient(typeof(IAsyncRepository <>), typeof(AsyncRepository <>)); services.AddScoped(typeof(IAggregateRepositoryService <>), typeof(AggregateRepositoryService <>)); //Command services.AddScoped <ICommandHandler <AddItemToBasketCommand>, AddItemToBasketHandler>(); services.AddScoped <ICommandHandler <CreateBasketForUserCommand>, CreateBasketForUserCommandHandler>(); services.AddScoped <ICommandHandler <CreatePurchaseOrderCommand>, CreatePurchaseOrderCommandHandler>(); services.AddScoped <ICommandHandler <ProcessPurchaseOrderCommand>, ProcessPurchaseOrderCommandHandler>(); services.AddScoped <ICommandBus>(container => { var commandBus = new CommandBus(); commandBus.SubscribeAsync(container.GetService <ICommandHandler <CreateBasketForUserCommand> >()).Wait(); commandBus.SubscribeAsync(container.GetService <ICommandHandler <AddItemToBasketCommand> >()).Wait(); commandBus.SubscribeAsync(container.GetService <ICommandHandler <CreatePurchaseOrderCommand> >()).Wait(); commandBus.SubscribeAsync(container.GetService <ICommandHandler <ProcessPurchaseOrderCommand> >()).Wait(); return(commandBus); }); //Event services.AddScoped <IEventHandler <BasketCreatedEvent>, BasketViewModelGenerator>(); services.AddScoped <IEventHandler <ItemAddedToBasketEvent>, BasketItemAddedViewModelGenerator>(); services.AddScoped <IEventHandler <ProductPurchasedEvent>, ShippingInvoiceViewModelGenerator>(); services.AddScoped <IEventHandler <SubscriptionItemPurchasedEvent>, SubscriptionItemPurchasedEventHandler>(); services.AddScoped <IEventBus>(container => { var eventBus = new EventBus(); eventBus.SubscribeAsync(container.GetService <IEventHandler <BasketCreatedEvent> >()).Wait(); eventBus.SubscribeAsync(container.GetService <IEventHandler <ItemAddedToBasketEvent> >()).Wait(); eventBus.SubscribeAsync(container.GetService <IEventHandler <ProductPurchasedEvent> >()).Wait(); eventBus.SubscribeAsync(container.GetService <IEventHandler <SubscriptionItemPurchasedEvent> >()).Wait(); return(eventBus); }); //Query services.AddScoped <IQueryHandler <GetAllBuyers, IReadOnlyList <Buyer> >, GetAllBuyersQueryHandler>(); services.AddScoped <IQueryHandler <GetBasketByBuyerId, ApplicationCore.Basket.Query.ViewModel.Basket>, BasketQueryHandlers>(); services.AddScoped <IQueryHandler <ShippingInvoiceQuery, ShippingInvoice>, GetShippingInvoiceQueryHandler>(); services.AddScoped <BasketQueryHandlers>(); services.AddScoped <IQueryBus>(container => { var queryBus = new QueryBus(); queryBus.SubscribeAsync(container.GetService <IQueryHandler <GetBasketByBuyerId, ApplicationCore.Basket.Query.ViewModel.Basket> >()).Wait(); queryBus.SubscribeAsync(container.GetService <IQueryHandler <GetAllBuyers, IReadOnlyList <Buyer> > >()).Wait(); queryBus.SubscribeAsync(container.GetService <IQueryHandler <ShippingInvoiceQuery, ShippingInvoice> >()).Wait(); return(queryBus); }); //logger services.AddScoped(typeof(IAppLogger <>), typeof(LoggerAdapter <>)); var config = new MapperConfiguration(cfg => { cfg.CreateMissingTypeMaps = true; cfg.AddProfile(new AutoMappingConfiguration()); }); var mapper = config.CreateMapper(); services.AddSingleton(mapper); }