예제 #1
0
        /// <summary>
        /// 获取接口模板
        /// </summary>
        /// <returns></returns>
        private string GetIServiceTxt(BuildDto buildDto)
        {
            bool isDto = false;

            foreach (var item in buildDto.fieldDtos)
            {
                if (item.IsSearch)
                {
                    isDto = true;
                    break;
                }
            }

            var usingDto = isDto && buildDto.areaName.ToUpperFirst() != "" ? "using DL.Domain.Dto.AdminDto." + buildDto.areaName.ToUpperFirst() + "ModelsDto;" : "";

            var txt = ReadTemplate("IService.txt").Replace("{AreaName}", $"{buildDto.areaName.ToUpperFirst() ?? ""}")
                      .Replace("{ModelName}", buildDto.modelName)
                      .Replace("{UsingDto}", usingDto)
                      .Replace("{DescName}", buildDto.descName);

            if (isDto)
            {
                txt = txt.Replace("{PageParm}", buildDto.modelName);
            }
            txt = txt.Replace("{PageParm}", "");
            return(txt);
        }
예제 #2
0
        public OperationResult Add(BuildDto model)
        {
            if (ExistBuildCode(model.dorm_core) == false)
            {
                return(new OperationResult(OperationResultType.Error, "名称重复!"));
            }
            Dormitory dorm = new Dormitory();

            dorm.dorm_Code     = model.dorm_core;
            dorm.dorm_Level    = 1;
            dorm.dorm_ParentId = null;
            if (model.dorm_levels > 0)
            {
                dorm.dorm_State = "closed";
            }
            else
            {
                dorm.dorm_State = "open";
            }
            dorm = RecursionDormGeneral(dorm, model);
            try {
                this._dormRepository.Add(dorm);
                return(new OperationResult(OperationResultType.Success, "新增成功!", new DormitoryDto {
                    id = dorm.Id, text = dorm.dorm_Code, level = dorm.dorm_Level, pid = dorm.dorm_ParentId, state = dorm.dorm_State
                }));
            } catch (Exception e) {
                return(new OperationResult(OperationResultType.Error, "新增保存失败!", e));
            }
        }
예제 #3
0
        /// <summary>
        /// 获取实体模板
        /// </summary>
        /// <returns></returns>
        private string GetModelTxt(BuildDto buildDto)
        {
            var strbuilder = new StringBuilder();

            //创建列
            foreach (var item in buildDto.fieldDtos)
            {
                strbuilder.Append("\r");
                strbuilder.AppendLine("\t\t/// <summary>");
                strbuilder.AppendLine("\t\t///" + item.FieldDesc);
                strbuilder.AppendLine("\t\t/// </summary>");
                strbuilder.Append("\t\t[SugarColumn(ColumnName = \"" + item.FieldName + "\"");
                if (item.IsKey != "")
                {
                    strbuilder.Append(",IsPrimaryKey = true");
                }
                if (item.IsIdentity != "")
                {
                    strbuilder.Append(",IsIdentity = true");
                }
                if (item.IsNullable != "")
                {
                    strbuilder.Append(",IsNullable = true");
                }
                strbuilder.Append(")]");
                strbuilder.AppendLine("\r\n\t\tpublic " + item.FiledType + " " + item.FieldName.ToUpperFirst() + " { get; set; }");
            }
            var txt = ReadTemplate("Model.txt").Replace("{AreaName}", $"{buildDto.areaName.ToUpperFirst() + "Models" ?? ""}")
                      .Replace("{TableName}", buildDto.tableName)
                      .Replace("{ModelName}", buildDto.modelName)
                      .Replace("{Models}", strbuilder.ToString())
                      .Replace("{DescName}", buildDto.descName);

            return(txt);
        }
예제 #4
0
        /// <summary>
        /// 获取实现模板
        /// </summary>
        /// <returns></returns>
        private string GetDtoModelTxt(BuildDto buildDto)
        {
            var strbuilder = new StringBuilder();
            var isSearch   = false;
            var txt        = string.Empty;

            //创建列
            foreach (var item in buildDto.fieldDtos)
            {
                if (item.IsSearch)
                {
                    strbuilder.AppendLine("\r\t\t/// <summary>");
                    strbuilder.AppendLine("\t\t///" + item.FieldDesc);
                    strbuilder.Append("\t\t/// </summary>");
                    if (item.FiledType == "DateTime" || item.FiledType == "DateTime?")
                    {
                        strbuilder.AppendLine("\r\n\t\tpublic string " + item.FieldName.ToLowerFirst() + " { get; set; }");
                    }
                    else
                    {
                        strbuilder.AppendLine("\r\t\tpublic " + item.FiledType + " " + item.FieldName.ToLowerFirst() + " { get; set; }");
                    }
                    isSearch = true;
                }
            }
            if (isSearch)
            {
                txt = ReadTemplate("DtoModel.txt").Replace("{AreaName}", $"{buildDto.areaName.ToUpperFirst() + "Models" ?? ""}")
                      .Replace("{ModelName}", buildDto.modelName)
                      .Replace("{Models}", strbuilder.ToString());
            }

            return(txt);
        }
예제 #5
0
        private async Task PollBuildProgressAsync(string engineId, int minRevision, Action <ProgressData> progress,
                                                  CancellationToken ct)
        {
            while (true)
            {
                ct.ThrowIfCancellationRequested();

                string       url      = $"translation/builds/engine:{engineId}?minRevision={minRevision}";
                HttpResponse response = await HttpClient.SendAsync(HttpRequestMethod.Get, url, null, null, ct);

                if (response.StatusCode == 200)
                {
                    BuildDto buildDto = JsonConvert.DeserializeObject <BuildDto>(response.Content, SerializerSettings);
                    progress(CreateProgressData(buildDto));
                    minRevision = buildDto.Revision + 1;
                }
                else if (response.StatusCode == 204)
                {
                    continue;
                }
                else if (response.StatusCode == 404)
                {
                    break;
                }
                else
                {
                    throw new HttpException("Error getting build status.")
                          {
                              StatusCode = response.StatusCode
                          };
                }
            }
        }
예제 #6
0
        /// <summary>
        /// Trigger a build
        /// </summary>
        /// <param name="build"></param>
        /// <returns></returns>
        private async Task TriggerBuild(BuildDto build)
        {
            Console.WriteLine($"Triggering Build: {build.name}");

            var createdBuild = await PostBuild(build);

            while (createdBuild.status != "completed")
            {
                Thread.Sleep(5000);

                Console.WriteLine($"Triggered Build: {build.name} - Not Completed.. Waiting...");

                createdBuild = await GetBuild(createdBuild.id);
            }

            if (createdBuild.result == "succeeded")
            {
                Console.WriteLine($"Triggered Build: {build.name} - succeeded");

                buildOrder++;
                build.BuildSuccessOrder = buildOrder;
            }
            else
            {
                Console.WriteLine($"Triggered Build: {build.name} - failed");

                counter++;
                build.BuildFailedCounter++;
                build.BuildSuccessOrder = 0;
            }
        }
        public void CanConvertBuildCompletedEventToBuildDto()
        {
            //Arrange
            var mockAdoClient = new Mock <IAdoClient>();
            var fakeBuild     = new BuildDto()
            {
                Id = 1, Project = new ProjectDto()
                {
                    Id = new System.Guid("3ededfb7-5b60-49d9-9c47-80bbf8f2dcb1")
                }
            };
            var fakeBuildEvent = new BuildCompletedEvent()
            {
                EventType          = BuildCompletedEvent.EventIdentifier,
                Resource           = JsonDocument.Parse("{\"id\": 1}").RootElement,
                ResourceContainers = JsonDocument.Parse("{\"project\": {\"id\": \"3ededfb7-5b60-49d9-9c47-80bbf8f2dcb1\"}}").RootElement,
            };

            mockAdoClient.Setup(m => m.GetBuild(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(fakeBuild));

            ITypeConverter <AdoEvent, AdoDto> sut = new AdoEventToAdoDtoConverter(mockAdoClient.Object);

            //Act
            var result = sut.Convert(fakeBuildEvent, null, null) as BuildDto;

            //Assert
            Assert.NotNull(sut);
            Assert.NotNull(result);
            Assert.Equal(result.Id, fakeBuildEvent.Resource?.GetProperty("id").GetInt32());
            Assert.Equal(result.Project.Id, fakeBuildEvent.ResourceContainers?.GetProperty("project").GetProperty("id").GetGuid());

            Mock.VerifyAll(mockAdoClient);
        }
예제 #8
0
        public ResultHelper SetBuild(BuildDto buildDto)
        {
            try
            {
                build item = new build();
                if (buildDto.SiteID == 0)
                {
                    item.SiteID = null;
                }
                else
                {
                    item.SiteID = buildDto.SiteID;
                }
                item.BuildID    = buildDto.BuildID;
                item.CampusID   = buildDto.CampusID;
                item.Gps        = buildDto.Gps;
                item.Name       = buildDto.Name;
                item.Adress     = buildDto.Address;
                item.Properties = buildDto.Properties;

                using (UnitOfWork unitofWork = new UnitOfWork())
                {
                    unitofWork.GetRepository <build>().Update(item);
                    unitofWork.saveChanges();
                    return(new ResultHelper(true, buildDto.BuildID, ResultHelper.SuccessMessage));
                }
            }
            catch (Exception ex)
            {
                return(new ResultHelper(false, buildDto.BuildID, ResultHelper.UnSuccessMessage));
            }
        }
예제 #9
0
        public ActionResult Edit(BuildDto model)
        {
            ResultHelper result = JsonConvert.DeserializeObject <ResultHelper>(buildService.SetBuild(model));

            ViewBag.Message = Helper.GetResultMessage(result.Result, result.ResultDescription);
            GetCampus(); GetSites(model.CampusID);
            return(View());
        }
        public List <BuildScoreDetailDto> CalulateScoreDetails(BuildDto build)
        {
            var metrics = this.metricRepository.GetAll().ToList();

            var buildScoreDetails = metrics.Select(x => this.scoreService.CalculateScoreDetail(TypeAdapterHelper.Adapt <Build>(build), TypeAdapterHelper.Adapt <Metric>(x))).ToList();

            return(TypeAdapterHelper.Adapt <List <BuildScoreDetailDto> >(buildScoreDetails));
        }
예제 #11
0
        public List <BuildDto> GetAllBuild()
        {
            try
            {
                using (UnitOfWork unitofWork = new UnitOfWork())
                {
                    List <BuildDto> list      = new List <BuildDto>();
                    var             buildList = from b in unitofWork.GetRepository <build>().Select(null, null)
                                                join c in unitofWork.GetRepository <campu>().Select(null, null) on b.CampusID equals c.CampusID
                                                join s in unitofWork.GetRepository <site>().Select(null, null) on b.SiteID equals s.SiteID into site
                                                from s in site.DefaultIfEmpty()
                                                select new
                    {
                        BID         = b.BuildID,
                        BName       = b.Name,
                        BAdress     = b.Adress,
                        BGps        = b.Gps,
                        BProperties = b.Properties,
                        BCID        = b.CampusID,
                        CID         = c.CampusID,
                        CName       = c.Name,
                        CDesc       = c.Description,
                        COther      = c.Other,
                        SID         = s == null ? 0 : s.SiteID,
                        SName       = s == null ? "(-)" : s.Name,
                        SDesc       = s == null ? "(-)" : s.Description,
                        SGps        = s == null ? "(-)" : s.Gps,
                    };
                    foreach (var item in buildList)
                    {
                        BuildDto bDto = new BuildDto();
                        bDto.BuildID               = item.BID;
                        bDto.Name                  = item.BName;
                        bDto.Address               = item.BAdress;
                        bDto.CampusID              = item.BCID.Value;
                        bDto.Properties            = item.BProperties;
                        bDto.CampusDto             = new CampusDto();
                        bDto.CampusDto.CampusID    = item.CID;
                        bDto.CampusDto.Name        = item.CName;
                        bDto.CampusDto.Description = item.CDesc;
                        bDto.CampusDto.Other       = item.COther;
                        bDto.SiteDto               = new SiteDto();
                        bDto.SiteDto.SiteID        = item.SID;
                        bDto.SiteDto.Name          = item.SName;
                        bDto.SiteDto.Description   = item.SDesc;
                        bDto.SiteDto.Gps           = item.SGps;
                        list.Add(bDto);
                    }

                    return(list);
                }
            }
            catch (Exception ex)
            {
                return(new List <BuildDto>());
            }
        }
 public IAggregateRoot Convert(AdoDto source, IAggregateRoot destination, ResolutionContext context)
 {
     return(source switch
     {
         BuildDto build => _mapper.Map <IAggregateRoot>(build),
         ProjectDto project => _mapper.Map <IAggregateRoot>(project),
         ReleaseDto release => _mapper.Map <IAggregateRoot>(release),
         _ => null,
     });
예제 #13
0
        public async Task TrainAsync(string projectId, Action <ProgressData> progress, CancellationToken ct)
        {
            EngineDto engineDto = await GetEngineAsync(projectId);

            BuildDto buildDto = await CreateBuildAsync(engineDto.Id);

            progress(CreateProgressData(buildDto));
            await PollBuildProgressAsync(engineDto.Id, buildDto.Revision + 1, progress, ct);
        }
예제 #14
0
        private static void ListenForTrainingStatus_NoErrors(Assert assert)
        {
            var httpClient = new MockHttpClient();
            var engineDto  = new EngineDto
            {
                Id = "engine1"
            };

            httpClient.Requests.Add(new MockRequest
            {
                Method       = HttpRequestMethod.Get,
                Url          = "translation/engines/project:project1",
                ResponseText = JsonConvert.SerializeObject(engineDto, RestClientBase.SerializerSettings)
            });
            var buildDto = new BuildDto
            {
                Id        = "build1",
                StepCount = 10
            };

            httpClient.Requests.Add(new MockRequest
            {
                Method       = HttpRequestMethod.Get,
                Url          = "translation/builds/engine:engine1?minRevision=0",
                Action       = (body, ct) => Delay(10, ct),
                ResponseText = JsonConvert.SerializeObject(buildDto, RestClientBase.SerializerSettings)
            });
            for (int i = 0; i < 10; i++)
            {
                buildDto.CurrentStep++;
                buildDto.Revision++;
                httpClient.Requests.Add(new MockRequest
                {
                    Method       = HttpRequestMethod.Get,
                    Url          = string.Format("translation/builds/engine:engine1?minRevision={0}", buildDto.Revision),
                    Action       = (body, ct) => Delay(10, ct),
                    ResponseText = JsonConvert.SerializeObject(buildDto, RestClientBase.SerializerSettings)
                });
            }
            var    engine       = new TranslationEngine("http://localhost/", "project1", httpClient);
            Action done         = assert.Async();
            int    expectedStep = -1;

            engine.ListenForTrainingStatus(
                progress =>
            {
                expectedStep++;
                assert.Equal(progress.CurrentStep, expectedStep);
            },
                success =>
            {
                assert.Equal(expectedStep, 10);
                assert.Equal(success, true);
                done();
            });
        }
예제 #15
0
        public void CanBeConstructed()
        {
            //Arrange
            BuildDto sut;

            //Act
            sut = new BuildDto();

            //Assert
            Assert.NotNull(sut);
        }
예제 #16
0
        public async Task <BuildDto> UpdateBuild(string projectIdentifier, BuildDto build, string organization = default, CancellationToken cancellationToken = default)
        {
            var request = new UpdateBuildRequest(organization ?? _options.Value.DefaultOrganization, projectIdentifier, build);

            request.Headers.Authorization = GetAuthZHeader();

            var response = await SendAsync(request, cancellationToken);

            var buildDto = await response.Content.ReadFromJsonAsync <BuildDto>(null, cancellationToken);

            return(buildDto);
        }
예제 #17
0
        public async Task <IActionResult> CreateAsync([FromBody] string engineId)
        {
            Build build = await _engineService.StartBuildAsync(EngineLocatorType.Id, engineId);

            if (build == null)
            {
                return(StatusCode(422));
            }

            BuildDto dto = CreateDto(build);

            return(Created(dto.Href, dto));
        }
        public IHttpActionResult PostAdd(BuildDto model)
        {
            if (model == null)
            {
                return(BadRequest(ModelState));
            }
            OperationResult result = this._dormService.Add(model);

            if (result.ResultType == OperationResultType.Success)
            {
                DormitoryDto dorm = (DormitoryDto)result.AppendData;
                return(CreatedAtRoute("DefaultApi", new { id = dorm.id }, dorm));
            }
            return(BadRequest(ModelState));
        }
예제 #19
0
 public bool IsThere(BuildDto buildDto)
 {
     using (UnitOfWork unitofWork = new UnitOfWork())
     {
         var item = unitofWork.GetRepository <build>().GetById(x => x.Name == buildDto.Name);
         if (item != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
예제 #20
0
        public void CanBeSerialized()
        {
            //Arrange
            var sut = new BuildDto()
            {
                Id          = 1,
                BuildNumber = "1234"
            };

            //Act
            var payload = JsonSerializer.Serialize(sut, new JsonSerializerOptions {
                IgnoreNullValues = true
            });

            //Assert
            Assert.NotNull(JsonDocument.Parse(payload));
        }
예제 #21
0
        public async Task <IActionResult> PutBuild(int id, BuildDto buildDto)
        {
            Build build = _mapper.Map <Build>(buildDto);

            if (id != build.Id)
            {
                return(BadRequest());
            }


            var  uid  = int.Parse(HttpContext.User.Identity.Name);
            User user = await _context.FindAsync <User>(uid);

            User buildUser = await _context.FindAsync <User>(build.BuildPerson?.Id);

            if (user == null || buildUser == null)
            {
                return(BadRequest(new { message = "User not found" }));
            }
            build.BuildPerson = buildUser;

            build.UpdatePerson = user;

            _context.Entry(build).State = EntityState.Modified;


            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BuildExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #22
0
        /// <summary>
        /// Post Build
        /// </summary>
        /// <param name="build"></param>
        /// <returns></returns>
        public async Task <BuildDto> PostBuild(BuildDto build)
        {
            DefinitionRequestDto definitionRequestDto = new DefinitionRequestDto
            {
                Definition   = build,
                SourceBranch = _optionsDto.SourceBranch
            };

            string json = JsonConvert.SerializeObject(definitionRequestDto);

            // Setup resources
            string uri = $"{ _optionsDto.SourceUri }/_apis/build/builds?api-version=5.0";

            // Post build
            var response = await _httpClient.PostAsync <BuildDto>(uri, json);

            //Return Repository List
            return(response);
        }
예제 #23
0
        private async Task PollBuildProgressAsync(string locatorType, string locator, int minRevision,
                                                  Action <ProgressStatus> progress, CancellationToken ct)
        {
            while (true)
            {
                ct.ThrowIfCancellationRequested();

                string       url      = $"translation/builds/{locatorType}:{locator}?minRevision={minRevision}";
                HttpResponse response = await HttpClient.SendAsync(HttpRequestMethod.Get, url, null, null, ct);

                if (response.StatusCode == 200)
                {
                    BuildDto buildDto = JsonConvert.DeserializeObject <BuildDto>(response.Content, SerializerSettings);
                    progress(CreateProgressStatus(buildDto));
                    locatorType = "id";
                    locator     = buildDto.Id;
                    if (buildDto.State == BuildStates.Completed || buildDto.State == BuildStates.Canceled)
                    {
                        break;
                    }
                    else if (buildDto.State == BuildStates.Faulted)
                    {
                        throw new InvalidOperationException("Error occurred during build: " + buildDto.Message);
                    }
                    minRevision = buildDto.Revision + 1;
                }
                else if (response.StatusCode == 204)
                {
                    continue;
                }
                else if (response.StatusCode == 404)
                {
                    break;
                }
                else
                {
                    throw new HttpException("Error getting build status.")
                          {
                              StatusCode = response.StatusCode
                          };
                }
            }
        }
예제 #24
0
 public BuildTile Convert(BuildDto buildDto, TestResults testResultsDto)
 {
     return(new BuildTile
     {
         Id = buildDto.Id,
         BuildReportUrl = buildDto.Links.Web.Href,
         RequestedByName = buildDto.RequestedFor.DisplayName,
         Status = string.IsNullOrEmpty(buildDto.Result) ? buildDto.Status : buildDto.Result,
         TotalNumberOfTests = testResultsDto?.TotalTests ?? 0,
         PassedNumberOfTests = testResultsDto?.PassedTests ?? 0,
         TeamProject = _displayTransformer.Tranform(buildDto.Project.Name),
         BuildDefinition = _displayTransformer.Tranform(buildDto.Definition.Name),
         StartBuildDateTime = buildDto.StartTime,
         FinishBuildDateTime = buildDto.FinishTime,
         Branch = ConvertBranchName(buildDto.SourceBranch),
         RepoName = _displayTransformer.Tranform(buildDto.Repository.Name),
         UserEmail = buildDto.RequestedFor.UniqueName.ToLower()
     });
 }
예제 #25
0
        private static void ListenForTrainingStatus_Close(Assert assert)
        {
            var httpClient = new MockHttpClient();
            var engineDto  = new EngineDto
            {
                Id = "engine1"
            };

            httpClient.Requests.Add(new MockRequest
            {
                Method       = HttpRequestMethod.Get,
                Url          = "translation/engines/project:project1",
                ResponseText = JsonConvert.SerializeObject(engineDto, RestClientBase.SerializerSettings)
            });
            var buildDto = new BuildDto
            {
                Id        = "build1",
                StepCount = 10
            };

            httpClient.Requests.Add(new MockRequest
            {
                Method       = HttpRequestMethod.Get,
                Url          = "translation/builds/engine:engine1?minRevision=0",
                Action       = (body, ct) => Delay(1000, ct),
                ResponseText = JsonConvert.SerializeObject(buildDto, RestClientBase.SerializerSettings)
            });
            var    engine = new TranslationEngine("http://localhost/", "project1", httpClient);
            Action done   = assert.Async();

            engine.ListenForTrainingStatus(
                progress => { },
                success =>
            {
                assert.Equal(success, false);
                done();
            });
            engine.Close();
        }
예제 #26
0
        public async Task <IActionResult> CreateAsync([FromBody] string engineId)
        {
            Engine engine = await _engines.GetAsync(engineId);

            if (engine == null)
            {
                return(StatusCode(StatusCodes.Status422UnprocessableEntity));
            }
            if (!await AuthorizeAsync(engine, Operations.Update))
            {
                return(StatusCode(StatusCodes.Status403Forbidden));
            }

            Build build = await _engineService.StartBuildAsync(engine.Id);

            if (build == null)
            {
                return(StatusCode(StatusCodes.Status422UnprocessableEntity));
            }
            BuildDto dto = CreateDto(build);

            return(Created(dto.Href, dto));
        }
예제 #27
0
        public async Task <ActionResult <BuildDto> > PostBuild(BuildDto buildDto)
        {
            Build build = _mapper.Map <Build>(buildDto);

            var  id   = int.Parse(HttpContext.User.Identity.Name);
            User user = await _context.FindAsync <User>(id);

            User buildUser = await _context.FindAsync <User>(build.BuildPerson?.Id);

            if (user == null || buildUser == null)
            {
                return(BadRequest(new { message = "User not found" }));
            }
            build.BuildPerson  = buildUser;
            build.UpdatePerson = user;
            await _context.Builds.AddAsync(build);

            await _context.SaveChangesAsync();

            var dto = _mapper.Map <BuildDto>(build);

            return(CreatedAtAction("GetBuild", new { id = build.Id }, dto));
        }
예제 #28
0
        public List <BlockDto> GetAllBlock()
        {
            try
            {
                List <BlockDto> list = new List <BlockDto>();
                using (UnitOfWork unitofWork = new UnitOfWork())
                {
                    List <block> collection = unitofWork.GetRepository <block>().Select(null, null).ToList();
                    foreach (var item in collection)
                    {
                        BlockDto blockDto = new BlockDto();
                        blockDto.Name    = item.Name;
                        blockDto.BlockID = item.BlockID;
                        blockDto.BuildID = item.BuildID.Value;
                        blockDto.Gps     = item.Gps;

                        var      build    = unitofWork.GetRepository <build>().GetById(model => model.BuildID == item.BuildID);
                        BuildDto buildDto = new BuildDto();
                        buildDto.BuildID    = build.BuildID;
                        buildDto.Name       = build.Name;
                        buildDto.Address    = build.Adress;
                        buildDto.Gps        = build.Gps;
                        buildDto.CampusID   = build.CampusID.Value;
                        buildDto.SiteID     = build.SiteID.Value;
                        buildDto.Properties = build.Properties;
                        blockDto.BuildDto   = buildDto;

                        list.Add(blockDto);
                    }
                    return(list);
                }
            }
            catch (Exception ex)
            {
                return(new List <BlockDto>());
            }
        }
예제 #29
0
 public BuildDto GetBuild(int buildID)
 {
     try
     {
         using (UnitOfWork unitofWork = new UnitOfWork())
         {
             build item = new build();
             item = unitofWork.GetRepository <build>().GetById(x => x.BuildID == buildID);
             BuildDto buildDto = new BuildDto();
             buildDto.BuildID    = item.BuildID;
             buildDto.SiteID     = (int)item.SiteID;
             buildDto.CampusID   = (int)item.CampusID;
             buildDto.Name       = item.Name;
             buildDto.Address    = item.Adress;
             buildDto.Gps        = item.Gps;
             buildDto.Properties = item.Properties;
             return(buildDto);
         }
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
예제 #30
0
        /// <summary>
        /// 获取修改UI模板
        /// </summary>
        /// <returns></returns>
        private string GetModifyUITxt(BuildDto buildDto)
        {
            var formBuilder   = new StringBuilder();
            var hiddenBuilder = new StringBuilder();
            var jsBuilder     = new StringBuilder();

            //创建列


            foreach (var item in buildDto.fieldDtos)
            {
                if (item.IsShowForm)
                {
                    formBuilder.AppendLine("<div class=\"layui-form-item\">");
                    formBuilder.AppendLine("<label class=\"layui-form-label\">" + item.FieldDesc + "</label>");
                    formBuilder.AppendLine("<div class=\"layui-input-block\">");

                    if (item.FiledType == "bool" || item.FiledType == "bool?")
                    {
                        formBuilder.AppendLine("<input type=\"checkbox\" name=\"" + item.FieldName + "\" lay-skin=\"switch\" lay-text = \"开启|禁用\" value = \"true\" @(Model." + item.FieldName + " ? \"checked\" : \"\") > ");
                    }
                    else if (item.FiledType == "DateTime" || item.FiledType == "DateTime?")
                    {
                        formBuilder.AppendLine("<input type=\"text\" class=\"layui-input\" lay-verify=\"date\" id=\"" + item.FieldName + "\" name=\"" + item.FieldName + "\" value =\"@Model." + item.FieldName + "\" >");

                        jsBuilder.AppendLine("laydate.render({");
                        jsBuilder.AppendLine("elem: '#" + item.FieldName + "',");
                        jsBuilder.AppendLine("theme: '#393D49'");
                        jsBuilder.AppendLine("});");
                    }
                    else
                    {
                        if (item.FiledType == "string" && item.FiledLength > 255)
                        {
                            formBuilder.AppendLine("<textarea name = \"" + item.FieldName + "\" class=\"layui-textarea\" style =\"min-height: 60px;\" placeholder =\"请输入" + item.FieldDesc + "\">@Model." + item.FieldName + "</textarea>");
                        }
                        else
                        {
                            formBuilder.AppendLine("<input type=\"text\" name=\"" + item.FieldName + "\" value =\"@Model." + item.FieldName + "\" ");
                            if (!string.IsNullOrEmpty(item.IsNullable))
                            {
                                formBuilder.Append("lay-verify =\"required\" lay-verType=\"tips\" autocomplete=\"off\" ");
                            }
                            formBuilder.Append("placeholder =\"请输入" + item.FieldDesc + "\" class=\"layui-input\">");
                        }
                    }
                    formBuilder.AppendLine("</div>");
                    formBuilder.AppendLine("</div>");
                }
                else
                {
                    hiddenBuilder.AppendLine("<input type=\"hidden\" name=\"" + item.FieldName + "\" id=\"" + item.FieldName + "\" value=\"@Model." + item.FieldName + "\" />");
                }
            }

            var txt = ReadTemplate("Modify.txt").Replace("$AreaName$", $"{buildDto.areaName.ToUpperFirst() ?? ""}")
                      .Replace("$ControllerName$", buildDto.controllerName)
                      .Replace("$Form$", formBuilder.ToString())
                      .Replace("$Hidden$", hiddenBuilder.ToString())
                      .Replace("$JavaScript$", jsBuilder.ToString())
                      .Replace("$ModelName$", buildDto.modelName)
                      .Replace("$Models$", buildDto.modelName)
                      .Replace("$Using$", "DL.Domain.Models." + $"{buildDto.areaName.ToUpperFirst() + "Models" ?? ""}")
                      .Replace("$DescName$", buildDto.descName);

            return(txt);
        }