/// <summary>
        /// Ceate process definition
        /// </summary>
        /// <param name="definition"></param>
        /// <param name="status"></param>
        /// <param name="version"></param>
        /// <param name="accounts"></param>
        /// <exception cref="NotImplementedException"></exception>
        public void Create(ProcessDefinition definition, ProcessDefStatusEnum status, int version, params AccountData[] accounts)
        {
            Md5CalcVisitor visitor = new Md5CalcVisitor();

            definition.Accept(visitor);
            string md5 = visitor.CalculateMd5();

            if (_collection.Find(f => f.FlowId == definition.FlowId && string.Equals(f.Md5, md5)).Count() != 0)
            {
                throw new ArgumentException($"Persistend Workflow definition FlowId={definition.FlowId} Md5={md5} already exists.");
            }
            List <AccountData> accountsList = new EditableList <AccountData>();

            if (accounts != null)
            {
                accountsList.AddRange(accounts);
            }
            ProcessDefinitionPersistence pd = new ProcessDefinitionPersistence
            {
                Id                    = definition.Id,
                FlowId                = definition.FlowId,
                Version               = version,
                Name                  = definition.Name,
                Description           = definition.Description,
                LastModified          = DateTime.UtcNow,
                Status                = (int)status,
                Md5                   = md5,
                JsonProcessDefinition = ToBase64(JsonConvert.SerializeObject(definition)),
                Accounts              = accountsList
            };

            _collection.InsertOne(pd);
        }
Пример #2
0
        public async Task <List <ComboboxItemDto> > GetServiceTagForCombo()
        {
            var serviceTag = await SettingManager.GetSettingValueAsync(AppSettings.Mall.ServiceTag);

            string[] tagItems = serviceTag.Split(',');
            List <ComboboxItemDto> comboboxItemDtos = new EditableList <ComboboxItemDto>();

            comboboxItemDtos.AddRange(tagItems.Select(tag => new ComboboxItemDto(tag, tag)));
            return(comboboxItemDtos);
        }
Пример #3
0
        public async Task <List <slideimage> > GetSlideImage()
        {
            string host  = SettingManager.GetSettingValue(AppSettings.Wuye.Host);
            var    query = _slideimageRepository.GetAll();
            var    list  = await query.OrderByDescending(t => t.Sort).ToListAsync();

            List <slideimage> slideimages = new EditableList <slideimage>();

            slideimages.AddRange(list.Select(slideImage => new slideimage()
            {
                imgUrl = host + slideImage.Thumbnail + "?width=640&height=300&mode=crop"
            }));

            return(slideimages);
        }
Пример #4
0
        public IEnumerable <Folder> FolderPathToBreadcrumbs(string folderPath)
        {
            List <Folder> breadcrumbs = new EditableList <Folder>();

            if (string.IsNullOrEmpty(folderPath))
            {
                breadcrumbs.Add(Folder.Root);
            }
            else
            {
                var folderNames = folderPath.Split("\\".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                breadcrumbs.AddRange(GenerateBreadcrumbsFromFolderNames(folderNames));
            }

            return(breadcrumbs);
        }
Пример #5
0
        /// <summary>
        /// Осуществляет загрузку данных по обсервациям и слияние с основным хранилищем пользовательских данных
        /// </summary>
        /// <param name="mainActivityParameters"></param>
        /// <param name="observations"></param>
        /// <param name="needMerge"></param>
        public static EditableList <ActivityParameter> LoadActivityParameters(this EditableList <ActivityParameter> mainActivityParameters, List <long> observations, bool needMerge)
        {
            var activityParameters = new EditableList <ActivityParameter>();
            var observationList    = observations.GetObservations();

            using (var manager = DbManagerFactory.Factory.Create(ModelUserContext.Instance))
            {
                var acc = ActivityParameter.Accessor.Instance(null);
                activityParameters.AddRange(acc.SelectDetailList(manager, observationList));
            }
            if (needMerge)
            {
                mainActivityParameters.Merge(activityParameters);
            }
            activityParameters.AcceptChanges();
            mainActivityParameters.AcceptChanges();
            return(activityParameters);
        }
Пример #6
0
        public HttpResponseMessage Get( )
        {
            List <ICustomerExcelDto> result = new EditableList <ICustomerExcelDto>();
            var customer = _customerQueryService.GetAll();

            result.AddRange(customer.Select(p => new CustomerExcelDto
            {
                FirstName    = p.FirstName,
                LastName     = p.LastName,
                EmailAddress = p.EmailAddress,
                IsActive     = p.IsActive?"فعال":"غیر فعال",
            }));
            HttpResponseMessage response;
            DataTable           dt = new DataTable();

            dt = result.ToDataTableExtension();
            MemoryStream ms = new MemoryStream();

            try
            {
                ExcelReader.WriteExcel(ms, dt);
                ms.Position = 0;

                response = new HttpResponseMessage
                {
                    Content = new StreamContent(ms)
                };

                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "fefef.xlsx"
                };
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
            }
            catch (Exception ex)
            {
                response = new HttpResponseMessage
                {
                    Content = new StringContent("Error: " + ex.Message)
                };
            }
            return(response);
        }
Пример #7
0
        public async Task <IEnumerable <DnsEndPoint> > GetAllEndpoints(string service, string tag,
                                                                       CancellationToken cancellationToken)
        {
            List <DnsEndPoint> results = new EditableList <DnsEndPoint>();

            var serviceEndpoints = await _consulClient.Health.Service(service, tag, cancellationToken);

            if (serviceEndpoints.StatusCode == HttpStatusCode.NotFound)
            {
                Logger.Warn($"Couldn't find service: {service}/{tag}");
            }
            else if (serviceEndpoints.StatusCode == HttpStatusCode.OK)
            {
                var endpoints = serviceEndpoints.Response
                                .Where(i => !i.Checks.Any() || i.Checks.All(x => string.Equals(x.Status, "passing", StringComparison.InvariantCultureIgnoreCase) || string.Equals(x.Status, "warning", StringComparison.InvariantCultureIgnoreCase)))
                                .Select(i => new DnsEndPoint(string.IsNullOrWhiteSpace(i.Service.Address) ? i.Service.Address : i.Node.Address, i.Service.Port == 0 ? 80 : i.Service.Port))
                                .ToList();
                results.AddRange(endpoints);
            }

            return(results);
        }
Пример #8
0
        public void SearchResultsShouldNotApplyFacetsIfTwoSetsOfFacetsSupplied()
        {
            //arrange
            var search = "test search";
            var expectedrecord = new Models.SearchResult
            {
                Id = "testid",
                Name = "test location",
                Address = "test address",
                PostCode = "12345",
                Town = "test town",
                Region = "test region",
                Category = "test category"
            };
            var expectedResult = new SearchServiceResult() { Data = new List<SearchResult> { expectedrecord } };

            var facets = new List<SelectItem>
            {
                new SelectItem {Text = "Facet1", Selected = true},
                new SelectItem {Text = "Facet2", Selected = false},
                new SelectItem {Text = "Facet3", Selected = true},
                new SelectItem {Text = "Face41", Selected = false}
            };
            var facetsModal = new List<SelectItem>
            {
                new SelectItem {Text = "Facet1", Selected = true},
                new SelectItem {Text = "Facet2", Selected = true},
                new SelectItem {Text = "Facet3", Selected = false},
                new SelectItem {Text = "Face41", Selected = false}
            };
            
            var expectedTotalCount = facets.Count();
            var expectedSelectedCount = 0; //As we are passing content that should never be supplied, we want to never select facets to filter by.

            var facetsList = new EditableList<string>();
            facetsList.AddRange(facets.Select(x => x.Text));
            expectedResult.Facets = facetsList;


            mockSession.Setup(x => x.GetUserSearch()).Returns(search);

            mockService.Setup(x => x.GetPaginatedResult(It.IsAny<string>(), It.IsAny<int>(), It.IsAny<int>(),
                It.IsAny<string>(), It.IsAny<bool>())).ReturnsAsync(expectedResult).Verifiable();

            mockValidation.Setup(x => x.CleanText(It.IsAny<string>(), It.IsAny<bool>(), It.IsAny<List<string>>(), It.IsAny<HashSet<char>>())).Returns(search);

            mockUrlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns((UrlActionContext uac) =>
                $"{uac.Controller}/{uac.Action}#{uac.Fragment}?" + string.Join("&",
                    new RouteValueDictionary(uac.Values).Select(p => p.Key + "=" + p.Value)));


            var tempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of<ITempDataProvider>());
            tempData["search"] = "";

            //act
            var sut = new SearchController(mockService.Object, mockSession.Object, mockSettings.Object, mockValidation.Object);
            sut.Url = mockUrlHelper.Object;
            sut.TempData = tempData;

            var result = sut.SearchResults(search, facets, facetsModal);

            //assert
            var viewResult = result as ViewResult;

            var model = viewResult.Model as SearchResultsVM;
            model.ShowResults.Should().Be(true);

            //check number of facets is correct
            model.Facets.Count.Should().Be(expectedTotalCount);
            model.FacetsModal.Count.Should().Be(expectedTotalCount);
            model.Facets.Count(x => x.Selected).Should().Be(expectedSelectedCount);
            model.FacetsModal.Count(x => x.Selected).Should().Be(expectedSelectedCount);

            //check the selected facets are correct - in this case no facets should be selected
            var selected = model.Facets.Where(x => x.Selected).Select(x => x.Text).ToList();
            selected.Should().BeEmpty();

            var selectedModal = model.FacetsModal.Where(x => x.Selected).Select(x => x.Text).ToList();
            selectedModal.Should().BeEmpty();

            mockService.Verify();
        }