Пример #1
0
        public IHttpActionResult PostAnalysisDelete(AnalysisDto analysis)
        {
            string msg = "";

            if (analysis == null)
            {
                msg = "参数错误";
            }
            var analysisToDelete = _context.Analyses.Find(analysis.Id);

            if (analysisToDelete == null)
            {
                msg = "删除失败,该化验项目不存在";
            }
            else
            {
                try
                {
                    _context.Analyses.Remove(analysisToDelete);
                    _context.SaveChanges();
                    msg = "删除成功";
                }
                catch (RetryLimitExceededException)
                {
                    msg = "网络故障";
                }
            }

            var str = "{ \"Message\" : \"" + msg + "\" , \"" + "Data\" : \"" + "null" + "\" }";

            return(Ok(str));
        }
Пример #2
0
        public IHttpActionResult PostAnalysisModify(AnalysisDto analysis)
        {
            string msg = "";

            if (analysis == null)
            {
                msg = "参数错误";
            }
            var analysisToUpdate = _context.Analyses.Find(analysis.Id);

            analysisToUpdate.Name   = analysis.Name;
            analysisToUpdate.Amount = analysis.Amount;
            try
            {
                _context.Entry(analysisToUpdate).State = EntityState.Modified;
                _context.SaveChanges();
                msg = "修改成功";
            }
            catch (RetryLimitExceededException)
            {
                msg = "网络故障";
            }
            var str = "{ \"Message\" : \"" + msg + "\" , \"" + "Data\" : \"" + "null" + "\" }";

            return(Ok(str));
        }
        public async Task <IActionResult> Retrieve(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException("id");
            }

            AnalysisDto analysis = new AnalysisDto();

            try
            {
                analysis = await _repository.RetrieveAnalysisByGoogleFileIdAsync(id);
            }
            catch (Exception err)
            {
                // TODO: create proper EventIds for logging
                _logger?.LogError(0, err, "Unable to retrieve analysis from database");
                throw err;
            }
            return(Ok(analysis));
        }
Пример #4
0
        public IHttpActionResult PostAnalysisAdd(AnalysisDto analysis)
        {
            string msg = "";

            if (analysis == null)
            {
                msg = "参数错误";
            }
            var AnalysisToAdd = Mapper.Map <AnalysisDto, Analysis>(analysis);

            try
            {
                _context.Analyses.Add(AnalysisToAdd);
                _context.SaveChanges();
                msg = "添加成功";
            }
            catch (RetryLimitExceededException)
            {
                msg = "网络故障";
            }
            var str = "{ \"Message\" : \"" + msg + "\" , \"" + "Data\" : \"" + "null" + "\" }";

            return(Ok(str));
        }
        public Task <AnalysisResDto> Analysis(AnalysisDto analysisDto)
        {
            return(Task.Factory.StartNew(() =>
            {
                AnalysisResDto res = new AnalysisResDto()
                {
                    Success = true, Msg = "条码解析成功"
                };

                var thisAssembly = typeof(WMSCloudApplicationModule).GetAssembly().ExportedTypes.Where(t => t.Name.ToLower() == analysisDto.DtoName.ToLower()).FirstOrDefault();

                if (thisAssembly == null)
                {
                    throw new LYException("未找到要解析的数据传输对象");
                }

                // 查询该对象的解析规则
                var analysiss = _repository.GetAll().Where(a => a.ClassName == analysisDto.DtoName).ToList();
                if (analysiss == null || analysiss.Count < 1)
                {
                    throw new LYException("未设置条码解析规则");
                }

                // 条码解析
                try
                {
                    //获取指定名称的类型
                    object resObj = Activator.CreateInstance(thisAssembly, null);   //创建指定类型实例
                    PropertyInfo[] fields = resObj.GetType().GetProperties();       //获取指定对象的所有公共属性

                    foreach (var pInfo in fields)
                    {
                        // 判断是否存在解析规则

                        var analysis = analysiss.Where(a => a.PropertyName.ToLower() == pInfo.Name.ToLower()).FirstOrDefault();
                        if (analysis == null)
                        {
                            continue;
                        }
                        var oneStr = "";
                        // 进行正则解析
                        if (analysis.IsReplace)
                        {
                            oneStr = Regex.Replace(analysisDto.BarCode, analysis.RegEX, "");
                        }
                        else
                        {
                            oneStr = Regex.Match(analysisDto.BarCode, analysis.RegEX).Value;
                        }
                        if (pInfo.PropertyType.BaseType.Name == "Enum")
                        {
                            pInfo.SetValue(resObj, System.Enum.Parse(pInfo.PropertyType, oneStr, true), null);
                        }
                        else
                        {
                            if (pInfo.PropertyType == typeof(DateTime))
                            {
                                oneStr = GetDateCode(oneStr);
                            }

                            pInfo.SetValue(resObj, Convert.ChangeType(oneStr, pInfo.PropertyType), null);
                        }
                    }
                    res.Result = resObj;
                }
                catch (Exception ex)
                {
                    throw new LYException("条码解析失败" + ex.Message);
                }
                return res;
            }));
        }