public IHttpActionResult MergeOrder([FromBody] MergeObjectDto mergInfo) { var user = base.CurrentUser(); var result = _QCService.MergeOrder(mergInfo); return(Ok(result)); }
//合并检查申请单 public bool MergeOrder(MergeObjectDto mergeInfo) { if (mergeInfo == null) { return(false); } try { //验证检查 var queryPatient = _dbContext.Set <Patient>(); var queryOrder = _dbContext.Set <Order>(); var queryProcedure = _dbContext.Set <Procedure>(); var srcOrder = queryOrder.Where(o => o.UniqueID == mergeInfo.SrcOrderID).FirstOrDefault(); var targeOrder = queryOrder.Where(o => o.UniqueID == mergeInfo.TargetOrderID).FirstOrDefault(); if (srcOrder == null || targeOrder == null) { return(false); } //合并申请单 if (mergeInfo.IsMergeRequisition) { MergeRequisition(srcOrder.AccNo, targeOrder.AccNo); } //合并费用 if (mergeInfo.IsMergeOrderCharge) { MergeOrderCharge(mergeInfo.SrcOrderID, mergeInfo.TargetOrderID); } var srcp = queryPatient.Where(p => p.UniqueID == srcOrder.PatientID).FirstOrDefault(); var targetp = queryPatient.Where(p => p.UniqueID == targeOrder.PatientID).FirstOrDefault(); if (srcp == null || targetp == null) { return(false); } //更新 检查的 orderid var procedures = queryProcedure.Where(p => p.OrderID == mergeInfo.SrcOrderID); foreach (var pro in procedures) { pro.OrderID = mergeInfo.TargetOrderID; } using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted })) { //删除被合检查 queryOrder.Remove(srcOrder); _dbContext.SaveChanges(); ts.Complete(); } return(true); } catch (Exception e) { return(false); } }
public void When05ReceiveSaveLinesThenNoMessageSent() { // arrange When03ReceiveWriteHeaderAndNoExceptionsThenHeaderCreatedMessageSent(); var merge = new MergeObjectDto { DataId = 1 }; // act _sut.Tell(new FileWriterMessages.SaveWebResponse(merge)); // assert NoMessageSent(); }
public void When01ReceiveGetDataThenResponseMessageSent() { // arrange SetupValidResponse(); var mergeDto = new MergeObjectDto { DataId = 1 }; // act _sut.Tell(new CrawlerMessages.GetData(mergeDto, "", DateTime.UtcNow)); // assert _testProbe.ExpectMsg <FlowControlMessages.WebApiGotValidResponse>(TimeSpan.FromSeconds(1)); _testProbe.ExpectMsg <FileWriterMessages.SaveWebResponse>(a => { a.MergeObjectDto.DataId.ShouldEqual(1); }, TimeSpan.FromSeconds(1)); }
//移动检查项目 public bool MoveCheckingItem(MergeObjectDto moveInfo) { if (moveInfo == null) { return(false); } try { //验证检查 var queryProcedure = _dbContext.Set <Procedure>(); var queryOrder = _dbContext.Set <Order>(); var queryPatient = _dbContext.Set <Patient>(); var srcProcedure = queryProcedure.Where(o => o.UniqueID == moveInfo.SrcProcedureID).FirstOrDefault(); var targeProcedure = queryProcedure.Where(o => o.UniqueID == moveInfo.TargetProcedureID).FirstOrDefault(); if (srcProcedure == null || targeProcedure == null) { return(false); } //同一检查下面的检查项目不用移动 if (srcProcedure.OrderID == targeProcedure.OrderID) { return(false); } var srcOrder = queryOrder.Where(o => o.UniqueID == srcProcedure.OrderID).FirstOrDefault(); var targeOrder = queryOrder.Where(o => o.UniqueID == targeProcedure.OrderID).FirstOrDefault(); if (srcOrder == null || targeOrder == null) { return(false); } var srcp = queryPatient.Where(p => p.UniqueID == srcOrder.PatientID).FirstOrDefault(); var targetp = queryPatient.Where(p => p.UniqueID == targeOrder.PatientID).FirstOrDefault(); if (srcp == null || targetp == null) { return(false); } //更新 检查项目的 orderid srcProcedure.OrderID = targeProcedure.OrderID; _dbContext.SaveChanges(); return(true); } catch (Exception e) { return(false); } }
public void When02ReceiveGetDataAndNo200BackThenBadResponseMessageSent() { // arrange SetupInvaldResponse(); var mergeDto = new MergeObjectDto { DataId = 1 }; // act _sut.Tell(new CrawlerMessages.GetData(mergeDto, "", DateTime.UtcNow)); // assert _testProbe.ExpectMsg <FileWriterMessages.SaveWebResponse>(TimeSpan.FromSeconds(1)); _testProbe.ExpectMsg <FlowControlMessages.WebApiGotBadResponse>(TimeSpan.FromSeconds(1)); }
/// <summary>The parse by regex.</summary> /// <param name="line">The line.</param> /// <returns>The <see cref="bool"/>.</returns> private bool ParseByRegex(string line) { var match = _lineValidator.Match(line); if (match.Success) { var mergeObject = new MergeObjectDto { DataId = int.Parse(match.Groups[1].Value) }; _linesReadByRegex++; SendMessage(mergeObject); return(true); } return(false); }
//验证order是否被锁定 Sync ReportLockService //public SyncDto GetLock(string orderID, LockType lockType) //合并病人 public bool MergePatients(MergeObjectDto mergePatientInfo) { if (mergePatientInfo == null) { return(false); } try { //验证病人 var queryPatient = _dbContext.Set <Patient>(); var srcp = queryPatient.Where(p => p.UniqueID == mergePatientInfo.SrcPatientID).FirstOrDefault(); var targetp = queryPatient.Where(p => p.UniqueID == mergePatientInfo.TargetPatientID).FirstOrDefault(); if (srcp == null || targetp == null) { return(false); } //更新order 的 PatientGuid var queryOrder = _dbContext.Set <Order>(); var orders = queryOrder.Where(o => o.PatientID == mergePatientInfo.SrcPatientID); foreach (var order in orders) { order.PatientID = mergePatientInfo.TargetPatientID; } if (mergePatientInfo.AfterDelPatient) { queryPatient.Remove(srcp); } //是否删除被合并掉的病人 using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted })) { _dbContext.SaveChanges(); ts.Complete(); } return(true); } catch (Exception e) { return(false); } }
public void When04ReceiveWebApiErrorResponseAndNo200BackThenBadResponseMessageSent() { // arrange SetupInvaldResponse(); var mergeDto = new MergeObjectDto { DataId = 1 }; var message = new CrawlerMessages.WebApiErrorResponse { MergeObjectDto = mergeDto, url = $"{_systemConfiguration.ApiEndPoint}/1", attempt = 1, }; // act _sut.Tell(message); // assert _testProbe.ExpectMsg <FileWriterMessages.SaveWebResponse>(TimeSpan.FromSeconds(1)); _testProbe.ExpectMsg <FlowControlMessages.WebApiGotBadResponse>(TimeSpan.FromSeconds(1)); }
public void When03ReceiveWebApiErrorResponseAndGetValidResponseThenResponseMessageSent() { // arrange SetupValidResponse(); var mergeDto = new MergeObjectDto { DataId = 1 }; var message = new CrawlerMessages.WebApiErrorResponse { MergeObjectDto = mergeDto, url = $"{_systemConfiguration.ApiEndPoint}/1", attempt = 1, }; // act _sut.Tell(message); // assert _testProbe.ExpectMsg <FlowControlMessages.WebApiGotValidResponse>(TimeSpan.FromSeconds(1)); _testProbe.ExpectMsg <FileWriterMessages.SaveWebResponse>(a => { a.MergeObjectDto.DataId.ShouldEqual(1); }, TimeSpan.FromSeconds(1)); }
/// <summary>The parse by text parser.</summary> /// <param name="line">The line.</param> /// <returns>The <see cref="bool"/>.</returns> private bool ParseByTextParser(string line) { // check if we have quotes first if (!line.Contains("\"")) { return(false); // fail fast } var quotesMatch = MatchInQuotes(line); if (quotesMatch.Any()) { var mergeObject = new MergeObjectDto { DataId = int.Parse(quotesMatch[0]) }; SendMessage(mergeObject); return(true); } return(false); }
/// <summary> /// 移动检查 /// </summary> /// <param name="mergePatientInfo"></param> /// <returns></returns> public bool MoveOrder(MergeObjectDto moveInfo) { if (moveInfo == null) { return(false); } try { //验证病人 和检查 var queryPatient = _dbContext.Set <Patient>(); var queryOrder = _dbContext.Set <Order>(); var targetp = queryPatient.Where(p => p.UniqueID == moveInfo.TargetPatientID).FirstOrDefault(); var srcOrder = queryOrder.Where(o => o.UniqueID == moveInfo.SrcOrderID).FirstOrDefault(); if (srcOrder == null || targetp == null) { return(false); } //order>procedure>patient //更新order 的 PatientGuid srcOrder.PatientID = moveInfo.TargetPatientID; using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted })) { _dbContext.SaveChanges(); ts.Complete(); } return(true); } catch (Exception e) { return(false); } }
/// <summary>The add line to list.</summary> /// <param name="data">The data.</param> private void AddLineToList(MergeObjectDto data) { _lines.Add($"{data.DataId},{data.SaleValue},{data.ActorName}"); }
/// <summary>Initializes a new instance of the <see cref="SaveWebResponse"/> class.</summary> /// <param name="mergeObjectDto">The merge object dto.</param> public SaveWebResponse(MergeObjectDto mergeObjectDto) { MergeObjectDto = mergeObjectDto; }
public IHttpActionResult MoveCheckingItem([FromBody] MergeObjectDto moveInfo) { var result = _QCService.MoveCheckingItem(moveInfo); return(Ok(result)); }
/// <summary>The send bad response.</summary> /// <param name="mergeObject">The merge object.</param> /// <param name="status">The status.</param> private void SendBadResponse(MergeObjectDto mergeObject, string status = "none") { _actorDictionary["FileWriterActor"].Tell(new FileWriterMessages.SaveWebResponse(mergeObject)); _actorDictionary["FlowControlActor"].Tell(new FlowControlMessages.WebApiGotBadResponse()); }
/// <summary>Initializes a new instance of the <see cref="PipedRequest"/> class.</summary> /// <param name="requestResult">The request result.</param> /// <param name="mergeObject">The merge object.</param> public PipedRequest(WebApiResponseDto requestResult, MergeObjectDto mergeObject) { RequestResult = requestResult; MergeObject = mergeObject; }
/// <summary>Initializes a new instance of the <see cref="GetData"/> class.</summary> /// <param name="mergeObject">The merge object.</param> /// <param name = "apiEndPoint" ></param> /// <param name = "utcNow" ></param> public GetData(MergeObjectDto mergeObject, string apiEndPoint, DateTime utcNow) { MergeObject = mergeObject; ApiEndPoint = apiEndPoint; UtcNow = utcNow; }
private void SendMessage(MergeObjectDto mergeObject) { _log.Debug($"Sending to crawler: {mergeObject.DataId}"); _crawler.Tell(new CrawlerMessages.GetData(mergeObject, _systemConfiguration.ApiEndPoint, DateTime.UtcNow)); _flowControl.Tell(new FlowControlMessages.ValidLine()); }