Exemplo n.º 1
0
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);

            builder.RootComponents.Add <App>("app");

            var engineService = await EngineService.Instantiate();

            var credentialsService = new CredentialsService();
            var actors             = await engineService.Instance.Storage.GetActors();

            credentialsService.SetCurrentActor(actors.First());

            builder.Services.AddTransient(sp => new HttpClient {
                BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
            });
            builder.Services.AddSingleton(sp => engineService.Instance);
            builder.Services.AddSingleton(sp => engineService);
            builder.Services.AddSingleton(sp => credentialsService);
            builder.Services.AddSingleton(sp => new BackupService());
            builder.Services.AddSingleton(sp => new RoutingService());
            builder.Services.AddSingleton(typeof(IStorageAPI), engineService.Instance.Storage);

            builder.Services.AddScoped(typeof(DialogService));
            builder.Services.AddScoped(typeof(TransactionsService));
            builder.Services.AddScoped(typeof(PropertyProviderService));
            builder.Services.AddScoped(typeof(PropertyContainerService));
            builder.Services.AddScoped(typeof(EntityService));
            builder.Services.AddScoped(typeof(ConditionsService));
            builder.Services.AddBlazoredModal();

            await builder.Build().RunAsync();
        }
        public void Iniciado()
        {
            EngineService Funcion = new EngineService();

            Funcion.CrearCarpetaArchivo();
            Funcion.EstablecerConexionSocket(pathArchivo, true);
        }
Exemplo n.º 3
0
        public async Task SendWithHeaders_MustWithHeadersSend(string method)
        {
            var ada = new HttpClientAdapter(new HttpClient());

            using (var ser = new EngineService())
            {
                var url = "http://localhost:" + (port++) + "/";
                ser.Listener.Prefixes.Add(url);
                ser.Listen();
                var req = new RequestSettings
                {
                    Address = url,
                    Accept  = "application/json",
                    Headers = new Dictionary <string, string>
                    {
                        ["A"] = "a",
                        ["B"] = "b"
                    },
                    Host     = "www.localhost.com",
                    Method   = method,
                    Referrer = "http://www.referrer.com",
                    Timeout  = 1000
                };
                var rep = await ada.GetMessageAsync(req);

                if (!string.Equals(rep.RequestMessage.Method.Method, req.Method, StringComparison.InvariantCulture))
                {
                    Assert.Fail();
                }
                Assert.AreEqual(req.Host, rep.RequestMessage.Headers.GetValues("host").First());
                Assert.AreEqual(req.Headers["A"], rep.RequestMessage.Headers.GetValues("A").First());
                Assert.AreEqual(req.Headers["B"], rep.RequestMessage.Headers.GetValues("B").First());
                Assert.AreEqual(req.Accept, rep.RequestMessage.Headers.GetValues("Accept").First());
            }
        }
        protected override void OnStop()
        {
            this.hilo = null;
            EngineService Funcion = new EngineService();

            Funcion.EstablecerConexionSocket(pathArchivo, false);
        }
Exemplo n.º 5
0
 public new void Setup()
 {
     base.Setup();
     collisionService  = new CollisionService(EngineConfigFake, WorldStateService, VectorCalculatorService);
     collisionHandlers = new List <ICollisionHandler>
     {
         new FoodCollisionHandler(WorldStateService, EngineConfigFake),
         new PlayerCollisionHandler(WorldStateService, collisionService, EngineConfigFake, VectorCalculatorService)
     };
     collisionHandlerResolver = new CollisionHandlerResolver(collisionHandlers);
     actionHandlers           = new List <IActionHandler>
     {
         new ForwardActionHandler(),
         new StartAfterburnerActionHandler(WorldStateService, EngineConfigFake),
         new StopAfterburnerActionHandler(WorldStateService),
         new StopActionHandler()
     };
     actionHandlerResolver = new ActionHandlerResolver(actionHandlers);
     actionService         = new ActionService(WorldStateService, actionHandlerResolver);
     tickProcessingService = new TickProcessingService(
         collisionHandlerResolver,
         VectorCalculatorService,
         WorldStateService,
         collisionService);
     engineService = new EngineService(WorldStateService, actionService, EngineConfigFake, tickProcessingService);
 }
Exemplo n.º 6
0
        /// <summary>
        /// Renderiza o conteúdo.
        /// </summary>
        /// <param name="viewContext"></param>
        /// <param name="writer"></param>
        public void Render(System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer)
        {
            if (IsRazorFile)
            {
                try
                {
                    var cache = _virtualFile as ITemplateCacheSupport;
                    RazorEngine.Templating.ITemplateKey templateKey = null;
                    if (cache != null)
                    {
                        if (cache.TemplateKey == null)
                        {
                            templateKey = EngineService.GetKey(_virtualFile.VirtualPath.ToLower(), RazorEngine.Templating.ResolveType.Include);
                            cache.Register(templateKey);
                        }
                        else
                        {
                            templateKey = cache.TemplateKey;
                        }
                    }
                    else
                    {
                        templateKey = EngineService.GetKey(_virtualFile.VirtualPath.ToLower(), RazorEngine.Templating.ResolveType.Include);
                    }
                    RazorEngine.Templating.DynamicViewBag viewBag = new CustomDynamicViewBag(viewContext.ViewData)
                    {
                        ViewContext = viewContext
                    };
                    var modelType = _model != null?_model.GetType() : null;

                    if (!EngineService.IsTemplateCached(templateKey, modelType))
                    {
                        try
                        {
                            EngineService.Compile(templateKey, modelType);
                        }
                        catch (Exception ex)
                        {
                            viewContext.HttpContext.Response.StatusCode = 501;
                            writer.Write(ex.ToString());
                            return;
                        }
                    }
                    EngineService.Run(templateKey, writer, modelType, null, viewBag);
                    return;
                }
                catch (Exception ex)
                {
                    viewContext.HttpContext.Response.StatusCode = 501;
                    writer.Write(ex.ToString());
                    return;
                }
            }
            using (var stream = _virtualFile.Open())
            {
                var reader = new System.IO.StreamReader(stream);
                writer.Write(reader.ReadToEnd());
                writer.Flush();
            }
        }
Exemplo n.º 7
0
        public async Task <IActionResult> UploadFile(IFormFile file)
        {
            //todo move to uploadService
            var filePath = Path.Combine("E:\\university\\DSPAI\\DSPAI\\", "FileStorage");

            if (file.Length > 0)
            {
                if (System.IO.File.Exists(filePath))
                {
                    System.IO.File.Delete(filePath);
                }
                using (var fileStream = new FileStream(Path.Combine(filePath, file.FileName), FileMode.Create))
                {
                    await file.CopyToAsync(fileStream);
                }
            }

            // process uploaded files
            // Don't rely on or trust the FileName property without validation.
            var engineService   = new EngineService();
            var image           = engineService.GetImageByFile(file);
            var bitMap          = engineService.GetBitMap(image);
            var grayScaleBitMap = engineService.MakeGrayscale(bitMap);
            var histogram       = engineService.CreateHistogrtam(grayScaleBitMap);


            return(Ok(new HistogramDTO()
            {
                Histogram = histogram,
                Path = Path.Combine(filePath, file.FileName)
            }));
        }
Exemplo n.º 8
0
 public BuildsController(IBuildRepository buildRepo, IEngineRepository engineRepo, EngineService engineService,
                         IOptions <EngineOptions> options)
 {
     _buildRepo     = buildRepo;
     _engineService = engineService;
     _options       = options;
 }
Exemplo n.º 9
0
        public async Task ShouldCreateEngineWithExistingDb()
        {
            var dbOptions = DbHelper.GetNewDbOptions <MockContext>();

            await CreateTestDatabase(dbOptions);

            using (var context = new MockContext(dbOptions))
            {
                var service = new EngineService(context);

                var engineVm = new EngineViewModel
                {
                    Capacity      = 1600,
                    Configuration = "Inline 4",
                    FuelType      = "Petrol"
                };

                var isCreateSuccess = await service.CreateNewEngine(engineVm);

                var engines = context.Engines;
                var engine1 = engines.First();
                var engine5 = engines.Last();

                Assert.True(isCreateSuccess);
                Assert.Equal(5, engines.Count());

                Assert.Equal(2400, engine1.Capacity);
                Assert.Equal("Inline 4 Vtec", engine1.Configuration);
                Assert.Equal("Petrol", engine1.FuelType);

                Assert.Equal(engineVm.Capacity, engine5.Capacity);
                Assert.Equal(engineVm.Configuration, engine5.Configuration);
                Assert.Equal(engineVm.FuelType, engine5.FuelType);
            }
        }
Exemplo n.º 10
0
 public void SetUp()
 {
     _readService      = new Mock <IReadService>();
     _writeServiceMock = new Mock <IWriteService>();
     _refereeService   = new Mock <IRefereeService>();
     _testedService    = new EngineService(_readService.Object, _writeServiceMock.Object, _refereeService.Object);
 }
Exemplo n.º 11
0
        public async Task ShouldCreateEngineWithEmptyDb()
        {
            using (var context = new MockContext(DbHelper.GetNewDbOptions <MockContext>()))
            {
                var service = new EngineService(context);

                var engineVm = new EngineViewModel
                {
                    Capacity      = 1600,
                    Configuration = "Inline 4",
                    FuelType      = "Petrol"
                };

                var isCreateSuccess = await service.CreateNewEngine(engineVm);

                var engine = context.Engines.First();

                Assert.True(isCreateSuccess);
                Assert.Single(context.Engines);

                Assert.Equal(engineVm.Capacity, engine.Capacity);
                Assert.Equal(engineVm.Configuration, engine.Configuration);
                Assert.Equal(engineVm.FuelType, engine.FuelType);
            }
        }
Exemplo n.º 12
0
        public async Task ShouldGetEngines()
        {
            var dbOptions = DbHelper.GetNewDbOptions <MockContext>();

            await CreateTestDatabase(dbOptions);

            using (var context = new MockContext(dbOptions))
            {
                var service = new EngineService(context);

                var results = service.GetEngines();
                var engine1 = results.First();
                var engine4 = results.Last();

                Assert.Equal(4, results.Count());

                Assert.Equal(2400, engine1.Capacity);
                Assert.Equal("Inline 4 Vtec", engine1.Configuration);
                Assert.Equal("Petrol", engine1.FuelType);

                Assert.Equal(2000, engine4.Capacity);
                Assert.Equal("Inline 4 Turbo", engine4.Configuration);
                Assert.Equal("Diesel", engine4.FuelType);
            }
        }
Exemplo n.º 13
0
        public static IEngineService Create(Guid tenantId)
        {
            if (Container == null)
            {
                throw new ArgumentNullException("Container", "Unity Container Not Initialized.");
            }

            if (string.IsNullOrEmpty(ConnectionString))
            {
                throw new ArgumentNullException("ConnectionString", "ConnectionString is empty.");
            }

            var iCommonMapper     = Container.Resolve <ICommonMapper>();
            var iCommonRepository = new CommonRepository(new Common_Entities(ConnectionString));
            var tenant            = iCommonRepository.RetrieveTenantById(tenantId);

            iCommonRepository.Dispose();
            if (tenant == null)
            {
                throw new Exception("Could not find schema for this tenantId:" + tenantId);
            }

            var            engineEntities   = new ANDP_Engine_Entities(ConnectionString, tenant.Schema);
            var            engineRepository = new EngineRepository(engineEntities);
            IEngineService service          = new EngineService(engineRepository, iCommonMapper);

            return(service);
        }
        private dynamic ReadResource(
            IRequest request,
            HttpRequestMethod requestMethod,
            PermissionHandler <TRelation, TUser> permissionHandler)
        {
            var result = APIUtils.GetResource(dbContext, request);

            if (result == null)
            {
                return(new NotFoundResult());
            }

            var serializerSettings = JsonConvert.DefaultSettings();

            serializerSettings.ContractResolver = new APIJsonResolver <TRelation, TUser> {
                PermissionHandler = permissionHandler,
                ModelAction       = ModelAction.Read,
                RequestMethod     = requestMethod,
                IRequest          = request,
                DbContext         = dbContext,
                EngineService     = EngineService,
                IncludeBindNever  = true,
                IncludeKey        = true
            };

            EngineService.OnResourceRead(dbContext, request, result);

            Response.Headers.Add("Server", "NG-API");

            return(new OkObjectResult(JsonConvert.SerializeObject(result, serializerSettings)));
        }
Exemplo n.º 15
0
 private void RegisterPremiumSystemsAndTemplates()
 {
     TemplateRegistry.Register <PremiumBoostMarketItemTemplate>();
     TemplateRegistry.Register <PremiumBoostUserItemTemplate>();
     TemplateRegistry.Register <PremiumQuestMarketItemTemplate>();
     TemplateRegistry.Register <PremiumQuestUserItemTemplate>();
     EngineService.RegisterSystem(new PremiumItemSystem());
 }
Exemplo n.º 16
0
 public void ShouldBeConstructed()
 {
     using (var context = new MockContext(emptyDbOptions))
     {
         var service = new EngineService(context);
         Assert.NotNull(service);
     }
 }
Exemplo n.º 17
0
 public void RemoveProject_LanguagePairDoesNotExist_ReturnsFalse()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         var service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         service.RemoveProject("es", "en", "project2").Should().BeFalse();
     }
 }
Exemplo n.º 18
0
 public void GetAllLanguagePairs_NoLanguagePairs_ReturnsEmpty()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         var service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         service.GetAllLanguagePairs().Should().BeEmpty();
     }
 }
Exemplo n.º 19
0
 public void ShouldGetNoEnginesWithEmptyDb()
 {
     using (var context = new MockContext(emptyDbOptions))
     {
         var service = new EngineService(context);
         Assert.Empty(service.GetEngines());
     }
 }
Exemplo n.º 20
0
        public IHttpActionResult SetDisplay([FromUri] string address, [FromBody] SetDisplayRequest request)
        {
            EngineService service     = (EngineService)AppCoreBootstrapper.Container.GetInstance(typeof(EngineService));;
            Cube          entityCube  = service._cubeRepository.GetCube(address);
            DisplayCube   displayCube = new DisplayCube(entityCube, _cubeRepository, service);

            displayCube.SetDisplayText(request.Row, request.Content);
            return(Ok());
        }
Exemplo n.º 21
0
        public IHttpActionResult TurnOffBacklight(string address)
        {
            EngineService service     = (EngineService)AppCoreBootstrapper.Container.GetInstance(typeof(EngineService));;
            Cube          entityCube  = service._cubeRepository.GetCube(address);
            RelayCube     displayCube = new RelayCube(entityCube, _cubeRepository, service);

            displayCube.TurnOff();
            return(Ok());
        }
Exemplo n.º 22
0
 public void TryGetLanguagePair_LanguagePairDoesNotExist_ReturnsFalse()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         var             service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         LanguagePairDto languagePair;
         service.TryGetLanguagePair("es", "en", out languagePair).Should().BeFalse();
     }
 }
Exemplo n.º 23
0
 public void GetAllProjects_LanguagePairDoesNotExist_ReturnsFalse()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         var service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         IReadOnlyList <ProjectDto> projects;
         service.GetAllProjects("es", "en", out projects).Should().BeFalse();
     }
 }
Exemplo n.º 24
0
 public void TryInteractiveTranslate_LanguagePairDoesNotExist_ReturnsFalse()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         var service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         InteractiveTranslationResultDto result;
         service.TryInteractiveTranslate("es", "en", null, "Esto es una prueba .".Split(), out result).Should().BeFalse();
     }
 }
        public PaymentsController()
            :base()
        {
            this.paymentProvider = ProviderService.GetProvider();
            this.antiForgeryService = new AntiForgeryService();
            this.engineService = new EngineService();

            System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
        }
Exemplo n.º 26
0
 public void GetAllLanguagePairs_HasLanguagePairs_ReturnsLanguagePairDtos()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         CreateLanguagePair(tempDir.Path, "es", "en");
         CreateLanguagePair(tempDir.Path, "fr", "en");
         var service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         service.GetAllLanguagePairs().Select(e => $"{e.SourceLanguageTag}_{e.TargetLanguageTag}").Should().BeEquivalentTo(new[] { "es_en", "fr_en" });
     }
 }
Exemplo n.º 27
0
 public void TryGetProject_ProjectDoesNotExist_ReturnsFalse()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         CreateLanguagePair(tempDir.Path, "es", "en");
         var        service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         ProjectDto project;
         service.TryGetProject("es", "en", "project3", out project).Should().BeFalse();
     }
 }
Exemplo n.º 28
0
        private dynamic DeleteResource(
            IRequest request,
            TRelation relationType,
            IRequest relatedRequest,
            PermissionHandler <TRelation, TUser> permissionHandler)
        {
            var resource = APIUtils.GetResource(dbContext, request) as object;

            if (resource == null)
            {
                return(new NotFoundResult());
            }

            if (!(resource is RootModel))
            {
                return(new BadRequestObjectResult(
                           new APIError {
                    Code = StatusCodes.Status424FailedDependency,
                    Message = "Only api architecture based models can be deleted"
                }
                           ));
            }

            var globalIntraction = dbContext.MagicDbSet(EngineService.MapRelationToType("Global")) as IEnumerable <dynamic>;
            var globalRelation   = Enum.Parse(enumType: typeof(TRelation), value: "Global");

            var isCreator = globalIntraction
                            .Where(predicate: intraction =>
                                   intraction.IntractionType.Equals(globalRelation) &&
                                   intraction.Valid &&
                                   ((intraction.ValidUntil == null || intraction.ValidUntil.HasValue == false) ||
                                    (intraction.ValidUntil.HasValue && System.DateTime.Now.CompareTo(intraction.ValidUntil.Value) < 0)) &&
                                   (intraction.CreatorId.Equals(permissionHandler.getRequesterID()) &&
                                    intraction.FirstModelId.Equals(permissionHandler.getRequesterID()) &&
                                    intraction.SecondModelId.Equals(resource.GetKeyPropertyValue())))
                            .Any();

            if (!isCreator)
            {
                return(new BadRequestObjectResult(
                           new APIError {
                    Code = StatusCodes.Status403Forbidden,
                    Message = "Only object creator (The owner) can delete it"
                }));
            }

            resource.GetType().GetProperty(nameof(RootModel.Deactivated)).SetValue(resource, true);

            dbContext.Entry(resource).Property(nameof(RootModel.Deactivated)).IsModified = true;
            dbContext.SaveChanges();

            EngineService.OnResourceDeleted(dbContext, request, resource);

            return(new OkResult());
        }
Exemplo n.º 29
0
 public void GetAllProjects_LanguagePairExists_ReturnsTrue()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         CreateLanguagePair(tempDir.Path, "es", "en");
         var service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         IReadOnlyList <ProjectDto> projects;
         service.GetAllProjects("es", "en", out projects).Should().BeTrue();
         projects.Select(p => p.Id).Should().BeEquivalentTo(new[] { "project1", "project2" });
     }
 }
Exemplo n.º 30
0
 public void TryTranslate_ProjectEngine_ReturnsTrue()
 {
     using (var tempDir = new TempDirectory("EngineServiceTests"))
     {
         CreateLanguagePair(tempDir.Path, "es", "en");
         var service = new EngineService(CreateOptions(tempDir.Path), CreateSmtModelFactory(), CreateRuleEngineFactory());
         IReadOnlyList <string> result;
         service.TryTranslate("es", "en", "project2", "Esto es una prueba .".Split(), out result).Should().BeTrue();
         result.Should().Equal("This is a test .".Split());
     }
 }
Exemplo n.º 31
0
        /// <summary>
        /// 我的单据详细信息
        /// </summary>
        /// <param name="FormidSystemcode">表单ID和systemcode,格式:SystemCode_FormID</param>
        /// <returns></returns>
        public static string Get_Record_DetailByForm(string FormidSystemcode)
        {
            try
            {
                #region 获取单据代码块

                DateTime start = DateTime.Now;
                EngineService engineService = new EngineService();
                SMT.SaaS.Services.EngineWS.T_FLOW_ENGINEMSGLIST detail = engineService.PendingDetailTasksByOrderNodeCodeForMobile(FormidSystemcode);
                if (detail == null)
                {
                    throw new Exception("调用我的单据Get_Record_DetailByForm方法中globalClient.PendingDetailTasksByOrderNodeCodeForMobile" +
                    "没有找到【" + FormidSystemcode + "】的数据");
                }
                DateTime end = DateTime.Now;
                //Common.CallWcfLog("PendingDetailTasksByOrderNodeCodeForMobile", "调用与返回", "我的单据详细信息", start, end);
                string OrderType = "";//是否是咨询单
                if (detail.ORDERNODECODE.IndexOf("Consultati") > -1)
                {
                    OrderType = "Consultation";
                }
                #region 过滤需要编辑的单据
                if (detail.FLOWXML == "" || detail.FLOWXML == null)
                {
                    return GetXmlIsValid("1", "该单据需要在电脑上编辑提交审核。");
                }
                #endregion

                #region 没有Version节点表示为测试数据。
                if ((from c in XElement.Parse(detail.APPXML).Elements("Version") select c).FirstOrDefault() == null)
                {
                    //return GetXmlIsValid("2", "该单据数据版本低,请在电脑上审核。");
                    return GetXmlIsValid("2", "该单据数据版本低,请在电脑上查看。");
                }
                #endregion
                var xmlroots = (from c in XElement.Parse(detail.APPXML).Elements("Object") select c).FirstOrDefault();
                string modelCodeValue = xmlroots.Attribute("Name").Value;
                string modelNameValue = xmlroots.Attribute("Description").Value;
                string formid = xmlroots.Attribute("id").Value;
                bool isAttach = false;//是否有附件(true有附件,false没有附件)
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
                stringBuilder.Append("<System>");
                stringBuilder.Append("<Result Code=\"0\"><![CDATA[成功]]></Result>");
                stringBuilder.Append("<Form  FormID=\"" + formid + "\" ModelCode=\"" + modelCodeValue + "\" MESSAGESTATUS=\"" +
                    detail.MESSAGESTATUS.ToLower() + "\" OrderType=\"" + OrderType.ToLower() + "\" Text=\"" + modelNameValue + "\" ></Form>");
                stringBuilder.Append("<Object Name=\"" + modelCodeValue + "\" Text=\"" + modelNameValue + "\">");
                #region 主表数据
                var xmlitems = from c in XElement.Parse(detail.APPXML).Elements("Object").Elements("Attribute") select c;//主表
                for (int i = 0; i < xmlitems.Count(); i++)
                {
                    string name = xmlitems.ElementAt(i).Attribute("Name").Value;
                    string text = xmlitems.ElementAt(i).Attribute("Description").Value;
                    string datatype = xmlitems.ElementAt(i).Attribute("DataType").Value;
                    string datatext = EscapeXML(xmlitems.ElementAt(i).Attribute("DataText").Value);
                    string datavalue = EscapeXML(xmlitems.ElementAt(i).Attribute("DataValue").Value);
                    string isencryption = "0";//是否是需要解密(0:表示不存在IsEncryption属性;true表示存在IsEncryption属性并把值加密;false表示存在IsEncryption属性值没有加密)
                    string value = "";//值
                    string color = xmlitems.ElementAt(i).Attribute("Color") == null ? "" : xmlitems.ElementAt(i).Attribute("Color").Value;
                    string tooltip = xmlitems.ElementAt(i).Attribute("Tooltip") == null ? "" : xmlitems.ElementAt(i).Attribute("Tooltip").Value;

                    if (datatext == string.Empty)
                    {
                        value = datavalue;
                    }
                    else
                    {
                        value = datatext;
                    }
                    if (datatype.ToLower() == "datetime")
                    {
                        value = ChangeTime(value);
                    }
                    if (xmlitems.ElementAt(i).Attribute("IsEncryption") != null)
                    {
                        isencryption = xmlitems.ElementAt(i).Attribute("IsEncryption").Value.ToLower();
                    }

                    if (datatype.ToLower() != "attachmentlist" && isencryption == "0")
                    {
                        stringBuilder.Append("<Attribute  Name=\"" + name + "\" Text=\"" + text + "\" DataType=\"" + datatype +
                            "\" DataValue=\"" + value + "\"></Attribute>");
                    }
                    else if (datatype.ToLower() != "attachmentlist" && isencryption == "true")
                    {
                        stringBuilder.Append("<Attribute  Name=\"" + name + "\" Text=\"" + text + "\" DataType=\"" + datatype +
                            "\" DataValue=\"" + ReplaceString(value) + "\"></Attribute>");
                    }
                    else if (datatype.ToLower() != "attachmentlist" && isencryption == "false")
                    {
                        stringBuilder.Append("<Attribute  Name=\"" + name + "\" Text=\"" + text + "\" DataType=\"" + datatype +
                            "\" DataValue=\"" + value + "\"></Attribute>");
                    }
                    if (datatype.ToLower() == "attachmentlist" && isencryption == "0")
                    {
                        isAttach = true;
                    }
                }
                #endregion
                #region 从表数据
                var objectlists = from c in XElement.Parse(detail.APPXML).Elements("Object").Elements("ObjectList") select c;//从表信息
                for (int i = 0; i < objectlists.Count(); i++)
                {
                    stringBuilder.Append("<ObjectList Name=\"" + objectlists.ElementAt(i).Attribute("Name").Value + "\"  Text=\"" +
                        objectlists.ElementAt(i).Attribute("Description").Value + "\">");
                    var objects = from obj in objectlists.ElementAt(i).Elements("Object") select obj;
                    for (int j = 0; j < objects.Count(); j++)
                    {
                        stringBuilder.Append("<Object Name=\"" + objects.ElementAt(j).Attribute("Name").Value + "\"   id=\"" +
                            objects.ElementAt(j).Attribute("id").Value + "\" Text=\"" + objects.ElementAt(j).Attribute("Description").Value +
                            "\">");
                        var attributes = from att in objects.ElementAt(j).Elements("Attribute") select att;
                        for (int k = 0; k < attributes.Count(); k++)
                        {
                            string name = attributes.ElementAt(k).Attribute("Name").Value;
                            string text = attributes.ElementAt(k).Attribute("Description").Value;
                            string datatype = attributes.ElementAt(k).Attribute("DataType").Value;
                            string datavalue = attributes.ElementAt(k).Attribute("DataValue").Value;
                            string datatext = attributes.ElementAt(k).Attribute("DataText").Value;
                            string isencryption = "0";//是否是需要解密(0:表示不存在IsEncryption属性;true表示存在IsEncryption属性并把值加密;false表示存在IsEncryption属性值没有加密)
                            string value = "";//值
                            string color = attributes.ElementAt(k).Attribute("Color") == null ? "" :
                                attributes.ElementAt(k).Attribute("Color").Value;
                            string tooltip = attributes.ElementAt(k).Attribute("Tooltip") == null ? "" :
                                attributes.ElementAt(k).Attribute("Tooltip").Value;

                            if (datatext == string.Empty)
                            {
                                value = datavalue;
                            }
                            else
                            {
                                value = datatext;
                            }
                            if (datatype.ToLower() == "datetime")
                            {
                                value = ChangeTime(value);
                            }
                            if (attributes.ElementAt(k).Attribute("IsEncryption") != null)
                            {
                                isencryption = attributes.ElementAt(k).Attribute("IsEncryption").Value.ToLower();
                            }

                            stringBuilder.Append("<Attribute ");
                            stringBuilder.Append("Name=\"" + name + "\" ");
                            stringBuilder.Append("Text=\"" + text + "\" ");
                            stringBuilder.Append("DataType=\"" + datatype + "\" ");
                            stringBuilder.Append("DataValue=\"" + (isencryption == "true" ? ReplaceString(value) :
                                value) + "\" ");
                            if (!string.IsNullOrEmpty(color))
                            {
                                stringBuilder.Append(" Color=\"" + color + "\" ");
                            }
                            if (!string.IsNullOrEmpty(tooltip))
                            {
                                stringBuilder.Append(" Tooltip=\"" + tooltip + "\" ");
                            }
                            stringBuilder.Append("></Attribute>");
                        }
                        #region 从表的从表
                        var aol = from att in objects.ElementAt(j).Elements("ObjectList") select att;
                        for (int a = 0; a < aol.Count(); a++)
                        {
                            stringBuilder.Append("<ObjectList Name=\"" + aol.ElementAt(a).Attribute("Name").Value + "\"  Text=\"" + aol.ElementAt(a).Attribute("Description").Value + "\">");
                            var aolo = from obj in aol.ElementAt(a).Elements("Object") select obj;
                            for (int b = 0; b < aolo.Count(); b++)
                            {
                                stringBuilder.Append("<Object Name=\"" + aolo.ElementAt(b).Attribute("Name").Value + "\"   id=\"" + aolo.ElementAt(b).Attribute("id").Value + "\" Text=\"" + aolo.ElementAt(b).Attribute("Description").Value + "\">");
                                var aoloatt = from objatt in aolo.ElementAt(b).Elements("Attribute") select objatt;
                                for (int c = 0; c < aoloatt.Count(); c++)
                                {
                                    string name = aoloatt.ElementAt(c).Attribute("Name").Value;
                                    string text = aoloatt.ElementAt(c).Attribute("Description").Value;
                                    string datatype = aoloatt.ElementAt(c).Attribute("DataType").Value;
                                    string datavalue = aoloatt.ElementAt(c).Attribute("DataValue").Value;
                                    string datatext = aoloatt.ElementAt(c).Attribute("DataText").Value;
                                    string isencryption = "0";//是否是需要解密(0:表示不存在IsEncryption属性;true表示存在IsEncryption属性并把值加密;false表示存在IsEncryption属性值没有加密)
                                    string value = "";//值
                                    if (datatext == string.Empty)
                                    {
                                        value = datavalue;
                                    }
                                    else
                                    {
                                        value = datatext;
                                    }
                                    if (datatype.ToLower() == "datetime")
                                    {
                                        value = ChangeTime(value);
                                    }
                                    if (aoloatt.ElementAt(c).Attribute("IsEncryption") != null)
                                    {
                                        isencryption = aoloatt.ElementAt(c).Attribute("IsEncryption").Value.ToLower();
                                    }
                                    switch (isencryption)
                                    {
                                        case "0":
                                            stringBuilder.Append("<Attribute Name=\"" + name + "\"  Text=\"" + text + "\" DataType=\"" + datatype + "\" DataValue=\"" + value + "\" />");
                                            break;
                                        case "true":
                                            stringBuilder.Append("<Attribute Name=\"" + name + "\"  Text=\"" + text + "\" DataType=\"" + datatype + "\" DataValue=\"" + ReplaceString(value) + "\" />");
                                            break;
                                        case "false":
                                            stringBuilder.Append("<Attribute Name=\"" + name + "\"  Text=\"" + text + "\" DataType=\"" + datatype + "\" DataValue=\"" + value + "\" />");
                                            break;
                                        default:
                                            break;
                                    }
                                }
                                stringBuilder.Append("</Object>");
                            }
                            stringBuilder.Append("</ObjectList>");
                        }
                        #endregion

                        stringBuilder.Append("</Object>");
                    }
                    stringBuilder.Append("</ObjectList>");
                }

                #endregion
                stringBuilder.Append("</Object>");
                #region 取附件
                if (isAttach == true)
                {
                    #region new 2012-08-30 添加
                    stringBuilder.Append(GetAttachList(formid));
                    #endregion

                }
                #endregion
                stringBuilder.Append("</System>");
                return stringBuilder.ToString();
                #endregion
            }
            catch (Exception ex)
            {
                return GetXmlIsValid("3", "该单据数据出现异常,异常消息:" + ex.Message + "\n  FormidSystemcode:" + FormidSystemcode);
            }
        }