public async Task AddNote(IEnumerable <string> requestIds, string userId, string userName, bool isTechnician, string noteDescription)
        {
            foreach (var id in requestIds)
            {
                bool isInt = int.TryParse(id, out int requestId);
                if (!isInt)
                {
                    continue;
                }
                Request request = await this.repository.All().FirstOrDefaultAsync(r => r.Id == requestId);

                if (isTechnician || userId == request.RequesterId)
                {
                    RequestNote note = new RequestNote
                    {
                        RequestId    = requestId,
                        Description  = noteDescription,
                        CreationTime = DateTime.UtcNow,
                        Author       = userName
                    };

                    request.Notes.Add(note);
                }
            }

            await this.SaveChangesAsync();
        }
        public void ShowWebServiceUrl()
        {
            RequestNote note = new RequestNote();
            var         url  = note.Url;

            Console.WriteLine(url);
        }
        public void GetRequestionBySheetId()
        {
            //  RequestNoteSoap ws = new RequestNoteSoapClient();

            Request req = new Request();

            req.requestHeader             = new RequestHeader();
            req.requestHeader.sender      = "2.16.840.1.113883.4.487.2.1.9";
            req.requestHeader.receiver    = "2.16.840.1.113883.4.487.2.1.3";
            req.requestHeader.requestTime = DateTime.Now.ToString("yyyyMMddHH24mmss");
            req.requestHeader.msgType     = "RequisitionFind";
            req.requestHeader.msgId       = "SPEC20140909000009";
            req.requestHeader.msgPriority = "Normal";
            req.requestHeader.msgVersion  = "1.0";

            req.requestBody = $@"        <RequisitionFind>
	                                <SheetID>{"10001143"}</SheetID>
                                <ExamID></ExamID>
	                                </RequisitionFind>"    ;
            RequestNote note   = new RequestNote();
            var         result = note.RequisitionFind(req);

            Console.WriteLine(result);
            // return result;

            var resObj = LGInterface.GetRequestionBySheetId("10001143");
        }
Exemple #4
0
        /// <summary>
        /// 根据申请单号获取申请单详细信息
        /// </summary>
        /// <returns></returns>
        public static RequestInfoResult GetRequestionBySheetId(string sheetId)
        {
            //  RequestNoteSoap ws = new RequestNoteSoapClient();

            Request req = new Request();

            req.requestHeader             = new RequestHeader();
            req.requestHeader.sender      = "2.16.840.1.113883.4.487.2.1.9";
            req.requestHeader.receiver    = "2.16.840.1.113883.4.487.2.1.3";
            req.requestHeader.requestTime = DateTime.Now.ToString("yyyyMMddHH24mmss");
            req.requestHeader.msgType     = "RequisitionFind";
            req.requestHeader.msgId       = "SPEC20140909000009";
            req.requestHeader.msgPriority = "Normal";
            req.requestHeader.msgVersion  = "1.0";

            req.requestBody =
                $@"        <RequisitionFind>
	                                <SheetID>{sheetId}</SheetID>
                                <ExamID></ExamID>
	                                </RequisitionFind>"    ;
            RequestNote note = new RequestNote();

            note.Url = f.ReadString("广州中山附一", "平台服务url", "http://168.168.252.112:4463/RequestNote");
            log.WriteMyLog("尝试从电子申请单WebService获取信息,入参:\r\n" + req.requestBody
                           + "\r\nUrl:" + note.Url);

            RequestInfoResult result = null;

            try
            {
                var respones = note.RequisitionFind(req);
                log.WriteMyLog("获取电子申请单信息成功:" + respones.responseBody);
                result = XmlUtil.Deserialize <RequestInfoResult>(respones.responseBody);
            }
            catch (Exception e)
            {
                log.WriteMyLog("从电子申请单WebService获取信息失败:\r\n" + e);
            }

            //SheetID(电子申请单ID)为空,代表没找到申请单
            if (string.IsNullOrEmpty(result.SheetID))
            {
                result = null;
            }

            //2017年11月13日 岱嘉张继松:
            //当是门诊 +特诊+科室不是内镜中心(代码7100)的科室,送检科室全部匹配成特诊门诊,因为这部分报告是需要送到特诊门诊中心的。
            if (result != null && (result.PatientStyle == "0" && result.HTH == "82" && result.DepartMentID != "7100"))
            {
                result.DepartMent   = "特诊门诊";
                result.DepartMentID = "6160";
            }


            return(result);
        }
Exemple #5
0
        /// <summary>
        /// 根据申请单号获取申请单详细信息
        /// </summary>
        /// <returns></returns>
        public static RequestInfoResult GetRequestionBySheetId(string sheetId)
        {
            //  RequestNoteSoap ws = new RequestNoteSoapClient();

            Request req = new Request();

            req.requestHeader             = new RequestHeader();
            req.requestHeader.sender      = "2.16.840.1.113883.4.487.2.1.9";
            req.requestHeader.receiver    = "2.16.840.1.113883.4.487.2.1.3";
            req.requestHeader.requestTime = DateTime.Now.ToString("yyyyMMddHH24mmss");
            req.requestHeader.msgType     = "RequisitionFind";
            req.requestHeader.msgId       = "SPEC20140909000009";
            req.requestHeader.msgPriority = "Normal";
            req.requestHeader.msgVersion  = "1.0";

            req.requestBody =
                $@"        <RequisitionFind>
	                                <SheetID>{sheetId}</SheetID>
                                <ExamID></ExamID>
	                                </RequisitionFind>"    ;
            RequestNote note = new RequestNote();

            log.WriteMyLog("尝试从电子申请单WebService获取信息,入参:\r\n" + req.requestBody
                           + "\r\nUrl:" + note.Url);

            RequestInfoResult result = null;

            try
            {
                var respones = note.RequisitionFind(req);
                log.WriteMyLog("获取电子申请单信息成功:" + respones.responseBody);
                result = XmlUtil.Deserialize <RequestInfoResult>(respones.responseBody);
            }
            catch (Exception e)
            {
                log.WriteMyLog("从电子申请单WebService获取信息失败:\r\n" + e);
            }

            //SheetID(电子申请单ID)为空,代表没找到申请单
            if (string.IsNullOrEmpty(result.SheetID))
            {
                result = null;
            }

            return(result);
        }
        public async Task AddNote(int requestId, string userId, string userName, bool isTechnician, string noteDescription)
        {
            Request request = await this.ById(requestId).FirstAsync();

            if (isTechnician || userId == request.RequesterId)
            {
                RequestNote note = new RequestNote
                {
                    RequestId    = requestId,
                    Description  = noteDescription,
                    CreationTime = DateTime.UtcNow,
                    Author       = userName
                };

                request.Notes.Add(note);

                await this.SaveChangesAsync();
            }
        }
Exemple #7
0
        public ServiceCallResult <bool> AddRequestNote([FromBody] RequestNoteViewModel requestNote)
        {
            try
            {
                _wtContext.SetCurrentUser(Auth.GetCurrentUser(User.Identity.Name).fullName);

                RequestNote newRequestNote = new RequestNote();
                newRequestNote.RequestId = requestNote.RequestId;
                newRequestNote.Note      = requestNote.Note;

                _wtContext.RequestNotes.Add(newRequestNote);
                _wtContext.SaveChanges();

                return(ServiceCallResult <bool> .CreateSuccessResult(String.Format(UserMessageResource.FieldAddedSuccessfully, FieldNamesResource.RequestNote), true));
            }
            catch (Exception ex)
            {
                return(ServiceCallResult <bool> .CreateErrorResult(String.Format(UserMessageResource.ErrorAddingField, FieldNamesResource.RequestNote) + ex.Message, false));
            }
        }
Exemple #8
0
        public ServiceCallResult <RequestViewModel> UpdateRequest([FromBody] RequestViewModel request)
        {
            try
            {
                string previousStatus     = "";
                bool   owningStreamChange = false;
                bool   statusChange       = false;
                _wtContext.SetCurrentUser(Auth.GetCurrentUser(User.Identity.Name).fullName);
                if (!isRequestValid(request))
                {
                    return(ServiceCallResult <RequestViewModel> .CreateErrorResult(String.Format(UserMessageResource.ErrorSavingInputInvalid, FieldNamesResource.Request, FieldNamesResource.Fields), request));
                }

                var existingRequest = _wtContext.Requests.Include(x => x.Status).Include(x => x.OwningStream).Where(x => x.Id == request.Id).FirstOrDefault();
                if (existingRequest != null)
                {
                    existingRequest.ApplicationId = request.AppName.Id;
                    existingRequest.ProjectName   = request.ProjectName;
                    existingRequest.Problem       = request.Problem;
                    existingRequest.BenefitCase   = request.BenefitCase;
                    existingRequest.COEPriority   = request.COEPriority;
                    existingRequest.GBSPriority   = request.GBSPriority;
                    if (request.StatusId != existingRequest.StatusId)
                    {
                        previousStatus           = existingRequest.Status.Name;
                        existingRequest.StatusId = request.StatusId;
                    }
                    existingRequest.MD_50_DueDate = request.MD_50_DueDate != null?Convert.ToDateTime(request.MD_50_DueDate) : (DateTime?)null;

                    existingRequest.MD_70_DueDate = request.MD_70_DueDate != null?Convert.ToDateTime(request.MD_70_DueDate) : (DateTime?)null;

                    existingRequest.TestingDate = request.TestingDate != null?Convert.ToDateTime(request.TestingDate) : (DateTime?)null;

                    existingRequest.ProductionDate = request.ProductionDate != null?Convert.ToDateTime(request.ProductionDate) : (DateTime?)null;

                    existingRequest.TotalEstimate             = request.TotalEstimate;
                    existingRequest.OracleDevEstimateOffShore = request.OracleDevEstimateOffShore;
                    existingRequest.OracleDevEstimateOnShore  = request.OracleDevEstimateOnShore;
                    existingRequest.DCOEEstimate             = request.DCOEEstimate;
                    existingRequest.CRNo                     = request.CRNo;
                    existingRequest.FunctionalContact        = request.FunctionalContact;
                    existingRequest.BIContact                = request.BIContact;
                    existingRequest.OracleDevelopmentLead    = request.OracleDevelopmentLead;
                    existingRequest.DCOEDevelopmentLead      = request.DCOEDevelopmentLead;
                    existingRequest.MD_50                    = request.MD_50;
                    existingRequest.MD_70                    = request.MD_70;
                    existingRequest.TIPUrl                   = request.TIPUrl;
                    existingRequest.EBSGateQuestionnaireUrl  = request.EBSGateQuestionnaireUrl;
                    existingRequest.BIGateQuestionnaireUrl   = request.BIGateQuestionnaireUrl;
                    existingRequest._NETGateQuestionnaireUrl = request._NETGateQuestionnaireUrl;
                    existingRequest.OTMGateQuestionnaireUrl  = request.OTMGateQuestionnaireUrl;
                    existingRequest.ReadyForEBSGateId        = request.ReadyForEBSGate != null ? request.ReadyForEBSGate.Id : (int?)null;
                    existingRequest.EBSGateStatusId          = request.EBSGateStatus != null ? request.EBSGateStatus.Id : (int?)null;
                    existingRequest.NextEBSGateId            = request.NextEBSGate != null ? request.NextEBSGate.Id : (int?)null;
                    existingRequest.ReadyForOTMGateId        = request.ReadyForOTMGate != null ? request.ReadyForOTMGate.Id : (int?)null;
                    existingRequest.OTMGateStatusId          = request.OTMGateStatus != null ? request.OTMGateStatus.Id : (int?)null;
                    existingRequest.OTMEBSGateId             = request.OTMEBSGate != null ? request.OTMEBSGate.Id : (int?)null;
                    existingRequest.ReadyForBIGateId         = request.ReadyForBIGate != null ? request.ReadyForBIGate.Id : (int?)null;
                    existingRequest.BIGateStatusId           = request.BIGateStatus != null ? request.BIGateStatus.Id : (int?)null;
                    existingRequest.NextBIGateId             = request.NextBIGate != null ? request.NextBIGate.Id : (int?)null;
                    existingRequest.ReadyFor_NETGateId       = request.ReadyFor_NETGate != null ? request.ReadyFor_NETGate.Id : (int?)null;
                    existingRequest._NETGateStatusId         = request._NETGateStatus != null ? request._NETGateStatus.Id : (int?)null;
                    existingRequest.Next_NETGateId           = request.Next_NETGate != null ? request.Next_NETGate.Id : (int?)null;
                    existingRequest.EstimateInfra            = request.EstimateInfra;
                    existingRequest.FrontLineContact         = request.FrontLineContact;
                    existingRequest.OwningSiteId             = request.OwningSite != null ? request.OwningSite.Id : (int?)null;

                    existingRequest.Requestor               = request.Requestor;
                    existingRequest.BIRequestId             = request.BIRequestId;
                    existingRequest.OriginalSystemReference = request.OriginalSystemReference;
                    existingRequest.Attribute1              = request.Attribute1;
                    existingRequest.Attribute2              = request.Attribute2;
                    existingRequest.Attribute3              = request.Attribute3;
                    existingRequest.Attribute4              = request.Attribute4;
                    existingRequest.Attribute5              = request.Attribute5;
                    existingRequest.Attribute6              = request.Attribute6;
                    existingRequest.Attribute7              = request.Attribute7;
                    existingRequest.Attribute8              = request.Attribute8;
                    existingRequest.Attribute9              = request.Attribute9;
                    existingRequest.Attribute10             = request.Attribute10 != null?Convert.ToDateTime(request.Attribute10) : (DateTime?)null;

                    //default these values to false, set them to true whether values exist in impacted stream array.
                    existingRequest.BIImpactedStream  = false;
                    existingRequest.OTMImpactedStream = false;

                    //Change Valid
                    if (existingRequest.StatusId != request.Status.Id)
                    {
                        statusChange             = true;
                        existingRequest.StatusId = request.Status.Id;
                    }

                    if (existingRequest.OwningStreamId != request.OwningStream.Id)
                    {
                        owningStreamChange             = true;
                        existingRequest.OwningStreamId = request.OwningStream.Id;
                    }

                    //regions
                    var regions = _wtContext.RequestRegions.Where(x => x.RequestId == request.Id).ToList();
                    _wtContext.RequestRegions.RemoveRange(regions);
                    foreach (var r in request.Regions)
                    {
                        var reg = new RequestRegion();
                        reg.RequestId = request.Id;
                        reg.RegionId  = r.Id;
                        _wtContext.RequestRegions.Add(reg);
                    }

                    //sbus
                    var sbus = _wtContext.RequestSBUs.Where(x => x.RequestId == request.Id).ToList();
                    _wtContext.RequestSBUs.RemoveRange(sbus);
                    foreach (var s in request.SBUs)
                    {
                        var sbu = new RequestSBU();
                        sbu.RequestId = request.Id;
                        sbu.SBUId     = s.Id;
                        _wtContext.RequestSBUs.Add(sbu);
                    }
                    //impactedstreams
                    var impactedstreams = _wtContext.RequestImpactedStreams.Where(x => x.RequestId == request.Id).ToList();
                    _wtContext.RequestImpactedStreams.RemoveRange(impactedstreams);
                    foreach (var i in request.ImpactedStreams)
                    {
                        var ist = new RequestImpactedStream();
                        ist.RequestId        = request.Id;
                        ist.ImpactedStreamId = i.Id;
                        if (i.Name.ToUpper() == "BI")
                        {
                            existingRequest.BIImpactedStream = true;
                        }
                        if (i.Name.ToUpper() == "OTM")
                        {
                            existingRequest.OTMImpactedStream = true;
                        }

                        _wtContext.RequestImpactedStreams.Add(ist);
                    }
                    //modules
                    var modules = _wtContext.RequestModules.Where(x => x.RequestId == request.Id).ToList();
                    _wtContext.RequestModules.RemoveRange(modules);
                    foreach (var i in request.Modules)
                    {
                        var mod = new RequestModule();
                        mod.RequestId = request.Id;
                        mod.ModuleId  = i.Id;
                        _wtContext.RequestModules.Add(mod);
                    }
                    //developmentteams
                    var developmentteams = _wtContext.RequestDevelopmentTeams.Where(x => x.RequestId == request.Id).ToList();
                    _wtContext.RequestDevelopmentTeams.RemoveRange(developmentteams);
                    foreach (var i in request.DevelopmentTeams)
                    {
                        var dt = new RequestDevelopmentTeam();
                        dt.RequestId         = request.Id;
                        dt.DevelopmentTeamId = i.Id;
                        _wtContext.RequestDevelopmentTeams.Add(dt);
                    }
                    //oraclepreprodenvironments
                    var oracleenvs = _wtContext.RequestOraclePreProdEnvironments.Where(x => x.RequestId == request.Id).ToList();
                    _wtContext.RequestOraclePreProdEnvironments.RemoveRange(oracleenvs);
                    foreach (var i in request.OraclePreProdEnvironments)
                    {
                        var oe = new RequestOraclePreProdEnvironment();
                        oe.RequestId = request.Id;
                        oe.OraclePreProdEnvironmentId = i.Id;
                        _wtContext.RequestOraclePreProdEnvironments.Add(oe);
                    }

                    //add note if status has changed
                    if (!string.IsNullOrEmpty(previousStatus))
                    {
                        var note = new RequestNote();
                        note.RequestId = request.Id;
                        note.Note      = "Status Changed from " + previousStatus + " to " + request.Status.Name;
                        _wtContext.RequestNotes.Add(note);
                    }
                    //attachments

                    _wtContext.SaveChanges();
                }
                else
                {
                    return(ServiceCallResult <RequestViewModel> .CreateErrorResult(String.Format(UserMessageResource.ErrorSavingInputInvalid, FieldNamesResource.Request, FieldNamesResource.Fields), request));
                }
                Request ret = _wtContext.Requests.Where(x => x.Id == request.Id)
                              .Include(x => x.Application)
                              .Include(x => x.Attachments)
                              .Include(x => x.Status)
                              .Include(x => x.Regions).ThenInclude(x => x.Region)
                              .Include(x => x.SBUs).ThenInclude(x => x.SBU)
                              .Include(x => x.OwningSite)
                              .Include(x => x.OwningStream)
                              .Include(x => x.ImpactedStreams).ThenInclude(x => x.ImpactedStream)
                              .Include(x => x.Modules).ThenInclude(x => x.Module)
                              .Include(x => x.DevelopmentTeams).ThenInclude(x => x.DevelopmentTeam)
                              .Include(x => x.OraclePreProdEnvironments).ThenInclude(x => x.OraclePreProdEnvironment)
                              .Include(x => x.BIRequest)
                              .Include(x => x.BIGateStatus)
                              .Include(x => x.NextBIGate)
                              .Include(x => x.ReadyForBIGate)
                              .Include(x => x._NETGateStatus)
                              .Include(x => x.Next_NETGate)
                              .Include(x => x.ReadyFor_NETGate)
                              .Include(x => x.EBSGateStatus)
                              .Include(x => x.NextEBSGate)
                              .Include(x => x.ReadyForEBSGate)
                              .Include(x => x.OTMGateStatus)
                              .Include(x => x.OTMEBSGate)
                              .Include(x => x.ReadyForOTMGate).FirstOrDefault();

                OwningStream owningStream = _wtContext.OwningStreams.Where(n => n.Id == request.OwningStream.Id).FirstOrDefault();
                string       email        = string.Empty;

                if (owningStream != null)
                {
                    email = owningStream.dlEmailAddress;
                }

                //Send Notifications
                if (statusChange)
                {
                    string title = "New Oracle COE Request Logged";
                    sendNotificationEmail(ret, EmailType.OwningStreamChange, title, email);
                }

                if (owningStreamChange)
                {
                    string title = "New Oracle COE Request Logged";
                    sendNotificationEmail(ret, EmailType.OwningStreamChange, title, email);
                }

                var vm = Mappers <Request, RequestViewModel> .MapToViewModel(ret);

                return(ServiceCallResult <RequestViewModel> .CreateSuccessResult(string.Format(UserMessageResource.FieldSavedSuccessfully, FieldNamesResource.Request), vm));
            }
            catch (Exception ex)
            {
                return(ServiceCallResult <RequestViewModel> .CreateErrorResult(string.Format(UserMessageResource.ErrorAddingField, FieldNamesResource.Request) + ex.Message, new RequestViewModel()));
            }
        }